3、典型非线性特性的描述函数:饱和特性、死区特性、间隙特性、继电特性

好,咱们今天聊聊四种最典型的非线性特性。说实话,搞控制这么多年,我碰到的实际系统里,十有八九的非线性问题都能归到这四类里。你想想看,不管是液压阀、齿轮箱,还是继电器电路,本质上都是这些特性的组合或变形。

描述函数法,说白了就是用一条「等效增益曲线」去近似那个非线性环节。它不是精确解,但工程上够用。我个人的习惯是:先用描述函数算一遍,心里有个底,再用仿真验证。这样效率最高。

3.1 饱和特性

饱和特性太常见了。你想想看,任何物理系统的输出都不可能无限增长——运放有供电电压限制,电机有最大扭矩,阀门有最大开度。这就是饱和。

数学描述:

当输入 |x| ≤ a 时,输出 y = kx(线性区)

当输入 |x| > a 时,输出 y = ±ka(饱和区)

其中 a 是线性区宽度,k 是线性增益。

它的描述函数推导其实不复杂。假设输入是正弦信号 x(t) = A sin(ωt),输出会变成什么样?当 A ≤ a 时,系统完全线性,描述函数就是 k。当 A > a 时,输出波形被「削顶」了——正弦波的顶部被切平。

我算给你看:

令 θ₀ = arcsin(a/A)
输出基波分量:
Y₁ = (2/π) ∫₀^π y(t) sin(ωt) d(ωt)

分段积分:
0 → θ₀:y = kA sin(ωt)
θ₀ → π-θ₀:y = ka
π-θ₀ → π:y = kA sin(ωt)

结果:
N(A) = (2k/π) [arcsin(a/A) + (a/A)√(1 - (a/A)²)]   (A ≥ a)
N(A) = k   (A ≤ a)

我的经验:饱和特性最坑人的地方在于——它会让系统看起来「变慢了」。我在调一个伺服系统时,发现相位裕度明明够,但响应就是慢半拍。后来一查,是电流环饱和了,等效增益下降,带宽被压缩了。嗯,这个坑我踩过。

3.2 死区特性

死区,说白了就是「小信号不响应」。液压阀的阀芯有遮盖量,齿轮传动有背隙,甚至你踩油门时发动机也有个最小油门开度——这些都是死区。

数学上很简单:

当 |x| ≤ Δ 时,y = 0

当 x > Δ 时,y = k(x - Δ)

当 x < -Δ 时,y = k(x + Δ)

其中 Δ 是死区宽度。

描述函数推导思路类似。输入正弦信号,输出波形在过零点附近有一段「平底」——信号太小,输出为零。

令 θ₁ = arcsin(Δ/A)
输出基波分量:
N(A) = (2k/π) [π/2 - arcsin(Δ/A) - (Δ/A)√(1 - (Δ/A)²)]   (A ≥ Δ)
N(A) = 0   (A < Δ)

注意:死区会导致系统产生稳态误差。我曾经调试一个位置伺服系统,发现定位精度总差那么零点几毫米。查了半天,发现是机械传动链有死区。解决办法?要么加预紧力,要么在控制器里加死区补偿。我个人倾向于后者,因为改机械结构太麻烦。

3.3 间隙特性

间隙特性,也叫回差、滞环。齿轮啮合有间隙,丝杠螺母有反向间隙,甚至电磁阀也有磁滞。它的特点是:输出不仅取决于当前输入,还取决于输入的变化方向。

数学描述稍微复杂点:

正向运动时:y = k(x - b)

反向运动时:y = k(x + b)

其中 2b 是间隙宽度。

描述函数推导时,输出波形会有一个「相位滞后」——因为间隙导致输出跟不上输入的变化。

令 θ₂ = arcsin(1 - 2b/A)
N(A) = (k/π) [π/2 + arcsin(1 - 2b/A) + (1 - 2b/A)√(1 - (1 - 2b/A)²)]
      + j(k/π) [-(1 - 2b/A)²]   (A ≥ b)

注意,这里描述函数是复数!这意味着间隙不仅改变增益,还引入相位滞后。这是它和死区、饱和最大的区别。

避坑指南:我曾经调试一个数控机床的进给轴,发现反向时总有个「丢步」现象。一开始以为是编码器问题,后来用示波器看位置环输出,发现每次反向时都有一个明显的相位滞后。嗯,就是间隙搞的鬼。解决办法?在控制器里加反向间隙补偿,或者用双电机消隙结构。

3.4 继电特性

继电特性,就是开关特性。输出只有两个状态:要么开,要么关。温控器的通断控制、继电器的吸合释放、甚至数字控制器的PWM输出,本质上都是继电特性。

它有三种常见形式:

  • 理想继电:输出 ±M,无死区,无滞环
  • 带死区的继电:输入在死区内时输出为零
  • 带滞环的继电:吸合和释放电压不同

描述函数推导最简单——因为输出是方波,基波分量可以直接算:

理想继电:
N(A) = 4M/(πA)

带死区(宽度为2Δ):
N(A) = (4M/πA) √(1 - (Δ/A)²)   (A ≥ Δ)

带滞环(宽度为2h):
N(A) = (4M/πA) √(1 - (h/A)²) - j(4Mh)/(πA²)   (A ≥ h)

注意:继电特性最容易引发极限环振荡。我见过一个温度控制系统,继电器频繁通断,导致温度在设定点附近来回振荡。原因就是继电器的滞环太小,加上系统惯性小,形成了自激振荡。解决办法?要么增大滞环,要么加延时,要么用PID替代简单的通断控制。

3.5 四种特性的对比与总结

我把这四种特性放在一起对比一下:

特性 输出波形特点 描述函数特点 工程影响
饱和 削顶 增益随A增大而减小(实数) 系统响应变慢,带宽降低
死区 过零平底 增益随A增大而增大(实数) 产生稳态误差,小信号不响应
间隙 相位滞后 复数,含虚部 引入相位滞后,可能引发振荡
继电 方波 增益随A增大而减小(可能含虚部) 易产生极限环振荡

我个人觉得,这四种特性里最难处理的是间隙。为什么?因为它引入了相位滞后,而相位滞后是控制系统的大敌。饱和和死区至少还是实数增益,可以用增益调度来补偿。间隙的相位滞后,补偿起来就麻烦多了。

下面这张图展示了四种特性的核心逻辑关系:

四种典型非线性特性关系图 饱和特性 输出受限,削顶 死区特性 小信号不响应 间隙特性 相位滞后 继电特性 开关输出 共同点: 都是静态非线性,描述函数均为输入幅值A的函数,与频率ω无关 关键区别: 饱和/死区:实数增益;间隙/滞环继电:复数增益(含相位) 工程影响:都可能引发极限环振荡,需用描述函数法分析稳定性

最后说一句:描述函数法虽然好用,但它有局限性。它假设非线性环节的输入是正弦信号,且只考虑基波分量。如果系统中有多个非线性环节,或者信号不是正弦的,那描述函数法就不太准了。这时候,我建议你用仿真或者更高级的分析方法。

嗯,这四种特性就讲到这里。记住它们的描述函数形式,以后分析实际系统时,你就能快速判断问题出在哪了。


专注资料整理