一级倒立摆滑模变结构控制系统设计与仿真
项目介绍
本项目专门研究一级倒立摆这一典型非线性、强耦合系统的稳定控制问题。通过结合现代控制理论中的状态空间分析法与滑模变结构控制(SMC)算法,实现对倒立摆在不稳定平衡点附近的精确调节。系统模型考虑了小车位移与摆杆角度的多变量耦合特性,并针对实际控制中常见的抖振问题和外部干扰进行了算法优化。
功能特性
- 动力学精细建模:建立了包含小车质量、摆杆质量、转动惯量及摩擦系数的高阶状态空间模型。
- 鲁棒滑模控制:设计了基于等效控制与趋近律相结合的滑模控制器,确保系统在剧烈波动下仍能快速收敛。
- 抖振抑制技术:通过引入边界层概念并利用饱和函数(Saturation Function)替代符号函数,有效平滑了控制律在切换面附近的剧烈跳变。
- 动态干扰防御:在系统中模拟了并在仿真进行到中段(5秒)时加入瞬时脉冲力干扰,验证控制器的自恢复能力与鲁棒性。
- 全维度仿真视图:自动生成包括位移、角度、相轨迹、滑模面变化及控制输入在内的六项动态监测图表。
使用方法
- 运行环境配置:确保您的计算机已安装 MATLAB 环境。
- 启动仿真:在 MATLAB 命令行窗口中调用主逻辑函数。
- 参数调节:根据需要可以手动修改主函数中的控制律增益(eta、k_gain)或切换面系数(Ce)进行控制性能对比。
- 结果观测:程序运行后将自动弹出绘图窗口,显示系统各状态量的随时间演化过程,并同时在命令行输出小车与摆杆的最终稳态误差。
系统要求
- 软件支持:MATLAB R2018a 或更高版本(以获得最佳绘图性能)。
- 必要组件:MATLAB 数值动力学求解器(ode45)。
- 硬件建议:标准桌面计算环境,具备基础运算能力。
实现逻辑分析
实现过程严格遵循现代控制系统设计的标准流程:
- 物理模型线性化:
程序在垂直平衡点附近对动力学方程进行线性化处理,构建了 A 矩阵(系统矩阵)与 B 矩阵(输入矩阵)。状态向量依次定义为:小车位移、小车速度、摆杆角度、摆杆角速度。
- 滑模面设计:
通过设定滑模面系数 Ce,定义了一个超平面,当系统状态进入该平面后,会沿着预设的动力学轨迹自动收敛至坐标原点。代码显式赋予了四个状态分量不同的权重系数。
- 控制律构造:
控制输入 u 由两部分加和而成:
- 等效控制部分:基于系统标称模型抵消非受控动态。
- 指数趋近律部分:利用 k_gain 与 eta 参数,驱动系统状态从初始偏差位置快速贴合滑模面。
- 饱和函数应用:
为了解决变结构控制中常见的执行机构磨损与系统震颤现象,程序在计算切换项时,通过逻辑判断滑模函数 s 与边界层 phi 的关系,实现在边界层内的线性平滑和边界层外的硬切换。
- 数值计算与验证:
利用 ode45 微分方程求解器对数学模型进行高精度积分。仿真中还特别加入了一段持续 0.2 秒的 5N 外部推力干扰,用于模拟实际物理环境中可能受到的碰撞或突风。
关键算法细节说明
- 状态空间常数 p:计算公式集成了摆杆转动惯量与质量分布特性,是构建动力学模型的核心分母项。
- 滑模函数 s(t):定义为 s = Ce * x,其实时变化反映了系统距离理想稳定状态的“距离”。
- 稳态误差统计:程序在仿真结束后计算 t(end) 时刻的绝对误差,用于量化反馈控制的精度水平。
- 相轨迹分析:通过绘制局部状态分量的相平面图,直观展现了系统如何从初始失稳点通过滑模面的引导逐步盘旋或平移至原点的稳定路径。