主要内容

本页采用了机器翻译。点击此处可查看英文原文。

使用 Stateflow 图实现组件行为

自 R2021a 起

状态图展示了组件在其整个状态生命周期中与状态相关的行为,以及可触发状态间转移的事件。添加 Stateflow® 图行为,以使用状态机描述组件。您不能将 Stateflow 图行为作为 Reference Component 模块同步和重用,因为该组件是父模型的一部分。

您可以在 System Composer™ 中仿真 Stateflow 组件的实现。使用仿真数据检查器查看和比较模型设计之间的仿真结果。

状态图由一组有限的状态及其之间的转移组成,用于捕获组件的操作模式。图可让您设计系统的不同模式、内部状态和基于事件的逻辑。您还可以将图作为桩件,在自上而下的集成测试中模拟复杂的组件实现。该功能需要 Stateflow 许可证。有关详细信息,请参阅Stateflow

提示

要了解更多关于 System Composer 概念在系统工程设计中的应用,请参阅System Composer 概念

将状态图行为添加到组件

当添加 Stateflow Chart (Stateflow) 行为时,具有构造型、接口、需求链接和端口的 System Composer 组件将被保留。

  1. 此示例使用无人飞行器 (UAV) 的架构模型为组件添加状态图行为。在 MATLAB® 命令行窗口中,输入以下命令:

    scExampleSmallUAV

  2. 双击 Airframe 组件。在 System Composer 组合编辑器中选择 LandingGear 组件。

  3. 选择 Brake 端口。从工具条建模 > 接口编辑器打开接口编辑器。右键点击接口 operatorCmds,选择分配给选定端口

  4. 右键点击 LandingGear 组件,选择创建行为,然后选择 Stateflow 行为。或者,导航至 建模 > 创建 Stateflow 图行为

    Landing Gear component with Stateflow chart behavior.

  5. 双击带有 Stateflow 图标的 LandingGear。导航至 建模 > 设计数据 > 符号窗格 以查看 Stateflow 符号。输入端口 Brake 作为输入数据出现在符号窗格中。

    注意

    一些 Stateflow 对象仍保留在 Stateflow 图中。System Composer 不支持输入和输出事件端口。仅支持本地活动。

    The Stateflow canvas in the landing gear component. The port Brake is displayed in the symbols pane.

    由于 Stateflow 端口显示为输入和输出数据对象,因此它们必须遵循 Stateflow 命名约定。端口会自动重命名为遵循 Stateflow 命名惯例。有关详细信息,请参阅命名 Stateflow 对象的规范 (Stateflow)

  6. 选择 Brake 输入,并在属性检查器中查看接口。该接口可像 Simulink® 总线信号一样访问。有关如何在 Stateflow 中使用巴士信号的信息,请参阅对 Stateflow 结构体进行索引并赋值 (Stateflow)

    The interface named operator commands is shown as a bus.

  7. 您可以将 Stateflow 画布填充为 LandingGear 的内部状态。

    Stateflow canvas showing the states Deployed and Stowed.

从组件中删除 Stateflow 图行为

您可以从组件中删除 Stateflow 图行为,以删除 Stateflow 图中的内容,同时保留组件上的接口。

  1. 右键点击 LandingGear 组件,然后选择内联模型

  2. 要确认删除 Stateflow 图中的所有内容,请点击确定

  3. 组件上的 Stateflow 图行为被删除。组件端口上的接口被保留。

    Inlined landing gear component with no Stateflow Chart behavior component badge.

另请参阅

|

主题