问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

倒立摆模型及其LQR位置跟踪控制详解

创作时间:
作者:
@小白创作中心

倒立摆模型及其LQR位置跟踪控制详解

引用
CSDN
1.
https://blog.csdn.net/weixin_55249340/article/details/140421091

倒立摆模型是一种经典的控制理论研究对象,广泛应用于机器人、航空航天等领域。LQR(线性二次调节器)控制方法则是一种常用的最优控制策略,能够实现系统的稳定控制。本文将详细介绍倒立摆模型的推导过程及其使用LQR进行位置跟踪控制的方法。

一、参数设定

倒立摆示意图如下:

其中各个符号如下:

符号
含义
符号
含义
M
小车质量
m
摆杆质量
b1
小车移动阻尼
b2
摆杆转动阻尼
x
小车位置(水平向右为正)
θ
摆杆摆动的角度(顺时针转动为正)
-
-
l
转动关节到摆杆质心的长度
F
作用到小车的外力(水平向右为正)
I
摆杆绕质心的转动惯量
N
摆杆对小车的力水平分量
P
小车对摆杆的力竖直分量
N
小车对摆杆的力水平分量
P
摆杆对小车的力竖直分量

二、受力分析

1. 小车水平方向:

F - N - b1 x· = M x··

2. 摆杆水平方向:

N = m d2(x + l sin θ) / dt2 = m (x·· + θ·· l cos θ - θ·2 l sin θ)

3. 摆杆竖直方向:

P - mg = m d2(l cos θ) / dt2 = -m (θ·· l sin θ + θ·2 l cos θ)

4. 摆杆转动方向(对质心求矩):

P l sin θ - N l cos θ - b2 θ· = I θ··

5. 牛顿第三定律定律:

N = N
P = P

三、方程求解

1. 联立方程(1)、(2)、(5),消去N、N

(M + m) x·· + b1 x· + m (θ·· l cos θ - θ·2 l sin θ) = F

2. 联立方程(2)、(3)、(4),消去P、N

(I + ml2) θ·· + b2 θ· + ml x·· cos θ = mgl sin θ

3. 联立方程(7)、(8),整理得:

θ·· = [(M+m)b2θ· + ml((F + mlθ·2sinθ - b1x·)cosθ - (M+m)g sin(θ))] / [m2l2cos2θ - (I+ml2)(M+m)]

x·· = [(I+ml2)(F-b1x·) + ml[ml(lθ·2sinθ - gcosθsinθ) + Iθ·sinθ + b2θ·cosθ]] / [(I+ml2)(M+m) - m2l2cos2θ]

注意:上述方程均采用MATLAB进行推导,正确与否还有待验证!

四、模型线性化

由三 方程求解的方程结果可知,倒立摆系统是一个的非线性系统。

为了便于实现后续的控制,可在工作点(θ = 0)附近,进行线性化,具体过程如下:

当θ ≈ 0处,有:

cosθ = 0
sinθ = θ
θ·2 = 0

带入(10)到三 方程求解中的非线性模型(9)中,简单整理可得:

θ·· = 3(M+m)g / [(4M+m)l]θ - 3(M+m)b2 / [(4M+m)ml2· + 3b1 / [(4M+m)l]x· - 3 / [(4M+m)l]F

x·· = -3mg / (4M+m)θ + 3b2 / [(4M+m)l]θ· - 4b1 / (4M+m)x· + 4 / (4M+m)F

其中I = ml2 / 3

取X = [θ θ· x x·]T为状态变量,倒立摆状态空间模型如下:

X· = AX + Bu
Y = CX

其中:

A = [0 1 0 0
3(M+m)g / [(4M+m)l] -3(M+m)b2 / [(4M+m)ml2] 0 3b1 / [(4M+m)l]
0 0 0 1
-3mg / (4M+m) 3b2 / [(4M+m)l] 0 -4b1 / (4M+m)]

B = [0
-3 / [(4M+m)l]
0
4 / (4M+m)]

C = [1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1]

五、采用LQR方法进行全状态反馈控制

1. LQR(Linear Quadratic Regulator)方法

针对线性系统,定义状态误差加权和控制输入加权为代价函数J:

J = ∫0 (ETQE + uTRu) dt = ∫0 [(X-Ref)TQ(X-Ref) + uTRu] dt

其中Q,R为正定或者半正定矩阵,Ref为参考的状态

通过系列方法,最终求解黎卡提Riccati方程:

ATP + PA - PBR-1BTP + Q = 0

得出K = R-1BTP

最终得出使得代价J最小的控制律为:

u = -K(X-Ref)

在MATLAB中可使用函数lqr(lqr函数介绍)直接得出K:

调用lqr(A,B,Q,R)即可求解K

关于lqr方法的推导过程可参考lqr推导过程

2. 倒立摆全状态反馈控制模型仿真

取模型中固有参数如下:

M = 1.0 kg
m = 0.5 kg
l = 0.5 m
b1 = 0.3
b2 = 0.0

按照四 模型线性化中的模型得:

A = [0 1 0 0
19.6133 0 0 0.4
0 0 0 1
-3.2689 0 0 -0.2667]

B = [0
-1.3333
0
0.8889]

C = [1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1]

设置Q,R如下:

Q = [20000 0 0 0
0 1 0 0
0 0 10000 0
0 0 0 1]

R = [0.001]

通过MATLAB中lqr函数计算出反馈增益K:

K = [-7470.90 -1559.47 -3162.27 -2193.39]

在simulink中搭建控制仿真模型如下:

输入计算出的反馈增益K仿真结果如下:

MATLAB代码和simulink模型点击这里

欢迎大家一起交流!

Reference:

  1. LQR控制算法推导-连续与离散形式:https://blog.csdn.net/zjh2883/article/details/136167154
  2. MATLAB LQR函数:https://ww2.mathworks.cn/help/control/ref/lti.lqr.html
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号