指定批量线性化的参数样本
关于参数样本
块参数配置Simulink®用几种方法建模。例如,您可以使用块参数来指定各种系数或控制器采样次数。也可以使用离散参数,如控制输入多端口切换块,以控制模型中的数据路径。改变参数的值可以帮助您理解它对模型行为的影响。
当使用任何Simulink控制设计™线性化工具(或调优工具slTuner
或控制系统调谐器),您可以指定一组块参数值,在其中使模型线性化。所有的值集合称为a参数网格或参数样本.这些工具对模型进行批量线性化,为参数网格中的每个值计算线性化。您可以更改多个参数,从而扩展参数网格维度。在使用命令行线性化工具时,线性化
命令或slLinearizer
或slTuner
接口中,使用带字段的结构指定参数样例的名字
而且价值
.在模型线性化电路或控制系统调谐器,您可以使用图形界面指定参数示例。
哪些参数可以采样?
您可以改变任何模型参数,其值是由模型工作区中的一个变量给出的®工作区或数据字典。在不同参数的情况下可调,线性化工具只需编译一次模型即可计算不同参数值的传递函数。这种效率对于重复编译成本高的模型尤其有利。
有关更多信息,请参见改变参数值时的批量线性化效率.
在命令行更改单个参数
改变单个参数的值以进行批线性化线性化
,slLinearizer
,或slTuner
,将参数网格指定为具有两个字段的结构。的的名字
字段包含指定参数的工作空间变量的名称。的价值
字段包含该参数在线性化过程中要取的值的向量。
例如,Watertank
模型有三个参数定义为MATLAB工作空间变量,一个
,b
,一个
.以下命令为for指定一个参数网格一个
.
参数。Name =“一个”;参数。价值=保兑;
在这里,保兑
数组是否指定的样例值一个
.
下表列出了指定参数样例的一些常用方法。
样本空间类型 | 如何指定参数样本 |
---|---|
线性变化的 | 参数。价值=linspace (A_min A_max num_samples) |
对数变化 | 参数。价值=logspace(一个_min,A_max,num_samples) |
随机 | 参数。价值=兰德(1,num_samples) |
自定义 | 参数。价值=custom_vector |
如果模型使用的变量不是标量变量,则将参数名称指定为解析为数值标量值的表达式。例如,假设这样Kpid
为PID增益向量。这个向量的第一项,Kpid
,被用作模型中块中的增益值。使用下面的命令使用矢量中给定的值来改变增益Kpvals
:
参数。Name =“Kpid(1)”;参数。价值=Kpvals;
在创建结构之后参数
:
把它传给
线性化
随着参数
输入参数。把它传给
slLinearizer
随着参数
输入参数,当创建slLinearizer
接口。设置
参数
现有的物业slLinearizer
接口参数
.
在图形工具中改变单个参数
为批量线性化指定单个参数的变化模型线性化电路,在线性分析选项卡,在参数的变化下拉列表,单击选择要更改的参数
.(在控制系统调谐器,参数的变化下拉列表控制系统选项卡)。
点击管理参数.在选择模型变量对话框中,选中要更改的参数。该表列出了MATLAB工作区和模型工作区中使用的所有变量,无论是否可调。
请注意
如果参数不是标量变量,单击如果需要,指定表达式索引并输入解析为数值标量值的表达式。例如,如果一个
是一个向量,回车(3)
中的第三个条目一个
.如果一个
是一个结构,而要更改的标量参数是价值
该结构的字段,回车A.Value
.索引的变量出现在变量列表中。
点击好吧.所选变量出现在参数的变化表格使用该表手动指定参数值,或自动生成值。
手动指定参数值
若要手动指定值,请单击将行添加到表中插入行选择其中一个在上面插入行
或在下方插入行
.然后,根据需要编辑表中的值。
当你回到线性分析TAB,线性化模型,模型线性化电路中列出的所有参数值线性化参数的变化表格
请注意
在控制系统调优器中,当您完成指定参数变化时,必须在继续调优之前应用更改。要这样做,在参数的变化选项卡上,单击应用.Control System Tuner应用指定的参数变化,重新线性化模型,并更新所有现有的图。
自动生成参数值
单击可自动生成值生成值.在“生成参数值”对话框中,单击值列中,为变量所需的参数值输入表达式。例如,输入一个表达式,例如linspace (A_min A_max num_samples)
,或(10:2:30)
.
点击覆盖中的值替换参数的变化表中包含所生成的值。
当你回到线性分析TAB,线性化模型,模型线性化电路计算每个参数值的线性化。
请注意
在控制系统调优器中,当您完成指定参数变化时,必须在继续调优之前应用更改。要这样做,在参数的变化选项卡上,单击应用.Control System Tuner应用指定的参数变化,重新线性化模型,并更新所有现有的图。
多维参数网格
当您一次更改多个参数时,您将生成更高维度的参数网格。例如,改变两个参数得到一个参数矩阵,改变三个参数得到一个三维参数网格。考虑以下参数网格:
在这里,你改变三个参数的值,一个,b,c.这些样本形成了一个3 × 4 × 5的网格。当批量线性化模型时,党卫军
模型数组,sys
,为批处理结果。类似地,当批处理您的模型时,您将得到一个操作点对象数组。
在命令行修改多个参数
改变多个参数的值,以便批量线性化线性化
,slLinearizer
,或slTuner
,将参数样本指定为结构数组。该结构的每个参数的值都有一个条目。每个参数的结构与中描述的相同在命令行更改单个参数.您可以指定价值
字段指定参数为任意维度的数组。然而,大小价值
字段必须匹配所有参数。所有参数的对应数组项,也称为参数格点,必须映射到所需的参数组合。当软件将模型线性化时,它计算一个线性化—an党卫军
模型——用于每个网格点。该软件填充SamplingGrid
每个线性化模型的属性,以及该模型对应的参数网格点信息。
指定全网格
假设你的模型有两个参数,你想改变它们的值,一个而且b:
你想要线性化模型的每一个组合一个而且b,也称为完整的网格:
使用创建矩形参数网格ndgrid
.
A1 = 1;A2 = 2;A = [a1 a2];B1 = 3;B2 = 4;B = [b1 b2];[A,B] = ndgrid(A,B)
>> a a = 1 1 2 2 >> b b = 3 4 3 4
创建结构数组,参数个数
,它指定参数网格。
参数(1)。Name =“一个”;参数(1)。价值=一个;参数(2)。Name =“b”;参数(2)。值= B;
通常,为指定一个完整的网格N参数,使用ndgrid
获得N网格阵列。
[P1,…,PN] = ndgrid(p1,...,pN);
在这里,p1
、……pN
为参数样本向量。
创建一个1xN结构数组。
参数(1)。Name ='p1'; params(1).Value = P1; ... params(N).Name = 'pN'; params(N).Value = PN;
指定全网格的子集
如果您的模型很复杂,或者您改变了许多参数的值,那么对整个网格的模型进行线性化可能会非常昂贵。在这种情况下,您可以使用类似表格的方法指定整个网格的一个子集。使用下面的例子指定全网格,假设您想对以下组合的模型进行线性化一个而且b:
创建结构数组,参数个数
,它指定此参数网格。
A = [a1 a1];参数(1)。Name =“一个”;参数(1)。价值=一个;B = [b1 b2];参数(2)。Name =“b”;参数(2)。值= B;
在图形工具中改变多个参数
中批量线性化的多个参数的值模型线性化电路或控制系统调谐器,打开选择模型变量对话框,如在图形工具中改变单个参数.在对话框中,勾选要更改的所有变量。
请注意
如果要更改的参数不是标量变量,请单击如果需要,指定表达式索引并输入解析为标量值的表达式。例如,如果一个
是一个向量,回车(3)
中的第三个条目一个
.如果一个
是一个结构,而要更改的标量参数是价值
该结构的字段,回车A.Value
.索引的变量出现在变量列表中。
点击好吧.所选变量出现在参数的变化表格表中的每一列都对应一个选定的变量。表中的每一行表示一组完整的参数值,在该参数值处对模型进行线性化。当你线性化的时候,模型线性化电路计算表中有多少行的线性模型。使用该表手动指定参数值的组合,或自动生成值组合。
手动指定参数值
若要手动指定值,请单击将行添加到表中插入行选择其中一个在上面插入行
或在下方插入行
.然后,根据需要编辑表中的值。例如,下表指定了四个参数-值对的线性化:(Ki2 Kp2)
=(3.5,1),(3.5,2),(5,1)和(5,2)。
当你回到线性分析TAB,线性化模型,模型线性化电路计算每个参数值对的线性化。
请注意
在控制系统调优器中,当您完成指定参数变化时,必须在继续调优之前应用更改。要这样做,在参数的变化选项卡上,单击应用.Control System Tuner应用指定的参数变化,重新线性化模型,并更新所有现有的图。
自动生成参数值
单击可自动生成值生成值.在“生成参数值”对话框的“值”列中,为每个变量的参数值输入表达式,例如linspace (A_min A_max num_samples)
,或(10:2:30)
.例如,下面的条目为所有可能的组合生成参数-值对Kp1 = [0.1,0.15,0.2,0.25,0.3]
而且Kp2 = [0.03,0.04,0.05]
.
点击覆盖中的值替换参数的变化表中包含所生成的值。
当你回到线性分析TAB,线性化模型,模型线性化电路计算每个参数值对的线性化。
请注意
在控制系统调优器中,当您完成指定参数变化时,必须在继续调优之前应用更改。要这样做,在参数的变化选项卡上,单击应用.Control System Tuner应用指定的参数变化,重新线性化模型,并更新所有现有的图。
另请参阅
ndgrid
|linspace
|logspace
|兰德
|slLinearizer
|slTuner
|线性化