您可以在严格的情况下执行模型代码单任务方式。虽然在某些情况下,此模式在执行速度方面的效率较低,但它可以简化您的模型。
在单任务模式下,基本采样率必须定义足够长的时间间隔,以允许在该间隔内执行所有块。
下图说明了单任务执行中固有的效率。
单任务系统执行需要足够长的基本采样率,以通过整个模型执行一步。
要使用单任务执行,清除模型配置参数将每个离散率视为单独的任务。如果选择参数,则在以下情况下使用单个任务模式:
如果您的模型包含一个采样时间
如果您的模型包含连续和离散的采样时间,固定步长等于离散采样时间
此示例使用固定步骤求解器检查如何在实时和仿真中执行简单的多速率模型。它通过设置模型配置参数来确定单个任务和多任务模式中的操作将每个离散率视为单独的任务。
示例模型如下图所示。讨论是指模型的六个块作为通过F,如框图中标记在一起。
块的执行顺序(在每个块的右上方指示)已被强制到通过分配更高的优先级来块f,e和d所示的顺序。所示的排序是该模型的一个可能的有效执行排序。有关更多信息,请参阅动态系统中的仿真阶段。
执行顺序由块之间的数据依赖性确定。在实时系统中,执行顺序确定在给定时间间隔或任务中执行块的顺序。该讨论将模型的执行顺序视为给定的,因为它涉及将块计算分配给任务,以及任务执行的调度。
笔记
本节中的讨论和时序图基于默认(受保护)模式中使用速率转换块的假设,其中包含块参数在数据传输期间确保数据完整性和确保确定性数据传输(最大延迟)选择
此示例在模型配置参数时考虑执行上述模型将每个离散率视为单独的任务清除,表示单任务模式。
在单个任务系统中,如果选择Model Configuration参数块减少,快速慢速转换块由模型进行优化。显示了默认情况(参数块减少选定),因此块B未显示在本节中的时序图中。有关更多信息,请参阅块减少。
下表显示了模型中的每个块,执行顺序,采样时间以及块是否具有输出或更新计算。块A不具有离散状态,因此没有更新计算。
执行顺序和采样时间(单任务)
块 |
采样时间 |
输出 |
更新 |
---|---|---|---|
E. |
0.1 |
y |
y |
F |
0.1 |
y |
y |
D. |
1 |
y |
y |
一种 |
0.1 |
y |
N |
C |
1 |
y |
y |
下图显示了在实时系统中部署生成的代码时计算的调度。在10 Hz定时器的中断的控制下,生成的程序显示实时运行。
在0.0,1.0和每秒之后,慢速和快速块都执行其输出计算;接下来是更新具有状态的块的计算。在给定的时间间隔内,以块执行顺序排序输出和更新计算。
快速块在每次刻度上执行,间隔为0.1秒。输出计算后跟更新计算。
系统每次间隔的某些部分(标记为“等待”)空转。在仅当仅快速块执行时,间隔的更大部分是空闲的。这说明了单任务模式的固有效率。
下图显示了在Simulink期间执行模型的执行金宝app®仿真环。
由于模拟时间,刻度的放置表示仿真环路的迭代。块以完全相同的顺序执行,如前图中,但没有实时时钟的约束。因此,模拟样本周期之间没有空闲时间。