设计 LQG 调节器
作为 LQG 设计的示例,需要考虑以下调节问题。
设计目标是将被控对象的输出 y 控制在零左右。输入扰动 d 是低频扰动,功率谱密度 (PSD) 集中在 10 rad/s 以下。出于 LQG 设计目的,它被建模为驱动着一个低通滤波器(截止频率为 10 rad/s)的白噪声,如下图所示。
为简单起见,将此噪声建模为方差为 1 的高斯白噪声。
下图显示了整形滤波器的波特幅值。
低通滤波器的波特幅值
存在一些测量噪声 n,噪声强度由下式给出:
使用代价函数
指定调节性能和控制成本之间的权衡。以下方程表示开环状态空间模型:
其中 (A,B,C) 是 的状态空间实现。
以下命令设计了针对此问题的最佳 LQG 调节器 F(s):
sys = ss(tf(100,[1 1 100])) % State-space plant model % Design LQ-optimal gain K K = lqry(sys,10,1) % u = -Kx minimizes J(u) % Separate control input u and disturbance input d P = sys(:,[1 1]); % input [u;d], output y % Design Kalman state estimator Kest. Kest = kalman(P,1,0.01) % Form LQG regulator = LQ gain + Kalman filter. F = lqgreg(Kest,K)
这些命令返回 LQG 调节器 F(s) 的状态空间模型 F
。lqry
、kalman
和 lqgreg
函数在应用于离散被控对象时执行离散时间 LQG 设计。
为了验证设计,使用 feedback
闭合环路,创建并添加与闭环系统串联的低通滤波器,并使用 impulse
函数比较开环和闭环冲激响应。
% Close loop clsys = feedback(sys,F,+1) % Note positive feedback. % Create the lowpass filter and add it in series with clsys. s = tf('s'); lpf= 10/(s+10) ; clsys_fin = lpf*clsys; % Open- vs. closed-loop impulse responses impulse(sys,'r--',clsys_fin,'b-')
这些命令产生以下图窗,对此示例的开环和闭环冲激响应进行了比较。
开环和闭环冲激响应的比较