1. 项目背景与核心挑战
倒立摆系统作为控制理论中的经典实验平台,一直是验证各类控制算法有效性的"试金石"。二级倒立摆相比一级倒立摆,其非线性特性更强、自由度更多,对控制器的设计要求也更为严苛。这个项目通过Matlab/Simulink搭建仿真环境,对比研究PID和LQR两种控制策略在二级倒立摆稳定控制中的表现差异。
为什么选择二级倒立摆?因为它在保持一级倒立摆核心特性的同时,增加了摆杆间的耦合作用,更接近现实中的许多控制问题(如双关节机械臂控制、火箭多级姿态控制等)。系统的不稳定性随自由度呈指数级增长——一级倒立摆的状态变量是4个,而二级倒立摆达到6个(小车位置、一级摆角、二级摆角及各阶导数),这使得控制器设计难度显著提升。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统建模与动力学分析
2.1 拉格朗日方程建模
二级倒立摆的动力学方程通常采用拉格朗日方法建立。定义系统广义坐标q=[x θ1 θ2]^T,其中x为小车位移,θ1为下摆杆与垂直线的夹角,θ2为上摆杆与下摆杆的夹角。拉格朗日函数L=T-V,其中T为系统动能,V为势能。
通过推导可得非线性状态方程:
M(q)q̈ + C(q,q̇)q̇ + G(q) = F
其中M为惯性矩阵,C为科里奥利力矩阵,G为重力向量,F为广义力。这个方程明确反映了系统的高度非线性特性——惯性矩阵M随摆角变化,科里奥利力与角速度乘积相关。
实际操作提示:在Matlab中,可以通过Symbolic Math Toolbox进行符号运算自动推导这些方程,避免手动推导错误。建议先对单摆系统进行验证,再扩展到二级摆。
2.2 线性化处理
在平衡点附近(θ1≈0,θ2≈0)对系统进行线性化,得到状态空间表达式:
ẋ = Ax + Bu
y = Cx + Du
其中状态变量x通常取为[x, θ1, θ2, ẋ, θ̇1, θ̇2]。这个线性化模型是后续设计LQR控制器的基础。需要注意的是,线性化模型只在摆杆接近垂直位置时有效,大角度情况下会出现显著偏差。
3. 控制器设计与实现
3.1 PID控制方案
PID控制采用级联结构:外环控制上摆角度,内环控制下摆角度,最内环控制小车位置。这种"从内到外"的调节顺序符合物理系统的能量传递关系。
具体实现要点:
- 内环(位置环):Kp1=15,Ki1=0.5,
