这两个示例演示了对模型进行分区、分区调度以及在编辑分区调度之前和之后分析仿真的工作流程。
这个示例展示了如何使用Schedule Editor查看和编辑导出函数模型中函数调用的顺序。与所有导出函数模型一样,所需的功能被建模为函数调用子系统。这些函数调用子系统定义由Schedule Editor调度的分区。
使用日程编辑器,您可以轻松地查看和编辑函数调用的日程。系统的行为取决于这些分区的顺序。在这个例子中,我们改变了顺序,并通过模拟模型观察其对系统行为的影响。为了查看编辑计划对模拟的影响,我们比较了计划之前和之后的模型模拟。
从引用的导出-功能模型创建分区
要查看和编辑导出功能模型的进度,请参考模型。
open_system (“ThrottlePositionControlTop.slx”);
ThrottlePositionControl
是引用的出口-功能模型。默认情况下,每个函数都有一个可用于触发这些函数的输入端口。Schedule Editor会自动处理这些端口。要使用计划编辑器,请将“计划速率”参数设置为“计划编辑器”。
set_param (“ThrottlePositionControlTop / ThrottleControl”,“ScheduleRatesWith”,“时间表编辑器”);
建立模拟基线
为了观察调度对模型行为的影响,在编辑调度之前通过模拟模型建立基线。模拟模型。
sim卡(“ThrottlePositionControlTop”);
打开日程编辑器
要打开日程编辑器,单击时间表编辑器在设计部分的建模选项卡。在Schedule Editor中,模型的不同组件表示为分区。更新图表以查看分区。分区是模型中的入口点。Schedule Editor显示这些分区的顺序和数据通信。箭头表示显示数据流的分区之间的数据连接。虚线表示存在延迟,因为源在目标之后运行。实线表示源在目的地之前运行时没有延迟。
编辑分区表
Order窗格显示分区在给定时间步骤中的运行顺序。假设分区的顺序处于不完美状态。在这种情况下,要删除延迟,您需要运行ThrottleControl。ActuatorRun5ms
分区后,ThrottleControl。ControllerRun5ms
分区。
拖ThrottleControl。ActuatorRun5ms
后ThrottleControl。ControllerRun5ms
在“订单”窗格中。注意,两者之间的延迟ThrottleControl。ControllerRun5ms
和ThrottleControl。ActuatorRun5ms
分区更改为依赖项。注意,现在在处决之间没有任何延迟ThrottleControl。ControllerRun5ms
和ThrottleControl。ActuatorRun5ms
.
调度非周期分区的执行
输出函数模型包含无约束分区,AccelerationPedalPositionSensor
.假设您希望调度一个不受约束的分区,以将其模拟成离散的分区。时间表ThrottleControl。AppSnsrRun
分区在[0:02:100]运行,以观察其在不同时间实例中的行为。点击无约束分区,输入[(1:5000)*。属性检查器中的点击时间。
比较模拟数据检查器中的运行
现在,用更改的时间表模拟模型。
打开仿真数据检查器。选择两个运行并进行比较。您可以看到更改调度如何影响模型行为。
版权所有The MathWorks, Inc.
此示例展示如何使用Schedule Editor对基于费率的模型进行分区。分区是模型中可以独立执行的组件。在本例中,我们将子系统转换为分区,并查看和编辑它们的时间表。
使用日程编辑器,您可以轻松地查看和编辑分区的日程。系统的行为取决于这些分区的顺序。在这个例子中,我们观察了调度这个模型对仿真的影响。为了了解分区和调度模型的影响,我们比较了创建分区和调度它们之前和之后的模型模拟。
打开模型并建立仿真基线
打开节气门位置控制系统的模型,并对其进行仿真,以建立比较基线
open_system (“ScheduleEditorWithSubsystemPartitions”);sim卡(“ScheduleEditorWithSubsystemPartitions”);
打开日程编辑器并创建分区
要打开日程编辑器,单击时间表编辑器在设计部分的建模选项卡。使用管理分区从模型中的子系统创建分区。中选择所有的子系统ThrottlePositionControl
,然后单击创建分区图标的顶部管理分区面板。指定分区的名称及其示例时间。更新图表以在Schedule Editor中查看分区。
箭头表示显示数据流的分区之间的数据连接。虚线总是表示源在目标之后运行时存在延迟。实线表示源在目的地之前运行时没有延迟。
编辑分区表
Order显示了分区在给定时间步长的运行顺序。假设分区的顺序处于不完美状态。在本例中,您希望运行ActuatorRun5ms
分区之前ControllerRun5ms
分区。拖ActuatorRun5ms
之前ControllerRun5ms
的顺序。观察ControllerRun5ms
和ActuatorRun5ms
分区更改为延迟。
比较模拟数据检查器中的运行
现在,用更改的时间表模拟模型。
打开仿真数据检查器。选择两个运行并进行比较。您可以看到更改调度如何影响模型行为。