线性二次型问题
- 线性二次型问题:系统为线性系统,性能指标为状态变量与控制变量的二次型函数,这类系统的最优控制问题。
- 主要内容:最优状态调节、最优输出调节和最优跟踪,其中,最优输出调节问题和最优跟踪问题可以化为最优状态调节问题。
- 特点:
1)应用广泛,可应用于工作在小信号条件下的非线性系统;
2)控制规律是状态变量的线性函数。
3)具有良好的频域特性,可实现极点最优配置
一、线性二次型问题
问题描述:线性时变系统的动态方程为(𝒕)=𝑨(𝒕)𝒙(𝒕)+𝑩(𝒕)𝒖(𝒕) 𝒙(
)=
𝒚(𝒕)=𝑪(𝒕)𝒙(𝒕) 其中,𝒙(𝑡)n维, 𝒖(𝑡)m维, y(𝑡)l维
假设控制向量𝒖(𝑡)不受约束 ,用𝒚_𝑙 (𝑡)表示期望输出,
则误差向量为𝒆(𝑡)=(𝑡)−𝒚(t)
指标泛函: 和
固定,求最优控制𝒖^∗ (𝒕),使性能指标有最小值。
此问题称线性二次型性能指标的最优控制问题
线性二次型问题的本质:
用不大的控制,来保持较小的误差,以达到能量和误差综合最优的目的。
线性二次型问题的三种重要情形:(𝒕)=𝑨(𝒕)𝒙(𝒕)+𝑩(𝒕)𝒖(𝒕)
𝒚(𝒕)=𝑪(𝒕)𝒙(𝒕)
𝒆(𝒕)=
1.状态调节器问题 𝑪(𝒕)=𝑰 (𝒕)=𝟎 𝒚(𝒕)=𝒙(𝒕)=−𝒆(𝒕)
当系统受扰偏离平衡状态时,要求系统产生控制向量,使指标极小,即,使𝒙(𝒕)始终保持在平衡点附近。
2.输出调节器问题 (𝒕)=𝟎 𝒚(𝒕)=−𝒆(𝒕)
当系统受扰偏离平衡状态时,要求系统产生控制向量,使指标极小,即,使系统输出𝒚(𝒕)始终保持在平衡点附近。
3.跟踪问题
使系统实际输出𝒚(𝒕)始终跟随𝒚_𝒍 (𝒕) 变化
二、状态调节器问题
应用举例:电网电压控制;温度控制;压力控制等。
目的:保持系统状态在平衡状态附近;(通常取“零状态”为平衡状态)
- 有限时间状态调节器
问题描述:设线性时变系统的状态方程为:(𝒕)=𝑨(𝒕)𝒙(𝒕)+𝑩(𝒕)𝒖(𝒕),𝒙(
)=
假设控制向量𝒖(𝒕)不受约束 ,求最优控制(𝒕),使系统的二次型性能指标取极小值:
权矩阵:𝑭=; 𝑸(𝒕)=
;𝑹(𝒕)=
(𝒕)>𝟎,
固定且
≠∞。
物理意义:以较小的控制能量为代价,使状态保持在零值附近。
黎卡提方程
边界条件
最优轨线(𝒕)是满足下列线性向量微分方程的解:
- 无限时间状态调节器
- 问题描述:设线性时变系统的状态方程为:
(𝒕)=𝑨(𝒕)𝒙(𝒕)+𝑩(𝒕)𝒖(𝒕)
假设控制向量𝒖(𝒕)不受约束 ,求最优控制u^* (𝒕) ,使系统的性能指标取极小值:
定理:对于无限时间时变状态调节器问题,若{𝑨(𝒕),𝑩(𝒕)}完全可控,则存在唯一的最优控制:,
最优性能指标为:,是对称的,非负的。
𝑷(𝒕)是如下黎卡提方程的唯一解,且𝐏()=𝟎:
关于定理需要注意的问题:
1.要求系统完全能控。(保证最优解的存在)
2.F=0,人们所关心的总是系统在有限时间内的响应,不考虑终点指标;
3.是时变的矩阵,最优控制律是时变的。
- 问题描述:设线性定常系统的状态方程为:
(𝒕)=𝑨𝒙(𝒕)+𝑩𝒖(𝒕)
假设控制向量𝒖(𝒕)不受约束 ,求最优控制u^* (𝒕) ,使系统的性能指标取极小值:
𝑸——非负定对称阵;𝑹——正定对称阵
定理:对于无限时间定常状态调节器问题,若对于任意矩阵𝑫有且
是如下黎卡提矩阵代数方程的解:
则, {𝑨,𝑫}完全可观的充要条件是:是正定对称矩阵
定理:对于无限时间定常状态调节器问题,若{𝑨(𝒕),𝑩(𝒕)}完全可控, {𝑨,𝑫}完全可观,, 𝑫任意,则存在唯一的最优控制
最优性能指标为: 𝑱^∗=𝟏/𝟐 〖𝒙_𝟎〗^𝑻 𝑷 ̅ (𝒕_𝟎)𝒙_𝟎,是正定对称矩阵,是黎卡提矩阵代数方程
唯一的解。
最优轨线是方程
的解。
三、 MATLAB仿真
- 有限时间状态调节器
例,初始条件
性能指标
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]) %由初始状态引起的零输入响应
- 无限时间状态调节器
- 例
已知系统状态方程表达式为:,
系统二次型性能指标为:
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. 例
已知系统状态方程表达式为:,
,
采用输出反馈控制律𝒖(𝒕)=−𝑲𝒚(𝒕),系统二次型性能指标为:,
;试求最优控制的反馈增益矩阵𝑲使性能指标达到最小值。
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)

















