主要内容

balancmr

平方根法平衡模型截断

语法

GRED = balancmr(G,order) [GRED,redinfo] = balancmr(G,key1,value1,…)[GRED,redinfo] = balancmr(G,order,key1,value1,…)

描述

balancmr返回一个降阶模型gre考试G和一个struct数组redinfo包含简化模型的误差界和原系统的Hankel奇异值。

误差范围的计算基于的汉克尔奇异值G.对于一个稳定的系统,这些值表示系统各自的状态能。因此,通过检查系统的Hankel奇异值,可以直接确定降阶,σι

只有一个输入参数G时,函数将显示原模型的Hankel奇异值图,并提示模型阶数减少。

该方法保证了函数的无穷范数上的误差界添加剂错误G-GRED∥∞用于条件良好的模型减少问题[1]

G G r e d 2 k + 1 n σ

的输入参数balancmr

论点

描述

G

要缩减LTI模型。没有其他输入,balancmr将绘制的汉克尔奇异值G并提示减少订单

订单

(可选)为简化模型的期望顺序的整数,或可选地为批处理运行填充了期望顺序的向量

通过指定,可以生成一系列不同的降阶模型的批量运行Order = x:y,或正整数向量。默认情况下,系统的所有反稳定部分都被保留,因为从控制稳定性的角度来看,摆脱不稳定状态对系统建模是危险的。

“MaxError”可以以相同的方式指定为订单.在这种情况下,当Hankel奇异值的尾部之和达到时,将确定降阶“MaxError”

该表列出了输入参数“关键”和它的“价值”

论点

价值

描述

“MaxError”

不同误差的实数或向量

减少目标H错误。当礼物,MaxError覆盖订单输入。

“重量”

{Wout,赢得}单元阵列

可选的LTI权重的1 × 2单元格数组Wout(输出),赢得(输入)。权重必须是稳定的,最小相位和可逆的。当你提供这些权重时,balancmr的汉克尔范数最小的简化模型

W o u t 1 G G r e d W n 1

可以使用加权函数使模型约简算法集中在感兴趣的频带上。看到的:

作为替代,你可以使用balred在不定义加权函数的情况下将模型约简集中在特定频带上。使用balancmr并且提供您自己的加权函数可以更精确地控制错误配置文件。

默认的权重都是相同的。

“显示”

“上”“关闭”

显示Hankel奇异图(默认值“关闭”).

“秩序”

整数,向量或单元格数组

简化模型的阶数。仅当未指定为第二个参数时使用。

该表描述输出参数。

论点

描述

gre考试

LTI降阶模型。当输入为不同模型顺序的序列时,变为多维数组

REDINFO

STRUCT数组有三个字段:

  • REDINFO。ErrorBound(∥绑定G-GRED∥∞)

  • REDINFO。StabSV(G稳定部分的Hankel SV)

  • REDINFO。UnstabSV(G不稳定部分的Hankel SV)

G可以是稳定的或不稳定的,连续的或离散的。

例子

全部折叠

如果您没有为简化模型指定任何目标顺序,balancmr显示模型的汉克尔奇异值,并提示您选择简化模型的顺序。

对于本例,使用一个随机的30阶状态空间模型。

rng (1234“旋风”);%固定随机种子,例如重复性G = rss(30,5,4);G1 = balance (G)
请输入所需的顺序:(>=0)

检查汉克尔奇异值图。

该图显示,系统的大部分能量可以在20阶近似中捕获。在命令窗口中输入20。balancmr返回G1

检查原始模型和简化模型的响应。

σ(G, G1)

20阶近似很好地匹配了原始30阶模型的动力学。

当您心中有特定的目标订单或订单时,您可以使用balancmr将高阶模型简化为这些订单。对于本例,使用一个随机的30阶状态空间模型。

rng (1234“旋风”);%固定随机种子,例如重复性G = rss(30,5,4);

使用标量输入参数将模型简化为单一顺序。例如,计算一个20阶近似。

[G1,info1] = balancmr(G,20);σ(G, G1)

使用一个向量来生成几个近似。下面的命令返回从10到18的偶数顺序模型的数组。

[G2,info2] = balancmr(G,[10:2:18]);σ(G, G2)

获得最低阶近似,这样截断状态的汉克尔奇异值的和不超过一个指定的值。对于本例,使用一个随机的30阶状态空间模型。

rng (1234“旋风”);%固定随机种子,例如重复性G = rss(30,5,4);

计算两个近似模型,一个误差不超过0.1,另一个误差不超过0.5。为此,在数组中提供这些值。balancmr返回一个近似模型的数组。

Gr = balancmr(G,“MaxError”[0.1 - 0.5]);大小(Gr)
状态空间模型的2x1数组。每个模型有5个输出,4个输入,24到26个状态。

检查结果。

σ(G, Gr)

将一个四阶系统减少到二阶近似,重点是在频带10 rad/s - 100 rad/s。考虑下面的系统。

sys =特遣部队([1 0.5 - 1])+特遣部队(100 * 1/10 [1],[1 1000]);波德(系统)

为了将模型约简算法集中在高频动态上,指定一个带通剖面的函数。

S = tf(“年代”);W1 = (s+1)/(s/10+1)/(s/60+1)*(s/600+1);bodemag (w1)

该图证实了加权函数w1具有理想的轮廓,峰值在10 rad/s和100 rad/s之间。方法指定此配置文件的逆作为输出权重,以执行缩减“重量”选择balancmr

权重= {1/w1,1};Wrsys = balancmr(sys,2,“重量”、重量);

将计算结果与未加加权的二阶模型进行比较。

Rsys = balancmr(sys,2);波德(sys、rsys wrsys)传说(“原始”“减重”“加权”

用加权函数得到的模型较好地匹配了10 rad/s ~ 100 rad/s频段的动态。

使用加权函数来控制原始模型和简化模型之间误差的频率依赖性。

对于本例,加载一个48状态的SISO模型,并将其降为6阶。

负载(“balancmrData.mat”“bplant”) bplant6 = balancmr(bplant,6);波德(bplant bplant6、bplant-bplant6 logspace(0, 2200))传说(“原始”“减少”“错误”

误差在频率上分布相当均匀。创建一个加权函数,允许在频率低于100 rad/s时出现更大的误差。在这种情况下,使用双固有函数,在低频有单位增益,但在较高频率下降到-40 dB。

W = tf(0.01*[1 1.4e2 1e4],[1 14 100]);bplant bodemag (W)

使用这个加权函数,将模型再次降为6阶。因为bplant是一个SISO模型,你可以使用函数作为输入或输出权重。

bplant6W = balancmr(bplant,6,“重量”, {W、1});波德(bplant bplant6W、bplant-bplant6W logspace(0, 2200))传说(“原始”“降低w /重量”“错误”

现在,在低频时误差更大,在高频时,原始模型和简化模型之间的匹配相应更好。

算法

给定一个状态空间(A, B, C, D)的系统和k,得到所需的降阶,接下来的步骤将产生相似度变换,将原始状态空间系统截断为kth降阶模型。

  1. 求可控性和可观测性语法函数的奇异值向量

    P = upΣpVpT

    Q = uΣVT

  2. 求出语法向量(左/右特征向量)的平方根

    lp= UpΣp½

    lo= UΣ½

  3. 求(的SVD)loTlp

    loTlp= UΣVT

  4. 然后是最后的左右变换kth降阶模型为

    年代L,大L =oU(: 1:k)Σ(1;k1:k))——½

    年代R,大L =pV(: 1:k)Σ(1;k1:k))——½

  5. 最后,

    一个 B C D 年代 l B G T 一个 年代 R B G 年代 l B G T B C 年代 R B G D

平方根平衡截断算法的证明可以在[2]

参考文献

[1] Glover, K.,“线性多变量系统的所有最优Hankel范数近似,及其L μ -误差边界,”Int。J.控制,第39卷,第6期,1984年,第1145-1193页

[2] Safonov, m.g.,和R.Y. Chiang,“平衡模型约简的舒尔方法,”IEEE反式。自动售货机。来讲。1989年7月,第34卷第7期,第729-733页

R2006a之前介绍