倒立摆模型

倒立摆模型

1. 系统描述与建模假设

1.1 系统结构

  • 小车质量: M M M,沿水平方向运动
  • 摆杆长度: l l l,刚性杆,质量忽略
  • 摆端小球质量: m m m
  • 摆轴位置 P ( x , 0 ) P(x,0) P(x,0)
  • 摆轴旋转角度 θ \theta θ
  • 摆端小球位置: Q ( X , Y ) Q(X,Y) Q(X,Y)
  • 小车受水平控制力: F F F

目标:通过控制小车水平控制力 F F F ,使摆杆稳定在倒立位置。


1.2 广义坐标选取

选取如下广义坐标:

  • x x x:小车的水平位移
  • θ \theta θ:摆杆相对于竖直向上方向的夹角(逆时针为正)

约定倒立平衡点为:

θ = 0 \theta = 0 θ=0


2. 运动学关系

2.1 摆球位置

摆球在惯性坐标系中的位置为:

X = x − l sin ⁡ θ Y = l cos ⁡ θ \begin{aligned} X &= x - l\sin\theta \\ Y &= l\cos\theta \end{aligned} XY=x−lsinθ=lcosθ


2.2 速度表达式

对时间求导:

X ˙ = x ˙ − l θ ˙ cos ⁡ θ Y ˙ = − l θ ˙ sin ⁡ θ \begin{aligned} \dot X &= \dot x - l\dot\theta\cos\theta \\ \dot Y &= -l\dot\theta\sin\theta \end{aligned} X˙Y˙=x˙−lθ˙cosθ=−lθ˙sinθ

速度平方为:

v 2 = X ˙ 2 + Y ˙ 2 = x ˙ 2 − 2 l x ˙ θ ˙ cos ⁡ θ + l 2 θ ˙ 2 \begin{aligned} v^2 &= \dot X^2 + \dot Y^2 \\ &= \dot x^2 - 2l\dot x\dot\theta\cos\theta + l^2\dot\theta^2 \end{aligned} v2=X˙2+Y˙2=x˙2−2lx˙θ˙cosθ+l2θ˙2


3. 能量表达式

3.1 动能 T T T

小车的动能:

T cart = 1 2 M x ˙ 2 T_{\text{cart}} = \frac{1}{2} M \dot x^2 Tcart=21Mx˙2

摆球的动能:

T pend = 1 2 m v 2 T_{\text{pend}} = \frac{1}{2} m v^2 Tpend=21mv2

系统总动能:

T = 1 2 ( M + m ) x ˙ 2 − m l x ˙ θ ˙ cos ⁡ θ + 1 2 m l 2 θ ˙ 2 T=\frac{1}{2}(M+m)\dot x^2- ml\dot x\dot\theta\cos\theta+ \frac{1}{2}ml^2\dot\theta^2 T=21(M+m)x˙2−mlx˙θ˙cosθ+21ml2θ˙2

3.2 势能 V V V

以小车铰点高度为零势能参考:

V = m g l cos ⁡ θ V = m g l \cos\theta V=mglcosθ

倒立位置 θ = 0 \theta = 0 θ=0 对应势能最大值,是一个不稳定平衡点。


4. 拉格朗日函数

拉格朗日量定义为:

L = T − V \mathcal{L} = T - V L=T−V

代入得:

L = 1 2 ( M + m ) x ˙ 2 − m l x ˙ θ ˙ cos ⁡ θ + 1 2 m l 2 θ ˙ 2 − m g l cos ⁡ θ \mathcal{L}=\frac{1}{2}(M+m)\dot x^2- ml\dot x\dot\theta\cos\theta+ \frac{1}{2}ml^2\dot\theta^2- mgl\cos\theta L=21(M+m)x˙2−mlx˙θ˙cosθ+21ml2θ˙2−mglcosθ


5. 拉格朗日方程

拉格朗日方程为:

d d t ( ∂ L ∂ q ˙ i ) − ∂ L ∂ q i = Q i \frac{d}{dt}\left(\frac{\partial \mathcal{L}}{\partial \dot q_i}\right)-\frac{\partial \mathcal{L}}{\partial q_i}= Q_i dtd(∂q˙i∂L)−∂qi∂L=Qi

其中广义力为:

  • Q x = F Q_x = F Qx=F
  • Q θ = 0 Q_\theta = 0 Qθ=0

5.1 关于 x x x 的方程

( M + m ) x ¨ − m l ( θ ¨ cos ⁡ θ − θ ˙ 2 sin ⁡ θ ) = F (M+m)\ddot x- ml(\ddot\theta\cos\theta - \dot\theta^2\sin\theta)= F (M+m)x¨−ml(θ¨cosθ−θ˙2sinθ)=F


5.2 关于 θ \theta θ 的方程

− m l x ¨ cos ⁡ θ + m l 2 θ ¨ − m g l sin ⁡ θ = 0 -ml\ddot x\cos\theta+ ml^2\ddot\theta- mgl\sin\theta= 0 −mlx¨cosθ+ml2θ¨−mglsinθ=0

5.3 完整非线性动力学模型

{ ( M + m ) x ¨ − m l θ ¨ cos ⁡ θ + m l θ ˙ 2 sin ⁡ θ = F m l 2 θ ¨ − m l x ¨ cos ⁡ θ − m g l sin ⁡ θ = 0 \begin{cases} (M+m)\ddot x - ml\ddot\theta\cos\theta + ml\dot\theta^2\sin\theta = F \\ ml^2\ddot\theta-ml\ddot x\cos\theta -mgl\sin\theta = 0 \end{cases} {(M+m)x¨−mlθ¨cosθ+mlθ˙2sinθ=Fml2θ¨−mlx¨cosθ−mglsinθ=0

6. 平衡点与线性化

6.1 倒立平衡点

θ = 0 , θ ˙ = 0 , x ˙ = 0 \theta = 0,\quad \dot\theta = 0,\quad \dot x = 0 θ=0,θ˙=0,x˙=0

小角度近似:

sin ⁡ θ ≈ θ , cos ⁡ θ ≈ 1 \sin\theta \approx \theta,\qquad \cos\theta \approx 1 sinθ≈θ,cosθ≈1

6.2 线性化方程

{ ( M + m ) x ¨ − m l θ ¨ = F − m l x ¨ + m l 2 θ ¨ = m g l θ \begin{cases} (M+m)\ddot x - ml\ddot\theta = F \\ -ml\ddot x+ml^2\ddot\theta= mgl\theta \end{cases} {(M+m)x¨−mlθ¨=F−mlx¨+ml2θ¨=mglθ

7. 状态空间表示

M + m − m l − m l m l 2 \] \[ x ¨ θ ¨ \] = \[ F m g l   θ \] \\begin{bmatrix} M+m \& -ml \\\\ -ml \& ml\^2 \\end{bmatrix} \\begin{bmatrix} \\ddot x \\\\ \\ddot\\theta \\end{bmatrix} = \\begin{bmatrix} F \\\\ mgl\\,\\theta \\end{bmatrix} \[M+m−ml−mlml2\]\[x¨θ¨\]=\[Fmglθ

定义状态向量为:

x = [ x x ˙ θ θ ˙ ] \mathbf{x} = \begin{bmatrix} x \\ \dot x \\ \theta \\ \dot\theta \end{bmatrix} x= xx˙θθ˙

控制输入为:

u = F u = F u=F

则系统的状态空间模型可写为:

x ˙ = [ 0 1 0 0 0 0 m g M 0 0 0 0 1 0 0 ( M + m ) g M l 0 ] x + [ 0 1 M 0 1 M l ] u \dot{\mathbf{x}} = \begin{bmatrix} 0 & 1 & 0 & 0 \\ 0 & 0 & \frac{mg}{M} & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & \frac{(M+m)g}{Ml} & 0 \end{bmatrix} \mathbf{x} + \begin{bmatrix} 0 \\ \frac{1}{M} \\ 0 \\ \frac{1}{Ml} \end{bmatrix} u x˙= 000010000Mmg0Ml(M+m)g0010 x+ 0M10Ml1 u

8. 系统特性分析

8.1 稳定性分析

  • 倒立位置是无控制下的 不稳定平衡点
  • 系统矩阵 (A) 的特征值分析:
    eig ( A ) = 特征值 \text{eig}(A) = \text{特征值} eig(A)=特征值
    其中必有正实部 → 系统不稳定

8.2 可控性与可观性

  • 可控性矩阵:
    C = [ B , A B , A 2 B , A 3 B ] \mathcal{C} = [B, AB, A^2B, A^3B] C=[B,AB,A2B,A3B]
  • 可观性矩阵:
    O = [ C C A C A 2 C A 3 ] \mathcal{O} = \begin{bmatrix} C \\ CA \\ CA^2 \\ CA^3 \end{bmatrix} O= CCACA2CA3
  • 对倒立摆系统,可控且可观,意味着可以通过状态反馈实现稳定控制

9. 控制器设计

9.1 状态反馈控制

  • 控制目标:选择状态反馈增益矩阵 (K),使闭环系统稳定
  • 控制律:
    u = − K x u = -K \mathbf{x} u=−Kx
  • 闭环系统:
    x ˙ = ( A − B K ) x \dot{\mathbf{x}} = (A - BK)\mathbf{x} x˙=(A−BK)x

9.2 LQR 最优控制

  • 代价函数:
    J = ∫ 0 ∞ ( x T Q x + u T R u )   d t J = \int_0^\infty (\mathbf{x}^T Q \mathbf{x} + u^T R u)\, dt J=∫0∞(xTQx+uTRu)dt
  • 求解连续时间 Riccati 方程得到最优反馈增益:
    K = R − 1 B T P K = R^{-1} B^T P K=R−1BTP

9.3 极点配置 (Pole Placement)

  • 根据系统自然频率与阻尼比设计期望闭环极点
  • 使用 MATLAB / Python 的 place 或手工设计矩阵 (K)

10. 仿真与验证

  • 使用 MATLAB / Simulink 仿真:
    • 非线性模型 + 状态反馈
    • 初始角度扰动:(\theta_0 \neq 0)
    • 观察 ( θ \theta θ(t)) 收敛到 0,(x(t)) 平稳移动
  • 控制力 (F(t)) 观察:
    • 是否合理,避免过大饱和
  • 可绘制曲线:
    • θ ( t ) \theta(t) θ(t)
    • x ( t ) x(t) x(t)
    • 控制输入 ( t ) (t) (t)
相关推荐
sunfove3 小时前
Python制作小游戏:用线性代数思想构建 2048 游戏引擎
python·线性代数·游戏引擎
好奇龙猫3 小时前
【大学院-筆記試験練習:线性代数和数据结构(12)】
数据结构·线性代数
大山同学20 小时前
单碳纳米管衍射图识别手性
线性代数
佑白雪乐2 天前
线性代数通透版03集(终结版,知识点汇总)
线性代数
じ☆冷颜〃2 天前
交换代数的解析延拓及在CS的应用
c语言·数据结构·笔记·线性代数·密码学
你撅嘴真丑2 天前
求矩阵的两对角线上的元素之和 与 sizeof的大作用
线性代数·算法·矩阵
好奇龙猫3 天前
【大学院-筆記試験練習:线性代数和数据结构(10)】
数据结构·线性代数
Zevalin爱灰灰4 天前
现代控制理论——第二章 系统状态空间表达式的解
线性代数·算法·现代控制
AI科技星4 天前
光子的几何起源与量子本质:一个源于时空本底运动的统一模型
服务器·人工智能·线性代数·算法·机器学习