主要内容

简化高阶植物模型

这个例子展示了如何使用鲁棒控制工具箱™通过更简单的低阶模型来近似高阶对象模型。

介绍

强大的控制工具箱提供处理大型型号的工具,例如:

  • 高阶植物:详细的第一性原理或有限元模型的工厂往往有高阶。通常我们想要简化这类模型以进行模拟或控制设计。

  • 高阶控制器:鲁棒控制技术通常产生高阶控制器。例如,当我们使用频率加权函数塑造开环响应时,这是常见的。我们希望简化此类控制器的实现。

为了控制目的,通常足以在交叉频率附近具有准确的模型。对于模拟,足以捕获激励信号的频率范围内的基本动态。这意味着通常可以找到高阶模型的低位近似值。强大的控制工具箱提供各种型号减少算法,以最适合您的要求和模型特性。

模型约简过程

模型简化任务通常包括以下步骤:

  • 分析模型的重要特性,从其时域或频域响应得到预兆例如

  • 通过绘制原始模型的Hankel奇异值来确定适当的降阶(Hankelsv.)为了确定可以丢弃哪些模式(状态)而不牺牲关键特征。

  • 选择一个约简算法。工具箱中可用的一些还原方法有:平衡bstmr舒尔姆hankelmr中心

我们可以通过顶级接口轻松访问这些算法降低.该方法采用了原始和减少模型之间的“亲近”的不同措施。选择是依赖的应用。让我们尝试每个人来调查他们的相对优点。

  • 验证:我们通过将减少模型的动态与原件进行比较来验证我们的结果。如果结果不令人满意,我们可能需要调整我们的减少参数(选择式顺序,算法,误差等)的选择。

示例:建筑物刚体运动的模型

在这个例子中,我们将减少方法应用于洛杉矶大学医院建设的模型。该模型采用了2002-2的Slicot工作说明,“用于模型减少线性时间不变动态系统的基准示例的集合,”由Y.Chahlaoui和P.V。门。它有八层,每个楼层有三个自由 - 两个位移和一个旋转。我们使用48状态模型代表这些位移中的任何一个的输入 - 输出关系,其中每个状态表示位移或其变化率(速度)。

让我们为示例加载数据:

加载buildingdata.mat

检查植物动态

让我们从分析模型的频率响应开始:

博德(G)网格在…上

图中包含2个轴对象。axis对象1包含一个类型为line的对象。这个对象表示G. Axes对象2包含一个类型为line的对象。这个对象表示G。

图1:波德图分析频率响应

从模型的频率响应观察到,系统的基本动态位于3至50弧度/秒的频率范围内。幅度在非常低和高频范围内下降。我们的目标是找到一个低阶模型,可以将该频率范围内的信息内容保留到可接受的精度水平。

计算Hankel奇异值

要理解模型的哪些状态可以安全丢弃,请查看模型的Hankel奇异值:

hsv_add=汉克尔斯夫(G);酒吧(hsv_add)标题(“汉克尔模型奇异值(G)”);包含('州数量')伊拉贝尔(“奇异值(\ sigma_i)”)行([10.5 10.5],[0 1.5e-3],“颜色”“r”“线型”' - '“线宽”1)文本(6日,1.6 e - 3,“10占主导地位的国家。”

图包含轴对象。具有型号的标题Hankel奇异值的轴对象(g)包含3个类型的栏,线,文本的对象。

图2:模型的Hankel奇异值(G)。

汉克尔奇异值图表明,该系统存在四种主导模态。然而,其余模式的贡献仍然是显著的。我们将在10个状态处画一条线,并丢弃剩下的状态,以找到一个10阶简化模型GR.这最接近于原始系统G

使用附加误差界执行模型缩减

功能降低是工具箱中可用的所有模型减少例程的网关。我们将使用默认的方形余额截断('balancmr')选项降低作为第一步,该方法使用“加法”误差界进行缩减,这意味着它试图在频率范围内保持绝对近似误差均匀较小。

%计算10阶简化模型(reduce默认使用balancmr方法)[Gr_add, info_add] =减少(G, 10);%现在将原始模型G与简化模型Gr_add进行比较博德(G,“b”,gr_add,“r”)网格在…上标题(“将原始模型(G)与简化模型(Gr\\ U add)进行比较”)传说('g  -  48-state原始'“Gr\\ U添加-10状态减少”'地点'“东北”

图中包含2个轴对象。轴对象1包含2个类型的2个对象。这些对象代表G  -  48状态原稿GR \\ _ add  -  10状态减少。轴对象2包含2个类型的2个对象。这些对象代表G  -  48状态原稿GR \\ _ add  -  10状态减少。

图3:将原始模型(G)与简化模型(Gr_-add)进行比较

使用乘法误差界进行模型约简

如图3所示,缩小模型较好地捕获到30 rad / s以下的共振,但低频区域(<2 rad / s)中的匹配差。此外,减少的模型不会完全捕获30-50 RAD / S频率范围内的动态。低频下大误差的可能解释是这些频率的模型的相对较低的增益。因此,甚至在这些频率下的大错误甚至对整体误差有没有贡献。

为了解决这个问题,我们可以尝试一种乘法错误方法,例如bstmr.该算法强调相对误差而不是绝对误差。因为相对比较在增益接近零时不起作用,所以我们需要添加最小增益阈值,例如通过添加馈通增益D到我们原来的模型。假设我们不担心在100 dB以下的收益时误差,我们可以将馈通设置为1E-5。

GG = G;GG.D = 1 e-5;

现在,让我们看看乘法(相对)错误的奇异值(使用的'mult'选项)Hankelsv.

hsv_mult=hankelsv(GG,“乘”);酒吧(HSV_Mult)标题(“模型(G)的乘性误差奇异值”);包含('州数量')伊拉贝尔(“奇异值(\ sigma_i)”

图中包含一个Axis对象。标题为“模型(G)的乘性误差奇异值”的Axis对象包含一个bar类型的对象。

图4:模型乘法误差奇异值(G)

26阶模型看起来很有希望,但为了与之前的结果进行比较,我们还是坚持减少10阶。

%使用bstmr算法选项进行模型简化[Gr_mult,info_mult]=reduce(GG,10,“算法”'BST');%现在将原始型号G与减少模型Gr_Mult进行比较波德(G, Gr_add Gr_mult,{1飞行,1 e4}),网格在…上标题('将原始(g)与减少的模型(gr \ _add和gr \ _mult)'比较)传说('g  -  48-state原始'“Gr\\u添加(平衡MR)”“Gr\_mult(bstmr)”一词'地点'“东北”

图中包含2个轴对象。坐标轴对象1包含3个类型为line的对象。这些对象表示G - 48状态原始,Gr\\_add (balancmr), Gr\\_mult (bstmr)。axis对象2包含3个类型为line的对象。这些对象表示G - 48状态原始,Gr\\_add (balancmr), Gr\\_mult (bstmr)。

图5:比较原始(G)与简化模型(Gr_add和Gr_mult)

使用乘法误差法,原始模型和简化模型之间的拟合要好得多,即使在低频率下。我们可以通过比较阶跃响应来证实这一点:

步骤(g,gr_add,gr_mult,15)%步进响应直到15秒传奇(“G:48州原文”“Gr\\添加:10个州(balancmr)”'Gr\\ mult:10状态(bstmr)'

图中包含一个轴对象。axes对象包含3个line类型的对象。这些对象表示G:48原始状态、Gr\\\ U添加:10状态(平衡状态)、Gr\\\ mult:10状态(平衡状态)。

图6:三种模型的阶跃响应

验证结果

所有算法都提供了近似误差的界限平衡,近似误差由错误模型的峰值(最大)增益来测量G-Greduced在所有频率。这个峰值增益也被称为误差模型的h -∞范数。加法误差算法的误差边界如下:

G - G r 一个 d d 2 1 1 4 8 σ E r r o r B o u n d

其中,和等于G(参赛作品11到48高铁加).我们可以通过比较此不等式的两侧来验证此界是否满足:

标准(G-Gr_添加,inf)%实际误差
ans = 6.0251 e-04
%理论界限(存储在“info”的“errownound”字段中%结构返回|减少|)info_add.errorbound.
ans=0.0047

对于乘法错误方法,例如bstmr,近似误差由相对误差模型跨频率的峰值增益来测量G \ (G-Greduced).错误界限是这样的

G - 1 G - G r u l t 1 1 4 8 1 + 2 σ σ + 1 + σ 2 - 1 E r r o r B o u n d

总和在丢弃的地方乘法汉克尔奇异值计算汉克尔斯夫(G,'mult').同样,我们可以比较简化模型的这些边界Gr_mult

标准(GG\(GG-Gr_mult),inf)%实际误差
ans=0.5949
%的理论束缚信息多个错误绑定
ans = 546.1730

绘制相对误差以进行确认

bodemag (GG \ (GG-Gr_mult){1飞行,1 e3})网格在…上文本(0.1,-50,'峰值增益:17.2 rad / s'的峰值增益:-4.6 dB(59%))头衔(“原始模型(G)和简化模型(Gr\\\ mult)之间的相对误差”

图包含轴对象。轴对象包含2个类型的类型,文本。此对象表示Untitled1。

图7:原始模型(G)和简化模型(Gr_mult)之间的相对误差

从上面的相对误差图来看,17.2 rad/s的相对误差高达59%,这可能超过了我们愿意接受的范围。

选择与期望的精度水平兼容的最低顺序

提高准确度Gr_mult,我们需要增加阶数。为了达到至少5%的相对精度,我们能得到的最低阶数是多少?函数降低可以自动选择符合我们所需精度水平的最低阶模型。

%指定最大5%的近似误差[Gred,info]=reduce(GG,“ErrorType”“乘”'maxerror',0.05);尺寸(灰色)
状态空间模型,包含1个输出,1个输入和35个状态。

该算法选择了一个34状态的简化模型磨碎.将实际误差与理论界限进行比较:

标准(GG\(GG Gred),inf)
ans = 0.0068
信息。Err或Bound
ans = 0.0342.

看看相对误差大小作为频率的函数。更高的精度是以更大的模型顺序为代价的(从10到34)。注意,实际的最大误差是0.6%,远远低于5%的目标。这种差异是函数的结果bstmr使用错误界限而不是实际错误来选择订单。

bodemag(GG\(GG Gred),{1,1e3})网格在…上文本(-75,峰值增益:在73.8 rad/s时为-43.3 dB (0.6%))头衔(“原始模型(G)和简化模型(Gred)之间的相对误差”

图包含轴对象。轴对象包含2个类型的类型,文本。此对象表示Untitled1。

图8:原始模型(G)和简化模型(Gred)之间的相对误差

比较博德的响应

bode(G,Gred,{1e-2,1e4})格在…上传奇(“G - 48州原创”“Gred-34州减少”

图中包含2个轴对象。轴对象1包含2个line类型的对象。这些对象表示G-48状态原始,Gred-34状态简化。轴对象2包含2个line类型的对象。这些对象表示G-48状态原始,Gred-34状态简化。

图9:48态原始模型的Bode图和34状态减少模型

最后,比较原始模型和简化模型的阶跃响应,它们几乎无法区分。

步骤(G),“b”,磨削,'r--'15)%步进响应直到15秒传奇(“G:48州原文”'格雷德:34州(bstmr)')文本(5,-4E-4,“最大相对误差<0.05”

图中包含一个Axis对象。Axis对象包含3个line、text类型的对象。这些对象表示G:48状态原始,Gred:34状态(bstmr)。

图10:48状态原始模型和34状态简化模型的阶跃响应图

另请参阅

|

相关的话题