LQR系统最优控制器设计的MATLAB实现及应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LQR系统最优控制器设计的MATLAB实现及应⽤
LQR 系统最优控制器设计的MATLAB 实现及
应⽤
LQR( linear quadratic regulator) 即线性⼆次型调节器, 其对象是现代控制理论中以状态空间形式给出的线性系统, ⽽⽬标函数为对象状态和控制输⼊的⼆次型函数。

LQR 最优设计指设计是出的状态反馈控制器K要使⼆次型⽬标函数J 取最⼩值, ⽽K由权矩阵Q 与R 唯⼀决定, 故此Q、R 的选择尤为重要。

LQR理论是现代控制理论中发展最早也最为成熟的⼀种状态空间设计法。

特别可贵的是, LQR可得到状态线性反馈的最优控制规律, 易于构成闭环最优控制。

⽽且Matlab 的应⽤为LQR 理论仿真提供了条件,更为我们实现稳、准、快的控制⽬标提供了⽅便。

⼀、LQR 最优控制器系统设计的Matlab 实现
1.1 LQR 最优控制器的系统设计
假设线性系统状态空间描述为:
x = Ax+ Bu,
v= Cx 。

其中x 为n*1状态向量, u为m*1输⼊向量。

不失⼀般性考虑⼀个⼆次型⽬标函数:
(1)
式( 1) 中, Q 、R 称为加权矩阵, 且Q 为n*n 维正半定阵, R 为m*m 维正定阵。

最优控制即寻求控制作⽤u(图1)使⽬标函数J 最⼩。

应⽤极⼩值原理, 可以得出最优控制作⽤:
1T x u kx R B P -=-=-, 其中,P 为代数Riccati ⽅程
1():0T T ARE A P PA PBR B P Q -+-+=的正半定解。

Matlab 中的lqr( )函数不仅可以求解ARE 的解P, 还可以同时求出K 。

1.2 Q ,R 的选择原则
由原理知, 要求出最优控制作⽤u, 除求解ARE ⽅程外, 加权矩阵的选择也是⾄关重要的。

⽽Q 、R 选择⽆⼀般规律可循, ⼀般取决于设计者的经验, 常⽤的所谓试⾏错误法,即选择不同的Q 、R 代⼊计算⽐较结果⽽确定。

这⾥仅提供⼏个选择的⼀般原则:
1) Q 、R 都应是对称矩阵, Q 为正半定矩阵, R 为正定矩阵。

2) 通常选⽤Q 和R 为对⾓线矩阵, 实际应⽤中, 通常将R 值固定, 然后改变Q 的数值, 最优控制的确定通常在经过仿
真或实际⽐较后得到。

当控制输⼊只有⼀个时, R 成为⼀个标量数( ⼀般可直接选R=1) 。

3) Q 的选择不唯⼀。

这表明当得到的控制器相同时, 可以有多种Q值的选择, 其中总有⼀个对⾓线形式的Q。

1.3 LQR 最优控制器系统设计的Matlab 实现⽅法Matlab 控制系统⼯具箱提供了完整的解决线性⼆次型最优控制问题的命令和算法, 其中函数lqr() 可以直接求解⼆次型调节器问题, 命令格式如下:
[K,P,E] =lqr( A,B,Q,R),其中K为最优反馈增益矩阵, P 为Riccati⽅程的唯⼀正定解, E 为A-BK 的特征值。

⼆、实际应⽤或实例
倒⽴摆系统是⼀典型的⾮线性、不稳定的被控对象, 倒⽴摆系统的控制问题被公认为是控制理论的⼀个典型问题, 其结构组成如图2 所⽰。

经过线性化后的数学模型为:
倒⽴摆系统基本数据如下:⼩车重量M =1.32kg,摆杆质量m = 0.07kg, ⼩车摩擦系数b =0.1N/m/s, 摆杆长度l =
0.2m,摆杆转动惯量I =0.00093kg.2m,加在⼩车上的⼒F,⼩车位移x, 摆杆与垂直⽅向的夹⾓,采样周期T= 0.010s。

系统设计的性能指标要求为:当在⼩车上施加⼀⼩阶跃信号F 时,摆杆⾓度和⼩车位移调整的时间⼩于4s, x上升时间⼩于
1s, 的超调量⼩于50, 稳态误差⼩于2%。

由以上数据可以得到系统的状态⽅程如下:
下⾯来选择LQR 最优控制器的2 个控制参数R 和Q。

这2 个参量⽤来平衡输⼊量和状态量的权重。

在本例中, 取
R= 1, Q= diag( 1, 0, 1, 0) , 运⾏下⾯的Matlab 程序:
A= [0 1 0 0;0 -0.1818 2.6727 0;0 0 0 1;0 -0.4545 31. 1818 0] ;
B=[0;1.8182;0;4.5455]; C=[0 0 1 0;0 0 1 0]; D= [0] ;
Q= [ 1 0 0 0; 0 0 0 0; 0 0 1 0; 0 0 0 0] ; R= [ 1] ;
[ k,p,e] = lqr( A, B,Q, R) ;
Ac=(A-B*k); Bc=B; Cc=C; Dc=D;
[ y, x, t] = step( Ac, Bc, Cc, Dc) ;
y1= y( :,1) ; y2= y(:,2) ;
plot( t, y1, ' r: ' , t , y2) , grid
xlabel('Time/s' , 'FontSize', 14)
legend( '⼩车位移', '摆杆倾⾓')
可以求得k =[- 1.000, -1.6567, 18.6854,3.4594] , 并得到系统的响应曲线如图3 所⽰, 系统的响应速度太慢。

为此, 增⼤Q11 使稳定时间和上升时间变短, 并且使摆杆的⾓度变化减⼩, 取Q11=4500, Q33= 110, 重新运⾏上⾯的Matlab 程序, 得到k=[- 67.0820, -36.1688, 101.8878, 20.1743] , 系统的响应曲线如图4 所⽰, 可以看出系统的动态性能有较⼤改善。

三、结论
LQR 最优控制利⽤廉价成本可以使原系统达到较好的性能指标( 事实也可以对不稳定的系统进⾏镇定) , ⽽且⽅
法简单便于实现, 同时利⽤Matlab 强⼤的功能体系容易对系统实现仿真。

本⽂利⽤Matlab 对实例进⾏LQR 最优控制设计, ⽐较Q、R 变化对系统动态性能的影响, 说明LQR 系统设计的简单⽽可⾏性及Q、R 变化对系统性能影响的重要性。

相关文档
最新文档