主要内容

设置块参数值

块具有数值参数,这些参数决定了它们如何计算输出值。要控制块执行的计算,可以指定参数值。例如,获得Block有一个获得参数,以及转移FcnBlock有多个表示传递函数系数的参数。

可以使用数字、变量和表达式来设置块参数值。根据您的建模目标选择一种技术。例如,你可以:

  • 通过创建变量在块和模型之间共享参数值。

  • 通过创建参数对象控制参数特征,如数据类型和维度。

  • 通过使用数学表达式将算法建模为代码。

方法设置块参数参数选项卡中的模型数据编辑器(在建模选项卡上,单击模型数据编辑器)、属性检查器(在建模选项卡,在设计,点击属性检查器),或方块对话框。有关更多信息,请参见添加块和设置参数.要设置块采样次数,请参见指定采样时间

提示

您可以使用Model Explorer一次性对许多块参数值进行批量更改。有关更多信息,请参见模型浏览器

以编程方式访问参数值

若要以编程方式访问块参数值,请使用get_param而且set_param功能。你可以使用这个技巧:

  • 以编程方式构建模型。

  • 当以编程方式模拟模型时,在模拟运行期间调整参数值。

若要使用脚本在模拟运行之间扫描参数值,请使用金宝app仿真软件。SimulationInput对象而不是get_param而且set_param.看到优化、估计和扫描块参数值

假设您创建了一个名为myModel,其中包含常数名为My Constant的块。接下来,使用块对话框设置恒定值参数15.若要以编程方式返回参数值,请使用函数get_param.指定块路径和等效的编程参数名,价值

paramValue = get_param(“myModel /我的常数”“价值”
paramValue = 15

以编程方式更改值,例如为25,使用函数set_param.使用字符向量“25”作为函数的输入。

set_param (“myModel /我的常数”“价值”“25”

有关块参数的编程名称的列表,请参见屏蔽一些参数

有关编程式模拟的更多信息,请参见以编程方式运行模拟

避免使用get_param而且set_param函数,使用MATLAB的名称®变量或金宝app仿真软件。参数对象作为参数值,并在命令提示符下更改变量或对象的值。看到通过创建变量共享和重用块参数值

指定参数值

目标 块参数值 描述

将参数值存储在模型文件中。

2.3

[1.2 2.3 4.5;7.9 8.7 6.5]

2 + 3i

文字数值。指定标量、向量、矩阵或多维数组。使用要指定复杂的值。

  • 访问参数值,而不必在模型中定位或识别块。

  • 在不修改模型文件的情况下更改参数值。

  • 在块之间或模型之间共享参数值。

  • 在扫描或调优值时,用特定的名称标识参数。

myvar#

存在于工作空间中的MATLAB变量。

有关更多信息,请参见通过创建变量共享和重用块参数值

  • 避免工作区变量之间的名称冲突。

  • 使用层次结构和有意义的名称组织参数值。

  • 减少模型使用的工作区变量的数量。

myParam.a.SpeedVect

参数结构字段。

有关更多信息,请参见在结构中组织相关块参数定义

使用矩阵或数组变量的一部分。例如,设置a的参数n-D查找表块。

myMatrixParam (: 2)

索引操作。

  • 与参数值分开定义参数特征,如数据类型、复杂度、单位、允许取值范围和维度。

  • 使用自定义文档定义系统常量。

  • 在生成的代码中创建一个可调参数。

  • 将变量的值设置为包含常量和其他变量的数学表达式。

myParam

参数对象。

有关更多信息,请参见使用参数对象

  • 将参数值表示为已知物理常数之间的数学关系,而不是无法识别的文字数字。

  • 减少模型中的块人口。

  • 通过使用代码而不是块来建模一个模糊或琐碎的计算。

  • 使用MATLAB算子和函数进行计算。

  • 编写一个自定义的MATLAB函数来计算参数值。

5^3.2 - 1/3

myOtherparam + sin(0.78*pi)

myFun (15.23)

表达式或自定义函数。

有关更多信息,请参见使用数学表达式,MATLAB函数和自定义函数

通过使用其他数据类型指定块参数值

15.23

单(15.23)

myParam

类型化或非类型化表达式,数值MATLAB变量或参数对象。

有关控制参数数据类型的详细信息,请参见控制块参数数据类型

使用参数对象

参数对象为金宝app仿真软件。参数对象和您创建的子类的对象。参数对象存在于工作空间中,例如基本工作空间或数据字典。

可以使用参数对象定义系统常量。例如,使用一个参数对象来表示地球的半径。使用对象的属性来指定物理单位并记录值的用途。

创建参数对象,为代码生成准备模型。您可以配置参数对象,使其在生成的代码中显示为可调全局变量。还可以通过对象控制参数数据类型。

若要在模型中创建和使用参数对象,请参见数据对象.有关使用变量设置块参数值的信息,请参见通过创建变量共享和重用块参数值

使用数学表达式,MATLAB函数和自定义函数

可以将块参数值设置为调用MATLAB函数和运算符的表达式,例如而且马克斯.您还可以调用自己在MATLAB路径上编写的自定义函数。

假设块算法的一部分使用变量来计算算法其余部分使用的单个常数。您可以通过创建多个块来执行计算。

相反,创建一个单一的常数使用MATLAB代码编写的表达式的块。这种技术减少了块算法的大小,提高了可读性。

您可以通过使用表达式代替许多块来对算法的复杂部分建模。若要对现有信号进行操作,请使用数学表达式作为算法块中的参数值,例如获得a的参数获得块。

使用表达式,您还可以调用自定义函数来设置块参数值。假设您编写了一个MATLAB函数,通过接受单个输入数来计算控制算法的最优P、I和D参数。

你可以参数化aPID控制器块通过使用函数来设置参数值。

为了更好地使用表达式,可以考虑以下建议:

  • 如果使用变量和参数对象,则可以显式地为变量和对象所表示的实际数量之间的代数关系建模。在参数对象中使用表达式,如使用数学表达式设置变量值

  • 在块参数值中编辑表达式时,要导航到函数的文档,请使用按钮后面的参数值。您还可以导航到自定义函数的源代码。

对其他建模目标的考虑

根据建模目标选择一种技术来设置块参数值。

目标 特性或产品下载188bet金宝搏 最佳实践
快速运行多个模拟。 金宝app仿真软件。SimulationInput对象和sim卡函数 使用变量或参数对象设置块参数值。这种技术可以帮助您为参数分配有意义的名称,并避免必须识别或定位模型中的块。看到优化、估计和扫描块参数值
在测试期间扫描参数值。 金宝app®测试™ 使用变量或参数对象设置块参数值。使用迭代和参数重写来运行多个测试。看到参数将覆盖(金宝app仿真软件测试)而且测试迭代(金宝app仿真软件测试)
估计和优化参数值。 金宝appSimulink设计优化™

使用变量或参数对象设置块参数值。

估计或优化使用其他数据类型的参数,使用参数对象将值与数据类型分开。

参数估计请参见参数估计(金宝appSimulink设计优化).有关响应优化,请参见优化模型响应(金宝appSimulink设计优化)

从模型生成代码。通过SIL/PIL或外部模式模拟外部程序。 金宝app仿真软件编码器™

使用参数对象设置块参数值。这种技术可以帮助您在生成的代码中声明和识别可调参数,并控制参数数据类型。看到在生成的代码中创建可调校准参数(金宝app仿真软件编码器)

当您使用表达式来设置块参数值时,请避免使用导致在生成的代码中失去可调性的操作符和函数。看到可调表达式限制(金宝app仿真软件编码器)

另请参阅

相关的话题