3. 传统滑模速度控制器设计:基于指数趋近律的滑模速度环设计、仿真验证
好,咱们进入正题。这一节我来讲讲传统滑模速度控制器怎么设计。说白了,就是用指数趋近律来构造滑模速度环。这个思路在工程里很常见,我个人也特别喜欢用,因为它简单、有效,而且调参比较直观。
3.1 为什么选指数趋近律?
滑模控制的核心,就是让系统状态跑到一个预设的滑模面上,然后沿着这个面滑到平衡点。但问题来了——怎么让状态“跑过去”?这就是趋近律要干的事。
常见的趋近律有好几种:等速趋近律、指数趋近律、幂次趋近律等等。我个人习惯用指数趋近律,原因有两个:
- 收敛快:指数项能让状态快速逼近滑模面
- 抖振小:配合等速项,可以在接近滑模面时降低切换增益
你想想看,如果只用等速趋近律,那状态靠近滑模面时速度不变,容易产生大幅抖振。指数趋近律就不一样了——远处跑得快,近处慢下来,这个特性在实际项目中非常实用。
指数趋近律的标准形式:
ṡ = -ε·sgn(s) - k·s,其中 ε > 0,k > 0
ε 是等速项系数,k 是指数项系数
3.2 滑模速度环设计步骤
好,咱们一步步来。设计滑模速度控制器,我一般分四步走:
3.2.1 建立速度环数学模型
永磁同步电机的机械运动方程是这样的:
J·dω/dt = Te - TL - B·ω
其中 ω 是机械角速度,Te 是电磁转矩,TL 是负载转矩,J 是转动惯量,B 是阻尼系数。
嗯,这里要注意:我们通常把负载转矩 TL 当作外部扰动来处理。在实际项目中,TL 往往是未知的,这也是为什么后面要引入扰动观测器的原因。
3.2.2 定义滑模面
滑模面怎么选?对于速度控制,最常用的就是线性滑模面:
s = ω_ref - ω
说白了,就是速度误差。当 s = 0 时,实际速度就等于给定速度。
我曾经在一个伺服项目里试过积分滑模面,效果也不错,但参数整定比较麻烦。对于大多数工业应用,线性滑模面已经够用了。
3.2.3 设计控制律
根据指数趋近律,我们可以推导出控制律。具体推导过程我就不展开了,直接给结果:
Te_ref = J·(dω_ref/dt + ε·sgn(s) + k·s) + B·ω + TL_hat
这里 TL_hat 是负载转矩的估计值。如果没有扰动观测器,可以忽略这一项,但控制精度会受影响。
我的经验:ε 一般取 0.1~1 之间,k 取 10~100。具体数值要看系统惯量和响应速度要求。我习惯先调 k,让系统快速响应,再调 ε 来抑制抖振。
3.2.4 处理抖振问题
滑模控制最大的痛点就是抖振。sgn(s) 函数在零点附近会高频切换,导致转矩脉动。怎么解决?
我常用的方法是用饱和函数 sat(s) 代替 sgn(s):
sat(s) = s/δ,当 |s| ≤ δ
sat(s) = sgn(s),当 |s| > δ
δ 是边界层厚度。δ 越大,抖振越小,但控制精度会下降。这是个 trade-off,需要根据实际需求来平衡。
避坑指南:我曾经在一个项目中把 δ 设得太大,结果系统出现了稳态误差,怎么调都调不回来。后来才发现是边界层太厚,滑模面失去了“吸引力”。建议 δ 取 0.01~0.05 之间,先小后大慢慢试。
3.3 仿真验证
理论说完了,咱们来跑个仿真看看效果。我用 MATLAB/Simulink 搭了个模型,参数如下:
| 参数 | 数值 | 单位 |
|---|---|---|
| 转动惯量 J | 0.001 | kg·m² |
| 阻尼系数 B | 0.001 | N·m·s/rad |
| 指数项系数 k | 50 | - |
| 等速项系数 ε | 0.5 | - |
| 边界层厚度 δ | 0.02 | - |
3.3.1 仿真条件
- 给定速度:1000 rpm
- 空载启动,0.5s 时突加 0.5 N·m 负载
- 仿真时长:1s
3.3.2 核心代码
这是滑模控制器的核心代码片段:
function Te_ref = smc_controller(omega_ref, omega, domega_ref_dt, J, B, epsilon, k, delta)
% 计算速度误差
s = omega_ref - omega;
% 饱和函数
if abs(s) <= delta
sat_s = s / delta;
else
sat_s = sign(s);
end
% 控制律
Te_ref = J * (domega_ref_dt + epsilon * sat_s + k * s) + B * omega;
end
3.3.3 仿真结果分析
跑完仿真,我看到了几个关键现象:
- 启动阶段:速度快速上升,约 0.05s 到达给定值,没有超调
- 突加负载:0.5s 加负载后,速度跌落约 20 rpm,0.02s 内恢复
- 稳态精度:稳态时速度波动约 ±2 rpm,抖振控制得不错
说实话,这个结果比我预想的要好。尤其是突加负载后的恢复速度,比传统 PI 控制器快了不少。但我也注意到一个问题——在负载突变瞬间,转矩指令有一个尖峰,这在实际系统中可能会引起机械冲击。
小结一下:指数趋近律滑模控制器在响应速度和抗扰动能力上确实有优势。但抖振问题不能完全消除,只能通过参数折中来抑制。如果你对抖振特别敏感,可以考虑高阶滑模或者自适应滑模,这些我们后面会讲到。
3.4 设计要点总结
最后,我把自己踩过的坑和心得整理一下:
- 参数整定顺序:先调 k(指数项),再调 ε(等速项),最后调 δ(边界层)
- 注意积分饱和:如果用了积分滑模面,一定要加抗饱和处理
- 离散化影响:实际代码中,采样频率要足够高,否则滑模效果会大打折扣
- 负载观测器:如果负载变化频繁,建议配合扰动观测器使用,效果会更好
嗯,这一节就到这里。下一节我会讲怎么把扰动观测器加进来,让系统性能再上一个台阶。