主要内容

创建基于时间和基于事件的组件的混合模型

这个例子建模混合系统-油箱填充显示油罐排队等待加油。在本例中,为SimEvents®组件在Simulink中建模基于事件的行为金宝app®组件建模基于时间的动态。

油箱填充模型与SimEvents和Simulink组件金宝app

之间的通信SimEvents而且金宝app组件

没有选择门块和金宝app仿真软件的功能块,在离散事件过程中,容器的流程遵循它们的生成、排队、服务和终止。有关构建模型的SimEvents组件的更多信息,请参见创建离散事件模型.要了解关于为同一模型编写事件操作的更多信息,请参见使用事件操作管理实体

油箱填充模型显示为两个简单的队列服务器模型

泵-罐模型是一个Simulink组件,它代表了时间驱动的金宝app油箱填充过程。容器已满时,它通过打穿越块和消息遵循类似的生成、排队、服务和终止流程。徽章表示在基于时间的行为和基于事件的行为之间的转换。

一辆坦克到达实体服务器块触发泵-罐模型中的填充过程。当油箱满了,打穿越block标签为Tank Full生成一条消息。此消息到达接口组件中的处理器时会触发金宝app仿真软件的功能块释放选择门为满罐的离开。

接下来,详细介绍了模型的SimEvent金宝apps和Simulink组件。

SimEvents模型部分

SimEvents部分为油箱的流动建模。

  • 实体发电机Block生成坦克。

  • 实体队列block以先进先出(FIFO)模式对每个油箱进行排队。

  • 实体服务器块调用startFilling金宝appSimulink函数来填充每个油箱。几辆坦克可以同时服役。

  • 实体服务器接口生成的SimEvents消息打穿越块,并调用Simulink函数来启用金宝app选择门子系统用于特定的坦克。块还调用Simulink函数来重新初始化金宝app积分器Block用于下一次填充。

带有选择门子系统的油箱填充模型。

金宝app模型部分

Simu金宝applink部分模拟了时间驱动的油箱加注过程。

  • 该组件包含填充容器的逻辑。

  • 每个水箱都有一个能力属性。连续时间部分模拟了装满油箱的过程,由积分器块。当一个罐子装满了它的容量时,它就会选择门子系统释放燃料箱,燃料箱离开。

  • 该组件还包含Simulink函数金宝appstartFilling

  • 打穿越block检测油箱填充过程的完成,并发送关于此事件的SimEvents消息。该消息在接口中被处理,它通过选择门触发坦克的释放,并重新初始化积分器Block用于下一次填充。

泵油箱模型部分是油箱充注模型,包括Simulink函数块、积分器和传感器金宝app

模拟混合模型

运行建模混合系统-油箱填充的例子。在第一个范围内,观察每个泵的灌装过程。

范围块,显示每个泵的填充过程。

在第二个范围中,观察装满后离开的卡车数量。这幅图显示有15在油箱加满后,卡车离开工厂。

范围块,显示卡车离开设施后,他们的油箱是满的

模拟中的基于事件和基于时间的动力学

建模混合系统-油箱填充例如,基于时间的罐体填充动力学与基于事件的罐体流动系统动力学共存。在运行模拟时,求解器和事件日历都会发挥作用。在求解器的主要时间步长上,模拟求解了代表油箱填充系统动力学的常微分方程。解决基于事件的动态需要在SimEvents事件日历上调度和处理事件,例如服务完成和实体生成。由于该模型使用可变步长求解器,当离散事件系统中发生事件时,求解器具有较大的时间步长。

要了解有关求解器的更多信息,请参见离散事件系统的求解器.要了解关于创建基于事件和基于时间的模型的更多信息,请参见使用SimEvents和Simulink金宝app

另请参阅

||

相关的话题