主要内容

用于系统开发的v模型金宝app变体

在基于模型的设计工作流程中,为系统组件创建多个设计变体对于满足不同的需求集是必不可少的。这些需求可以满足不同的市场需求、客户偏好或地理特征。在整个系统开发生命周期中,从需求到部署,您可能需要在这些选择之间进行切换。金宝app动态仿真模块®变体功能允许您创建具有内置变量的灵活模型,从而更有效地管理、配置和重用您的设计。有关Simulink变体基础知识的信息金宝app,请参见什么是变体,什么时候使用它们

v型模型是系统开发生命周期的表示,为每个相应的开发阶段应用一个测试阶段。金宝appSimulink变体在开发过程的各个阶段提供了功能。v模型的左侧标识了开发系统规范、开发详细设计软件和生成应用程序代码的步骤。v模型的右侧主要关注左边引用的步骤的验证和确认,包括软件和系统集成。根据应用程序及其在流程中的角色,您可以关注v模型中调用的一个或多个步骤,或者在v模型的几个阶段重复步骤。

这些表列出了您在模型中应用变化时可能有的目标,并指导您如何实现这些目标。您可以打开并运行下面链接的示例,以应用变量并生成代码。有关在Simulink中显示不同功能的模型列表,请参见金宝app金宝appSimulink变体实例

系统级设计

您可以为系统体系结构模型中的任何组件建模。一个组件可能有两个不同的选项,代表两个交替的结构分解。您还可以将行为(在Simulink模型中定义)和体系结构(在System Composer™体系结构模型中金宝app定义)的混合定义为变体选择。有关System Composer体系结构模型的更多信息,请参见从视觉上组合架构(系统作曲家)

目标 能力 例子
在体系结构模型中添加具有可选结构设计的组件。 不同的组件(系统作曲家) 创建变体(系统作曲家)
管理具有结构组件变化的系统。 变体管理器概述 将控制变量导入变体配置

组件-创建具有结构变化的模型

一旦您理解了您的建模需求,您就可以开始识别系统的不同组件。在顶级结构中识别组件及其关系有助于系统地构建潜在的复杂模型。使用Simulink中的可变块,您可以在单个模金宝app型中设计系统的多个设计方案。每个设计选择都作为一个变体选择被纳入模型中。在模拟过程中,您可以根据您的需求选择激活或禁用变量选项。不活跃的变体选择似乎消失了。有关更多信息,请参见什么是变体,什么时候使用它们

本节包括:

实现组件的结构变异性

通过在模型中使用变量块,您可以在所有领域中实现结构变量,包括控制逻辑、状态机、流程图和物理工厂。有关变体块的更多信息,请参见Simulink中的变体块金宝app

目标 能力 例子

在你的模型中封装一个组件的变体。您可以封装子系统(虚拟和非虚拟)块、模型块和子系统引用块,以有条件地执行它们。

不同子系统,不同模型 不同的子系统
  • 在模型的同一级别上表示组件的所有变体。

  • 表示源信号或目标信号变化的组件。

变异来源而且变体水槽
表示具有固定的公共结构,但不同的输入和输出接口的组件。 不同子系统,不同模型 不同子系统的自适应接口
在您的模型中表示相同级别的变体,并使用简单的切换开关机制在变体选择之间切换。 手动变量来源而且手动变型水槽 使用手动可变源和手动可变接收器块在信号的源和目标提供变化

在模型上有条件地执行事件驱动函数初始化、重置和终止事件。

初始化函数重置功能,终止函数 带有初始化、重置和终止块的变量条件传播

有条件地执行触发器驱动的函数(执行由外部信号控制)。

启用子系统触发子系统,启用和触发子系统
使用函数调用子系统
有条件地执行Simulink函数(类似于过程金宝app式编程语言中的函数)。 金宝app仿真软件的功能
合并有条件执行的Simulink函数的输出信号。金宝app 使用函数调用子系统 变体子系统输出口上的变体函数调用信号
将Simulink模型封金宝app装为不同的选择,并有条件地执行它们。 不同子系统,不同模型 模型参考变量

在实际物理组件中实现变化。

不同的连接器(Simscape)
  • 主动变量在仿真开始前固定,在仿真中间阶段不改变。

  • 使用最小数据管理的字符串在活动变量之间切换。

在变体块中使用标签模式 在不同的块中使用标签在选择之间切换
在模型中创建只应用于模拟或只应用于代码生成的分支。 在变体块中使用sim码源切换模式 在不使用变体块中的控制变量的情况下,在模拟和代码生成工作流的选择之间切换

从上游和下游的不同块传播条件

您可以通过自动将变量条件从变量块传播到上游和下游的其他块,将变量控制扩展到模型的任何区域。变量条件可以通过信号线、总线和函数调用传播,以到达受变量选择影响的模型中的块。有关更多信息,请参见变条件传播概述

目标 能力 例子
通过在父变量块之外传播底层块的状态,提高模型的准确性,避免手动计算变量条件以分配给依赖块。 不同子系统,不同模型 将不同的条件传播到不同的子系统之外
通过将变量块的状态传播到所有与其连接的块,提高模型的准确性,避免人工计算变量条件分配给依赖块。 使用不同源和接收器的不同条件传播
当没有变量活动时,从模型执行中完全删除变量区域。 允许零主动变量控制 将不同的条件传播到不同的子系统之外
停止在上游和下游传播变量的状态。 地面而且《终结者》 控制变量条件传播
通过在复合信号中传播不同的元素来减少视觉复杂性。

控制不同区域的可见性

您可以通过根据您的需求在适当的工作空间中定义变量控件来控制变量区域的可见性。限制作用域有助于避免名称冲突,并在块之间建立变体控件的明确所有权。它还允许您对不同作用域中的变量控件使用相同的名称。有关更多信息,请参见变量块中变量控制变量(操作数)的存储位置而且不同激活时间的不同块中的操作符类型

目标 能力 例子
  • 为变量创建自定义用户界面。

  • 通过将变量控件封装在掩码后面,防止对其进行非预期的修改。

  • 通过限制控件的范围,对不同掩码中的变体控件使用相同的名称。

屏蔽原理

  • 通过永久存储模型局部的变量控件来提高模型的可移植性。

  • 通过限制控件的范围,对不同模型中的变体控件使用相同的名称。

本地数据:模型工作区 使用掩码或模型工作区控制变量块的主动变量选择的方法
存储全局变量控件。 创建一个简单的变体模型
为自定义锁定库块的多个实例设置不同的活动变量。 使用掩码或模型工作区控制变量块的主动变量选择的方法 使用掩码参数控制锁定自定义库变量子系统的主动选择
为模型的不同级别上的多个不同区域定义全局变量控制。 数据存储内存 可变条件和数据存储

结构变化系统中的变量控制

模型中的每个变量选择都与一个变量控件相关联。变量控件确定哪个变量选择是活动的。通过更改变量控件的值,您可以切换活动的变量选择。在您的模型中实现不同的区域时,您可以使用不同类型的变量控制变量。有关更多信息,请参见变量块中变量控制变量(操作数)的类型而且变量块中变量控制变量(操作数)的存储位置

目标 能力 例子

快速原型变体控制时,你仍然建立你的模型。

标量变量 基于变块快速成型的标量变控制变量

  • 在模型之间重用公共变量控件。

  • 通过封装变体控件来降低它们的复杂性。

金宝app仿真软件。变体 金宝app仿真软件。变体Objects for Variant Condition Reuse of Variant Blocks

通过将变量控件表示为有意义的名称而不是整数来提高可读性。

金宝app仿真软件枚举

控制结构变化系统的不同激活时间

在模拟或代码生成之前,您可以检查不兼容性,例如变量中的数据类型和维度不匹配。您可以设计可以在模拟和代码生成工作流的不同阶段激活的变体。在代码生成期间,您可以选择在生成的代码中包含哪些变量,并根据需求和目标平台在不同阶段激活它们。您还可以检查不兼容性,例如变量中的数据类型和维度不匹配。有关更多信息,请参见在模拟和代码生成工作流的不同阶段激活变量

目标 能力 例子

在模型编译阶段早期保留活动变量,去除非活动变量,使信号属性不兼容的变量在仿真工作流程中共存。

更新图 考虑这样一个场景,您只想模拟活动的变体。您已经安装了模拟活动变体所需的所有产品,但是您没有模拟下载188bet金宝搏非活动变体所需的许可证。在这种情况下,您可以使用更新图在模拟工作流开始时从执行中删除非活动变量的激活时间。
在模拟循环阶段之前,分析信号属性(如维度和数据类型)中的不兼容性的主动和非主动变量。 更新图表分析所有选项 在模拟和代码生成工作流的不同阶段激活变量
  • 执行迭代模拟并提高模拟速度,而不必在每次更改活动变量时重新编译模型或终止模拟。

启动

组件-创建具有参数值变化的模型

您可能有一组需求,其中模型的结构保持不变,但是每个需求的参数值是不同的。您可以创建具有固定结构的单个模型,并使用有限的值集创建参数,其中每个值对应不同的需求。然后你可以在模拟过程中选择激活或禁用变量选择。有关值变化的更多信息,请参见使用可变参数重用具有不同值的块参数

本节包括:

在参数值中实现变量

通过在模型中使用可变参数,您可以在所有域中实现值变量,包括控制逻辑、状态机、流程图和物理工厂。

用于改变参数值的变量控件

变量控制是金宝app仿真软件。变体Control对象。价值控件的变体控件ActivationTime.在仿真和代码生成工作流的不同阶段,使用变量控制对象确定变量参数的活动值。在您的模型中实现不同的区域时,您可以为不同的控制对象指定不同类型的值。有关更多信息,请参见变量参数中变量控制变量(操作数)的存储位置而且变量参数中变量控制变量(操作数)的类型

目标 能力 例子

快速原型变体控制时,你仍然建立你的模型。

数值 快速成形变参数的数值变控制值

  • 在模型之间重用公共变量控件。

  • 通过封装变体控件来降低它们的复杂性。

金宝app仿真软件。变体 金宝app仿真软件。变体Objects for Variant Condition Reuse of Variant Parameters

通过将变量控件表示为有意义的名称而不是整数来提高可读性。

金宝app仿真软件枚举 提高变量控制变量代码可读性的枚举类型

通过将变量参数值表示为有意义的名称而不是整数来提高可读性。

金宝app仿真软件枚举 使用枚举类型提高变量参数的代码可读性

控制可变参数值的可变激活次数

在模拟或代码生成之前,您可以检查不兼容性,例如变量中的数据类型和维度不匹配。您可以设计可以在模拟和代码生成工作流的不同阶段激活的变体。在代码生成期间,您可以选择在生成的代码中包含哪些变量,并根据需求和目标平台在不同阶段激活它们。您还可以检查不兼容性,例如变量中的数据类型和维度不匹配。有关更多信息,请参见在模拟和代码生成工作流的不同阶段激活变量

目标 能力 例子

在模型编译阶段早期保留活动变量,去除非活动变量,使信号属性不兼容的变量在仿真工作流程中共存。

更新图 更改不同参数的激活值和激活时间
在模拟循环阶段之前,分析信号属性(如维度和数据类型)中的不兼容性的主动和非主动变量。 更新图表分析所有选项
执行迭代模拟,而不必在每次更改活动变量时重新编译模型或终止模拟。 启动 使用快速重启的变体系统运行迭代模拟而不重新编译模型

组件—在转换路径中创建具有变化的模型

您可以在状态流中控制向多个设计配置的转换®使用可变过渡的图表。

目标 能力 例子
有条件地执行源对象到目标对象的转换路径。 条件(Stateflow)而且条件的行为(Stateflow) 变型灯设计(Stateflow)

组件-创建具有尺寸变化的模型

您可以使用符号维来模拟各种维选择集,而无需为每个集重新生成代码。在模拟过程中,这些符号在整个模型中传播,然后进入生成的代码。

目标 能力 例子
以符号存储尺寸,以便在不同的选择之间灵活切换。 允许符号维度规范 生成带有不同输出信号尺寸子子系统的变体子系统代码(嵌入式编码)
创建具有不同维度的变量的参数。 生成代码中的符号维(嵌入式编码) 对相同维数和不同维数的变量参数的所有值有条件地编译代码
以符号形式存储AUTOSAR元素(如端口)的尺寸,以便在代码编译过程中灵活地切换变量点。 数组大小的变量(AUTOSAR Blockset) 配置AUTOSAR阵列尺寸的尺寸变量(AUTOSAR Blockset)

组件-在AUTOSAR接口中创建具有变化的模型

您可以使用AUTOSAR软件组件中的变量点在执行路径中启用或禁用AUTOSAR接口或实现。在Si金宝appmulink中,AUTOSAR系统常数作为控制组件变差点的输入。变分表示在两个或多个变分之间进行选择。有关更多信息,请参见AUTOSAR模型变量(AUTOSAR Blockset)

目标 能力 例子
启用或禁用AUTOSAR端口和可运行程序。 端口和可运行对象的变体(AUTOSAR Blockset) 为AUTOSAR端口和可运行程序配置变量(AUTOSAR Blockset)
通过在可运行对象中指定不同的条件来改变AUTOSAR可运行对象的实现。 可运行实现的变体(AUTOSAR Blockset) 为AUTOSAR可运行实现配置变量(AUTOSAR Blockset)
模型AUTOSAR校准数据结合不同类型的不同条件。 导出AUTOSAR校准数据的变化点(AUTOSAR Blockset)
在AUTOSAR软件组件中导入变量点。 预定义变量和系统常量值集(AUTOSAR Blockset) 用预定义值组合控制AUTOSAR变量(AUTOSAR Blockset)

组件——管理模型中的结构变化

变体管理器使您能够可视化地跟踪变体,同时管理变体,并防止系统模型中的无效变体组合或状态流程图中的变体转换。您还可以通过自动减少变量以只包含选定的变量来简化变量模型。有关更多信息,请参见变体管理器概述

目标 能力 例子

可视化可变模型层次结构的树状视图,并编辑可变元素的属性。

模型层次结构

创建变体配置来表示跨模型层次结构的变体选择的组合。

变体管理器概述 创建并验证变体配置

为变体配置定义约束,以防止无效的变体组合。

约束 定义约束

创建一个变体配置数据对象来存储、分发和重用模型的变体配置。

配置 导出、保存、刷新和加载可变配置数据对象

在更新图阶段的早期,验证并应用一个不同的配置到一个模型。

激活一个变体配置 创建并验证变体配置

自动生成一个简化的模型,该模型只包含从具有许多变量的父模型中选择的变量配置。

减少包含可变块的模型 为选定的变体配置减少变体模型

通过查看和比较不同的配置,可以定位和诊断配置中可能存在的问题或不一致。

分析包含不同块的模型中的不同配置

生产代码生成

您可以在生成的代码中包含变量,以便针对不同的开发阶段重用和配置代码,例如测试不同的实现或向第三方提供多功能代码。

为结构变化的系统生成代码

您可以指定要包含在生成的代码中的变量块的变量。您还可以在生成的代码中控制变量控件的外观、位置、定义和声明。

目标 能力 例子
生成包含活动和非活动变量的代码,并使您能够在代码编译之前在变量之间切换。 代码编译
生成一个包含活动和非活动变量的可执行文件,并允许您在模型启动时在变量之间切换。 启动
在多个块之间共享变量控件,将值与它们的数据类型和其他属性分离,控制生成代码中变量控件的外观、位置、定义和声明。 金宝app仿真软件。参数 金宝app仿真软件。参数Type of Variant Control Variables for Code Generation in Variant Blocks

通过在生成的代码中将变量控件表示为有意义的名称而不是整数来提高代码的可读性。

金宝app仿真软件枚举

生成可变参数值的代码

您可以指定要包含在生成的代码中的变量参数的变量。您还可以在生成的代码中控制变量控件和变量参数的外观、位置、定义和声明。有关更多信息,请参见在生成的代码中表示变量参数的选项(嵌入式编码)

目标 能力 例子
生成包含所有变量的代码,并使您能够在代码编译之前在变量之间切换。 代码编译 对相同维数和不同维数的变量参数的所有值有条件地编译代码
生成一个包含所有变量的可执行文件,并允许您在模型启动时在变量之间切换。 启动 在不重新编译代码的情况下运行不同变量参数值的可执行文件
在多个块之间共享变量控件,将值与它们的数据类型和其他属性分离,控制生成代码中变量控件的外观、位置、定义和声明。 金宝app仿真软件。参数Type of Variant Control Variables for Code Generation of Variant Parameters

通过将变量控件表示为有意义的名称而不是整数来提高代码的可读性。

金宝app仿真软件枚举 提高变量控制变量代码可读性的枚举类型

通过将变量参数值表示为有意义的名称而不是整数来提高代码的可读性。

金宝app仿真软件枚举 使用枚举类型提高变量参数的代码可读性

生成用于改变转换路径的代码

您可以使用不同的转换在Simulink模型中创建状态流程图,这些模型生成将在各种不同的软件情况中使用的代码。金宝app变体转换允许您在一个状态流图中建模变体的完整子集,以便您可以在生成代码或编译生成的代码时选择您想要的变体。

目标 能力 例子
生成只包含执行当前所选软件配置所需的数据成员的代码。 使用变体转换的代码生成(Stateflow) 变型灯设计(Stateflow)

生成不同维度的代码

您可以使用符号维来模拟各种维选择集,而无需为每个集重新生成代码。在模拟过程中,这些符号在整个模型中传播,然后进入生成的代码。

目标 能力 例子
将尺寸存储在符号中,以便在代码编译期间灵活地在变量之间切换。 允许符号维度规范 生成带有不同输出信号尺寸子子系统的变体子系统代码(嵌入式编码)
将尺寸存储在自动生成的符号中,以便在代码编译过程中灵活切换不同的参数值。 生成代码中的符号维(嵌入式编码) 对相同维数和不同维数的变量参数的所有值有条件地编译代码
以符号形式存储AUTOSAR元素(如端口)的尺寸,以便在代码编译过程中灵活地切换变量点。 数组大小的变量(AUTOSAR Blockset) 配置AUTOSAR阵列尺寸的尺寸变量(AUTOSAR Blockset)

单元测试和子系统级测试

通过使用生成测试用例,您可以识别隐藏的设计错误,并检测导致整数溢出、死逻辑、数组访问违规和除零的变量中的模型构造金宝appSimulink设计验证器™.有关更多信息,请参见关于使用Simulink Design Verifier进行系统模型验证金宝app(金宝appSimulink Design Verifier)

目标 能力 例子
通过生成测试用例进行调试,分析活动变体以检测设计错误和需求违反。 代码编译 看到SLDV运行工作流在用代码编译激活时间验证和验证变体模型

通过生成用于调试的测试用例,分析活动和非活动的变体,以检测设计错误和需求违反。

启动 看到SLDV运行工作流在用启动激活时间验证和验证变量模型

系统验证与验证

你可以使用金宝app仿真软件测试™仅对模型中的活动变量或活动和非活动变量执行用户定义的测试。

目标 能力 例子

只分析活动的变体,并重新运行测试以分析所有变体。

代码编译 看到金宝appSimulink测试管理器工作流在用代码编译激活时间验证和验证变体模型

在活动和非活动变量上运行迭代测试,而不必为每个变量重新编译模型。

启动 看到金宝appSimulink测试管理器工作流在用启动激活时间验证和验证变量模型

相关的话题