主要内容

触发Simeve万博1manbetxnts中的离散事件的Simulink组件

这个例子展示了如何使用Simulink函数块来标记实体,将实万博1manbetx体属性传递给Simulink®组件,以及创建路由通知事件。您可以使用Simulin万博1manbetxk函数块获取实体属性,将它们传递给Simulink®组件进行处理,然后将它们传递回您的SimEvents®模型。

这是通过使用实体生成器,实体队列,实体服务器和实体终止器块构建的简单离散事件排队系统。要了解如何构建此模型,请参阅创建离散事件模型

在这个例子中,我们使用简单的SimEvents®模型和Simulink函数块来演示如何:万博1manbetx

  • 时间戳实体并测量实体生成和服务完成之间的时间。您可以使用此工作流程跟踪在排队系统中处理实体所需的时间。

  • 提取实体属性并在Simulink组件中使用属性值。万博1manbetx您可以使用此工作流程将实体属性传递给Simulink®算法。万博1manbetx

  • 将数据从电子表格导入Simevents®模型并指定实体生成间隔。您可以使用此工作流从现有数据设置块和实体参数。

  • 提取实体属性并将其传递给具有不同类型的另一个实体。

使用Simulink函数块的时间戳实体万博1manbetx

此模型显示如何跟踪流经系统流过的实体的时间。Si万博1manbetxmulink功能块用于时间戳实体生成和服务时间,并计算这两个过程之间的总持续时间。

要打开模型,请使用此代码:

open_system ('TimeStampentitiesUsing万博1manbetxSimulink功能模拟机');

在该模型中,从开放间隔的均匀分布生成实体互动间隔(0,1).实体有四个属性,所有属性的初始值为0.

  • 数据表示实体携带的数据。

  • 时间戳存储实体生成时间。

  • TimeStampServiceComplete存储实体服务完成时间。

  • TotalTime是实体生成和服务之间的时间。

在Simuli万博1manbetxnk函数块中,数字时钟块记录实体生成时间。

您可以通过调用实体生成实体时的时间戳时间戳()来自实体生成器块的Simulin万博1manbetxk函数中的函数。

在实体生成器块中调用函数事件动作选项卡,产生字段,使用此代码:

实体.TimestampGeneration =时间戳();

代码调用时间戳()函数并将数字时钟块的值分配给时间戳属性。

同样,到时间戳服务完成并计算实体生成和服务之间的时差,打开实体服务器块,并在事件动作选项卡上,单击服务完成.输入此代码。

通过致电|时间戳()|百分比服务完成%的功能。Entity.TimestampServiceComplete =时间戳();%计算生成和服务之间的差异%完成时间。Entity.Totaltime = Entity.TimestampServiceComplete  - 实体.TimestampGeneration;%显示时间差的实体属性。DISP(ority.totaltime);

服务完成时间,通过调用时间戳(),分配给Entity.TimestampServiceComplete.属性。然后计算并分配实体生成到服务完成之间的持续时间Entity.Totaltime..代码显示Entity.Totaltime.诊断查看器中每个实体的值。

模拟模型。在诊断查看器中,可以观察Entity.Totaltime.价值观10.实体。实体生成和服务之间的持续时间增加,因为实体在实体队列块中等待其转向服务。

增加模拟时间1000并观察到这一点Entity.Totaltime.收敛到大约26.

经过TotalTime属性到Simulink组件万博1manbetx

假设你想通过Entity.Totaltime.值到Simulink®组万博1manbetx件。这个模型展示了当实体到达实体终止符块时,如何将属性值传递给Simulink函数块。万博1manbetx

要打开此模型,请使用此代码:

open_system (“GetEntityAttributes万博1manbetxSimulinkFunctionModel”);

控件中的实体终止符块可以实现此行为事件动作选项卡,单击入口并打电话给getAttribute (entity.TotalTime)函数。

Get Entity Attributes块接受Entity.Totaltime.作为输入参数,并使用增益块来通过将它们乘以乘以扩增其值2

模拟模型。观察显示放大属性值的范围块。

从电子表格导入数据以指定实体代际时间

假设您希望将数据从电子表格中纳入模拟。使用电子表格,您可以在模型中指定各种参数,例如实体代数时间,实体属性或服务时间。

这个示例模型展示了如何将数据从电子表格导入SimEvents®模型,并使用数据指定实体代际时间。

要打开此模型,请使用此代码:

open_system ('ImportDatasimeventsModel');

在模型中,来自电子表格块的IS在Simulink功能块内,并从中获取来自的值万博1manbetxIntergenerationTimes.xlsx.电子表格。电子表格有五个值-123.4.,5.- 用作实体互动时间。

打电话给mydataspreadsheet()函数,在实体生成器块中,在相生的时间行动字段,使用此代码:

dt = mydataspreadsheet();

DT.是指定实体的代际时间的变量。代码分配DT.通过调用Simulink函数来值万博1manbetxmydataspreadsheet(),从电子表格获取值。

模拟模型。遵守生成实体并离开块时显示的范围块。实体生成之间的间隔与来自电子表格的数据相同。

在不同的实体类型之间传递实体属性

在SimEvents中,您可以创建具有不同实体类型的模型,并使用Simulink功能块通过实体之间的属性。万博1manbetx

要打开此模型,请使用此代码:

open_system ('endgententityattribut万博1manbetxesimulinkfunctionModel');

在该模型中,两个实体生成器块生成实体。实体1生成具有常数值的实体2服务对象是1仿真时间。服务完成后,实体到达标记为分配属性1的Simulink功能块。万博1manbetx

在Assign Attribute 1中,实体由一个内部队列大小的Receive块接收16..接收块将实体数据转换为信号值。

类似地,实体2生成携带值数据的实体2服务对象是5.仿真时间。服务完成后,实体到达Assign Attribute 2。

实体数据传递给标记为新实体的另一个实体生成器块。新实体块生成携带两个属性的实体,data1.data2.,其值是通过呼叫获取的setAttribute1 ()setAttribute2(), 分别。

entity.data1 = setAttribute1();entity.data2 = setAttribute2();

模拟模型并打开数据检查器。观察到的价值data1.data2.新实体的价值是0.直到模拟时间2.这是因为实体是服务的,实体之间没有属性通过。当时2data1.2,这是通过的价值setAttribute1 ().当时6.data2.开始获得价值setAttribute2().此延迟是由于实体的服务时间不同造成的。

为路由创建通知事件

这个模型展示了如何使用Simulink Function块创万博1manbetx建一个事件,当实体的处理完成时通知路由块。

要打开此模型,请使用此代码:

open_system (“NotifyEvent万博1manbetxSimulinkFunctionCallModel”);

在模型中,实体生成器块生成代表设施中部件的实体。实体然后由Entity Server块处理。如果一个部件通过了质量控制,实体输出开关块将部件路由到出厂。否则,零件将被送往深加工。

要在处理实体之后创建通知事件,请在entity Server块中事件动作选项卡,服务完成行动场,调用NotifyEvent()函数。

在质量控制块中,正弦波块用于生成信号。圆形块用于将信号值舍入到最接近的整数小于或等于该值。来自圆形块的输出信号需要值1或者2.该信号由设置的事件时间块转换为消息。

Quality Control块中的消息数据值指定实体离开Entity output Switch块时选择哪个输出端口。如果消息有价值1,输出端口1为实体离开而选择。如果消息有价值2、输出2为实体离开而选择。

模拟模型并观察标记部件的范围块。四个部分离开设施。

请遵守发送到处理的标记部分的范围块,显示六个部分被发送到进一步处理。

也可以看看

||||||

相关话题