这个例子展示了如何调整控制器来减少柔性梁的振动。
图1描述了柔性梁的主动振动控制系统。
图1柔性梁的主动控制
在该设置中,递送力的执行器并配置了速度传感器。我们可以根据控制输入建立传递函数的模型的速度使用有限元分析。只保留前六种模式,我们获得了表格的植物模型
具有以下参数值。
% 参数xi = 0.05;alpha = [0.09877,-0.309,-0.891,0.5878,0.7071,-0.8091];W = [1,4,9,16,25,36];
所得到的梁模型是由
%梁模型G = tf((1)^2*[1,0],[1,2 *xi*w(1), w(1)^2]) +...f(2)^2*[1,0],[1,2 *w(2), w(2)^2]) +...TF(alpha(3)^ 2 * [1,0],[1,2 * xi * w(3),w(3)^ 2])+...f(4)^2*[1,0],[1,2 *xi*w(4), w(4)^2]) +...f(5)^2*[1,0],[1,2 *xi*w(5), w(5)^2]) +...特遣部队(α(6)^ 2 *(1,0),(1、2 * 11 * w (6), w (6) ^ 2]);G.InputName =uG的;g.outputname =“y”;
通过该传感器/执行器配置,光束是无源系统:
ispassive(g)
ans =逻辑1
这是通过观察奈奎斯特情节来证实是正的真实。
尼奎斯特(G)
LQG控制是用于主动振动控制的天然配方。LQG控制设置如图2所示。信号和分别是过程噪声和测量噪声。
图2:LQG控制结构
第一次使用LQG.
计算目标的最优LQG控制器
噪声方差:
[a, b, c, d] = ssdata (G);M = [c d; 0 (1,12) 1];% [y;u] = M * [x;u]QWV = blkdiag (b * b ', 1依照);QXU = M'*diag([1 1e-3])*M;CLQG = lqg (ss (G)、QXU QWV);
LQG-optimal控制器CLQG
有12个状态和几个零位,很复杂。
大小(CLQG)
具有1个输出、1个输入和12个状态的状态空间模型。
波德(G, CLQG{1飞行,1 e3}),网格,传说(‘G’,“CLQG”)
使用通用调谐器systune
尝试简化此控制器。和systune
,您不仅限于全订单控制器,而且可以调优任何订单的控制器。例如,让我们调优一个二阶状态空间控制器。
c = ltiblock.ss(“C”、2、1、1);
构建图2中的框图的闭环模型。
C.InputName =“yn”;c.outputname =.“u”;S1 = sumblk ('yn = y + n');S2 = sumblk ('ug = u + d');CL0 =连接(G、C、S1, S2, {' d ','n'},{“y”,“u”},{“yn”,“u”});
使用LQG标准以上作为唯一的调整目标。LQG调整目标允许您直接指定性能权重和噪声CoviRece。
R1 = TuningGoal。LQG ({' d ','n'},{“y”,“u”},诊断([1,1e-2]),诊断([1 1e-3]));
现在调整控制器C
最小化LQG目标.
[Cl1,J1] = SYSTUNE(CL0,R1);
最终:软= 0.478,硬= -Inf,迭代= 39
优化器发现了一个2nd阶控制器.与最佳相比价值CLQG
:
[〜,Jopt] = evalGoal(R1,reployBlock(CL0,“C”, CLQG))
Jopt = 0.4673
性能下降小于5%,控制器复杂度从12个状态降低到2个状态。进一步比较脉冲响应来对于两个控制器。这两种反应几乎完全相同。因此,可以通过一个简单的二阶控制器获得接近最优的振动衰减。
t0 =反馈(g,clqg,+ 1);t1 = getiotransfer(cl1,' d ',“y”);冲动(T0, T1, 5)标题(“对脉冲干扰d的响应”)传说(“LQG最优”,“二阶LQG”)
我们使用梁的近似模型来设计这两个控制器。先验,无法保证这些控制器在真实波束上表现良好。然而,我们知道光束是一种被动物理系统,并且被动系统的负反馈互连总是稳定的。因此,如果是被动的,我们可以相信闭环系统是稳定的。
最优LQG控制器不是无源的。事实上,它的相对被动指数是无限的,因为甚至不是最小的阶段。
getPassiveIndex(-CLQG)
ans =正
这是由其奈奎斯特图确认的。
尼奎斯特(-CLQG)
使用systune
,您可以通过附加要求重新调整二阶控制器应该是被动的。为此,为开循环传输功能创建一个被动调整目标yn
来u
(这是)。使用“加权证据”目标来解释负符号。
R2 = TuningGoal.weightedPassivity({“yn”},{“u”}, - 1,1);r2.openings =.“u”;
现在重新调整闭环模型CL1
最小化LQG目标受是被动的。注意被动目标R2
现在被指定为一个硬约束。
(这有点难度,J2, g) = systune (CL1、R1、R2);
最终:软= 0.478,硬= 1,迭代= 51
调谐器达到同样的效果value as以前,同时执行被动的(硬约束小于1)。验证是被动的。
c2 = getblockValue(cl2,“C”);passiveplot(-c2)
对lqg最优控制器的改进在Nyquist图中是最明显的。
尼奎斯特(-CLQG c2)传说(“LQG最优”,“二阶无源LQG”)
最后,比较脉冲响应来.
T2 = getIOTransfer(这有点难度,' d ',“y”);冲动(T0, T2, 5)标题(“对脉冲干扰d的响应”)传说(“LQG最优”,“二阶无源LQG”)
使用systune
,您设计了一个具有近最佳LQG性能的二阶无源控制器。
systune
|tuninggoal.lqg.
|TuningGoal.weightedPassiation