工作点是Simulink状态的快照万博1manbetx®模型在一个特定的时间在模拟。对于一个Stateflow®图中,一个操作点包括:
海图状态活动
图表本地数据的值
图表输出数据的值
在MATLAB中持久数据的值®函数和真值表块
有关更多信息,请参见在statflow中使用操作点.
假设您想要测试sf_aircraft
模拟电梯系统中的一个或多个执行器故障。有关该模型如何工作的详细信息,请参见飞机升降控制系统故障检测.
模式逻辑图监控两个电梯执行器的状态。每个电梯都有一个外部(主要)执行机构和一个内部(次要)执行机构。在正常运行时,外部执行机构是主动的,内部执行机构是待命的。
当四个执行机构正常工作时,左右电梯在3秒内达到稳态位置。
假设你想知道当t = 3时,至少有一个致动器失效会发生什么。您可以模拟模型,保存t = 3时的工作点,加载并修改工作点,然后在t = 3到10之间再次模拟。
一步 | 任务 | 参考 |
---|---|---|
1 | 定义图表的操作点。 | 定义工作点 |
2 | 加载工作点,并在执行机构出现故障时修改值。 | 修改单个执行器故障的工作点值 |
3. | 通过运行模型来测试修改后的工作点。 | 测试一个故障的工作点 |
4 | 修改两个执行器故障的工作点值。 | 修改两个执行器故障的工作点值 |
5 | 再次运行模型,测试修改后的工作点。 | 测试两次故障的工作点 |
打开sf_aircraft
模型。
使能操作点的保存。
打开“模型配置参数”对话框,进入数据导入/导出窗格。
选择最终状态复选框。
输入名称,例如xFinal
.
选择保存最终工作点复选框。
点击应用.
定义此模拟段的停止时间。
在“模型配置参数”对话框中,进入解算器窗格。
为停止时间,输入3.
.
点击好吧.
开始仿真。
当您模拟模型时,您将在变量中保存t = 3处的完整工作点xFinal
在MATLAB基础工作空间。
禁用操作点的保存。
此步骤防止覆盖上一步中保存的操作点。
打开“模型配置参数”对话框,进入数据导入/导出窗格。
清除保存最终工作点复选框。
清除最终状态复选框。
点击好吧.
使能装载一个工作点。
打开“模型配置参数”对话框,进入数据导入/导出窗格。
选择初始状态复选框。
输入包含图表操作点的变量:xFinal
.
点击好吧.
为模式逻辑图的操作点值定义一个对象句柄。
在命令提示符处,输入:
blockpath = 'sf_aircraft/Mode Logic';c = xFinal.get (blockpath);
看操作点的内容。
c = Block: "Mode Logic" (handle) (active) Path: sf_aircraft/Mode Logic Contains: + Actuators "State (OR)"(主动)+ LI_act“功能”+ LO_act“功能”+ L_switch“功能”+ RI_act“功能”+ RO_act“功能”+ R_switch“功能”+ LI_mode“国家输出数据”sf_aircraft_ModeType [1] + LO_mode“国家输出数据”sf_aircraft_ModeType [1] + RI_mode“国家输出数据”sf_aircraft_ModeType [1] + RO_mode“国家输出数据”sf_aircraft_ModeType [1]
图表的操作点包含状态、函数和按层次顺序排列的数据列表。
在t = 3时,突出显示你的图表中活跃的状态。
在命令提示符处,输入:
c.highlightActiveStates;
活动状态突出显示。默认情况下,两个外部执行器处于活动状态,两个内部执行器处于待机状态。
提示
要检查某个状态是否处于活动状态,可以使用isActive
方法。例如,类型:
c.Actuators.LI.L1.Standby.isActive
当状态处于激活状态时,该命令返回true(1),否则返回false(0)。有关其他方法的信息,请参见与图表的工作点交互的方法.
更改图表中的状态活动以反映一个执行器故障。
假设左外(LO)执行器失效。要更改状态,请使用以下命令:
c.Actuators.LO.Isolated.setActive;
新激活的子状态在图表中突出显示。
的setActive
方法确保图表退出和进入适当的状态,以保持状态的一致性。但是,该方法不执行条目
新激活的子状态的操作。类似地,该方法也不执行退出
先前活动的子状态的操作。
使用此命令保存修改后的工作点:
xFinal = xFinal。集(blockpath c);
为要测试的模拟段定义新的停止时间。
去解算器“模型配置参数”对话框中的。
为停止时间,输入10
.
点击好吧.
您不需要输入新的开始时间,因为模拟将从它停止的地方继续进行。
开始仿真。
图表动画显示,其他三个驱动器反应适当的左外驱动器(LO)的故障。
这致动器… | 开关从… | 因为… |
---|---|---|
左内(李) | 备用活跃 | 左电梯必须补偿左外(LO)执行器故障。 |
右内(RI) | 备用活跃 | 同一液压管道连接两个内部执行器。 |
右外(RO) | 活动以备用 | 每个电梯只能有一个执行器是有效的。 |
两个电梯继续保持稳定的位置。
更改图表中的状态活动以反映两个执行器故障。
假设左内(LI)执行器也发生故障。要更改状态,请使用以下命令:
c.Actuators.LI.Isolated.setActive;
使用此命令保存修改后的工作点:
xFinal = xFinal。集(blockpath c);
在“模型配置参数”对话框中,确认停止时间为10。
重新启动仿真。
由于两个执行器故障,左侧电梯停止工作。右边的电梯保持稳定的位置。
如果您修改图表的操作点,以测试正确的电梯对执行器故障的响应,您将得到类似的结果。