在一个时间步中多次调度一个子系统
此示例说明如何在 Stateflow® 中设计循环调度器。循环调度器设计模式允许您在一个时间步内多次执行一个 Simulink® 子系统。Stateflow 调度器扩展了对 Simulink 模型中子系统执行的控制,它基于模块连接和采样时间传播隐式确定执行顺序。
循环调度器的关键行为
在此示例中,Loop Scheduler 图广播一个函数调用输出事件以在每个时间步中多次执行函数调用子系统 A1。在每个时间步中:
Simulink 模型在 1 毫秒脉冲发生器的上升沿激活 Edge to Function 图。
Edge to Function 图广播函数调用输出事件
call
以激活 Loop Scheduler 图。Loop Scheduler 图调用
send
运算符以多次广播函数调用输出事件A1
。
事件 A1
的每次广播都执行子系统 A1。子系统计算其输出,并将控制权交还给 Loop Scheduler 图。
运行循环调度器
当您仿真模型时,示波器显示画面会在每个时间步显示 y
的值。
在每个时间步期间,y
的值增加 25,因为:
循环调度器中的流程图实现一个进行 10 次迭代的
for
循环。在
for
循环的每次迭代中,图将y
递增 1(输入u1
的常量值)。每次图向子系统 A1 广播输出事件时,子系统都会将
y
递增 1.5。