线性最优状态调节器及其LQR的MATLAB实现
线性二次型问题线性二次型问题:系统为线性系统,性能指标为状态变量与控制变量的二次型函数,这类系统的最优控制问题。主要内容:最优状态调节、最优输出调节和最优跟踪,其中,最优输出调节问题和最优跟踪问题可以化为最优状态调节问题。特点:1)应用广泛,可应用于工作在小信号条件下的非线性系统;2)控制规律是状态变量的线性函数。3)具有良好的频域特性,可实现极点最优配置一、线性二次型问题问题描述:线性时变系统的
线性二次型问题
-
线性二次型问题:系统为线性系统,性能指标为状态变量与控制变量的二次型函数,这类系统的最优控制问题。
-
主要内容:最优状态调节、最优输出调节和最优跟踪,其中,最优输出调节问题和最优跟踪问题可以化为最优状态调节问题。
-
特点:
1)应用广泛,可应用于工作在小信号条件下的非线性系统;
2)控制规律是状态变量的线性函数。
3)具有良好的频域特性,可实现极点最优配置
一、线性二次型问题
问题描述:线性时变系统的动态方程为
x˙\dot{x}x˙(𝒕)=𝑨(𝒕)𝒙(𝒕)+𝑩(𝒕)𝒖(𝒕) 𝒙(t0t_0t0)=x0x_0x0
𝒚(𝒕)=𝑪(𝒕)𝒙(𝒕) 其中,𝒙(𝑡)n维, 𝒖(𝑡)m维, y(𝑡)l维
假设控制向量𝒖(𝑡)不受约束 ,用𝒚_𝑙 (𝑡)表示期望输出,
则误差向量为𝒆(𝑡)=yly_lyl(𝑡)−𝒚(t)
指标泛函: J=12eT(tf)Se(tf)+12∫t0tf[eT(t)Q(t)+uT(t)R(t)u(t)] dt J=\frac {1} {2}e^T(t_f)Se(t_f)+ \frac {1} {2}\int_{t_0}^{t_f} {[e^T(t)Q(t)+u^T(t)R(t)u(t)]} \,{\rm d}tJ=21eT(tf)Se(tf)+21∫t0tf[eT(t)Q(t)+uT(t)R(t)u(t)]dt
t0t_0t0和tft_ftf固定,求最优控制𝒖^∗ (𝒕),使性能指标有最小值。
此问题称线性二次型性能指标的最优控制问题
线性二次型问题的本质:
用不大的控制,来保持较小的误差,以达到能量和误差综合最优的目的。
线性二次型问题的三种重要情形:
x˙\dot{x}x˙(𝒕)=𝑨(𝒕)𝒙(𝒕)+𝑩(𝒕)𝒖(𝒕)
𝒚(𝒕)=𝑪(𝒕)𝒙(𝒕)
𝒆(𝒕)=yly_lyl (𝒕)−𝒚(𝒕)
1.状态调节器问题 𝑪(𝒕)=𝑰 yly_lyl(𝒕)=𝟎 𝒚(𝒕)=𝒙(𝒕)=−𝒆(𝒕)
J=12xT(tf)Fx(tf)+12∫t0tf[xT(t)Q(t)x(t)+uT(t)R(t)u(t)] dt J=\frac {1} {2}x^T(t_f)Fx(t_f)+ \frac {1} {2}\int_{t_0}^{t_f} {[x^T(t)Q(t)x(t)+u^T(t)R(t)u(t)]} \,{\rm d}tJ=21xT(tf)Fx(tf)+21∫t0tf[xT(t)Q(t)x(t)+uT(t)R(t)u(t)]dt
当系统受扰偏离平衡状态时,要求系统产生控制向量,使指标极小,即,使𝒙(𝒕)始终保持在平衡点附近。
2.输出调节器问题 yly_lyl(𝒕)=𝟎 𝒚(𝒕)=−𝒆(𝒕)
J=12yT(tf)Fy(tf)+12∫t0tf[yT(t)Q(t)y(t)+uT(t)R(t)u(t)] dt J=\frac {1} {2}y^T(t_f)Fy(t_f)+ \frac {1} {2}\int_{t_0}^{t_f} {[y^T(t)Q(t)y(t)+u^T(t)R(t)u(t)]} \,{\rm d}tJ=21yT(tf)Fy(tf)+21∫t0tf[yT(t)Q(t)y(t)+uT(t)R(t)u(t)]dt
当系统受扰偏离平衡状态时,要求系统产生控制向量,使指标极小,即,使系统输出𝒚(𝒕)始终保持在平衡点附近。
3.跟踪问题 yl≠0y_l\neq0yl=0 e(t)=yl(t)−y(t)e(t)=y_l(t)-y(t)e(t)=yl(t)−y(t)
J=12eT(tf)Fe(tf)+12∫t0tf[eT(t)Q(t)e(t)+uT(t)R(t)u(t)] dt J=\frac {1} {2}e^T(t_f)Fe(t_f)+ \frac {1} {2}\int_{t_0}^{t_f} {[e^T(t)Q(t)e(t)+u^T(t)R(t)u(t)]} \,{\rm d}tJ=21eT(tf)Fe(tf)+21∫t0tf[eT(t)Q(t)e(t)+uT(t)R(t)u(t)]dt
使系统实际输出𝒚(𝒕)始终跟随𝒚_𝒍 (𝒕) 变化
二、状态调节器问题
应用举例:电网电压控制;温度控制;压力控制等。
目的:保持系统状态在平衡状态附近;(通常取“零状态”为平衡状态)
-
有限时间状态调节器
问题描述:设线性时变系统的状态方程为:
x˙\dot{x}x˙(𝒕)=𝑨(𝒕)𝒙(𝒕)+𝑩(𝒕)𝒖(𝒕),𝒙(t0t_0t0)=x0x_0x0
假设控制向量𝒖(𝒕)不受约束 ,求最优控制u∗u^*u∗ (𝒕),使系统的二次型性能指标取极小值:
J=12eT(tf)Fx(tf)+12∫t0tf[eT(t)Q(t)x(t)+u(t)TR(t)u(t)] dt J=\frac {1} {2}e^T(t_f)Fx(t_f)+ \frac {1} {2}\int_{t_0}^{t_f} {[e^T(t)Q(t)x(t)+u(t)^TR(t)u(t)]} \,{\rm d}tJ=21eT(tf)Fx(tf)+21∫t0tf[eT(t)Q(t)x(t)+u(t)TR(t)u(t)]dt
权矩阵:𝑭=FT≥0F^T\geq0FT≥0; 𝑸(𝒕)=QT(t)≥0Q^T(t)\geq0QT(t)≥0;𝑹(𝒕)=RTR^TRT (𝒕)>𝟎,tft_ftf固定且tft_ftf≠∞。
物理意义:以较小的控制能量为代价,使状态保持在零值附近。
黎卡提方程
−P˙(t)=P(t)A(t)+AT(t)P(t)−P(t)B(t)R−1(t)BT(t)P(t)+Q(t)-\dot{P}(t)=P(t)A(t)+A^T(t)P(t)-P(t)B(t)R^{-1}(t)B^T(t)P(t)+Q(t)−P˙(t)=P(t)A(t)+AT(t)P(t)−P(t)B(t)R−1(t)BT(t)P(t)+Q(t)
边界条件 P(tf)=FP(t_f)=FP(tf)=F
最优轨线x∗x^*x∗ (𝒕)是满足下列线性向量微分方程的解:
−x˙(t)=[A(t)−B(t)R−1(t)BT(t)P(t)]x(t),x(t0)=x0-\dot{x}(t)=[A(t)-B(t)R^{-1}(t)B^T(t)P(t)]x(t),x(t_0)=x_0−x˙(t)=[A(t)−B(t)R−1(t)BT(t)P(t)]x(t),x(t0)=x0
u∗(t)=−K(t)x=−R−1(t)BT(t)P(t)x(t)u^*(t)=-K(t)x=-R^{-1}(t)B^T(t)P(t)x(t)u∗(t)=−K(t)x=−R−1(t)BT(t)P(t)x(t) -
无限时间状态调节器
- 问题描述:设线性时变系统的状态方程为:
x˙\dot{x}x˙(𝒕)=𝑨(𝒕)𝒙(𝒕)+𝑩(𝒕)𝒖(𝒕) x(t0)=x0,tf=∞x(t_0)=x_0,t_f=\inftyx(t0)=x0,tf=∞ 假设控制向量𝒖(𝒕)不受约束 ,求最优控制u^* (𝒕) ,使系统的性能指标取极小值:
J=12∫t0∞[xT(t)Q(t)x(t)+u(t)TR(t)u(t)] dt J=\frac {1} {2}\int_{t_0}^{\infty} {[x^T(t)Q(t)x(t)+u(t)^TR(t)u(t)]} \,{\rm d}tJ=21∫t0∞[xT(t)Q(t)x(t)+u(t)TR(t)u(t)]dt
定理:对于无限时间时变状态调节器问题,若{𝑨(𝒕),𝑩(𝒕)}完全可控,则存在唯一的最优控制:u∗(t)=−R−1(t)BT(t)Pˉ(t)xu^*(t)=-R^{-1}(t)B^T(t)\bar{P}(t)xu∗(t)=−R−1(t)BT(t)Pˉ(t)x,
最优性能指标为:J∗(t)=12x(t0)TPˉ(t0)x(t0)J^*(t)=\frac {1} {2}x(t_0)^T\bar{P}(t_0)x(t_0)J∗(t)=21x(t0)TPˉ(t0)x(t0)
Pˉ(t)=limtf→∞P(t)\bar{P}(t)=\lim_{t_f \to \infty}P(t)Pˉ(t)=limtf→∞P(t),是对称的,非负的。
𝑷(𝒕)是如下黎卡提方程的唯一解,且𝐏(tft_ftf)=𝟎:
−P˙(t)=P(t)A(t)+AT(t)P(t)−P(t)B(t)R−1(t)BT(t)P(t)+Q(t)-\dot{P}(t)=P(t)A(t)+A^T(t)P(t)-P(t)B(t)R^{-1}(t)B^T(t)P(t)+Q(t)−P˙(t)=P(t)A(t)+AT(t)P(t)−P(t)B(t)R−1(t)BT(t)P(t)+Q(t)
关于定理需要注意的问题:
1.要求系统完全能控。(保证最优解的存在)
2.F=0,人们所关心的总是系统在有限时间内的响应,不考虑终点指标;
3.Pˉ(t)\bar{P}(t)Pˉ(t)是时变的矩阵,最优控制律是时变的。
- 问题描述:设线性时变系统的状态方程为:
-
问题描述:设线性定常系统的状态方程为:
x˙\dot{x}x˙(𝒕)=𝑨𝒙(𝒕)+𝑩𝒖(𝒕) x(t0)=x0,tf=∞x(t_0)=x_0,t_f=\inftyx(t0)=x0,tf=∞假设控制向量𝒖(𝒕)不受约束 ,求最优控制u^* (𝒕) ,使系统的性能指标取极小值:
J=12∫0∞[xT(t)Qx(t)+u(t)TRu(t)] dt J=\frac {1} {2}\int_{0}^{\infty} {[x^T(t)Qx(t)+u(t)^TRu(t)]} \,{\rm d}tJ=21∫0∞[xT(t)Qx(t)+u(t)TRu(t)]dt
𝑸——非负定对称阵;𝑹——正定对称阵
定理:对于无限时间定常状态调节器问题,若对于任意矩阵𝑫有DDT=QDD^T=QDDT=Q且Pˉ\bar{P}Pˉ是如下黎卡提矩阵代数方程的解:
PˉA+ATPˉ−PˉBR−1BTPˉ+Q=0\bar{P}A+A^T\bar{P}-\bar{P}BR^{-1}B^T\bar{P}+Q=0PˉA+ATPˉ−PˉBR−1BTPˉ+Q=0
则, {𝑨,𝑫}完全可观的充要条件是:Pˉ\bar{P}Pˉ是正定对称矩阵
定理:对于无限时间定常状态调节器问题,若{𝑨(𝒕),𝑩(𝒕)}完全可控, {𝑨,𝑫}完全可观,DDT=QDD^T=QDDT=Q, 𝑫任意,则存在唯一的最优控制u∗(t)=−R−1BTPˉxu^*(t)=-R^{-1}B^T\bar{P}xu∗(t)=−R−1BTPˉx
最优性能指标为: 𝑱^∗=𝟏/𝟐 〖𝒙_𝟎〗^𝑻 𝑷 ̅ (𝒕_𝟎)𝒙_𝟎,
Pˉ\bar{P}Pˉ是正定对称矩阵,是黎卡提矩阵代数方程PˉA+ATPˉ−PˉBR−1BTPˉ+Q=0\bar{P}A+A^T\bar{P}-\bar{P}BR^{-1}B^T\bar{P}+Q=0PˉA+ATPˉ−PˉBR−1BTPˉ+Q=0唯一的解。
最优轨线x∗(t)x^*(t)x∗(t)是方程x˙=(A−BR−1BTPˉ)x\dot{x}=(A-BR^{-1}B^T\bar{P})xx˙=(A−BR−1BTPˉ)x的解。
三、 MATLAB仿真
- 有限时间状态调节器
例
x˙=[0100]x+[01]u\dot{x}=\begin{bmatrix} 0 & 1 \\ 0 & 0 \\ \end{bmatrix}x+\begin{bmatrix} 0 \\ 1 \\ \end{bmatrix}ux˙=[0010]x+[01]u,初始条件x1(0)=1,x2(0)=0x_1(0)=1,x_2(0)=0x1(0)=1,x2(0)=0
性能指标 J=12∫0tf[x12(t)+u2(t)]dtJ=\frac {1} {2}\int_{0}^{t_f}[x{^2_1}(t)+u^2(t)]dtJ=21∫0tf[x12(t)+u2(t)]dt
u∗(t)=−P12(t)x1(t)−P12(t)x2(t)=−x1(t)−2x2(t)u^*(t)=-P_{12}(t)x_1(t)-P_{12}(t)x_2(t)=-x_1(t)-\sqrt{2}x_2(t)u∗(t)=−P12(t)x1(t)−P12(t)x2(t)=−x1(t)−2x2(t)
A=[0 1;0 0];
B=[0;1];
C=eye(2); %单位阵函数
D=[0;0];
Q=diag([1 0]); %对角阵函数
R=1;
K=lqr(A,B,Q,R); %二次型状态调节器设计
initial(ss(A-B*K,B,C,D),[1,0]) %由初始状态引起的零输入响应

- 无限时间状态调节器
- 例
已知系统状态方程表达式为:
x˙=[010001−3−5−5]x+[001]u\dot{x}=\begin{bmatrix} 0 & 1& 0 \\ 0 & 0 & 1\\ -3 & -5 & -5\\ \end{bmatrix}x+\begin{bmatrix} 0 \\ 0 \\ 1 \\ \end{bmatrix}ux˙=⎣⎡00−310−501−5⎦⎤x+⎣⎡001⎦⎤u,y=[100]y=\begin{bmatrix} 1 & 0& 0 \\ \end{bmatrix}y=[100]
系统二次型性能指标为:J=∫0∞[xT(t)Qx(t)+u(t)TRu(t)] dt J=\int_{0}^{\infty} {[x^T(t)Qx(t)+u(t)^TRu(t)]} \,{\rm d}tJ=∫0∞[xT(t)Qx(t)+u(t)TRu(t)]dt
Q=[10000010001]Q=\begin{bmatrix} 100 & 0& 0 \\ 0 & 1 & 0\\ 0 & 0 & 1\\ \end{bmatrix}Q=⎣⎡10000010001⎦⎤ R=[1]R=\begin{bmatrix} 1\\ \end{bmatrix}R=[1]
A=[0 1 0;0 0 1;-3 -5 -5];
B=[0;0;1];
C=[1 0 0];
D=0;
Q=[100 0 0;0 1 0;0 0 1];
R=1;
K=lqr(A,B,Q,R);
Ac=A-B*K;
Bc=B*K;
Cc=C;
Dc=D;
e=eig(Ac)

2. 例
已知系统状态方程表达式为:
x˙=[0100000−2−3]x+[001]u\dot{x}=\begin{bmatrix} 0 & 1& 0 \\ 0 & 0 & 0\\ 0 & -2 & -3\\ \end{bmatrix}x+\begin{bmatrix} 0 \\ 0 \\ 1 \\ \end{bmatrix}ux˙=⎣⎡00010−200−3⎦⎤x+⎣⎡001⎦⎤u,y=[100]y=\begin{bmatrix} 1 & 0& 0 \\ \end{bmatrix}y=[100],
采用输出反馈控制律𝒖(𝒕)=−𝑲𝒚(𝒕),系统二次型性能指标为:
J=∫0∞[yT(t)Qy(t)+u(t)TRu(t)] dt J=\int_{0}^{\infty} {[y^T(t)Qy(t)+u(t)^TRu(t)]} \,{\rm d}tJ=∫0∞[yT(t)Qy(t)+u(t)TRu(t)]dt
Q=[100]Q=\begin{bmatrix} 100\\ \end{bmatrix}Q=[100],R=[1]R=\begin{bmatrix} 1\\ \end{bmatrix}R=[1];试求最优控制的反馈增益矩阵𝑲使性能指标达到最小值。
A=[0 1 0;0 0 1;0 -2 -3];
B=[0;0;1]; C=[1 0 0]; D=0;
Q=diag([100]);
R=1;
[K,P,r]=lqry(A,B,C,D,Q,R)
t=0:0.1:10;
figure(1);step(A-B*K,B,C,D,1,t)
figure(2);step(A,B,C,D,1,t)


更多推荐



所有评论(0)