资源描述
单级倒立摆LQR控制
1、建模
在忽略了空气阻力,各种摩擦之后,可将直线一级倒立摆系统抽象成小车和匀质杆组成的系统,如下图所示。
F
θ
X
M
其中:
M 小车质量
m 摆杆质量
b 小车摩擦系数
l 摆杆转动轴心到杆质心的长度
I 摆杆惯量
F 加在小车上的力
x 小车位置
φ 摆杆与垂直向上方向的夹角
θ 摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)
采用牛顿动力学方法可建立单级倒立摆系统的微分方程如下:
倒立摆的平衡是使倒立摆的摆杆垂直于水平方向倒立,所以假设,为足够小的角度,即可近似处理得:,,。
用u来代表被控对象的输入力F,线性化后两个方程如下:
取状态变量:
即摆杆的角度和角速度以及小车的位移和速度四个状态变量。则系统的状态方程为:
将上式写成向量和矩阵的形式,就成为线性系统的状态方程:
这里设:
将参数带入,有:
2、LQR控制
线性二次型是指系统的状态方程是线性的,指标函数是状态变量和控制变量的二次型。考虑线性系统的状态方程为:
找一状态反馈控制律:,使得二次型性能指标最小化:
其中,为系统的状态变量;、为起始时间与终止时间;为终态约束矩阵;为运动约束矩阵;为约束控制矩阵。其中、决定了系统误差与控制能量消耗之间的相对重要性。
为使最小,由最小值原理得到最优控制为:
式中,矩阵为微分Riccatti方程:的解。
如果令终止时间,为一个常数矩阵,且,因此以上的Riccatti方程简化为。
对于最优反馈系数矩阵,使用Matlab中专门的求解工具lqr()来求取。将LQR控制方法用于倒立摆控制的原理如下图所示。
用Matlab求解lqr(A, B, Q, R)可以求出最优反馈系数矩阵的值。lqr函数需要选择两个参数和,这两个参数是用来平衡输入量和状态量的权重。其中,代表摆杆角度的权重,而是小车位置的权重。这里选择:
通过matlab求得:K = [-82.4246 -10.7034 -10.0000 -11.8512]。
3、仿真
通过matlab仿真,LQR控制倒立摆摆角和小车位移仿真结果如下图所示。
倒立摆摆角:
小车位移:
4、心得体会
通过对最优控制这门课阶段性的学习,对控制理论有了更深一步的理解。在把课上学到的方法应用到实际问题的解决中,拓宽了思路,开拓了事业,受益匪浅。感谢老师对我们悉心的指导,感谢同学们对自己的帮助。
展开阅读全文