二级倒立摆模糊控制仿真系统说明文档
1. 项目介绍
本项目是一个基于 MATLAB 开发的二级倒立摆模糊控制仿真平台。二级倒立摆系统是一个典型的高阶、强耦合、非线性且本质不稳定的系统。本仿真的目标是通过模糊逻辑控制策略,使得小车在运动到目标位置的同时,能够让两级摆杆迅速克服重力影响,从失平衡状态恢复并保持在垂直向上的平衡位置。该项目通过数学建模和智能算法的结合,展示了模糊控制在处理复杂动态系统时的优越鲁棒性和实时响应能力。
2. 功能特性
- 高保真动力学建模:系统集成了完整的二级倒立摆非线性动力学模型,考虑了小车质量、两级摆杆质量及长度等关键物理属性。
- 加权综合模糊控制策略:控制器采用多维状态加权融合技术,将位移误差、角度误差及其变化率转化为综合误差信号,降低了控制器设计的维度。
- 自适应推理引擎:内置 7x7 模糊规则库,采用乘积推理和重心法进行解模糊,能够根据系统状态动态调整输出推力。
- 实时性能评估:仿真结束后自动计算并显示系统稳态收敛时间以及一级、二级摆杆的最终稳态误差。
- 多维度可视化:系统提供实时响应曲线图,包括小车位移、一级与二级摆杆角度对比、以及控制力输出曲线。
3. 系统要求
- 软件环境:MATLAB R2016a 或更高版本。
- 必备工具箱:基础 MATLAB 环境(本系统采用纯代码逻辑实现模糊推理,不强制依赖 Fuzzy Logic Toolbox)。
- 计算机配置:能够运行普通 ODE 数值求解计算的通用 PC。
4. 仿真系统实现逻辑
系统运行遵循以下核心逻辑:
第一步:系统参数与环境初始化
设定仿真的物理环境,包括小车质量(1.0kg)、两级摆杆质量(均为0.2kg)及长度(均为0.5m)。同时定义仿真的时间跨度(10秒)和步长(0.01秒)。
第二步:初始状态设定
设置系统的初始非平衡状态,默认为小车静止,但一级摆杆偏离垂直位置 0.1 弧度,二级摆杆偏离 -0.1 弧度。系统需通过反馈控制将这些偏差消除。
第三步:动力学模拟与数值求解
采用四阶五阶龙格-库塔法(ode45)对动力学方程进行迭代求解。在每一个积分步长内,系统会计算:
- 质量矩阵:构建反映系统惯性特性的 3x3 矩阵。
- 向心力、科氏力与重力项:计算摆杆运动中产生的非线性力矩。
- 由于控制力的介入,通过矩阵运算(q_ddot = H (ForceVec - N))推导出系统每一时刻的加速度。
第四步:控制律计算
在仿真的每个时刻,控制器会实时对状态变量进行采样,并执行模糊推理算法,确定施加在小车上的控制力。
第五步:结果可视化与评估
仿真完成后,系统自动绘制三组响应曲线,并分析系统是否在规定时间内达到稳态。
5. 关键算法与细节分析
动力学建模算法
控制系统基于拉格朗日力学方程建立。模型考虑了 cart-pole-pole 结构的三自由度运动,其中第一自由度为小车水平位移,第二、三自由度为两个摆杆的旋转角度。代码通过矩阵分解技术实时求解二阶微分方程组。
模糊控制器实现细节
- 状态融合(Dimension Reduction):考虑到倒立摆有 6 个状态变量,系统使用加权增益向量 [-1.5, -2.0, 15.0, 3.0, 25.0, 5.0] 将高维状态映射为“综合误差 E”和“误差变化率 EC”,这不仅简化了模糊规则,也借鉴了经典 LQR 理论的优势。
- 隶属度函数:定义了 NB(负大)、NM(负中)、NS(负小)、ZE(零)、PS(正小)、PM(正中)、PB(正大)共 7 个模糊集,采用三角形隶属度函数进行模糊化。
- 推理与解模糊:
*
规则表:建立了一个 49 条规则的 PD 型控制矩阵,覆盖了所有可能的稳态与动态偏差组合。
*
重心法(Centroid):通过计算模糊集面积的质心来确定具体的控制力数值,确保了输出的连续性和平滑性。
- 输出限幅:代码硬性规定了控制力上限为 150N,下限为 -150N,模拟了真实执行器的物理饱和限制。
稳态性能评估逻辑
系统通过布尔判定自动搜索响应结果,当摆杆角度偏差持续小于 0.01 弧度时记录收敛时间。这一逻辑为评估控制器性能提供了量化的数据支持,便于用户进一步调优模糊规则或加权参数。