主要内容

简化高阶植物模型

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

简介

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

  • 高阶植物:工厂的详细第一性原理或有限元模型往往具有高阶。通常,为了仿真或控制设计的目的,我们希望简化这样的模型。

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

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

模型简化过程

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

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

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

  • 选择一个约简算法。工具箱中可用的一些减少方法有:balancmrbstmrschurmrhankelmr,中心

我们可以通过顶层接口轻松访问这些算法减少.这些方法采用了原始模型和简化模型之间不同的“接近度”度量。选择取决于应用程序。让我们分别试一试,看看它们各自的优点。

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

例:建筑物刚体运动模型

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

让我们加载例子中的数据:

负载buildingData.mat

研究植物动态

首先分析模型的频响:

波德(G)网格

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

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

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

计算汉克尔奇异值

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

hsv_add = hankelsv(G);标题栏(hsv_add) (模型的汉克尔奇异值(G));包含(“州数”) ylabel (“奇异值(\sigma_i)”) line([10.5 10.5],[0 1.5e-3],“颜色”“r”“线型”“——”“线宽”1)文本(6日,1.6 e - 3,“10个主要州。”

图中包含一个轴对象。标题为Hankel Singular Values of The Model (G)的坐标轴对象包含类型为bar、line、text的3个对象。

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

汉克尔奇异值图表明该系统有四个主要模态。然而,其余模态的贡献仍然很大。我们将在10个状态处画一条线,丢弃剩下的状态,以找到一个10阶简化模型Gr这最接近原来的系统G

使用加法误差界执行模型约简

这个函数减少是工具箱中可用的所有模型缩减例程的门户。我们将使用默认的平方根平衡截断('balancmr')选项减少作为第一步。该方法使用了一个“加法”误差限来减少,这意味着它试图在各个频率上保持绝对近似误差均匀地小。

计算10阶约简模型(默认使用balancmr方法)[Gr_add,info_add] = reduce(G,10);现在比较原始模型G和简化模型Gr_add波德(G,“b”Gr_add,“r”网格)标题(比较原始模型(G)和简化模型(Gr\_add))传说(“G - 48州原版”“Gr\_add - 10个州减少”“位置”“东北”

图中包含2个轴对象。坐标轴对象1包含2个line类型的对象。这些对象代表G - 48态原始,Gr\\_add - 10态简化。坐标轴对象2包含2个line类型的对象。这些对象代表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 = 1e-5;

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

hsv_mult = hankelsv(GG,“乘”);标题栏(hsv_mult) (模型的乘性误差奇异值(G));包含(“州数”) ylabel (“奇异值(\sigma_i)”

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

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

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

%使用bstmr算法选项进行模型缩减[Gr_mult,info_mult] = reduce(GG,10,“算法”“英国”);现在将原始模型G与简化模型Gr_mult进行比较波德(G, Gr_add Gr_mult,{1飞行,1 e4}),网格标题(比较原始(G)和简化模型(Gr\_add和Gr\_mult))传说(“G - 48州原版”Gr \ _add (balancmr)”Gr \ _mult (bstmr)”“位置”“东北”

图中包含2个轴对象。Axes对象1包含3个line类型的对象。这些对象代表G - 48状态原始,Gr\\_add (balancmr), Gr\\_mult (bstmr)。坐标轴对象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: 10-state (balancmr)''Gr\_mult: 10-state (bstmr)'

图中包含一个轴对象。axis对象包含3个line类型的对象。这些对象分别代表G: 48-state original, Gr\\_add: 10-state (balancmr), Gr\\_mult: 10-state (bstmr)。

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

验证结果

所有算法都提供了近似误差的边界。对于加法误差方法balancmr时,近似误差由误差模型的峰值(最大)增益来测量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项hsv_add).我们可以通过比较不等式的两边来验证这个边界是满足的:

规范(G-Gr_add正)实际误差%
Ans = 6.0251e-04
%理论边界(存储在INFO的ErrorBound字段中)% struct返回|reduce|)info_add。Err或Bound
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

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

规范(GG \ (GG-Gr_mult)、正)实际误差%
Ans = 0.5949
%理论界info_mult。ErrorBound
Ans = 546.1730

画出相对误差以作确认

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

图中包含一个轴对象。axis对象包含2个类型为line, text的对象。该对象表示untitled1。

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

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

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

提高的准确性Gr_mult我们需要增加订货量。要达到至少5%的相对精度,我们能得到的最低阶数是多少?这个函数减少可以自动选择符合我们期望精度的最低阶模型。

指定最大5%的近似误差[Gred,info] = reduce(GG,“ErrorType”“乘”“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})网格文本(-75,峰值增益:73.8 rad/s时-43.3 dB (0.6%))标题(原始模型(G)与简化模型(Gred)之间的相对误差

图中包含一个轴对象。axis对象包含2个类型为line, text的对象。该对象表示untitled1。

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

比较波德反应

波德(G, gre,{1飞行,1 e4})网格传奇(“G - 48州原版”“格雷德-减少34个州”

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

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

最后,比较了原模型和简化模型的阶跃响应。它们实际上难以区分。

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

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

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

另请参阅

|

相关的话题