观察使用simevents实体。SimulationObserver类
这个例子展示了如何使用simevents.SimulationObserver
对象计算实体离职和获得离职时间戳。
使用simevents.SimulationObserver
对象观察或可视化实体,实现动画师调试模型模拟。有关更多信息,请参见使用SimulationObserver类监控SimEvents模型。
在这个模型中,simevents.SimulationObserver
对象用于收购实体的数量离开一块或一组块模型和时间戳他们的离职。发电机模型有两个实体和实体终结者块和一个实体服务器。块显示范围数量的实体,d实体生成器和实体服务器的统计数据块。
创建观察者
打开一个新脚本,并启动simevents.SimulationObserver
对象的代码。
classdefmyObserverPreexit < simevents.SimulationObserver%添加观察者属性。属性模型%初始化属性计数。数结束
属性(常数,访问=私人)增量= 1;结束
方法
%观察任何MyObserverPreexit的模式,将它的名字。这个函数= myObserverPreexit(模型)%名字输入模型模拟观察者。this@simevents.SimulationObserver(模型);这一点。模型= Model; end
%初始化仿真开始计数。函数simStarted(这个)。数= 0;结束
%的块列表指定为实体出入境%事件的通知。功能块= getBlocksToNotify(这)块= this.getAllBlockWithStorages ();结束
函数preExit (evSrc,这数据)%所有存储块的名称,实体也分别了。%这返回路径的块。块= Data.Block.BlockPath;只显示% %删除路径块的名字。块= regexprep(块,‘ObserverPreexitModel /’,”);%初始化块去观察。BlockName =“实体服务器”;如果实体的块退出百分比包含块名称%获得出口时间和数据块的名字。如果包含(块,BlockName) %时间实体preexit事件日历。evCal = this.getEventCalendars; Time = evCal(1).TimeNow; % Increase the count for departing entities. this.count = this.count + this.increment;
myInfo =[‘时间’,num2str(时间)…一个实体离开,块,“,实体总数”,…num2str (this.count)];disp (myInfo);端端端端
将文件保存为myObserverPreexit.m
文件。
监控模型
使观察者对象监视器ObserverPreexitModel
模型。
obj = myObserverPreexit (“ObserverPreexitModel”);
观察者监控实体服务器阻塞,这是确定的BlockName
参数在《观察家报》文件中myObserverPreexit.m
。
模拟模型。点击视图诊断在模型窗口,观察到实体的数量离开实体服务器块和出发的时间戳。
进行验证,观察了块显示范围数量的实体,d实体服务器的数据块。
监控模型中的多个块
使用相同的观察员监督实体离开所有的实体生成器块在你的模型。
改变
BlockName
参数preExit
方法“实体发生器”
。模型中的实体发电机块标记Generator2实体Generator1和实体。
函数preExit (evSrc,数据)%得到所有存储块的名称,实体也分别了。%返回路径的块。块= Data.Block.BlockPath;%删除的路径只显示块的名字块= regexprep(块,“ObserverPreexitModel /”,”);%初始化公共实体发电机短语BlockName =“实体发生器”;如果实体的块退出百分比包含块的名字%获得出口时间和块的名称。如果包含(块,BlockName)%的时间实体preexit从事件日历。evCal = this.getEventCalendars;时间= evCal (1) .TimeNow;%增加离任的计算实体。这一点。数=。数+ this.increment;
myInfo =[‘时间’,num2str(时间)…一个实体离开,块,“,实体总数”,…num2str (this.count)];disp (myInfo);结束结束
使观察者对象监视器
ObserverPreexitModel
模型。
obj = myObserverPreexit (“ObserverPreexitModel”);
模拟模型。观察诊断查看器显示信息
15
实体离开实体发生器模块。
为验证,观察Scope1和Scope2块显示数量的实体,d统计Generator2 Generator1实体和实体。
观察到4
实体实体Generator1离开。
同时,11
实体实体Generator2离开。总的来说,15
从实体模型中的实体发生器模块。
另请参阅
simevents.SimulationObserver
|simStarted
|preExit
|getBlocksToNotify
|getEventCalendars