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 仿真结果分析

跑完仿真,我看到了几个关键现象:

  1. 启动阶段:速度快速上升,约 0.05s 到达给定值,没有超调
  2. 突加负载:0.5s 加负载后,速度跌落约 20 rpm,0.02s 内恢复
  3. 稳态精度:稳态时速度波动约 ±2 rpm,抖振控制得不错

说实话,这个结果比我预想的要好。尤其是突加负载后的恢复速度,比传统 PI 控制器快了不少。但我也注意到一个问题——在负载突变瞬间,转矩指令有一个尖峰,这在实际系统中可能会引起机械冲击。

小结一下:指数趋近律滑模控制器在响应速度和抗扰动能力上确实有优势。但抖振问题不能完全消除,只能通过参数折中来抑制。如果你对抖振特别敏感,可以考虑高阶滑模或者自适应滑模,这些我们后面会讲到。

3.4 设计要点总结

最后,我把自己踩过的坑和心得整理一下:

  • 参数整定顺序:先调 k(指数项),再调 ε(等速项),最后调 δ(边界层)
  • 注意积分饱和:如果用了积分滑模面,一定要加抗饱和处理
  • 离散化影响:实际代码中,采样频率要足够高,否则滑模效果会大打折扣
  • 负载观测器:如果负载变化频繁,建议配合扰动观测器使用,效果会更好

嗯,这一节就到这里。下一节我会讲怎么把扰动观测器加进来,让系统性能再上一个台阶。