实现架构模型仿真行为
System Composer™ 中的基本系统工程工作流包括构建架构系统、定义需求、添加元数据、执行分析以及通过视图表示架构。完成这些步骤后,您的系统设计将更接近满足利益相关者的目标和客户的需求。
现在,您还可以使用 Simulink®、Stateflow® 和 Simscape™ 开始设计实际的系统组件。您可以使用基于模型的设计流程全面指定、测试和分析组件的行为。
有关 System Composer 中基于模型的系统工程工作流的详细信息,请参阅使用架构模型构建和分析系统。
在本教程中,您将在机械臂架构模型上执行这些步骤。
机械臂架构模型
打开一个由传感器、运动作动器和规划算法组成的机械臂的架构模型。您可以使用 System Composer 查看该模型的接口并管理其需求。
参考 Simulink 组件中的行为模型
当组件不需要进一步的架构分解时,您可以启用模型仿真和端到端工作流。要启用模型仿真,请为组件实现 Simulink 行为。您可以将 Simulink 模型与组件关联,或链接到现有的 Simulink 模型或子系统。
选择
Motion
组件。导航至 建模 > 创建 Simulink 行为。或者,右键点击Motion
组件,选择创建行为,然后选择 Simulink 行为。从类型列表中选择模型引用。提供模型名称
MotionSimulink
。默认名称为组件的名称。点击确定。在当前文件夹中创建一个名为 Simulink 的新模型文件。Simulink 模型中的根级端口反映了组件的端口。架构模型中的组件链接到 Simulink 模型。组件上的
图标表示该组件具有 Simulink 行为。
注意
要删除模型行为,请右键点击链接的
Motion
组件,然后选择内联模型。要查看转换为 Simulink 总线元素的 SensorData 端口上的接口,请双击 Simulink 中的端口。
您还可以从 System Composer 组件链接到现有的 Simulink 行为模型,前提是该组件尚未链接到参考架构。右键点击组件,然后选择链接到模型。您可以输入或浏览 Simulink 模型名称。
您还可以将引用的 Simulink 子系统行为链接到组件。使用子系统引用来编写具有物理端口、连接和模块的 Simulink 或 Simscape 行为。
选择
Motion
组件。导航至 建模 > 创建 Simulink 行为。或者,右键点击Motion
组件,选择创建行为,然后选择 Simulink 行为。从类型列表中选择子系统引用。提供模型名称
MotionSubsystem
。默认名称为组件的名称。点击确定。在当前文件夹中创建了一个名为 Simulink 的子系统文件。Simulink 子系统的根级端口反映了组件的端口。架构模型中的组件链接到 Simulink 子系统。组件上的
图标表示该组件具有 Simulink 子系统行为。
将 Stateflow 图行为添加到组件
要使用状态机实现基于事件的建模,请将 Stateflow 图行为添加到组件。状态图由一组有限的状态及其之间的转移组成,用于捕获组件的操作模式。该功能需要 Stateflow 许可证。
当添加 Stateflow Chart (Stateflow) 行为时,具有构造型、接口、需求链接和端口的 System Composer 组件将被保留。
右键点击
Sensor
组件,选择创建行为,然后选择 Stateflow 行为。或者,选择Sensor
组件,然后导航到 建模 > 创建 Stateflow 图行为。双击带有 Stateflow 图标的
Sensor
。从建模菜单中,点击符号窗格查看 Stateflow 符号。输入端口 Encoder 作为输入数据出现在符号窗格中,输出端口 SensorData 作为输出数据出现。选择 SensorData 输出,并在属性检查器中查看接口。您可以像访问 Simulink 总线信号一样访问此接口。
组件设计软件架构
要设计软件架构、定义函数执行顺序、进行仿真和生成代码,请从 System Composer 组件创建软件架构。
将
Trajectory Planning
组件重命名为TrajectoryPlanning
,使其成为有效的 C 变量名。右键点击
TrajectoryPlanning
组件,选择创建架构,然后选择软件架构,或者导航到 建模 > 创建软件架构模型。将软件架构的名称指定为
TrajectorySoftware
。点击确定。软件架构模型
TrajectorySoftware.slx
引用自组件TrajectoryPlanning
。双击
TrajectoryPlanning
组件与TrajectorySoftware
软件组件进行交互。
使用序列图表示系统交互
要将架构中结构元素之间的交互表示为一系列消息交换,请使用架构视图库中的序列图。
观察由组件、端口、连接和行为组成的机械臂架构模型。模型仿真结果必须与序列图中的交互相匹配。
导航至 建模 > 序列图,创建一个新的序列图。架构视图库随之打开。要创建一个新的序列图,请点击
新建 > 序列图。
在“视图浏览器”中创建了一个名为
SequenceDiagram1
的新序列图,序列图选项卡变为活动选项卡。在序列图属性下,重命名序列图RobotArmSequence
。选择 组件 > 添加生命线
以添加生命线。一条新的、未命名的生命线随之出现,并以虚线表示。
点击向下箭头,选择
Sensor
。添加第二条生命线,命名为Motion
。选择垂直虚线作为
Sensor
生命线。点击并拖动到Motion
生命线。在 To 框中,开始键入Sensordata
,然后从下拉菜单中选择SensorData
。从Sensor
组件的 SensorData 端口向Motion
组件的 SensorData 端口创建一条消息。点击消息可查看消息条件的放置位置。按以下格式输入消息触发条件:
rising(SensorData.distance1-1)
信号名称是数据接口上的数据元素。当
SensorData.distance1
的值升至 1 时,系统将在过零事件时识别消息。