滑模控制:原理与设计
从一次电机抖震说起
去年调试一个直流无刷电机的位置伺服项目,PID参数调了三天,响应速度勉强达标,但负载突变时位置超调量始终压不下去。更头疼的是,当我把积分限幅放开一点,系统就开始低频振荡,像得了帕金森一样抖个不停。隔壁工位的老师傅路过看了一眼示波器,丢下一句话:“试试滑模控制,别在PID一棵树上吊死。”
当时我对滑模的理解还停留在“开关控制”的层面,觉得这东西不就是继电器嘛,用在精密伺服上怕不是要抖上天。但死马当活马医,花了两周把滑模控制器怼上去,结果出乎意料——响应速度比PID快了一倍,而且负载扰动下几乎零超调。代价是高频抖振确实存在,但通过边界层和观测器补偿,最终把抖振幅值压到了可接受范围。
今天这篇笔记,就把滑模控制从理论到嵌入式落地的关键点掰开揉碎,重点讲那些教材里不会写的坑。
滑模到底在干什么
先别急着看数学公式。滑模控制的核心思想其实很朴素:设计一个“滑模面”,然后强迫系统状态往这个面上跑,一旦跑上去就沿着面滑向平衡点。
想象你在一个碗里放一个玻璃珠,碗底就是平衡点。普通控制相当于给玻璃珠施加一个力,让它滚向碗底。滑模控制则是在碗壁上刻了一条螺旋滑梯,玻璃珠先被强行推到滑梯上,然后顺着滑梯滑到底。这条滑梯就是滑模面。
关键区别在于:普通控制的轨迹依赖于系统参数,参数一变轨迹就歪;滑模控制的轨迹由滑模面决定,只要系统状态在滑模面上,运动规律就完全由滑模面方程说了算,跟系统参数无关。这就是滑模控制对参数摄动和外部扰动具有鲁棒性的根本原因。