主要内容

批处理计算稳态操作点参数变化

块参数配置模型金宝app®模型在几个方面。例如,您可以使用块参数来指定各种系数或控制器样品时间。您还可以使用一个离散参数,控制输入多端口切换块,控制模型中的数据通路。变化一个参数的值可以帮助您理解它对模型的影响行为。同样,你可以改变植物的参数模型的控制系统研究控制器的鲁棒性植物的变化。

当修剪一个模型使用findop,您可以指定一组调整模型的参数值。全套的值被称为参数网格参数样本findop计算每一个操作点值在网格的参数组合。可以不同的多个参数,从而扩展参数网格尺寸。

哪些参数可以采样?

你可以改变任何模型参数值由一个变量在模型中工作区,MATLAB®工作区,或数据字典。都是在不同的情况下的参数可调,findop只需要找到一个模型编译操作点不同的参数值。这效率是特别有利的反复编译模型是昂贵的。

不同单一参数

改变一个参数的值为批修剪findop,指定参数网格结构有两个字段。的的名字字段包含工作空间变量的名称指定的参数。的价值字段包含一个向量的值参数在修剪。

例如,Watertank模型有三个参数定义为MATLAB工作空间变量,一个,b,一个。以下命令为单一参数指定一个参数网格一个

参数。Name =“一个”;参数。价值=保兑;

在这里,保兑是一个数组指定的样本值吗一个

下表列出了一些常见的方式指定参数样本。

参数样本空间类型 如何指定参数的样品吗
线性变化的 参数。价值=linspace(A_min,A_max,num_samples)
对数变化 参数。价值=logspace(A_min,A_max,num_samples)
随机 参数。价值=rand(1,num_samples)
自定义 参数。价值=custom_vector

如果使用的变量模型不是一个标量变量,参数名称指定为一个表达式解析为一个数字标量值。例如,假设Kpid是一个向量的PID收益。第一项向量,Kpid在一块,作为获得价值模型。使用下面的命令来改变,获得使用给定的值在一个向量Kpvals:

参数。Name =“Kpid (1)”;参数。价值=Kpvals;

在您创建的结构参数把它传递给findop随着参数输入参数。

多维参数网格

当你改变多个参数,生成参数网格更高的维度。例如,不同的两个参数产生参数矩阵,和不同的三个参数产生一个三维网格参数。考虑以下参数网格用于批量调整:

在这里,你三个参数的值不同,一个,b,c。样品3-by-4-by-5网格形式。人事处与相同的维度是一个数组,其中包含相应的削减操作点对象。

不同的多个参数

不同的多个参数值批修剪findop作为一个结构数组,指定参数样本。每个参数的结构有一个条目的值不同。每个参数的结构描述的是一样的不同单一参数。您可以指定价值字段为一个参数数组的维度。然而,的大小价值所有参数的字段必须匹配。对应的数组条目的所有参数,也称为参数网格点,必须映射到一个指定的参数组合。当阀内件的软件模型,计算每个网格点的操作点。

指定完整的网格

假设你的模型有两个参数的值你想改变,一个b:

一个 = { 一个 1 , 一个 2 } b = { b 1 , b 2 }

你想要削减的每一个组合的模型一个b也称为完整的网格:

{ ( 一个 1 , b 1 ) , ( 一个 1 , b 2 ) ( 一个 2 , b 1 ) , ( 一个 2 , b 2 ) }

创建一个矩形网格参数使用ndgrid

a1 = 1;a2 = 2;一个= (a1 a2);b1 = 3;b2 = 4;b = (b1 b2);[A, B] = ndgrid (A, B)
> > = 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是参数样本向量。

创建一个1 xN结构数组。

参数(1)。Name ='p1'; params(1).Value = P1; ... params(N).Name = 'pN'; params(N).Value = PN;

网格指定完整的子集

如果您的模型是复杂或者你改变很多参数的值,调整整个网格的模型会变得昂贵。在这种情况下,您可以指定完整的电网使用类似于表的一个子集的方法。使用的例子指定完整的网格,假设你想修剪后的模型的组合一个b:

{ ( 一个 1 , b 1 ) , ( 一个 1 , b 2 ) }

创建一个结构数组,参数个数,指定该参数网格。

一个= [a1 a1];参数(1)。Name =“一个”;参数(1)。价值=一个;B = (b1 b2);参数(2)。Name =“b”;参数(2)。值= B;

批量调整模型参数变化

这个例子展示了如何获得一个模型的多个操作点通过改变参数值。你可以学习控制器鲁棒性植物变化通过批处理线性化模型使用修剪操作点。

打开仿真软件模型。金宝app

sys =“watertank”;open_system(系统)

不同的参数一个b在其标称值的10%。指定三个值一个和四个值b为每个参数,创建一个3×4价值网格。

[A_grid, b_grid] = ndgrid (linspace (0.9 * 1.1 * 3),linspace (0.9 * b, b 1.1 * 4));

创建一个参数结构数组,指定每个参数的名称和网格点。

参数(1)。Name =“一个”;参数(1)。价值=一个_grid; params(2).Name =“b”;参数(2)。价值=b_grid;

创建一个默认的操作点的规范模型,它指定模型状态都是未知的,必须在稳态修剪操作点。

opspec = operspec(系统)
watertank opspec =操作点规范模型。(时变组件评估在时间t = 0): - - - - - - - - - - - x已知稳态分钟马克斯dxMin dxMax……………………………………(1) watertank / PID控制器/集成商/连续/集成商0错误真的负无穷到正无穷负无穷到正无穷(2)watertank /水箱系统/ H 1假真的0正无穷正输入:- - - - - - - - - - -没有一个输出:- - - - - - - - - - -

默认情况下,findop在命令窗口显示一个操作点搜索报告为每个削减操作。抑制报告显示,创建一个削减选项设置和关闭操作点搜索报告显示。

选择= findopOptions (“DisplayReport”,“关闭”);

削减模型使用指定的操作规范,参数网格和选项设置。

[op, opreport] = findop (sys、opspec params,选择);

findop阀内件为每个参数组合模型。只使用一个模型编译的软件。人事处是一个3×4指定的操作点对应的对象数组参数网格点。

视图操作点的第一行和第一列人事处

op (1, 1)
ans watertank =操作点模型。(时变组件评估在时间t = 0): - - - - - - - - - - - x ______ (1) watertank / PID控制器/集成商/连续/集成商1.4055 (2)watertank /水箱系统/ H 10个输入:- - - - - - - - - - -

批量调整模型已知的国家来自参数值

这个例子展示了如何批量调整模型当指定的参数变化影响认识国家削减。

批量调整模型参数变化的例子中,模型是修剪,以满足一个操作点规范包含未知状态。在其他情况下,削减模型状态是已知的,但取决于不同参数的值。在这种情况下,您不能批量调整模型使用一个操作规范。你必须为每个参数值创建一个单独的规范网格点。

打开仿真软件模型。金宝app

sys =“scdairframeTRIM”;open_system(系统)

在这个模型中,空气动力和力矩取决于速度,五美元发病率,\α美元

改变五美元\α美元参数,并创建一个6-by-4参数网格。

nA = 6;%的alpha值nV = 4;% V值的数量alphaRange = linspace (20, -20 nA) *π/ 180;vRange = linspace (700、1400、nV);[alphaGrid, vGrid] = ndgrid (alphaRange vRange);

因为一些已知状态值减少依赖的价值观五美元\α美元,您必须创建一个单独的操作点规范对象为每个参数组合。

i = 1: nAj = 1: nV%在模型中设置的参数值。alpha_ini = alphaGrid (i, j);v_ini = vGrid (i, j);%根据指定的参数创建默认的规范。opspec (i, j) = operspec(系统);%指定哪些状态是已知的,哪些是在稳定状态。opspec (i, j) .States (1)。知道= (1,1);opspec (i, j) .States (1)。稳态= (0,0);opspec (i, j) .States (3)。知道= (1,1);opspec (i, j) .States (3)。稳态= [0,1];opspec (i, j) .States (2)。= 1;opspec (i, j) .States (2)。稳态= 0;opspec (i, j) .States (4)。知道= 0;opspec (i, j) .States (4)。稳态= 1;结束结束

创建一个参数结构批量修剪。为每个参数指定一个名称和值网格。

参数(1)。Name =“alpha_ini”;参数(1)。价值=一个lphaGrid; params(2).Name =“v_ini”;参数(2)。价值=vGrid;

修剪网格模型使用指定的参数和操作规范。当你指定的数组操作点规格和不同的参数值,数组的尺寸规范必须匹配参数网格尺寸。

选择= findopOptions (“DisplayReport”,“关闭”);op = findop (sys、opspec params,选择);

findop阀内件为每个参数组合模型。人事处6-by-4数组的操作点对象对应于指定的参数网格点。

另请参阅

||

相关的话题