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增大而减小(可能含虚部) | 易产生极限环振荡 |
我个人觉得,这四种特性里最难处理的是间隙。为什么?因为它引入了相位滞后,而相位滞后是控制系统的大敌。饱和和死区至少还是实数增益,可以用增益调度来补偿。间隙的相位滞后,补偿起来就麻烦多了。
下面这张图展示了四种特性的核心逻辑关系:
最后说一句:描述函数法虽然好用,但它有局限性。它假设非线性环节的输入是正弦信号,且只考虑基波分量。如果系统中有多个非线性环节,或者信号不是正弦的,那描述函数法就不太准了。这时候,我建议你用仿真或者更高级的分析方法。
嗯,这四种特性就讲到这里。记住它们的描述函数形式,以后分析实际系统时,你就能快速判断问题出在哪了。