Main Content

setVariable

使用 SimulationInputSimulation 对象为仿真设置变量值

说明

示例

s = setVariable(s,varname,varvalue) 为使用 Simulink.SimulationInputSimulation 对象 s 配置的仿真将变量 varname 的值设置为值 varvalue。使用此语法为基础工作区或数据字典中的变量指定值。您指定的变量值将覆盖在仿真期间保存在基础工作区或数据字典中的变量值,并在仿真完成时还原。

  • sSimulationInput 对象时,对于要用于整个仿真的每个变量,您只能指定单一值。

  • sSimulation 对象时,您可以为在仿真开始时使用的每个变量指定单一值,并在仿真期间为定义可调值的变量指定新值。

您可以为 SimulationInputSimulation 对象上的多个变量指定值。逐个对每个变量指定值。

示例

s = setVariable(s,varname,varvalue,Workspace=mdl) 在模型 mdl 的模型工作区中设置变量 varname 的值。

默认情况下,如果不指定 Workspace 参量,则 SimulationInputSimulation 对象上的变量的作用域是特定于每个对象的全局工作区。SimulationInputSimulation 对象的全局工作区中的变量会覆盖基础工作区和数据字典中的同名变量,但不会覆盖模型工作区中的同名变量。

使用此语法为使用 SimulationInputSimulation 对象配置的仿真指定模型工作区中变量的值。

示例

全部折叠

使用 SimulationInput 对象指定变量的值。

打开模型。

openExample('simulink/OpenTheModelExample');

为此模型创建 SimulationInput 对象。

simIn = Simulink.SimulationInput('ex_sldemo_househeat');

cost 变量值设置为 50

simIn = setVariable(simIn,'cost',50);

默认情况下,此变量具有全局工作区作用域。

对模型进行仿真。

out = sim(simIn);

使用 SimulationInput 对象修改模型工作区中变量的值。

打开模型

openExample('simulink/OpenTheModelExample');

为此模型创建 SimulationInput 对象。

simIn = Simulink.SimulationInput('ex_sldemo_househeat');

cost 变量值设置为 50,并将作用域设置为模型工作区。

simIn = setVariable(simIn,'cost',50,'Workspace','ex_sldemo_househeat');

对模型进行仿真。

out = sim(simIn);

输入参数

全部折叠

在其中设置变量值的仿真设定或仿真,指定为 Simulink.SimulationInput 对象或 Simulation 对象。

SimulationInput 对象表示仿真设定,包括仿真中要使用的初始状态、外部输入、模型参数值、模块参数值和变量值。当您将第一个输入参量指定为 SimulationInput 对象时:

  • 对于每个变量,您只能指定单一值以用于整个仿真。

  • 您必须将 SimulationInput 对象指定为返回参量。

Simulation 对象表示仿真,并提供用于控制仿真并与之交互的界面。当您将第一个输入参量指定为 Simulation 对象时:

  • 对于每个变量,您可以指定初始值以在仿真中使用。

  • 在仿真期间,您可以修改定义可调参数的变量值。

  • Simulation 对象指定为返回参量是可选的。

示例: simin = setVariable(simin,"k",10) 将存储在 SimulationInput 对象 simin 上的仿真配置中的变量 k 的值设置为 10

示例: sm = setVariable(sm,"k",10) 在由 Simulation 对象 sm 表示的仿真中将变量 k 的值更改为 10

变量名称,指定为字符串或字符向量。

示例: simin = setVariable(simin,"k",10) 将存储在 SimulationInput 对象 simin 上的仿真配置中的变量 k 的值设置为 10

示例: sm = setVariable(sm,"k",10) 在由 Simulation 对象 sm 表示的仿真中将变量 k 的值更改为 10

变量值,指定为 MATLAB 表达式。

示例: simin = setVariable(simin,"k",10) 将存储在 SimulationInput 对象 simin 上的仿真配置中的变量 k 的值设置为 10

示例: sm = setVariable(sm,"k",10) 在由 Simulation 对象 sm 表示的仿真中将变量 k 的值更改为 10

在其中指定变量值的模型工作区,指定为字符串或字符向量。

示例: simin = setVariable(simin,"k",10,Workspace="MyModel") 将存储在 SimulationInput 对象 simin 上的仿真配置中名为 MyModel 的模型的模型工作区中的变量 k 的值设置为 10

示例: sm = setVariable(sm,"k",10,Workspace="MyModel") 在由 Simulation 对象 sm 表示的仿真中将名为 MyModel 的模型的模型工作区中的变量 k 的值更改为 10

输出参量

全部折叠

具有指定变量值的仿真设定或仿真,以 Simulink.SimulationInput 对象或 Simulation 对象形式返回。

当使用 setVariable 函数指定 SimulationInput 对象上变量的值时,必须指定 SimulationInput 对象作为返回参量。

当使用 setVariable 函数指定 Simulation 对象上变量的值时,可以选择是否对返回参量赋值。

提示

  • 要从 SimulationInputSimulation 对象中删除变量,请使用 removeVariable 函数。

  • 要获取在 SimulationInputSimulation 对象上为特定变量设置的值,请使用 getVariable 函数。例如,以下命令获取名为 MyVariable 的变量的值。

    varvalue = getVariable(s,"MyVariable");

版本历史记录

在 R2017a 中推出

全部展开