创建分区
划分模型
分区是作为原子任务独立执行的模型组件。在多任务模型中,分区是由模型组件创建的。在模型中,周期性分区是按照采样时间的函数来调度的。在导出函数模型中,根函数调用输入被定义为分区。这些分区有一个与它们相关联的调度,它告诉分区执行的顺序。
使用分区,您可以分离您可以显式控制的模型的各个部分。您可以将周期性分区视为在模型中以特定速率运行的组件。非周期分区是在指定的命中时间或指定的事件运行的组件。这些分区的调度对模拟和代码生成有影响。
Schedule Editor允许您对模型进行分区,并与这些分区进行交互。Schedule Editor显示分区、它们之间的连接以及分区的顺序。
分区有三种类型:
分区类型 | 图像 | 描述 |
---|---|---|
隐式的 |
|
由Simulink自动创建金宝app®.以基本速率运行的块显示为隐式分区。 |
周期 |
|
来自原子子系统和/或模型块的用户定义分区。还可以通过导出函数定义周期性分区。这些分区基于它们的采样时间执行,因此它们的执行是周期性的。 |
非周期 |
|
非周期性分区是没有约束且可以在任何时间执行的分区。指定打次 在属性检查器的调度编辑器,您要在其中运行非周期分区。您还可以使用Schedule Editor中的事件来安排非周期性分区的执行。 |
在模型中以基本速率运行的块在Schedule Editor中显示为隐式分区。基本速率是模型中最快的离散速率。D1表示基本速率。D1注释也出现在计时图例中。的D1分区或隐式分区始终保持顺序中的第一个离散分区。
模型中已经存在的默认分区也是隐式分区。
分区颜色与它们的速率相匹配。
从基于速率的模型创建分区
分区只在多任务、固定步长和可变步长求解器模型上启用。要选择多任务执行模式,在求解器选择上解算器窗格中,选择类型是固定步
或变步
.选择将每个离散速率视为单独的任务上的复选框。解算器窗格中的“配置参数”对话框。有关多任务执行模式的更多信息,请参见基于时间的调度和代码生成(嵌入式编码).
作为最佳实践,启用自动处理数据传输的速率转换在解算器窗格。当你检查时自动处理数据传输的速率转换,当金宝app检测到速率转换时,Simulink在块之间插入速率转换块。金宝appSimulink处理异步和周期性任务的速率转换。金宝appSimulink添加了配置为确保数据传输的数据完整性和确定性的隐藏块。当你检查时将每个离散速率视为单独的任务, 金宝appSimulink为不同速率运行的模型选择多任务执行。它还指定在模拟的每个阶段(例如,计算输出和更新状态)根据任务优先级处理具有相同执行优先级的块组。
要在日程编辑器中查看默认分区,请打开日程编辑器。在建模选项卡上,单击时间表编辑器.控件更新关系图工具条上的图标。模型中的默认分区称为隐式分区。您还可以通过原子子系统或模型块在模型中创建分区。
使用Manage Partitions创建分区
在“日程编辑器”中,使用管理分区面板来创建分区。打开管理分区面板中,单击管理分区,在日程编辑器工具条上。所做的改变管理分区应用于模型以在更新关系图后创建分区。管理分区显示了子系统块和模型块的模型层次结构,可以显式地进行分区。
要从子系统块中创建分区,请选择子系统并单击.要从Model块中创建分区,请选择Model块并单击.在列中输入分区名称分区名称,和列中的采样次数样品时间.对您想要划分的模型中的所有子系统和Model块重复上述步骤。更新图表以在Schedule Editor中查看已创建的分区。图中显示的分区具有推导出的数据依赖关系和顺序。
请注意
使用管理分区面板对子系统或模型块参数进行更改。
下面的示例展示了如何配置分区模型并通过使用创建分区管理分区面板中的日程编辑器。
打开模型。
sldemo_fuelsys
打开日程编辑器。
上打开日程编辑器建模选项卡上,单击时间表编辑器.若要查看默认分区,请单击更新图在日程编辑器中。在Schedule Editor中可以看到由Simulink自动创建的两个隐式分区。金宝app
创建分区。
打开管理分区面板。在面板中,展开
fuel_rate_control
子系统。选择airflow_calc
子系统,点击.如果需要修改默认分区名称和采样时间,请单击默认名称和采样时间。创建分区
fuel_calc
子系统,选择fuel_calc
子系统,点击.的管理分区面板为您提供默认的分区名称和采样时间。
更新关系图以查看新创建的分区。
从原子子系统块创建分区
您可以对原子子系统进行分区。在确定块方法的执行顺序时,一个原子子系统被Simulink视为一个单金宝app元(分区仅在多任务、固定步长和可变步长求解器模型上启用)。要从原子子系统块创建分区,请转到块参数对话框。选择周期性的分区
从计划是下拉。给分区一个名称和一个离散采样时间,然后单击OK。这将为该块创建一个显式分区。要在Schedule Editor中看到这个分区,请更新图表。分区显示在图中和订单基于模型中信号的连接。
从模型块创建分区
要从Model块创建分区,请在模型事件模拟中,选择进度率而且时间表编辑器
从使用下拉。当您从引用模型中启用分区时,分区将从引用模型中出现的所有model块中创建。这些分区的作用域是由模型块名称确定的。要在Schedule Editor中看到这个分区,请更新图表。分区显示在图中和订单列中基于模型设计的连接。
导出功能分区
在导出函数模型中,分区是根据模型中出现的函数调用创建的。要从导出函数模型中的函数调用创建分区,请在顶级模型中引用导出函数模型。通过块参数使用Schedule Editor对Model块进行调度。然后根据函数调用创建分区,其顺序由Schedule Editor确定。
创建一个导出函数模型。
添加一个引用导出函数模型的Model块。
设置参数以划分导出函数模型。
从model块引用导出函数模型允许您在不更改模型本身的情况下对函数调用进行分区。要创建此示例的模型,请参见创建一个导出函数模型.金宝app导出函数模型中的Simulink函数不能调度,并且不会在调度编辑器中显示为分区。
向新的Simulink模型添加一个模型块。金宝app在模型名称框中,输入
export_function_model
.要启用Schedule Editor的使用,请将模型配置为多任务处理。打开模型配置参数。在解算器的选择在解算器窗格中,设置类型来固定步
.检查将每个离散速率视为单独的任务而且自动处理数据传输的速率转换参数。点击好吧.该模型已启用分区。请注意
不要将子系统转换为模型,因为这会自动创建导入块。
添加外港街区到output_100ms而且output_10ms端口用于将仿真数据保存到MATLAB中®.对于本例,在
export_function_model
,将两个函数调用的采样时间设置为-1。添加一个正弦波块提供数据输入。集振幅来
2
而且样品时间来0.01
.要对导出函数模型的函数调用进行分区,请在模型块的块参数中选择
时间表编辑器
选项。订定费率下拉菜单。打开Schedule Editor并更新图表,以将函数调用视为分区。
另请参阅
时间表编辑器|金宝appsimulink.schedule.OrderedSchedule