System Composer 概念
System Composer™ 将系统工程的概念与 Simulink® 的概念相结合。本页定义了这些概念及其各自的应用,以帮助您了解这些领域如何相互关联。通过本页内容了解相关概念及其在系统工程设计中的应用方式。每节定义一个概念,解释该概念在 System Composer 中的使用方法,然后链接到文档中的更多信息。
根据您的架构建模目标,查看相应章节,了解更多与该目标相关的关键概念。
编写描述系统结构和软件架构的模型
在 System Composer 中编写架构模型,以构建和描述您的系统体系。
术语 | 定义 | 应用 | 更多信息 |
---|---|---|---|
架构 | System Composer 架构代表由组件组成的系统,以及这些组件在结构上和行为上如何相互关联。 | 不同类型的架构描述系统的不同方面。您可以使用视图来可视化架构中的组件子集。您可以使用参数编辑器在架构层级上定义参数。 | |
根 | 根位于架构层次结构的顶层。根架构的边界由围绕相关系统的架构端口定义。 | 根架构的系统边界包围着您的架构模型。您可以添加架构端口来定义跨边界接口。 | |
模型 | System Composer 模型是包含架构信息的文件,涵盖组件、端口、连接器、接口和行为等信息。 | 对模型执行操作,包括提取根级架构、应用配置文件、链接接口数据字典或从模型架构生成实例。System Composer 模型存储为 SLX 文件。 | 创建带接口和需求链接的架构模型 |
组件 | 组件是系统中可替换的部分,用于在架构环境中实现明确的函数。组件定义架构元素,例如函数、另一个系统、硬件、软件或其他概念实体。组件也可以是子系统或子函数。 | 组件以模块的形式表示,是架构模型的一部分,并且可以分离成可重用的工件。使用接口编辑器通过端口接口在组件之间传输信息,使用参数编辑器传输参数。 | |
端口 | 端口是组件或架构上的节点,表示与其环境的交互点。通过端口,信息可以流向其他组件或系统,或者从其他组件或系统流入。 | 组件端口是组件上与其他组件之间的交互点。架构端口是系统边界上的端口,无论该边界是在组件内还是在整体架构模型内。根架构具有由其端口定义的边界。 | |
连接器 | 连接器是提供端口之间连接的线路。连接器描述信息如何在组件或架构之间流动。 | 通过连接器,两个组件可以进行交互,而无需定义交互的性质。在端口上设置接口来定义组件之间的交互方式。 |
使用 Simscape 编写组件的物理行为
使用子系统组件在 System Composer 中编写物理模型。子系统组件是作为父级 System Composer 架构模型的一部分的 Simulink 子系统。物理信息可以超越子系统组件的边界。您可以用物理端口、连接器和接口来描述物理组件。使用 Simscape™ 模块来描述此类物理组件的行为。
术语 | 定义 | 应用 | 更多信息 |
---|---|---|---|
物理子系统 | 物理子系统是具有 Simscape 连接的 Simulink 子系统。 | 具有 Simscape 连接的物理子系统采用物理网络方法,适合仿真具有真实物理组件的系统,代表一个数学模型。 | 使用 Simscape 实现组件行为 |
物理端口 | 物理端口代表 Simscape 物理建模连接器端口,称为 Connection Port (Simscape)。 | 使用物理端口连接架构模型中的组件或启用 Simulink 子系统中的物理系统。 | 定义组件上的物理端口 |
物理连接器 | 物理连接器可以表示特定物理域的非定向守恒连接。连接器也可以表示物理信号。 | 使用物理连接器连接表示系统特征的物理组件,以实现数学仿真。 | 带直流电机行为的架构模型 Simscape |
物理接口 | 物理接口定义流经物理端口的信息类型。可以将同一个接口分配给多个端口。物理接口是复合接口,相当于一个 | 使用物理接口来捆绑物理元素,以便使用至少一个物理域来描述物理模型。 | 指定端口上的物理接口 |
物理元素 | 物理元素描述物理接口的分解。物理元素等同于 | 将物理元素的 | 使用 Simscape 描述组件行为 |
使用接口描述端口设定
定义接口来表示流经端口的信息类型。使用字典视图中的接口编辑器为端口分配接口。使用 Adapter 模块来协调端口间连接器上接口之间的差异。
使用端口接口视图中的接口编辑器管理本地端口专属接口。
术语 | 定义 | 应用 | 更多信息 |
---|---|---|---|
数据字典 | 数据字典是与您的模型相关的数据存储库。数据字典的“架构数据”部分用于存储在 Simulink 和架构模型接口中使用的共享定义,例如端口接口、数据类型和系统级常量。有关详细信息,请参阅什么是数据字典? | 您可以使用接口编辑器将 System Composer 模型上的本地接口保存到 Simulink 数据字典的“架构数据”分区。除了接口编辑器之外,您还可以使用架构数据编辑器来管理和修改接口和值类型。 | |
数据接口 | 数据接口定义流经端口的信息类型。可以将同一个接口分配给多个端口。数据接口可以是复合接口,这意味着它可以包含描述接口信号属性的数据元素。 | 数据接口表示通过连接器共享并通过端口进入或离开组件的信息。使用接口编辑器创建和管理数据接口和数据元素,并将它们存储在数据字典中,以便在模型之间重用。 | |
数据元素 | 数据元素描述了接口的一部分,如通信消息、计算或测量参数,或该接口的其他分解。 | 数据接口被分解为数据元素,这些数据元素可代表连接器或框架中的引脚或导线、通过总线传输的消息以及组件之间共享的数据结构。 | |
值类型 | 值类型可用作端口接口,用于定义流经该端口的原子数据,并具有顶级类型、维度、单位、复杂度、最小值、最大值和描述。 | 您还可以将数据接口中的数据元素类型指定为值类型。使用接口编辑器将值类型添加到数据字典,这样您就可以将值类型作为接口或数据元素重用。 | 创建值类型作为接口 |
专属接口 | 专属接口是特定端口的专属接口,不在数据字典或模型字典中共享。 | 创建一个专属接口,用于表示端口本地的值类型或数据接口。 | 定义端口本地的专属接口 |
适配器 | 适配器通过在两个接口之间进行映射,将两个端口接口不兼容的组件连接起来。适配器可作为单位延迟、速率转换或合并器使用。您还可以使用适配器创建总线。使用 Adapter 模块实现适配器。 | 使用适配器,您可以在接口适配器对话框中:创建和编辑输入和输出接口之间的映射;应用 |
用配置文件和构造型扩展架构建模语言
在配置文件编辑器中创建配置文件,并为其添加带有属性的构造型。将构造型应用于组件,并在属性检查器中设置属性值。
术语 | 定义 | 应用 | 更多信息 |
---|---|---|---|
构造型 | 构造型提供了一种扩展核心语言元素和添加域特定元数据的机制。 | 将构造型应用于核心元素类型。一个元素可以有多个构造型。您可以利用构造型为不同的元素设置样式。构造型为元素提供了一组通用的属性,例如质量、成本和功率。 | |
属性 | 属性是构造型中的一个字段。您可以为应用了该构造型的每个元素指定属性值。 | 使用属性来存储与模型元素相关联的定量特征,例如重量或速度。属性也可以是描述性的,或者表示一种状态。您可以使用属性检查器查看和编辑架构模型中每个元素的属性。有关详细信息,请参阅在 System Composer 中使用属性检查器。 | |
配置文件 | 配置文件是一系列构造型的集合。 | 您可以使用配置文件来创建专门的元素类型域。使用配置文件编辑器编写配置文件并将配置文件应用于模型。您可以将用于工程的构造型存储在一个或多个配置文件中。当您保存配置文件时,它们会存储在 XML 文件中。 |
使用变体组件表示多种设计方案
创建变体组件,并根据编程规则实现多种设计方案或变体。为组件添加变体选择项,使其成为变体组件。活动选择项表示原始组件。
利用分析进行权衡研究,并根据约束条件验证架构
创建分析函数,分析 RobotDesign
架构模型的功耗。
function RobotDesign_1(instance,varargin) if instance.isComponent() && ~isempty(instance.Components) ... && instance.hasValue('RobotProfile.ElectricalComponent.Power') sysComponent_power = 0; for child = instance.Components if child.hasValue('RobotProfile.ElectricalComponent.Power') comp_power = child.getValue('RobotProfile.ElectricalComponent.Power'); sysComponent_power = sysComponent_power + comp_power; instance.setValue('RobotProfile.ElectricalComponent.Power', ... sysComponent_power); end end end
使用分析功能分析机器人设计,以确定总功耗。
术语 | 定义 | 应用 | 更多信息 |
---|---|---|---|
分析 | 静态分析分析系统结构,针对某些特性对架构进行定量评估。静态分析使用分析函数以及系统模型中捕获的属性和参数的参数值。 | 使用分析计算系统的总体可靠性、质量卷积、性能或热特性,或执行大小、重量和功率 (SWaP) 分析以提高效率。 | |
分析函数 | 分析函数是一个 MATLAB® 数,它使用模型实例中每个元素的属性以及组件和架构层级的实例特定参数计算评估架构所需的值。 | 使用分析函数计算分析结果。 | |
实例模型 | 实例模型是实例的集合。 | 您可以根据模型的更改更新实例模型,但实例模型不会根据活动变体或模型引用的更改而更新。您可以使用保存在 | 运行分析函数 |
实例 | 实例是架构模型元素在给定时间点上的具体体现。 | 实例会冻结实例模型中组件的活动变体或模型引用。 | 创建用于分析的模型实例 |
使用分配定义不同架构模型元素之间的关系
在分配编辑器中,根据依赖关系或有向关系在两个架构模型之间分配组件。
术语 | 定义 | 应用 | 更多信息 |
---|---|---|---|
分配 | 分配建立从一个模型中的架构元素(组件、端口和连接器)到另一个模型中的架构元素的有向关系。 | 通过基于资源的分配,您可以将功能架构元素分配给逻辑架构元素,以及将逻辑架构元素分配给物理架构元素。 | |
分配方案 | 分配方案包含源模型和目标模型之间的一组分配关系。 | 在分配方案中的模型元素之间进行分配。默认分配方案称为 | 系统工程方法在系统级芯片 (SoC) 应用中的应用 |
分配集 | 分配集由一个或多个分配方案组成,这些分配方案描述源模型和目标模型之间的各种分配关系。 | 在分配编辑器中创建包含分配方案的分配集。分配集保存为 MLDATX 文件。 |
通过创建过滤视图将复杂的架构转化为更简单的图
对架构视图库中的视图应用视图过滤器,以生成组件元素组。
术语 | 定义 | 应用 | 更多信息 |
---|---|---|---|
视图 | 视图显示模型中可自定义的元素子集。视图可根据组件、端口和接口的构造型或名称,以及接口元素的名称、类型或单位进行过滤。通过手动添加元素来创建视图。视图通过聚焦于架构设计的某些部分,为处理复杂架构提供了一种简化工作方式。 | 您可以使用不同类型的视图来表示系统。在组件图、组件层次结构或架构层次结构之间切换。软件架构可以切换到类图视图。视点代表利益相关者透视,用于指定视图的内容。 | |
元素组 | 元素组是视图中组件的组合。 | 使用元素组以编程方式填充视图。 | |
查询 | 查询是用来描述模型元素需满足的某些约束或准则的一种规范。 | 使用查询以通过约束准则来搜索元素并过滤视图。 | 使用查询查找模型中的元素 |
组件图 | 组件图根据模型的结构,用组件、端口和连接器来表示视图。 | 组件图允许您以编程方式或手动方式添加和删除视图中的组件。 | 在自定义架构视图中检查组件 |
层次结构图 | 您可以将层次结构图可视化为包含组件、端口、引用类型、组件构造型和构造型属性的视图。 | 组件层次图以树形显示组件,父组件位于子组件之上。在组件层次结构视图中,每个引用模型的使用次数都是一样的。架构层次图使用组合连接显示唯一组件架构类型及其关系。在架构层次视图中,每个引用的模型只表示一次。 | 使用视图显示组件层次结构和架构层次结构 |
通过实现组件行为对集成架构进行仿真
使用引用组件来分解和重用架构组件和 Simulink 模型行为。使用子系统组件或状态图来实现 Simulink 和 Stateflow® 行为。
术语 | 定义 | 应用 | 更多信息 |
---|---|---|---|
引用组件 | 引用组件是通过独立架构模型、Simulink 行为模型或 Simulink 子系统行为来定义的组件。引用组件代表其他组合的逻辑层次结构。 | 您可以将引用组件作为 Reference Component 模块来同步和重用。模型引用对应 Simulink 模型。FMU 组件对应链接到功能模型单元 (FMU) 文件的组件。子系统引用对应 Simulink 子系统。架构引用对应 System Composer 架构模型或子系统。 | |
参数 | 参数是值类型的实例特定值。 | 参数可用于作为架构模型一部分的架构和组件。还可用于链接到指定模型参量的模型/子系统/架构引用的组件。您可以为每个组件指定独立的参数值。 | |
子系统组件 | 子系统组件是作为父级 System Composer 架构模型的一部分的 Simulink 子系统。 | 将 Simulink 子系统行为添加到组件中,以便在 System Composer 中编写子系统组件。由于子系统组件是父模型的一部分,因此不能以 Reference Component 模块的形式同步和重用子系统组件。 | |
状态图 | 状态图展示了组件在其整个状态生命周期中与状态相关的行为,以及可触发状态间转移的事件。 | 添加 Stateflow 图行为,以使用状态机描述组件。您不能将 Stateflow 图行为作为 Reference Component 模块同步和重用,因为该组件是父模型的一部分。 |
管理和验证需求,以证明系统符合利益相关者的需求
在需求透视中,您可以创建、管理和分配需求。查看架构模型的需求。该功能需要 Requirements Toolbox™ 许可证。
使用 Simulink Test™ 为 System Composer 组件创建测试框架,以便在 Simulink 测试管理器 (Simulink Test)中验证仿真结果和验证设计。此功能需要 Simulink Test 许可证。
术语 | 定义 | 应用 | 更多信息 |
---|---|---|---|
需求 | 需求是描述系统的期望行为和特征的语句集合。需求有助于确保系统设计的完整性,并且应该可实现、可验证、无歧义且相互一致。每个设计层级都应该有适当的需求。 | 为了增强需求的可追溯性,可将系统需求、功能需求、客户需求、性能需求或设计需求链接到组件和端口。将需求相互链接可表示派生的需求或分配的需求。在架构模型上使用需求管理器 (Requirements Toolbox)或通过自定义视图来管理需求。使用 Simulink 测试管理器 (Simulink Test)为需求分配测试用例,以便进行验证和确认。 | |
需求集 | 需求集是需求的集合。您可以按层次结构组织需求,并将它们链接到组件或端口。 | 使用需求编辑器 (Requirements Toolbox)来编辑和优化需求集中的需求。需求集存储在 SLREQX 文件中。您可以使用 Requirements Toolbox 创建新的需求集并编写需求,也可以从受支持的第三方工具导入需求。 | |
需求链接 | 链接是将两个基于模型的设计元素关联起来的对象。需求链接是一种目标为需求的链接。您可以将需求链接到组件或端口。 | 使用需求管理器 (Requirements Toolbox)在 System Composer 中查看链接。在需求浏览器中选择一个需求,可突出显示分配了该需求的组件或端口。链接以 SLMX 文件形式存储在外部。 | |
测试框架 | 测试框架是一个模型,它将在测组件与为测试场景配置的输入、输出和验证模块隔离开来。您可以为模型组件或完整模型创建测试框架。测试框架为模型或模型组件提供单独的测试环境。 | 为 System Composer 组件创建测试框架,以验证仿真结果和验证设计。要在测试框架中测试组件行为时编辑接口,请使用接口编辑器。 |
使用可执行序列图指定组件之间的操作限制
在架构视图库中创建序列图来描述系统交互。
术语 | 定义 | 应用 | 更多信息 |
---|---|---|---|
交互 | 交互通过消息交换序列来指定系统各个部分的协作方式。 | 使用交互来描述系统操作行为。 | 使用序列图描述系统行为 |
序列图 | 序列图是交互行为的可视化表示。 | 使用序列图直观地说明系统各部分应如何交互。 | 使用序列图描述系统行为 |
生命线 | 生命线表示作为交互参与者的组件实例。 | 生命线对应架构中的具体组件。 | 描述与生命线和消息的交互 |
消息 | 消息表示两条生命线之间的通信。消息具有标签,用于指定消息发生的预期条件。 | 消息标签有一个触发条件、一个可选的保护条件和一个可选的约束条件,其中触发条件表示此消息的标识事件,保护条件表示确定消息是否发生的附加条件,而约束条件则是当此消息发生时预期为 true 的表达式。 | 描述与生命线和消息的交互 |
门 | 门表示架构层次结构的根。 | 通过门,您可以描述架构与其环境之间的消息交换。 | 描述与生命线和消息的交互 |
注解 | 注解描述序列图的元素。 | 使用注解对序列图捕获的元素或工作流进行详细解释。 | 使用注解对序列图进行注解 |
片段 | 片段在交互中将生命线和消息分组封装,允许指定复杂的交互模式。 | 片段可定义循环和替代等排序逻辑。片段可以有一个或多个操作数。 | 使用片段和操作数建模复杂交互 |
操作数 | 操作数是片段或消息组中的一个区域。操作数的条件指定操作数内的消息是否执行。 | 操作数的条件可以将生命线输入信号的约束条件指定为 MATLAB 布尔表达式。 | 使用片段和操作数建模复杂交互 |
持续时间约束 | 持续时间约束定义开始事件和结束事件之间的经过时间约束。 | 使用持续时间约束,可以明确表达对开始事件和结束事件之间持续时间的约束。 | 使用持续时间约束指定消息事件之间的时序约束 |
编写并仿真活动图以分配给组件
您可以在 System Composer 中编写活动图来描述系统的高级功能。使用活动图来描述系统的行为,即通过处理令牌流的动作,将输入转化为输出。您还可以仿真和可视化活动图,以验证系统行为。
您可以使用分配编辑器将活动图的元素分配到 System Composer 架构模型的元素中,从而更全面地描述您的功能架构设计。有关详细信息,请参阅移动机器人的设计架构和活动图。
术语 | 定义 | 应用 | 更多信息 |
---|---|---|---|
活动图 | 活动图描述系统行为,它通过受控动作序列对从输入到输出的令牌流进行建模。活动图包含动作节点,这些节点的引脚由流程线连接。 | 使用活动图构思系统,通过动作或决策可视化功能流,并了解系统组件如何交互。 | |
令牌 | 令牌是在活动图中流动的对象。令牌可以表示结构体和整数等数据,也可以简单地传递控制信号。 | 令牌有两种类型:
| |
动作节点 | 动作节点是活动图中的一个关键构件。动作节点表示要执行的动作。动作节点消耗输入令牌,并在引脚上产生输出令牌。 | 使用 MATLAB 函数或嵌套活动图来描述动作节点的行为。 | |
控制节点 | 控制节点是令牌通过系统的逻辑流的路由。 | 使用控制节点和流来路由令牌。控制节点可用于初始化、拆分、合并和终止令牌流。 | 使用控制节点操作令牌流 |
引脚 | 引脚充当对象令牌的缓冲区,引导令牌进入或离开动作节点。引脚的方向性代表输入或输出。您可以通过对象流连接引脚。 | 使用引脚将对象令牌路由到 Action Node 或从 Action Node 路由对象令牌。引脚还可用于在执行前或执行过程中存储对象令牌。您只能在对象流中使用引脚。 | |
类型 | 类型定义流经引脚的令牌内容。类型具有维度、单位、复杂度、最小值、最大值和描述。 | 活动图中有三种令牌类型:
| |
参数节点 | 参数节点路由令牌进入或离开嵌套活动图。创建引脚时,会在嵌套活动中创建相应的参数节点。 | 使用参数节点定义令牌进入或离开嵌套活动的方式。参数节点有输入和输出两种类型。 | |
流 | 活动图中的流连接两个节点。虚线表示控制流。实线表示对象流。 | 流有两种类型:
| 仿真、可视化和验证活动图 |
编写、仿真和部署软件架构
设计软件架构模型,定义组件函数的执行顺序,在架构层面进行设计仿真并生成代码。
在架构视图库中以类图的形式查看软件架构图。
术语 | 定义 | 应用 | 更多信息 |
---|---|---|---|
软件架构 | 软件架构是基于软件系统的架构特化,包括对软件组合、组件函数及其调度的描述。 | 使用 System Composer 中的软件架构编写由软件组件、端口和接口组成的软件架构模型。设计软件架构模型、定义组件函数的执行顺序、在架构层面进行设计仿真并生成代码。 | |
软件组件 | 软件组件是针对软件实体(包括其接口)的组件特化。 | 将 Simulink 导出函数、基于速率或 JMAAB 模型实现为软件组件,对软件架构模型进行仿真并生成代码。 | |
软件组合 | 软件组合是由软件组件和连接器组成的图,表示一个组合软件实体,如模块或应用程序。 | 通过聚合或嵌套多个软件组件或组合来封装功能。 | 节气门位置控制系统的软件架构模型 |
函数 | 函数是程序控制转移的入口点,可在软件组件中定义。 | 您可以使用函数编辑器将构造型应用于软件架构中的函数、编辑采样时间并指定函数周期。 | 软件架构的函数编写与扩展 |
函数元素 | 函数元素描述客户端-服务器接口中函数的属性。 | 编辑函数元素上的函数原型,更改函数输入和输出的数量和名称。像编辑其他接口元素属性一样编辑函数元素属性。函数参量类型可包括内置类型和总线对象。您可以指定要支持的函数元素:
| systemcomposer.interface.FunctionElement |
函数参量 | 函数参量描述了函数元素中输入或输出参量的属性。 | 您可以在接口编辑器中设置函数参量的属性,就像设置其他值类型一样: | systemcomposer.interface.FunctionArgument |
服务接口 | 服务接口定义客户端和服务器组件之间的功能接口。每个服务接口由一个或多个函数元素组成。 | 在接口编辑器中定义服务接口后,可以使用属性检查器将其分配给客户端和服务器端口。您还可以使用属性检查器为服务接口分配构造型。 | |
服务器 | 服务器是定义并提供函数的组件。 | 服务器组件是定义函数的组件。您可以在 Simulink 导出函数模型中实现函数行为。 | 服务接口概述 |
客户端 | 客户端是向服务器发送请求的组件。 | 客户端组件是调用函数的组件。函数调用行为的实现取决于函数执行的同步性。 | 服务接口概述 |
类图 | 类图是静态结构模型的图形表示,可展示软件组件的唯一架构类型,(可选)还可显示软件方法和属性。 | 类图捕捉每个引用模型的一个实例,并显示它们之间的关系。可选择以类图形式表示软件架构模型的组件图视图。 | 软件架构的类图视图 |