主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

setBlockParameter

使用 SimulationInputSimulation 对象设置用于仿真的模块参数值

说明

s = setBlockParameter(s,blkpath,blkparam,paramval) 将模块参数 blkparam 的值指定为 Simulink.SimulationInputSimulation 对象 s 上的模块 blkpathparamval

  • sSimulationInput 对象时,您只能指定一个值用于整个仿真。

  • sSimulation 对象时,您可以指定在仿真开始时使用的单个值,并为正常和加速器仿真期间的可调参数指定新值。

    不支持在快速加速器仿真期间调整模块参数值。

您可以使用 setBlockParameter 函数为整个模型层次结构中的任何模块的 SimulationInputSimulation 对象指定参数值。您指定的参数值将覆盖您在仿真期间使用 SimulationInputSimulation 对象运行的仿真中保存的值,并在仿真完成时恢复。您可以使用 SimulationInputSimulation 对象来覆盖任意数量的值。

注意

setBlockParameter 函数不支持禁用快速加速器最新检查或部署的快速加速器仿真。要在这些仿真中修改模块参数值,请使用变量指定模块参数值,然后使用 setVariable 函数指定变量值。

示例

示例

全部折叠

使用 Simulink.SimulationInput 对象修改仿真的模块参数。

打开模型

mdl = "sldemo_househeat";
openExample("simulink_general/sldemo_househeatExample",...
    SupportingFile=mdl)

为此模型创建 SimulationInput 对象。

simin = Simulink.SimulationInput(mdl);

修改模块参数值。

simin = setBlockParameter(simin,"sldemo_househeat/Set Point",...
    Value="300");

对模型进行仿真。

out = sim(simin);

使用 Simulink.SimulationInput 对象修改仿真的多个模块参数值。

打开模型

mdl = "vdp";
openExample("simulink_general/VanDerPolOscillatorExample",...
    SupportingFile=mdl)

为此模型创建 SimulationInput 对象。

simin = Simulink.SimulationInput(mdl);

修改 Mu 模块的 Gain 参数值和 Product 模块的位置。

simin = setBlockParameter(simin,"vdp/Mu","Gain","0.5",...
    "vdp/Product","Position",[50 100 110 120]);

对模型进行仿真。

out = sim(simin);

输入参数

全部折叠

仿真规范或设置模块参数的仿真,指定为 Simulink.SimulationInput 对象或 Simulation 对象。

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

  • 对于每个模块参数,您只能指定一个值用于整个仿真。

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

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

  • 对于每个模块参数,您可以指定在仿真中使用的初始值。

  • 您可以在正常和加速器模式仿真期间修改可调模块参数的值。

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

示例: simin = setBlockParameter(simin,"vdp/Mu","Gain","0.1") 将名为 vdp 的模型中名为 Mu 的模块的 Gain 参数值指定为 0.1,该值在存储在 SimulationInput 对象 simin 上的仿真配置中显示。

示例: sm = setBlockParameter(sm,"vdp/Mu","Gain","0.1") 将名为 vdp 的模型中名为 Mu 的模块的 Gain 参数值指定为 Simulation 对象 sm 所表示的仿真中的 0.1

要指定参数值的模块的路径,指定为字符串或字符向量。

示例: simin = setBlockParameter(simin,"vdp/Mu","Gain","0.1") 将名为 vdp 的模型中名为 Mu 的模块的 Gain 参数值指定为 0.1,该值在存储在 SimulationInput 对象 simin 上的仿真配置中显示。

示例: sm = setBlockParameter(sm,"vdp/Mu","Gain","0.1") 将名为 vdp 的模型中名为 Mu 的模块的 Gain 参数值指定为 Simulation 对象 sm 所表示的仿真中的 0.1

要设置的模块参数的名称,指定为字符串或字符向量。

示例: simin = setBlockParameter(simin,"vdp/Mu","Gain","0.1") 将名为 vdp 的模型中名为 Mu 的模块的 Gain 参数值指定为 0.1,该值在存储在 SimulationInput 对象 simin 上的仿真配置中显示。

示例: sm = setBlockParameter(sm,"vdp/Mu","Gain","0.1") 将名为 vdp 的模型中名为 Mu 的模块的 Gain 参数值指定为 Simulation 对象 sm 所表示的仿真中的 0.1

模块参数值,指定为指定模块参数的值。许多模块参数(例如 Gain 模块的 Gain 参数)需要将参数值指定为字符串或字符向量,包括数值模块参数值。

示例: simin = setBlockParameter(simin,"vdp/Mu","Gain","0.1") 将名为 vdp 的模型中名为 Mu 的模块的 Gain 参数值指定为 0.1,该值在存储在 SimulationInput 对象 simin 上的仿真配置中显示。

示例: sm = setBlockParameter(sm,"vdp/Mu","Gain","0.1") 将名为 vdp 的模型中名为 Mu 的模块的 Gain 参数值指定为 Simulation 对象 sm 所表示的仿真中的 0.1

输出参量

全部折叠

仿真规范或添加或修改模块参数的仿真,作为 Simulink.SimulationInput 对象或 Simulation 对象返回。

当您使用 setBlockParameter 函数在 SimulationInput 对象上指定模块参数的值时,必须指定 SimulationInput 对象作为返回参量。

当您使用 setModelParameter 函数指定 Simulation 对象上的模块参数的值时,分配返回参量是可选的。

提示

  • 使用 getBlockParameter 函数获取 SimulationInput 对象或 Simulation 对象上指定的模块参数的值。

    paramval = getBlockParameter(s,blkpath,"ParamName");

  • 使用 removeBlockParameter 函数从 SimulationInput 对象或 Simulation 对象中删除模块参数。

    s = removeBlockParameter(s,blkpath,"ParamName");

版本历史记录

在 R2017a 中推出

全部展开