三级倒立摆多策略鲁棒控制仿真系统
项目简介
本项目是一个基于MATLAB的三级倒立摆控制系统仿真平台。项目针对具有高度非线性、强耦合及自然不稳定特性的三级倒立摆系统,实现了从数学建模、动力学线性化到多种先进控制算法(LQR、H-infinity、Mu-Synthesis)的设计与验证全过程。通过本系统,用户可以直观地对比不同控制策略在应对模型参数不确定性和外部脉冲干扰时的动态表现与稳态性能。
功能特性
- 高精度非线性建模:基于Euler-Lagrange方程推导完整的三级倒立摆动力学模型,包含复杂的惯量耦合与非线性项。
- 自动化线性化与分析:采用数值扰动法自动获取系统在平衡点附近的线性状态空间模型,并自动检测系统的能控性与能观性。
- 多策略控制器设计:
*
LQR控制:作为基准对照,实现全状态反馈最优控制。
*
H-infinity混合灵敏度控制:通过频域加权函数整形,优化系统的抗干扰性能和鲁棒稳定性。
*
Mu-Synthesis (DK迭代):针对参数摄动(如质量、长度变化)设计的结构化奇异值控制器,最大化系统的鲁棒性能边界。
- 非线性时域仿真:在非线性被控对象上验证线性控制器的有效性,模拟真实物理环境下的动态响应。
- 干扰与鲁棒性测试:集成初始角度偏差校正与外部脉冲力干扰抑制的测试场景。
系统要求
- 软件环境:MATLAB R2018b 或更高版本。
- 工具箱依赖:
* Symbolic Math Toolbox(用于动力学方程推导)
* Control System Toolbox(用于系统建模与LQR设计)
* Robust Control Toolbox(用于H-infinity与Mu-Synthesis设计)
详细实现逻辑与算法分析
本项目的主程序脚本集成了建模、分析、设计与仿真四大核心模块,具体实现逻辑如下:
1. 系统参数与动力学建模
程序首先定义了小车及三级摆杆的物理参数(质量、长度、质心位置、摩擦系数)。利用
符号数学工具箱 (Symbolic Math Toolbox),通过
Euler-Lagrange法构建动力学方程:
- 推导系统的动能(平动能+转动能)与势能。
- 构建拉格朗日量 $L = T - V$。
- 虽然脚本中包含了符号推导的逻辑,但在获取线性模型时,采用了更为高效和数值稳定的数值扰动法。程序在垂直向上的平衡点附近,通过微小扰动计算雅可比矩阵,直接提取线性化状态空间矩阵 $A$ 和 $B$。
- 建模完成后,通过计算可控性矩阵和可观性矩阵的秩,自动判定系统的控制可行性。
2. 策略 I:鲁棒LQR控制 (Baseline)
作为控制性能的基准,设计了线性二次型调节器(LQR):
- 状态权重矩阵 Q:对四个角度状态($theta_1, theta_2, theta_3$)施加了高达500的权重,对位置 $x$ 施加100的权重,体现优先保证倒立摆平衡的控制目标。
- 控制权重 R:设定为0.1,允许输出较大的控制力以维持平衡。
- 生成的控制器被封装为状态空间对象,形式为全状态反馈 $u = -K_{lqr}x$。
3. 策略 II:H-infinity 混合灵敏度控制
针对系统存在的非结构化不确定性和抗干扰需求,设计了H无穷输出反馈控制器:
* $W_1$ (性能加权):设计为低通滤波器特性,在低频段具有高增益,以确保良好的指令跟踪和低稳态误差。
* $W_2$ (控制加权):主要限制高频控制能量,防止执行器饱和。
* $W_3$ (鲁棒加权):设计为高通特性,用于覆盖高频未建模动态。
- 控制器合成:构建包含加权函数的广义被控对象,使用
mixsyn 函数求解 $H_infty$ 优化问题,迭代搜索最小的 $gamma$ 值。程序包含异常捕获机制,若工具箱不可用或求解失败,自动回退至LQR控制器。
4. 策略 III:Mu-Synthesis (结构化鲁棒控制)
为解决物理参数(质量、长度)发生漂移时的稳定性问题,采用了基于DK迭代的 $mu$ 综合控制:
- 不确定性建模:定义了杆件质量(10%摄动)和杆长(5%摄动)的不确定实参数 (
ureal)。在代码实现中,为了演示效率,构建了包含输出端动态不确定块 (ultidyn) 的标称模型。 - DK迭代求解:设定性能加权 $W_{perf}$,构建包含不确定性块与性能要求的互联系统结构。调用
dksyn 函数进行D-K迭代优化,旨在寻找能够使得结构化奇异值 $mu$ 最小化的控制器,从而保证系统在参数最坏情况下的性能。
5. 非线性仿真与可视化
程序并没有直接使用线性仿真函数
lsim,而是通过自定义逻辑(
simulate_nonlinear)对
非线性模型进行时域积分,以验证控制器的真实效果:
- 初始条件:设定三级摆处于非平衡状态(一级摆倾斜5度,二级摆倾斜-2度等),测试控制器的“扶正”能力。
- 干扰模拟:在仿真进行到第3秒时,向小车施加持续0.1秒、幅值为20牛顿的脉冲外力,测试系统的抗干扰鲁棒性。
- 结果对比:最后,程序利用
subplot生成多子图这一界面,并在同一坐标轴下绘制LQR、H-infinity和Mu-Synthesis三种策略的角度响应曲线,便于用户直观对比不同算法在收敛速度、超调量及抗干扰能力上的差异。
使用方法
- 确保MATLAB安装路径中包含上述所需的工具箱。
- 将项目文件下载至本地目录。
- 在MATLAB中打开主脚本文件。
- 直接运行脚本,程序将依次执行建模、线性化、三种控制器的设计计算,并弹出仿真结果对比图。
- 控制台窗口会实时输出线性化检查结果、H-infinity的 $gamma$ 值以及Mu-Synthesis的迭代结果。