BlockWerk 指南

小车倒立摆系统的建模与状态反馈控制

自由悬挂的单摆是平凡的:受推力扰动后,它会自然减幅摆动并最终回到最低静止位置。但如果将同一摆杆倒立竖立在一辆仅能水平移动的小车上,系统便构成了自动控制理论中最具启迪意义的经典力学模型。该系统无法依靠自身维持静止:一旦失去主动干预,摆杆将瞬间倾倒,且倾角越大倾倒加速度越剧烈。保持直立平衡的唯一途径,是通过实时快速驱动小车在水平导轨上来回跑动,“接住”正在下落的重力中心。

倒立摆汇聚了现代控制科学的几乎所有核心矛盾:开环本征不稳定系统、必须先于误差恶化提前响应的前馈预见机制、姿态微分阻尼与小车轨迹跟踪之间的动力学权衡,以及纯滞后(传输延迟)对闭环稳定裕度的严苛限制。

物理建模与结构参数

小车质量为 MM,沿带有黏性摩擦 bb 的水平导轨运动。质量为 mm 的均匀刚性摆杆通过铰链约束在小车上,可在垂直平面内自由转动。控制推力 uu 水平作用于小车,是全系统唯一的执行机构控制量。摆杆倾角 θ\theta 相对于向上垂直轴定义:θ=0\theta = 0 对应理想竖直平衡状态,正角表示向右侧倾斜。

符号物理含义取值
MM小车质量0,5 kg0{,}5\ \text{kg}
mm摆杆质量0,2 kg0{,}2\ \text{kg}
bb小车黏性摩擦系数0,1 N⋅s/m0{,}1\ \text{N}\cdot\text{s/m}
ll铰链轴心至摆杆质心距离0,3 m0{,}3\ \text{m}
II摆杆绕质心转动惯量13ml2=0,006 kg⋅m2\tfrac{1}{3}ml^2 = 0{,}006\ \text{kg}\cdot\text{m}^2
gg重力加速度9,81 m/s29{,}81\ \text{m/s}^2

动力学微分方程推导

将小车与摆杆分别进行受力隔离分析,铰链反力分解为水平分力 NN 与垂直分力 PP。

小车沿导轨方向的牛顿第二定律方程为:

Mx¨+bx˙+N=uM\ddot{x} + b\dot{x} + N = u

摆杆质心的空间水平位移为 x−lsin⁡θx - l\sin\theta(θ\theta 为正时摆杆向后倾,即朝 −x-x 方向)。对时间二次微分求得摆杆水平运动所需的合外力:

N=mx¨−mlθ¨cos⁡θ+mlθ˙2sin⁡θN = m\ddot{x} - ml\ddot{\theta}\cos\theta + ml\dot{\theta}^2\sin\theta

消去铰链水平内力 NN,整理得到第一条动力学耦合方程:

(M+m)x¨+bx˙−mlθ¨cos⁡θ+mlθ˙2sin⁡θ=u(M + m)\ddot{x} + b\dot{x} - ml\ddot{\theta}\cos\theta + ml\dot{\theta}^2\sin\theta = u

针对摆杆绕其质心的角动量平衡定理(重力过质心力矩为零):

(I+ml2)θ¨−mglsin⁡θ=mlx¨cos⁡θ(I + ml^2)\ddot{\theta} - mgl\sin\theta = ml\ddot{x}\cos\theta

此即两阶强非线性微分方程组。注意重力项的符号:由于 θ\theta 从向上的竖直方向量起,把它移到右端得 +mglsin⁡θ+mgl\sin\theta,它把 θ¨\ddot\theta 推向 θ\theta 已经指向的方向——这正是系统倾倒而不是回摆的根源。

竖直平衡点小偏差线性化

在 θ=0\theta = 0 附近作一阶泰勒展开,sin⁡θ≈θ\sin\theta \approx \theta,cos⁡θ≈1\cos\theta \approx 1,二阶小量 θ˙2≈0\dot{\theta}^2 \approx 0:

(I+ml2)θ¨−mglθ=mlx¨(I + ml^2)\ddot{\theta} - mgl\theta = ml\ddot{x}

(M+m)x¨+bx˙−mlθ¨=u(M + m)\ddot{x} + b\dot{x} - ml\ddot{\theta} = u

进行拉普拉斯变换并消去小车位移 X(s)X(s),推导出输入控制力到摆杆倾角的开环传递函数:

Θ(s)U(s)=mlq ss3+b(I+ml2)qs2−(M+m)mglqs−bmglq\frac{\Theta(s)}{U(s)} = \frac{\dfrac{ml}{q}\,s}{s^3 + \dfrac{b(I + ml^2)}{q}s^2 - \dfrac{(M+m)mgl}{q}s - \dfrac{bmgl}{q}}

其中等效耦合惯量 qq 为:

q=(M+m)(I+ml2)−(ml)2=0,0132q = (M + m)(I + ml^2) - (ml)^2 = 0{,}0132

代入物理参数得到具体传递函数:

Θ(s)U(s)=4,54545 ss3+0,18182 s2−31,21364 s−4,45909\frac{\Theta(s)}{U(s)} = \frac{4{,}54545\,s}{s^3 + 0{,}18182\,s^2 - 31{,}21364\,s - 4{,}45909}

系统开环极点分布在 +5,568+5{,}568、−5,607-5{,}607 和 −0,143-0{,}143。右半平面的实极点 +5,568+5{,}568 决定了发散模态 e5,568te^{5{,}568t}:无控制状态下倾角每 0.12 秒即翻倍。

状态空间模型构建

计入小车位移,定义四维状态向量(小车位移 xx、小车速度 x˙\dot{x}、摆杆角 θ\theta、摆杆角速度 θ˙\dot{\theta}):

x˙=Ax+Bu,x=[xx˙θθ˙]T\dot{\mathbf{x}} = A\mathbf{x} + Bu,\qquad \mathbf{x} = \begin{bmatrix} x & \dot{x} & \theta & \dot{\theta} \end{bmatrix}^\mathsf{T}

A=[01000−(I+ml2)bqm2gl2q000010−mlbqmgl(M+m)q0],B=[0I+ml2q0mlq]A = \begin{bmatrix} 0 & 1 & 0 & 0 \\ 0 & -\dfrac{(I+ml^2)b}{q} & \dfrac{m^2gl^2}{q} & 0 \\ 0 & 0 & 0 & 1 \\ 0 & -\dfrac{mlb}{q} & \dfrac{mgl(M+m)}{q} & 0 \end{bmatrix},\qquad B = \begin{bmatrix} 0 \\ \dfrac{I+ml^2}{q} \\ 0 \\ \dfrac{ml}{q} \end{bmatrix}

全状态反馈控制(LQR)

采用状态全维反馈:

u=−K [x−xrefx˙θθ˙]Tu = -K\,\begin{bmatrix} x - x_\text{ref} & \dot{x} & \theta & \dot{\theta} \end{bmatrix}^\mathsf{T}

采用标准 LQR 最优权重矩阵(Q=diag⁡(5000,0,100,0)Q = \operatorname{diag}(5000, 0, 100, 0))计算得到的最优增益:

K=[−70,7−37,8105,620,9]K = \begin{bmatrix} -70{,}7 & -37{,}8 & 105{,}6 & 20{,}9 \end{bmatrix}

能同时将极点配置到左半平面安全裕度区。当遭遇 1 N·s 瞬态脉冲冲击时,摆杆倾角峰值仅为 5,4°5{,}4° 并迅速恢复平衡,小车同步回到原点。

传输延迟与临界稳定裕度

在存在执行器与总线延迟 τd\tau_d 的工程系统中,开环在截止频率 26,1 rad/s26{,}1\ \text{rad/s} 处具备 61,3°61{,}3° 相位裕度,允许的极限纯时滞仅为 τmax≈41 ms\tau_\text{max} \approx 41\ \text{ms}。当时滞增至 50 ms50\ \text{ms} 时,系统将彻底失稳倾倒。

参阅相关组件

  • StateSpace:四状态矩阵状态空间物理模型。
  • Gain:LQR 状态反馈增益矩阵 KK。
  • PIDController:仅基于角度测量的常规 PID 反馈。
  • Delay:总线与执行机构纯滞后环节。
  • Saturation:倒地物理硬限幅(±90°\pm 90°)。
  • uPlotDisplay:多通道实时示波器。

在 BlockWerk 中仿真

浏览器即开即用的交互式仿真环境 — 无需安装,由 WebAssembly 强力驱动。

在 BlockWerk 中仿真 →