设置块参数值

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

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

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

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

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

属性设置块参数参数选项卡中的模型数据编辑器(在建模选项卡上,单击模型数据编辑器),物业督察(在建模选项卡,在设计点击属性检查器),或“块”对话框。有关详细信息,请参阅添加块并设置参数.要设置块样本时间,请参见指定样品时间

提示

您可以使用模型资源管理器一次性批量更改多个块参数值。有关更多信息,请参见模型资源管理器

以编程方式访问参数值

要以编程方式访问块参数值,请使用get_param设置参数功能。您可以使用此技术来:

  • 以编程方式构造模型。

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

要使用脚本在模拟运行之间扫描参数值,请使用万博1manbetx仿真软件。SimulationInput对象而不是get_param设置参数.看到优化、估计和扫描块参数值

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

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

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

设置参数(“myModel /我的常数”“价值”“25”

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

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

避免使用get_param设置参数函数,使用MATLAB的名称®可变或万博1manbetxSimulink.参数对象作为参数值,并在命令提示符处更改变量或对象的值。看到通过创建变量共享和重用块参数值

指定参数值

球门 块参数值 描述

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

2.3

[1.2 2.3 4.5;7.9 8.7 6.5)

2+3i

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

  • 无需在模型中定位或标识块即可访问参数值。

  • 更改参数值而不必修改模型文件。

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

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

myvar#

存在于工作区中的MATLAB变量。

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

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

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

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

myParam.a.SpeedVect

参数结构字段。

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

使用矩阵或数组变量的一部分。例如,设置一天的查找表块。

myMatrixParam(:,2)

索引操作。

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

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

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

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

myParam

参数对象。

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

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

  • 减少模型中的块数量。

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

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

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

5 ^ 3.2 - 1/3

myParam * myOtherparam + sin(0.78*pi)

myFun (15.23)

表达式或自定义函数。

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

指定块参数值时使用的数据类型不是双重的

15.23

单(15.23)

myParam

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

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

使用参数对象

参数对象万博1manbetxSimulink.参数对象和您创建的子类的对象。参数对象存在于工作区(如基本工作区或数据字典)中。

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

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

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

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

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

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

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

您可以通过使用表达式而不是许多块对算法的复杂部分进行建模。要对已存在的信号进行操作,可以使用数学表达式作为算法块中的参数值,例如获得参数的获得块。

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

你可以参数化PID控制器块,使用函数设置参数值。

要充分利用表达式,请考虑以下提示:

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

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

其他建模目标的注意事项

选择一种基于建模目标设置块参数值的技术。

球门 功能或产品s manbetx 845 最佳实践
快速运行多个模拟。 万博1manbetx仿真软件。SimulationInput对象和sim卡作用 使用变量或参数对象设置块参数值。此技术可帮助您为参数指定有意义的名称,并避免在模型中标识或定位块。请参阅优化、估计和扫描块参数值
测试时扫描参数值。 万博1manbetx®测试™ 使用变量或参数对象设置块参数值。使用迭代和参数重写来运行多个测试。看到参数覆盖(万博1manbetx仿真软件测试)测试迭代(万博1manbetx仿真软件测试)。
估计和优化参数值。 万博1manbetx仿真软件优化设计™

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

要估计或优化使用其他数据类型的参数,请执行以下操作:双重的,使用参数对象将值与数据类型分开。

参数估计请参见参数估计(万博1manbetx仿真软件设计优化)。有关响应优化,请参见优化模型响应(万博1manbetx仿真软件设计优化)。

从模型生成代码。通过SIL/PIL或外部模式模拟模拟外部程序。 万博1manbetx仿真软件编码器™

使用参数对象设置块参数值。此技术帮助您在生成的代码中声明和标识可调参数,并控制参数数据类型。看见在生成的代码中创建可调谐校准参数(万博1manbetx仿真软件编码器)。

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

另请参阅

相关的话题