使用 Simulink 实现组件行为
系统设计和架构定义可能涉及某些组件的行为定义,例如数据处理组件的算法。在 System Composer™ 架构模型中,使用属于父模型的 Simulink® 子系统组件将组件定义为行为,或者通过将组件链接到 Simulink 模型或子系统或 FMU 文件来定义引用行为。
行为 | 如何使用 | 更多信息 |
---|---|---|
Simulink 模型引用 | 使用链接的 Simulink 模型实现组件行为,以定义系统行为,并在架构组件中轻松重用这些定义。 | 使用模型引用组件创建可重用的 Simulink 行为 |
Simulink 子系统引用 | 使用链接的 Simulink 子系统实现组件行为,以定义系统行为,并轻松在架构组件中重用这些定义。 子系统支持与 Simscape™ 物理行为一起使用的根级物理端口。 | 使用子系统引用组件创建可重用的 Simulink 行为 |
Simulink 子系统组件 | 使用父架构模型的一部分 Simulink 子系统实现组件行为,以一次性定义系统行为。 子系统支持与 Simscape 物理行为一起使用的根级物理端口。 | 使用子系统组件创建 Simulink 行为 |
Stateflow® 图组件 | 使用父架构模型中的 Stateflow 图实现组件行为,以一次性定义系统行为。 | 使用 Stateflow 图实现组件行为 |
FMU 引用组件 | 使用链接的功能模型单元 (FMU) 实现组件行为,以定义组件行为,并在架构组件中轻松重用这些定义。 | 链接到现有 FMU 文件 |
注意
System Composer 接口与使用总线和值类型的 Simulink 接口相对应。当您计划将 Simulink 行为链接到 System Composer 组件时,请考虑以下资源:
有关 Simulink 接口的总线,请参阅合成接口规范。
要使用具有总线元素端口的模型接口,请参阅Simplify Subsystem and Model Interfaces with Bus Element Ports。
对于 Simulink 接口中的值类型,请参阅Specify Common Set of Signal Properties as Value Type。
有关 Simulink 接口的消息,请参阅Simulink Messages Overview。
您可以在 System Composer 中仿真 Simulink 组件的实现。使用仿真数据检查器查看和比较模型设计之间的仿真结果。您还可以使用 Dashboard 模块在仿真期间控制和显示信号值。有关详细信息,请参阅使用仪表板模块在 System Composer 中可视化质量-弹簧-阻尼器数据。
提示
要了解更多关于 System Composer 概念在系统工程设计中的应用,请参阅System Composer 概念。
使用机械臂模型创建 Simulink 行为
此示例展示了如何使用机械臂模型从 Motion
组件创建 Simulink® 行为。
1.打开 Robot.slx
模型。
model = systemcomposer.openModel('Robot');
Robot
模型在端口 SensorData
上应用了接口 sensordata
。
2.查找 Motion
组件。
motionComp = lookup(model,'Path','Robot/Motion');
3.创建一个 Simulink 行为。
motionComp.createSimulinkBehavior('MotionSimulink');
创建引用行为模型 Simulink
当从架构角度来看组件无需分解时,您可以在 Simulink 中设计和定义组件的行为。当您链接到 Simulink 行为时,Component 模块将变为 Reference Component 模块。
引用组件是通过独立架构模型、Simulink 行为模型或 Simulink 子系统行为来定义的组件。引用组件代表其他组合的逻辑层次结构。您可以将引用组件作为 Reference Component 模块来同步和重用。模型引用对应 Simulink 模型。FMU 组件对应链接到功能模型单元 (FMU) 文件的组件。子系统引用对应 Simulink 子系统。架构引用对应 System Composer 架构模型或子系统。
在本节中,您将创建一个模型引用和一个子系统引用。有关架构引用的更多信息,请参阅创建架构模型引用。
引用或链接的模型对于使用 Simulink 工程进行版本控制的协作设计非常有用。有关详细信息,请参阅整理工程中的 System Composer 文件。
使用模型引用组件创建可重用的 Simulink 行为
使用 Simulink 模型引用来描述 System Composer 组件的实现。
选择
Motion
组件。导航至 建模 > 创建 Simulink 行为。或者,右键点击Motion
组件,选择创建行为,然后选择 Simulink 行为。从类型列表中选择模型引用。提供模型名称
MotionSimulink
。默认名称为组件的名称。点击确定。在当前文件夹中创建一个名为 Simulink 的新模型文件。Simulink 模型中的根级端口反映了组件的端口。架构模型中的组件链接到 Simulink 模型。组件上的
图标表示该组件具有 Simulink 行为。
注意
要删除模型行为,请右键点击链接的
Motion
组件,然后选择内联模型。要查看转换为 Simulink 总线元素的 SensorData 端口上的接口,请双击 Simulink 中的端口。
有关删除引用行为的更多信息,请参阅删除架构引用。
使用子系统引用组件创建可重用的 Simulink 行为
使用子系统引用来编写具有物理端口、连接和模块的 Simulink 或 Simscape 行为。有关详细信息,请参阅使用 Simscape 实现组件行为。
选择
Motion
组件。导航至 建模 > 创建 Simulink 行为。或者,右键点击Motion
组件,选择创建行为,然后选择 Simulink 行为。从类型列表中选择子系统引用。提供模型名称
MotionSubsystem
。默认名称为组件的名称。点击确定。在当前文件夹中创建了一个名为 Simulink 的子系统文件。Simulink 子系统的根级端口反映了组件的端口。架构模型中的组件链接到 Simulink 子系统。组件上的
图标表示该组件具有 Simulink 子系统行为。
您可以通过双击架构模型中的 Reference Component 模块来访问和编辑引用的 Simulink 模型和子系统。保存架构模型时,所有未保存的引用行为 Simulink 也将被保存,所有链接的组件也将被更新。
使用子系统组件创建 Simulink 行为
子系统组件是作为父级 System Composer 架构模型的一部分的 Simulink 子系统。将 Simulink 子系统行为添加到组件中,以便在 System Composer 中编写子系统组件。由于子系统组件是父模型的一部分,因此不能以 Reference Component 模块的形式同步和重用子系统组件。
右键点击
Sensor
组件,然后选择创建 Simulink 行为。或者,导航至 建模 > 创建 Simulink 行为。从类型列表中选择子系统。
点击确定。
Sensor
组件现在是一个同名的 Simulink 子系统,该子系统是父级 System Composer 架构模型的一部分。Simulink 模型中的根级端口反映了组件的端口。组件上的
图标表示该组件具有 Simulink 子系统行为。
您可以在 Simulink 子系统行为模型中继续提供具体的动力学和算法。在子系统行为中添加根级端口会在子系统组件上创建额外的端口。
您可以使用子系统组件来编写具有物理端口、连接和模块的 Simscape 组件行为。例如,该放大器物理系统使用 System Composer 架构模型中的子系统组件内的电域模块。
将 Simulink 子系统组件转换为子系统引用组件
您可以将父模型 System Composer 中的现有 Simulink 子系统组件转换为子系统引用组件。子系统引用组件作为可重用的工件单独保存。
右键点击子系统组件模块,选择模块参数 (Subsystem)。
点击子系统引用选项卡。
点击转换打开转换为子系统引用对话框。
为新的子系统文件选择一个名称。可选择性地选择迁移测试框架以传输测试框架。点击转换完成转换。
要通过编程将子系统组件转换为子系统引用,请使用 createSimulinkBehavior
函数。
链接到现有 Simulink 行为模型
您可以从 System Composer 组件链接到现有的 Simulink 行为模型或子系统,前提是该组件尚未链接到引用架构。右键点击组件,然后选择链接到模型。输入或浏览 Simulink 模型或子系统的名称,例如 MotionSimulink.slx
。点击确定以创建链接。
当组件链接到 Simulink 模型或子系统时,组件中的所有子组件和端口都会被删除。将显示一个提示,询问是否继续并丢失子组件和端口的信息。
注意
不支持将 System Composer 组件链接到具有根级启用或触发端口的 Simulink 模型。
您可以链接受保护的 Simulink 模型 (.slxp
) 来创建组件行为。您还可以将已链接的 Simulink 行为模型转换为受保护的模型。刷新模型时,模型会反映出变化。
将引用组件拖动到架构模型中
您可以拖动将链接到模型或子系统的引用组件添加到 System Composer 模型中。从文件资源管理器中拖动模型或子系统文件,将引用组件添加到架构模型画布。
例如,将 SLX 模型文件拖入架构模型画布,就会添加一个 Reference Component 模块,该模块将引用 SLX 文件中的模型。
要拖动添加的文件必须位于 MATLAB® 路径下。不支持通过将文件从 MATLAB 编辑器拖入模型画布来创建引用组件。
链接到现有 FMU 文件
自 R2024b 起
如果组件尚未链接到引用架构,则可以从 System Composer 组件链接到现有的 FMU 文件。右键点击组件,选择链接到 FMU。输入或浏览查找 FMU 文件的名称,例如 actuator.fmu
。要创建链接,请点击确定。
System Composer 将 FMU 上的架构数据保存在架构模型中,以使 FMU 组件与架构模型的其余部分兼容。FMU 中定义的端口和接口在 FMU 组件和属性检查器.
中可见。
您无法从 System Composer 架构模型修改 FMU 组件的属性。有关将 FMU 文件导入 Simulink 模型的更多信息,请参阅 FMU 模块。
链接到同一 FMU 文件的多个 FMU 组件共享应用配置文件和构造型等信息。所有 FMU 架构数据都以 .mldatx
文件格式在单独的文件中管理:<fmuFileName>.fmu.mldatx
。
有关使用 FMU 组件的详细信息,请参阅在架构模型中使用包含架构数据的 FMU 组件。
从引用组件链接和取消链接配置文件以分配构造型
要向与模型或子系统关联的引用组件添加自定义数据,您可以将配置文件导入到该引用模型或子系统。
注意
您可以为通过 Reference Component 模块链接到 Simulink 行为模型或子系统的 System Composer 组件应用构造型并为端口分配接口。在将构造型应用于组件之前,必须将配置文件导入到模型或子系统中。在将接口分配给端口之前,必须将数据字典导入模型或子系统。
配置文件是一系列构造型的集合。您可以使用配置文件来创建专门的元素类型域。使用配置文件编辑器编写配置文件并将配置文件应用于模型。您可以将用于工程的构造型存储在一个或多个配置文件中。当您保存配置文件时,它们会存储在 XML 文件中。
要了解有关如何使用配置文件编辑器和管理配置文件工具导入和管理配置文件的详细信息,请参阅应用构造型来扩展模型元素。
注意
当您的配置文件与 Reference Component 模块未同步时,系统可能会提示您在诊断查看器中进行修复。此选项删除与引用组件中的定义不匹配的构造型。
将模型参量作为引用组件的参数访问
System Composer 暴露可重用引用模型的实例特定参数值。
参数是值类型的实例特定值。参数可用于作为架构模型一部分的架构和组件。还可用于链接到指定模型参量的模型/子系统/架构引用的组件。您可以为每个组件指定独立的参数值。
实例特定的参数值在组件级别可见。使用属性检查器查看和编辑这些值。
您可以为引用模型的每个组件独立指定参数值。
有关详细信息,请参阅使用参数将实例值与组件一起存储。
要使用参数编辑器为架构或组件添加或修改参数,请参阅在 System Composer 中使用参数编辑器编写参数。
从组件模板创建 Simulink 行为
要为 Simulink 模型创建用户定义的模板,请参阅Create Template from Model。
创建并保存自定义模板后,您可以将该模板与 Simulink 行为关联。右键点击组件,选择创建 Simulink 行为或导航至 建模 > 创建 Simulink 行为。
在“创建 Simulink 行为”对话框中,选择模板,如果定义了本地接口,则输入新的数据字典名称。点击确定。如果存在共享接口,则该组件将根据模板表现出 Simulink 行为。模板中的模块和行被排除,仅保留配置设置。配置设置包括注解和样式。
您可以通过右键点击组件并选择另存为架构模型,或导航至 建模 > 另存为架构模型 来使用架构模板。
从 Simulink 模板和新数据字典创建新模型。
另请参阅
模块
函数
inlineComponent
|createSimulinkBehavior
|createArchitectureModel
|createArchitectureSubsystem
|createStateflowChartBehavior
|extractArchitectureFromSimulink
|linkToModel
|linkToFMU
|isReference
|isProtected