振动控制在弹性梁
这个例子展示了如何调优一个控制器减少柔性梁的振动。
对柔性梁的模型
图1描述了柔性梁的振动主动控制系统。
图1:主动控制的柔性梁
在此设置中,致动器传递的力和速度传感器是并列的。我们可以从控制模型传递函数的输入的速度使用有限元分析。只保留第一个六个模式,我们获得的植物模型形式
用以下参数值。
%的参数ξ= 0.05;α= (0.09877,-0.309,-0.891,0.5878,0.7071,-0.8091);w =(1、4、9、16、25日,36);
生成的梁模型是由
%梁模型G =特遣部队(α(1)^ 2 * (1,0),(1、2 * 11 * w (1), w (1) ^ 2)) +…特遣部队(α(2)^ 2 * (1,0),(1、2 * 11 * w (2), w (2) ^ 2]) +…特遣部队(α(3)^ 2 * (1,0),(1、2 * 11 * w (3), w (3) ^ 2]) +…特遣部队(α(4)^ 2 * (1,0),(1、2 * 11 * w (4), w (4) ^ 2]) +…特遣部队(α(5)^ 2 * (1,0),(1、2 * 11 * 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控制是一种天然的配方主动振动控制。LQG控制设置如图2所示。的信号和分别是过程和测量噪声。
图2:LQG控制结构
第一次使用lqg
计算最优为目标LQG控制器
噪声方差:
[a, b, c, d] = ssdata (G);M = [c d; 0 (12) 1);% (y; u) = M * [x; u]QWV = blkdiag (b * b ', 1依照);QXU = M ' *诊断接头([1 1 e - 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调优目标让你直接指定性能权重和噪声协方差。
R1 = TuningGoal.LQG ({' d ',“n”},{“y”,“u”},诊断接头([1,1依照]),诊断接头([1 1 e - 3]));
现在优化控制器C
LQG最小化的目标。
[CL1, j - 1] = systune (CL0 R1);
最后:软= 0.478,=无穷,迭代= 40
优化器发现一个二阶控制器。与最优值CLQG
:
[~,Jopt] = evalGoal (R1, replaceBlock (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控制器
我们使用了一个近似的梁模型来设计这两个控制器。先天的,也不能保证这些控制器将执行真正的梁。然而,我们知道梁是一个被动的物理系统和被动的消极反馈互联系统总是稳定的。因此,如果是被动的,我们可以相信,闭环系统是稳定的。
最优LQG控制器不是被动的。事实上,其相对被动的指数是无限的,因为甚至不是最小相位。
getPassiveIndex (-CLQG)
ans =正
这是确认的奈奎斯特图。
尼奎斯特(-CLQG)
使用systune
,你可以调节肌体二阶控制器有额外的要求应该是被动的。为此,创建一个被动的开环传递函数为优化目标yn
来u
(这是)。使用“WeightedPassivity”目标占负号。
R2 = TuningGoal.WeightedPassivity ({“yn”},{“u”}1 1);R2。机会=“u”;
现在调节肌体闭环模型CL1
LQG最小化的目标受是被动的。注意,被动的目标R2
现在是指定为硬约束。
(这有点难度,J2, g) = systune (CL1、R1、R2);
最后:软= 0.478,= 1,迭代= 51
调谐器达到相同的值之前,而实施被动(硬约束小于1),验证是被动的。
C2 = getBlockValue(这有点难度,“C”);passiveplot (c2)
LQG-optimal控制器的改进最为明显的奈奎斯特图。
尼奎斯特(-CLQG c2)传说(“LQG最优”,“二阶无源LQG”)
最后,比较的脉冲响应来。
T2 = getIOTransfer(这有点难度,' d ',“y”);冲动(T0, T2, 5)标题(脉冲扰动的响应d ')传说(“LQG最优”,“二阶无源LQG”)
使用systune
,你设计了一个二阶无源控制器算法LQG性能。
另请参阅
systune
|TuningGoal.WeightedPassivity
|TuningGoal.LQG