主要内容

高阶对象模型的简化

此示例演示如何使用鲁棒控制工具箱™ 用较简单的低阶模型近似高阶对象模型。

介绍

鲁棒控制工具箱提供了处理大型模型的工具,如:

  • 高级工厂:工厂的详细第一原理或有限元模型往往具有较高的阶数。我们通常希望简化此类模型,以便进行模拟或控制设计。

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

为了控制目的,一般来说,在交叉频率附近有一个精确的模型就足够了。对于仿真而言,只要在激励信号的频率范围内捕捉到基本的动态就足够了。这意味着通常可以找到高阶模型的低阶近似。鲁棒控制工具箱提供了各种模型缩减算法,以最适合您的要求和您的模型特性。

模型简化过程

模型缩减任务通常包括以下步骤:

  • 从模型的时域或频域响应中分析模型的重要特征一步波德为例。

  • 通过绘制原始模型的Hankel奇异值(hankelsv)来确定哪些模式(状态)可以在不牺牲关键特性的情况下丢弃。

  • 选择还原算法。工具箱中提供的一些还原方法有:balancmr,bstmr,schurmr,汉克尔默,ncfmr

我们可以很容易地通过顶级接口访问这些算法减少.这些方法采用不同的方法来衡量原始模型和简化模型之间的“亲密度”。选择取决于应用程序。让我们试一试,看看它们各自的优缺点。

  • 验证:我们通过比较简化模型和原始模型的动态来验证我们的结果。如果结果不令人满意,我们可能需要调整我们的约简参数(模型顺序的选择,算法,误差边界等)。

例:建筑物刚体运动模型

在本例中,我们将简化方法应用于洛杉矶大学医院的建筑模型。该模型摘自SLICOT工作笔记2002-2,“线性时不变动力系统模型约简的基准示例集合”,由Y. Chahlaoui和P.V. Dooren编写。它有八层,每层有三个自由度——两个位移和一个旋转。我们使用48状态模型来表示这些位移的输入-输出关系,其中每个状态表示一个位移或其变化率(速度)。

让我们加载示例的数据:

负载buildingData.mat

检验植物动态

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

波德(G)网格

图形包含两个轴。轴1包含一个line类型的对象。该对象表示G。轴2包含一个line类型的对象。该对象表示G。

图1:分析频率响应的波特图

从模型的频率响应可以看出,系统的本质动力学是在3 - 50弧度/秒的频率范围内。震级在极低和高频范围都下降。我们的目标是找到一个低阶模型,在这个频率范围内保持一个可接受的精度水平的信息内容。

计算汉克尔奇异值

为了理解模型的哪些状态可以被安全丢弃,看看模型的Hankel奇异值:

hsv_add = hankelsv (G);标题栏(hsv_add) (“模型(G)的Hankel奇异值”); xlabel(“许多州”) ylabel ('奇异值(\sigma_i)')行([10.5 10.5],[0 1.5e-3],“颜色”,“r”,“线条样式”,“——”,'行宽',1)文本(6,1.6e-3,“10个主要国家。”)

图中包含一个坐标轴。以汉克尔模型奇异值(G)为标题的坐标轴包含条、行、文本三个类型的对象。

图2:模型的汉克尔奇异值(G)。

Hankel奇异值图表明,在这个系统中有四个主导模式。但是,剩余模式的贡献仍然很大。我们将在10个状态下画一条线,并丢弃剩余的模式,以找到一个10阶简化模型Gr这最接近原始系统G

使用可加性误差界进行模型约简

这个函数减少是工具箱中可用的所有模型简化例程的入口。我们将使用默认的平方根余额截断('balancmr')选项减少作为第一步。这种方法使用了一个“加法”误差范围来减少,这意味着它试图保持绝对近似误差均匀地小跨频率。

%计算第10阶简化模型(默认情况下,简化使用balancmr方法)[Gr\U add,info\U add]=reduce(G,10);现在比较原始模型G和简化后的模型Gr_add波德(G,“b”Gr_add,“r”网格)标题('比较原始(G)和简化模型(Gr\_add)')传奇(“G - 48州原创”,` Gr\_add - 10-state reduced `,“位置”,“东北”)

图中包含2个轴。axis 1包含2个类型为line的对象。这些对象表示原始G - 48状态,还原Gr\\_add - 10状态。axis 2包含2个类型为line的对象。这些对象表示原始G - 48状态,还原Gr\\_add - 10状态。

图3:比较原始(G)和简化模型(Gr_add)

使用乘法误差界执行模型缩减

从图3的Bode图中可以看出,简化模型可以很好地捕获低于30 rad/s的共振,但在低频区域(<2 rad/s)的匹配很差。此外,简化模型没有充分捕捉30-50 rad/s频率范围内的动态。低频误差大的一个可能解释是,模型在这些频率上的增益相对较低。因此,即使在这些频率上有很大的误差,对总体误差的贡献也很小。

为了解决这个问题,我们可以尝试乘法误差法,例如bstmr。此算法强调相对误差,而不是绝对误差。因为当增益接近零时,相对比较不起作用,所以我们需要添加最小增益阈值,例如,通过添加馈通增益D到我们原来的模型。假设我们不关心增益低于- 100db时的误差,我们可以将馈通设置为1e-5。

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

现在,让我们看看乘法(相对)误差的奇异值(使用hankelsv)

hsv_mult = hankelsv (GG,“乘”);标题栏(hsv_mult) (“模型乘法误差奇异值(G)”); xlabel(“许多州”) ylabel ('奇异值(\sigma_i)')

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

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

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

%使用bstmr算法选项进行模型简化[Gr_mult, info_mult] =减少(GG 10“算法”,“英国夏令时”);%现在比较原始模型G和简化模型Gr_multbode(G,Gr_add,Gr_mult,{1e-2,1e4}),网格标题(“比较原始(G)和简化模型(Gr\_add和Gr\_mult)”)传奇(“G - 48州原创”,Gr \ _add (balancmr)”,Gr \ _mult (bstmr)”,“位置”,“东北”)

图中包含2个轴。axis 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 \ _add:十余个州(balancmr) ',“Gr \ _mult:十余个州(bstmr) ')

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

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

验证结果

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

G - G R A. D D 2. = 1. 1. 4. 8. σ : = E R R o R B o U N D

的所有废弃汉克尔奇值的和G(第11至48项hsv_add).我们可以通过比较不等式的两边来验证这个界是满足的:

规范(G-Gr_add正)%实际误差
ans=6.0251e-04
%理论边界(存储在“INFO”的“ErrorBound”字段中)% struct return by |info_add。ERR或BoUND
ans = 0.0047

对于乘法误差方法,例如bstmr近似误差由相对误差模型的频率峰值增益测量G\(G-减少)。错误界限如下所示

G - 1. ( G - G R M U L T ) = 1. 1. 4. 8. ( 1. + 2. σ ( σ + 1. + σ 2. ) ) - 1. : = E R R o R B o U N D

和在哪里乘法汉克尔奇异值的计算hankelsv (G,“乘”).同样,我们可以比较简化模型的这些界限格鲁穆特

规范(GG \ (GG-Gr_mult)、正)%实际误差
ans = 0.5949
%的理论束缚info_mult。ErrorBound
ans = 546.1730.

画出相对误差以作确认

bodemag(GG\(GG-Gr_mult),{1e-2,1e3})网格文本(0.1,-50,峰值增益:-4.6 dB (59%), 17.2 rad/s)标题(原始模型(G)与简化模型(Gr\_mult)的相对误差)

图中包含一个坐标轴。轴包含两个类型为line, text的对象。这个对象表示untitled1。

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

从上面的相对误差图可以看出,在17.2 rad/s时,相对误差高达59%,这可能超出了我们的接受范围。

选择与所需精度级别兼容的最低订单

提高数据的准确性格鲁穆特,我们需要增加订单。要达到至少5%的相对精度,我们能得到的最低阶是多少?这个函数减少可自动选择符合我们要求的精度水平的最低阶模型。

%指定最大近似误差为5%[gre,信息]=减少(GG,“错误类型”,“乘”,“MaxError”, 0.05);大小(gre)
具有1个输出、1个输入和35个状态的状态空间模型。

该算法选择了一个34状态简化模型gre考试.将实际误差与理论限值进行比较:

规范(GG \ (GG-Gred)、正)
ans = 0.0068
信息。ERR或BoUND
ans = 0.0342

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

bodemag (GG \ (GG-Gred) {1 1 e3})网格文本(5,-75,‘73.8 rad/s时的峰值增益:-43.3 dB(0.6%))标题(原始模型(G)与简化模型(Gred)的相对误差)

图中包含一个坐标轴。轴包含两个类型为line, text的对象。这个对象表示untitled1。

图8:原始模型(G)与约简模型(Gred)的相对误差

比较波特的反应

波德(G, gre,{1飞行,1 e4})网格传奇('g  -  48-state原始',“Gred - 34州降级”)

图中包含2个轴。axis 1包含2个类型为line的对象。这些对象代表G - 48状态原始,Gred - 34状态缩减。axis 2包含2个类型为line的对象。这些对象代表G - 48状态原始,Gred - 34状态缩减。

图9:48态原始模型和34态简化模型的伯德图

最后比较了原始模型和简化模型的阶跃响应。它们实际上是无法区分的。

步骤(G,“b”gre考试,“r——”15)%阶跃响应直到15秒传奇(“G: 48州原创”,“gre: 34-state (bstmr) ')文本(5 4的军医,'最大相对误差<0.05')

图中包含一个坐标轴。轴包含三个对象的类型行,文本。这些对象代表G: 48状态原始,Gred: 34状态(bstmr)。

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

另见

|

相关话题