更改变体参数的活动值和激活时间
此示例显示了如何在Simulink®模型中更改变体参数的活性值和激活时间。金宝app
在此示例中,您将学习如何:
使用变体条件表达式更改变体参数的活动值。
更改使用变体激活时间确定活动值的时间。
变体参数的概述
变体参数可以具有多个值。变体参数的每个值都与变体控制表达式相关联。在仿真过程中,与评估到的条件相关的变体参数的值真的
是变体参数的活动值。与评估的条件相关的值错误的
是参数的无活性值。要在活动值之间切换,请更改变体控制变量的值。有关更多信息,请参阅使用变体参数重复使用具有不同值的块参数。
先决条件
在您开始此示例之前,我们建议您完成创建一个简单的变体参数模型。
探索模型
1.打开模型。
Open_System([Matlabroot'/示例/simuli金宝appnk_variants/main/slexvariantParameters')))
在这个模型中,获得增益块的参数是变体参数,指定为金宝appsimulink.variantvariable
对象K1
和K2
。对象在slexvariantParameterData.m
文件。
2.打开slexvariantParameterData.m
文件。该文件已加载在Postloadfcn回调的造型>模型设置>模型属性。
在文件中,对象K1
和K2
具有与变体控制表达式相关的多个值V == 1
和V == 2
。除该值外,您还可以使用该属性指定属性,例如尺寸,数据类型等规格对象的参数。
变体控制变量:价值
金宝appSimulink.VariantControl
目的v
确定哪些值的值K1
和K2
在模拟过程中具有活性。如果V == 1
评估真的
,与V == 1
变得活跃,与V == 2
变得不活跃。主动价值的K1
被分配给获得增益1块的参数和活性值K2
被分配给获得增益2块的参数。同样,什么时候V == 2
评估真的
,与V == 1
变得不活跃,与V == 2
变得活跃。有关变体控件的更多信息,请参见变体控件简介。
变体激活时间:s金宝appimulink可以设置变体参数的主动值获得在模拟和代码生成工作流的不同阶段。基于您指定为变体激活时间的阶段,Simulink确定生成的代码是否仅包含活动值或活性值和活动值和不活动值金宝app
K1
和K2
。变体激活时间还决定是否分析所有值K1
和K2
对于信号属性中的不兼容。
在此示例中,值v
指定为1
,并且变体激活时间被指定为更新图
。当您模拟此模型时,V == 1
评估真的
。的价值K1
被设定为3.5
和价值K2
被设定为4.5
。金宝appSimulink确定更新图期间的活动值。当您从该模型生成代码时,代码仅包含K1
和K2
。
设置主动选择变体参数
变体控制变量的值确定模拟过程中变体参数的活动值。要切换活动值,请更改变体控制变量的值。
1.在Simulin金宝appk工具条上,单击跑。在模拟过程中,V == 1
评估真的
。作为值3.5
和4.5
与V == 1
,这些值分配给K1
和K2
, 分别。随后,将值分配给获得增益块的参数。
2.更改价值获得参数,更改的值v
至2
,然后再次模拟模型。
v.Value = 2;
在仿真过程中,与V == 2
被分配给K1
和K2
。随后,将值分配给获得增益块的参数。
设置时间来确定变体参数的主动值
金宝appSimulink可以在模拟和代码生成工作流的不同阶段设置变体参数的主动值。基于您指定为变体激活时间的阶段,Simulink确定生成的代码是否仅包含活性值或变体参数的活动值和不活动值。金宝app变体激活时间还确定了是否分析所有值的信号属性中的变体参数。
例如,指定激活时间v
作为更新图
,在MATLAB®命令窗口中键入此命令。然后,再次模拟模型。
v.activationTime =“更新图”;
金宝appSimulink设置了K1
和K2
在传播信号属性之前的更新图中。未分析诸如维度和数据类型之类的信号属性,以确保整个模型的一致性。生成的代码仅包含K1
和K2
。有关其他激活时间的信息,请参阅在模拟和代码生成工作流的不同阶段激活变体。