LQR——从公式到建模

LQR——从公式到建模

1、选用经典的倒立摆模型(闭环控制)

在这里插入图片描述

Goal: ϕ = 0 \phi = 0 ϕ=0
小球 X X X 方向位移

X = L s i n ϕ + δ X = Lsin\phi + \delta X=Lsinϕ+δ

线性化: ϕ → 0     s i n ϕ =   ϕ \phi\rightarrow0\ \ \ sin \phi=\ \phi ϕ0   sinϕ= ϕ

X = L ϕ + δ X = L\phi + \delta X=Lϕ+δ

X方向力:

F x = m x ¨ F_x = m\ddot{x} Fx=mx¨

对 F 进行受力分析

F x = F s i n ϕ = F ϕ F_x = Fsin\phi = F\phi Fx=Fsinϕ=

F y = F c o s ϕ = F F_y = Fcos\phi = F Fy=Fcosϕ=F

F ϕ = m L ϕ ¨ + m δ ¨ F\phi = mL\ddot{\phi} + m\ddot{\delta} =mLϕ¨+mδ¨ — 1

Y方向力:

F y = m g F_y=mg Fy=mg

F = m g F=mg F=mg — 2

联立1、2式: m g ϕ = m L ϕ ¨ + m δ ¨ mg\phi=mL\ddot{\phi}+m\ddot{\delta} mgϕ=mLϕ¨+mδ¨

​ 把 m m m消掉得系统的动态方程:

ϕ ¨ − g L ϕ + 1 L δ ¨ = 0 \ddot{\phi}-\frac{g}{L}\phi+\frac{1}{L}\ddot{\delta}=0 ϕ¨Lgϕ+L1δ¨=0

  1. State Space

x 1 = ϕ x_1=\phi x1=ϕ ⇒ \Rightarrow x 1 ˙ = ϕ ˙ = x 2 \dot{x_1}=\dot{\phi}=x_2 x1˙=ϕ˙=x2

x 2 = ϕ ˙ x_2=\dot{\phi} x2=ϕ˙ ⇒ \Rightarrow x 2 ˙ = ϕ ¨ = g L ϕ − 1 L δ ¨ = g L x 1 − u \dot{x_2}=\ddot{\phi}=\frac{g}{L}\phi-\frac{1}{L}\ddot{\delta}=\frac{g}{L}x_1-u x2˙=ϕ¨=LgϕL1δ¨=Lgx1u

u = 1 L δ ¨ u=\frac{1}{L}\ddot{\delta} u=L1δ¨

​ 状态空间方程:

[ x 1 ˙ x 2 ˙ ] = [ 0 1 g L 0 ] [ x 1 x 2 ] + [ 0 − 1 ] u \left[\begin{matrix}\dot{x_1}\\\dot{x_2}\\\end{matrix}\right]=\left[\begin{matrix}0&1\\\frac{g}{L}&0\\\end{matrix}\right]\left[\begin{matrix}x_1\\x_2\\\end{matrix}\right]+\left[\begin{matrix}0\\-1\\\end{matrix}\right]u [x1˙x2˙]=[0Lg10][x1x2]+[01]u

  1. Open Loop

A   =   [ 0 1 g L 0 ] A\ =\ \left[\begin{matrix}0&1\\\frac{g}{L}&0\\\end{matrix}\right] A = [0Lg10]

   ∣ λ I − A ∣ = 0   ⇒   ∣ λ − 1 − g L λ ∣   =   λ 2 − g L ⇒ λ = ± g L \ \ \left|\lambda I-A\right|=0\ \Rightarrow\ \left|\begin{matrix}\lambda&-1\\-\frac{g}{L}&\lambda\\\end{matrix}\right|\ =\ \lambda^2-\frac{g}{L}\Rightarrow\lambda=\pm\sqrt{\frac{g}{L}}   λIA=0   λLg1λ  = λ2Lgλ=±Lg

λ \lambda λ有大于0的成分,不稳定!

  1. Controllable?

C o = [ B A B ] = [ 0 − 1 − 1 0 ] C_o=\left[\begin{matrix}B&AB\\\end{matrix}\right]=\left[\begin{matrix}0&-1\\-1&0\\\end{matrix}\right] Co=[BAB]=[0110] R a n k ( C o ) = 2    ⇒   可控 Rank\left(C_o\right)=2\ \ \Rightarrow\ \ 可控 Rank(Co)=2    可控

  1. Let u = − [ k 1 k 2 ] [ x 1 x 2 ] u=-\left[\begin{matrix}k_1&k_2\\\end{matrix}\right]\left[\begin{matrix}x_1\\x_2\\\end{matrix}\right] u=[k1k2][x1x2] 使得 λ 1 = λ 2 = − 1 \lambda_1=\lambda_2=-1 λ1=λ2=1

[ x 1 ˙ x 2 ˙ ] = [ 0 1 g L 0 ] [ x 1 x 2 ] + [ 0 − 1 ] [ − k 1 − k 2 ] [ x 1 x 2 ] = [ 0 1 g L + k 1 k 2 ] [ x 1 x 2 ] \left[\begin{matrix}\dot{x_1}\\\dot{x_2}\\\end{matrix}\right]=\left[\begin{matrix}0&1\\\frac{g}{L}&0\\\end{matrix}\right]\left[\begin{matrix}x_1\\x_2\\\end{matrix}\right]+\left[\begin{matrix}0\\-1\\\end{matrix}\right]\left[\begin{matrix}-k_1&-k_2\\\end{matrix}\right]\left[\begin{matrix}x_1\\x_2\\\end{matrix}\right]=\left[\begin{matrix}0&1\\\frac{g}{L}+k_1&k_2\\\end{matrix}\right]\left[\begin{matrix}x_1\\x_2\\\end{matrix}\right] [x1˙x2˙]=[0Lg10][x1x2]+[01][k1k2][x1x2]=[0Lg+k11k2][x1x2]

​ 即 A C L = [ 0 1 g L + k 1 k 2 ] A_{CL}=\left[\begin{matrix}0&1\\\frac{g}{L}+k_1&k_2\\\end{matrix}\right] ACL=[0Lg+k11k2]

A C L A_{CL} ACL特征值,令 ∣ λ I − A C L ∣ = 0 \left|\lambda I-A_{CL}\right|=0 λIACL=0

得: k 1 = − 1 − g L k_1=-1-\frac{g}{L} k1=1Lg k 2 = − 2 k_2=-2 k2=2

​ 因此,输入 u = − [ − 1 − g L − 2 ] [ x 1 x 2 ] u=-\left[\begin{matrix}-1-\frac{g}{L}&-2\\\end{matrix}\right]\left[\begin{matrix}x_1\\x_2\\\end{matrix}\right] u=[1Lg2][x1x2]

= [ 1 + g L 2 ] [ ϕ ϕ ˙ ] =\left[\begin{matrix}1+\frac{g}{L}&2\\\end{matrix}\right]\left[\begin{matrix}\phi\\\dot{\phi}\\\end{matrix}\right] =[1+Lg2][ϕϕ˙]

2、引入LQR

**Goal:**选取不同的特征值 λ \lambda λ,来决定系统是如何靠近这个状态的

上面为了简便,所以将 λ 1 = λ 2 = − 1 \lambda_1=\lambda_2=-1 λ1=λ2=1,即保持系统稳定即可

引入Cost Function(目标函数,能量函数)

m i n J = ∫ 0 ∞ ( X T Q X + U T R U )   d t minJ=\int_{0}^{\infty}{\left(X^TQX+U^TRU\right)\ dt} minJ=0(XTQX+UTRU) dt

X T Q X X^TQX XTQX为正(二次型),展开为 a x 1 2 + b x 2 2 + c x 3 2 ⋯ ⋯ a{x_1}^2+b{x_2}^2+c{x_3}^2\cdots\cdots ax12+bx22+cx32⋯⋯,表达了Penalty的概念:当 x ≠ 0 x\neq0 x=0时,J会根据ABC大小有不同的反应

U T R U U^TRU UTRU代表了整个输入对Cost Function的影响。R越大U对J的影响越大

LQR的意思是在同时满足系统稳定性的同时,去寻找Cost Function的最小值

3、Simulink仿真

​ 状态空间方程:
x ˙ 1 = x 2 {\dot{x}}_1=x_2 x˙1=x2

x ˙ 2 = 10 x 1 − u {\dot{x}}_2=10x_1-u x˙2=10x1u

u = − k 1 x 1 − k 2 x 2 u=-k_1x_1-k_2x_2 u=k1x1k2x2

L = 1 , g = 10 L=1,g=10 L=1,g=10,可得 x 1 ˙ 和 x 2 ˙ \dot{x_1}和\dot{x_2} x1˙x2˙

在Simulink中可搭建如下仿真:

  1. 假设为开环系统( k = 0 k=0 k=0

在这里插入图片描述

先令 k 1 = k 2 = 0 k_1=k_2=0 k1=k2=0,构成开环系统

运行后点击Scope,可看出系统无法收敛(系统输出为无穷而非震荡是因为把 s i n ϕ = ϕ sin\phi=\phi sinϕ=ϕ了)

  1. 用LQR得到不同的K值

​ 在Matlab命令行中输入

clear all
A=[0 1;10 0]
B=[0;-1]
Q=[100 0;0 1]
R=0.01;
K=lqr(A,B,Q,R)

希望系统有快速的反应,因此Q中 x 1 x_1 x1的系数为100,但并不关心速度,因此 x 2 x_2 x2系数为1

同时并不关心输入大小为多少,因此R为0.01

​ 代码可输出:

K = -110.4988 -17.9164

  1. 选取不同的Q和R

将上一个系统作为Q较大的子系统,现在再创建一个R较大的子系统

在这里插入图片描述

clear all
A=[0 1;10 0]
B=[0;-1]
Q=[1 0;0 1]
R=100;
K=lqr(A,B,Q,R)

不再关心收敛速度,因此Q的 x 1 x_1 x1系数为1

更关心输入,希望很小的输入就能完成收敛,因此 R = 100 R=100 R=100

代码可输出:

K = -20.0005 -6.3254

  1. 结果讨论

在这里插入图片描述

黄线为Q较大的情况,红线为R较大的情况

通过选取不同的Q和R矩阵,可以获得不同的系统表现,对于黄线,需要更快达到收敛效果,对于红线,需要更高的能耗比
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Simulink 是一种基于图形化编程的环境,用于进行系统建模、仿真和控制设计。在 Simulink 中使用 LQR(线性二次型调节器)进行系统建模,可以实现对控制系统的优化设计。 首先,我们需要在 Simulink 中定义系统的状态方程。可以通过输入和输出信号之间的关系建立状态空间模型,或者通过系统的传递函数建立传递函数模型。根据实际需求选择合适的模型表示系统。 接下来,我们需要设计 LQR 控制器。LQR 控制器是一种基于状态反馈的优化控制器。它通过最小化系统的成本函数,自适应地计算控制器的增益矩阵,从而实现对系统状态的最优调节。 在 Simulink 中,可以使用 State-Space Block 或 Transfer Function Block 来建立系统模型,并使用 LQR Controller Block 来实现 LQR 控制器。通过配置 LQR 控制器的权重矩阵,可以根据实际需求控制各个状态量的权重。权重矩阵的选择将直接影响到控制器的性能。 最后,将输入信号和输出信号连接到模型中,设置初始状态,运行 Simulink 模拟程序。通过观察模拟结果,可以评估控制系统的性能,并根据需求调整权重矩阵,不断优化控制器设计。 通过 Simulink 建模LQR 控制器,我们可以实现对系统的模拟和优化。Simulink 提供了丰富的工具和功能,可以帮助我们快速搭建模型、进行仿真和进行参数调节,从而优化控制系统的设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值