可调度组件允许您采用两种非常不同的建模样式,即基于速率的建模和导出函数建模,将它们组合在一起,并在同一模型中调度它们,从而在组合不同组件时及早发现问题,从而帮助您节省时间。
这种建模样式有两大好处。这使您能够完全控制调度模型组件,而不是让Simulink调度组件。而且没有必要处理组件之间的数据依赖性问题,因为只有数据传输。
让我向您展示一个激发可调度组件需求的示例。在这个模型中,我们有两种不同的建模样式。在顶层,我们有模拟踏板输入,进入油门传感器和监视器模型块。传感器数据将发送至油门位置控制器和执行器模型块。该系统随后通过作为装置的节气门体模型进行模拟。在节气门位置控制器和执行器模型块内,有两个导出功能部件–一个用于控制器,另一个用于执行器
在Throttle Sensors and Monitor(油门传感器和监视器)模型块内部,有用于传感器和监视器的基于速率的子系统。其中三个以5毫秒的速度运行–主油门位置传感器和辅助油门位置传感器以及监视器。其中一个以10毫秒的速度运行–加速踏板位置传感器。
我想要的是安排控制器在传感器之前运行。我必须重新整理模型,以交错排列这些不同建模样式的调度。为此,我可以配置Throttle Sensors and Monitor模型块,以通过定期事件端口调度模型的基于速率的组件。现在,在Throttler Sensors和Monitor模块内部,所有子系统都由来自模型块外部的两个事件触发。它们被标记为D1和D2。
对于导出功能和可调度组件,假定没有固有的调度器,这样可以更灵活地集成到自定义环境中。
因此,我们可以使用Schedule Editor在顶层调度这两种类型的组件。在这种情况下,我们将交替调用导出函数和可调度组件。ControllerRun5ms和Actuator Run5ms事件控制节气门位置控制器和执行器模型块中的功能调用。D1和D2控制可调度组件。
但我们希望在执行顺序中首先执行控制器,因此在本例中,我们只需将其拖放到希望其运行的位置。
当您从不同的地方获得具有不同建模风格的不同IP时,这种明确的组合调度和交错非常有用。