1. 项目背景与核心目标
倒立摆系统作为控制理论中的经典实验平台,一直是验证各类控制算法有效性的"试金石"。二级倒立摆相比一级倒立摆具有更强的非线性特性和更高的控制难度,其动力学行为更接近现实中的许多不稳定系统(如火箭发射时的姿态控制)。本项目通过Matlab/Simulink搭建二级倒立摆的数学模型,分别采用PID控制和LQR控制实现系统稳定,并对两种方法的控制效果进行量化对比。
实操提示:二级倒立摆的摆杆间存在强耦合作用,建模时需要同时考虑水平位移、下摆角度和上摆角度三个自由度,这是区别于一级倒立摆的关键难点。
2. 系统建模与参数设定
2.1 动力学方程推导
采用拉格朗日方程建立系统模型,定义以下变量:
- 小车质量 M=0.5kg
- 下摆质量 m1=0.2kg,长度 l1=0.3m
- 上摆质量 m2=0.1kg,长度 l2=0.25m
- 小车与轨道摩擦系数 b=0.1 N/m/s
通过动能T和势能V的表达式,得到系统的拉格朗日算子L=T-V,代入第二类拉格朗日方程后整理得到:
code复制(M+m1+m2)x'' + (m1l1+m2l1)θ1''cosθ1 - (m1l1+m2l1)θ1'²sinθ1
+ m2l2θ2''cosθ2 - m2l2θ2'²sinθ2 + bx' = F
(m1l1+m2l1)x''cosθ1 + (m1l1²+m2l1²)θ1'' + m2l1l2θ2''cos(θ1-θ2)
+ m2l1l2θ2'²sin(θ1-θ2) + (m1+m2)gl1sinθ1 = 0
m2l2x''cosθ2 + m2l1l2θ1''cos(θ1-θ2) - m2l1l2θ1'²sin(θ1-θ2)
+ m2l2²θ2'' - m2gl2sinθ2 = 0
2.2 线性化处理
在平衡点附近(θ1≈0, θ2≈0)进行小角度近似:
- sinθ ≈ θ
- cosθ ≈ 1
- θ'² ≈ 0
得到线性化状态空间方程:
code复制ẋ = Ax + Bu
y = Cx + Du
其中状态变量x=[x, θ1, θ2, x', θ1', θ2']ᵀ
3. PID控制器设计与实现
3.1 控制结构设计
采用串级PID控制结构:
- 外环:角度控制(θ1和θ2)
- 内环:位置控制(x)
具体参数整定过程:
- 先固定小车位置,仅调节下摆PID
- 加入上摆控制后重新微调
- 最后加入位置环控制
3.2 参数整定经验
通过试凑法最终确定参数:
- 角度环P=50, I=2, D=10
- 位置环P=8, I=0.5, D=2
避坑指南:二级倒立摆的PID参数整定需遵循"先单摆后双摆"的顺序。直接同时调节两个摆杆的参数极易导致系统发散。实测发现微分项对抑制上摆振荡尤为关键。
4. LQR控制器设计与实现
4.1 权重矩阵选择
根据Bryson规则确定Q和R矩阵:
code复制Q = diag([1/(0.1)², 1/(0.2)², 1/(0.2)², 1/(0.5)², 1/(1)², 1/(1)²])
R = 1/(10)²
对应各状态的允许偏差:
- 位置±0.1m
- 角度±0.2rad
- 速度±0.5m/s
- 角速度±1rad/s
- 控制量±10N
4.2 反馈增益计算
通过Matlab指令求解:
matlab复制[K,S,e] = lqr(A,B,Q,R);
得到最优反馈矩阵K:
code复制K = [-10.00, -53.36, 28.79, -7.07, -10.79, 6.93]
5. 仿真对比分析
5.1 性能指标对比
| 指标 | PID控制 | LQR控制 |
|---|---|---|
| 稳定时间(s) | 3.2 | 1.8 |
| 最大超调量(%) | 15.7 | 4.2 |
| 控制能耗(J) | 28.5 | 19.3 |
| 抗扰能力(N) | ±0.5 | ±1.2 |
5.2 典型响应曲线
-
初始条件响应(θ1=10°, θ2=5°):
- PID:上摆出现明显振荡(约3次衰减振荡)
- LQR:平滑收敛无超调
-
脉冲扰动响应(t=5s时施加1N/0.1s冲击):
- PID:小车位移波动达±0.08m
- LQR:位移波动仅±0.03m
6. 工程实现建议
-
硬件选型考量:
- 编码器分辨率:至少1000线/转(对应0.36°精度)
- 电机扭矩:需满足max(F)>15N
- 采样频率:≥100Hz
-
软件实现技巧:
- 采用定时中断确保控制周期恒定
- 对编码器信号进行数字滤波(建议二阶Butterworth)
- 实现抗积分饱和(anti-windup)机制
-
参数调试心得:
- LQR的Q矩阵对角元比值决定控制侧重
- PID的微分项能有效抑制高频振荡
- 实际系统中需考虑执行器延迟补偿
7. 扩展应用方向
- 变长度倒立摆控制(模拟起重设备)
- 加入状态观测器实现输出反馈
- 结合MPC实现约束条件下的最优控制
- 移植到STM32等嵌入式平台实现
这个项目让我深刻体会到,对于多变量耦合系统,基于模型的控制方法(如LQR)在性能上显著优于经验调参方法。但在工程实践中,往往需要结合PID的简单可靠与先进控制算法的优良性能,采用分层混合控制策略才能获得最佳效果。