描述函数法模拟器 返回
控制工程

描述函数法模拟器

将继电器、饱和、死区等非线性元件替换为振幅相关的等效增益 N(A),再由线性部分轨迹 L(jω) 与临界曲线 −1/N(A) 的交点预测极限环(自激振荡)的振幅与频率。改变非线性元件或参数,即可实时看到是否产生振荡。

参数设置
非线性元件
选择描述函数 N(A) 的类型
非线性参数 p
饱和电平 M 或死区宽度 δ
输入正弦波振幅 A
评估 N(A) 时的当前振幅
线性部分增益 K
L(s)=K/(s(τs+1)²) 的比例增益
线性部分时间常数 τ
s
双滞后时间常数。ωpc=1/τ
计算结果
描述函数 N(A)(当前振幅)
极限环频率 ω (rad/s)
极限环振幅 A_lc
极限环周期 T (s)
相位穿越处线性增益 |L|
极限环判定
复平面 — L(jω) 与临界曲线 −1/N(A)

蓝色曲线为线性部分轨迹 L(jω),橙色曲线为临界曲线 −1/N(A)。两者的交点(黄色)即预测的极限环,白点标记 −1 点。标记沿 L(jω) 随 ω 增大而移动。

描述函数 N(A) 随输入振幅的变化
预测的极限环波形
理论与主要公式

$$N(A)=\frac{4M}{\pi A}\ (\text{继电器}),\qquad \text{极限环}:\ L(j\omega)=-\frac{1}{N(A)}$$

N(A) 是非线性元件的振幅相关等效增益(输出基波分量与输入之比)。当 L(jω) 与临界曲线 −1/N(A) 相交时,即预测出现极限环。

$$L(s)=\frac{K}{s\,(\tau s+1)^{2}},\qquad \omega_{pc}=\frac{1}{\tau},\qquad |L(j\omega_{pc})|=\frac{K}{\omega_{pc}\,((\tau\omega_{pc})^{2}+1)}$$

线性部分为 1 型(含积分器)双滞后系统。ωpc 为相位达到 −180° 的相位穿越频率,|L| 为该处的增益。

$$N(A_{lc})=\frac{1}{|L(j\omega_{pc})|},\qquad T_{lc}=\frac{2\pi}{\omega_{pc}}$$

极限环振幅 A_lc 通过求解 N(A)=1/|L| 得到。继电器情形下 A_lc=4M|L|/π,其他元件用二分法数值求解。周期 T_lc 由 ωpc 决定。

什么是描述函数法

🙋
"描述函数法"我只在控制课上听过名字……它到底是用来做什么的方法呢?
🎓
简单说,它是一种"让非线性元件假装成线性元件"的技巧。一旦系统里有继电器、饱和、死区这种输入输出会突然弯折的元件,奈奎斯特图之类的频域分析就不能直接用了。于是我们给非线性元件输入一个正弦波,只取输出中"同频率的那一部分(基波)",把它与输入之比当作增益。这就是描述函数 N(A),关键在于它的值会随振幅 A 而变化。
🙋
增益随振幅变化……这和普通的传递函数不一样呢。那这样有什么好处?
🎓
最大的好处是"能预测极限环"。极限环指的是:外部什么都不输入,系统却自己以固定振幅持续振荡的现象。在描述函数法里,我们把线性部分轨迹 L(jω) 和临界曲线 −1/N(A) 画在同一个复平面上。这两条线一旦相交,就能读出在该交点的振幅和频率处会产生振荡。上方画布里蓝线和橙线相碰的那个黄点,正是预测出来的极限环。
🙋
原来如此。默认的继电器显示"会发生"。继电器控制真的这么容易振荡吗?
🎓
很容易。继电器的描述函数是 N(A)=4M/(πA),振幅 A 越小增益就越大。想象一下恒温器:接近设定温度时,继电器只能选"全开或全闭",于是过冲后又往反方向摆。这种来回摆动就是振荡寻的,正是极限环。用描述函数法,可以在设计阶段估算"室温会以多大幅度、多长周期振荡"。把左边的时间常数 τ 调大,就能看到周期 T=2π/ωpc 随之变长。
🙋
切换到饱和或死区时,N(A) 曲线的形状完全不同。这意味着什么?
🎓
观察得好。饱和在小振幅时斜率为 1(N=1),振幅一旦超过饱和电平,N 就开始下降——增益"逐渐缩水"。死区正相反:小振幅时输出为零(N=0),只有输入超过死区宽度后 N 才开始上升。只有继电器,振幅越小 N 越发散到无穷大。从"N(A) 如何变化"中,甚至可以讨论极限环是稳定保持,还是振幅一偏就消失。所以 N(A) 曲线的形状,就是非线性元件性格的体现。
🙋
是不是太方便了?非线性控制只靠这一招就能全部解决吗?
🎓
这里要当心。描述函数法终究是"近似法"。它只看输出的基波、丢掉其余谐波,所以前提是线性部分能很好地衰减谐波(低通特性强)。这个假设一弱,预测就会偏。实务中是先用描述函数法摸个大概,最后一定用时域仿真来确认。把它当成一件方便的"前瞻工具"才是正解。

常见问题

描述函数 N(A) 用一个"随输入振幅 A 变化的等效增益"来近似继电器、饱和、死区等静态非线性元件。将振幅为 A 的正弦波送入非线性元件,只保留输出中的基波(与输入同频率的正弦分量),再取其与输入之比即可得到。这样就能把非线性系统近似当作线性系统处理,从而用类似奈奎斯特图的方法预测极限环。
极限环(自激振荡)出现在线性部分频率响应 L(jω) 与临界曲线 −1/N(A) 相交之处。对于本工具的线性部分 L(s)=K/(s(τs+1)²),存在唯一的相位穿越频率 ωpc=1/τ,在该处相位达到 −180°,L(jωpc) 为负实数。若存在振幅 A 满足 N(A)=1/|L(jωpc)|,则预测在该振幅与频率 ωpc 处产生极限环。
继电器(开关)元件的描述函数为 N(A)=4M/(πA),振幅 A 越小增益越大。在执行机构只能输出 ±M 的系统(如恒温器、开关阀)中,误差较小时增益很高、控制作用过强,于是过冲后又向反方向摆动,如此反复。这种自激振荡就是振荡寻的(hunting),描述函数法可事先估算其振幅与周期。
描述函数法是一种近似方法。其前提是:线性部分具有足够的低通特性以衰减非线性元件输出的谐波(滤波假设);非线性元件为静态(无记忆)且奇对称。当线性部分对谐波衰减不足、多个极限环相互靠近、或信号明显偏离正弦时,预测会出现偏差。最终确认应通过时域仿真完成。

实际应用

继电器控制・开关控制的设计:家用恒温器、冰箱压缩机控制、电加热器的开关控制等,执行机构只能选择"全开/全闭"的系统数不胜数。这类系统本质上带有极限环,室温或工艺量会以固定振幅持续摆动。借助描述函数法,可在设计阶段从滞环宽度与线性部分时间常数估算"摆幅"与"振荡周期",从而选取使其落在允许范围内的参数。

执行机构饱和与极限环:伺服电机、液压阀、功率放大器等,输出都存在上限(饱和)。在高增益反馈系统中,这种饱和可能引发持续振荡。用描述函数法把饱和元件替换为等效增益 N(A),即可预测增益提高到何种程度会进入振荡、进入后振幅有多大,为增益设计提供指引。

机械系统中摩擦与齿隙引起的微小振动:齿轮间隙(齿隙)以及静摩擦、库仑摩擦可建模为死区或滞环。在定位平台与机床进给轴上,它们会在目标值附近引起微小极限环(极限环振动、爬行)。描述函数法是评估此类由摩擦引起的振动会衰减还是持续的经典手段。

非线性控制的前期评估与教学:在进行详细的非线性仿真或相平面分析之前,先用描述函数法快速判断"是否可能存在极限环"。它计算量小,又能给出复平面上交点这一直观图像,因此在控制工程教学中被广泛用作非线性系统的入门。像本工具这样把 L(jω) 与 −1/N(A) 同时画出,交点的含义便一目了然。

常见误解与注意事项

最大的误解是"描述函数法给出精确解"。该方法只保留输出的基波,舍弃第三、第五等更高次谐波,是一种近似。它成立的前提是满足"滤波假设",即线性部分对谐波有足够的衰减。当谐波衰减不足时,预测的极限环振幅与频率就会偏离实际。本工具的线性部分是积分器加双滞后,低通特性较强,近似良好;但一般而言,描述函数法的结果是"大致估计",最终确认应以时域仿真为准。

其次,认为"只要有交点就一定持续振荡"。L(jω) 与 −1/N(A) 的交点只是"极限环候选",该振荡是稳定(受扰后振幅偏离仍能回到原值)还是不稳定(一偏就发散或消失)是另一个问题。稳定性的判定方法是:在交点附近把振幅 A 略增或略减后,系统是否朝该振幅回归。饱和系统易出现稳定极限环,死区系统易出现不稳定极限环——行为取决于非线性元件的性格。本工具给出的是候选点,稳定性判定需另行分析。

最后,"N(A) 未必是实数"。本工具处理的继电器(无滞环)、饱和、死区都是奇对称的单值静态非线性,因此 N(A) 为实数。但对于带滞环的继电器或齿隙这类具有"记忆"的非线性元件,N(A) 会变为复数,临界曲线 −1/N(A) 就会偏离实轴而画成曲线。由于真实的继电器总带有一定滞环,请记住:现实设计往往需要深入到复描述函数。

使用指南

  1. 在"非线性参数"输入框设置非线性元件类型(继电器死区=0.2,饱和增益=1.5)和幅值范围(0.1~5.0V)
  2. 在"线性系统"区域输入开环增益K(如2.8)、一阶时间常数τ(如0.15s)、二阶自然频率ωn(如18rad/s)
  3. 点击"计算描述函数"按钮,模拟器自动生成N(A)曲线与奈奎斯特曲线的交点,读取极限环振幅A_lc和频率ω_lc
  4. 在"极限环判定"输出中确认dN/dA<0判定系统是否产生稳定自激振荡

具体计算示例

对于继电器非线性元件(死区d=0.3V,输出±5V)串联一阶线性环节(K=3.0,τ=0.2s)的系统:描述函数N(A)在A=1.2V处取值N=-0.85-j0.42;此时奈奎斯特曲线经过点(-0.85, -0.42),对应线性部分L(jω)=-0.85-j0.42;求解得极限环振幅A_lc=1.2V,极限环频率ω_lc=4.5rad/s,周期T=1.4s。通过验证dN/dA=-0.31<0确认为稳定极限环。

实务注意事项