使用 Stateflow 图实现组件行为
状态图展示了组件在其整个状态生命周期中与状态相关的行为,以及可触发状态间转移的事件。添加 Stateflow® 图行为,以使用状态机描述组件。您不能将 Stateflow 图行为作为 Reference Component 模块同步和重用,因为该组件是父模型的一部分。
您可以在 System Composer™ 中仿真 Stateflow 组件的实现。使用仿真数据检查器查看和比较模型设计之间的仿真结果。
状态图由一组有限的状态及其之间的转移组成,用于捕获组件的操作模式。图可让您设计系统的不同模式、内部状态和基于事件的逻辑。您还可以将图作为桩件,在自上而下的集成测试中模拟复杂的组件实现。该功能需要 Stateflow 许可证。有关详细信息,请参阅Stateflow。
提示
要了解更多关于 System Composer 概念在系统工程设计中的应用,请参阅System Composer 概念。
将状态图行为添加到组件
当添加 Stateflow Chart (Stateflow) 行为时,具有构造型、接口、需求链接和端口的 System Composer 组件将被保留。
此示例使用无人飞行器 (UAV) 的架构模型为组件添加状态图行为。在 MATLAB® 命令行窗口中,输入以下命令:
scExampleSmallUAV
双击
Airframe组件。在 System Composer 组合编辑器中选择LandingGear组件。选择
Brake端口。从工具条建模 > 接口编辑器打开接口编辑器。右键点击接口operatorCmds,选择分配给选定端口。右键点击
LandingGear组件,选择创建行为,然后选择 Stateflow 行为。或者,导航至 建模 > 创建 Stateflow 图行为。
双击带有 Stateflow 图标的
LandingGear。导航至 建模 > 设计数据 > 符号窗格 以查看 Stateflow 符号。输入端口Brake作为输入数据出现在符号窗格中。注意
一些 Stateflow 对象仍保留在 Stateflow 图中。System Composer 不支持输入和输出事件端口。仅支持本地活动。

由于 Stateflow 端口显示为输入和输出数据对象,因此它们必须遵循 Stateflow 命名约定。端口会自动重命名为遵循 Stateflow 命名惯例。有关详细信息,请参阅命名 Stateflow 对象的规范 (Stateflow)。
选择
Brake输入,并在属性检查器中查看接口。该接口可像 Simulink® 总线信号一样访问。有关如何在 Stateflow 中使用巴士信号的信息,请参阅对 Stateflow 结构体进行索引并赋值 (Stateflow)。
您可以将 Stateflow 画布填充为
LandingGear的内部状态。
从组件中删除 Stateflow 图行为
您可以从组件中删除 Stateflow 图行为,以删除 Stateflow 图中的内容,同时保留组件上的接口。
右键点击
LandingGear组件,然后选择内联模型。要确认删除 Stateflow 图中的所有内容,请点击确定。
组件上的 Stateflow 图行为被删除。组件端口上的接口被保留。

另请参阅
createStateflowChartBehavior | inlineComponent