资讯动态

描述函数法解析非线性系统自激振荡与稳定性分析

发布时间:2026/9/7 13:31:12 来源:尧图企业网站定制
这次我们来看自动控制原理第八章“本质非线性二”。如果上一部分已经完成了非线性系统的概述、典型非线性特性和相平面法那这一部分的核心就非常集中了描述函数法、非线性系统的稳定性分析、以及最重要的工程问题——自激振荡的判断与参数计算。很多同学学到这一章会觉得公式多、曲线杂尤其是一碰到“负倒描述函数”和奈氏曲线的交点就开始晕。这篇文章就把这条主线理顺从最基础的数学模型开始到描述函数公式再到稳定性判断和典型例题最后用 MATLAB/Simulink 做一轮仿真对照帮你在考试、课程设计和实际系统分析中都能用得上。先说清楚学这一部分需要什么基础。描述函数法是频率法的延伸所以你至少要知道 Nyquist 曲线怎么画、开环频率特性的幅值和相角怎么算、以及奈氏判据的基本结论。数学工具主要是傅里叶级数和复变函数的基本运算难度不算高。真正容易出问题的不是公式推导而是负倒描述函数 -1/N(A) 的曲线走向、交点处自激振荡稳定性的判断方向。这篇文章会把每一步拆开先给结论再给理由最后给验证你看完可以直接照着一套流程做题或者做仿真。1. 本章核心内容速览内容项说明章节主题本质非线性系统的描述函数法分析前置章节本质非线性一非线性系统概述、典型非线性、相平面法核心方法描述函数法谐波线性化解决的主要问题非线性系统稳定性、自激振荡的存在性与参数求解典型非线性环节饱和、死区、间隙、理想继电特性、滞环继电特性数学工具傅里叶级数、频率特性、Nyquist 判据验证工具MATLAB 控制工具箱、Simulink 仿真常见考试题型求描述函数、画负倒描述函数、判断自振、求振荡幅值与频率工程意义判断系统是否会等幅振荡预测振荡频率和幅值指导校正设计从这张表可以看到本章不是单纯的理论推导它最终要落到“系统到底稳不稳定”“振荡频率是多少”“振荡幅值有多大”这些可以定量回答的问题上。这也是描述函数法相比相平面法更受工程欢迎的原因它可以借助频率特性工具直接套用线性系统那一套分析框架。2. 本质非线性问题与学习前提2.1 为什么叫“本质非线性”控制系统中非线性可以分为两类。一类是“非本质非线性”或者叫“弱非线性”它们在工作点附近可以近似线性化。比如一个光滑的平方关系在某个工作点附近用切线代替误差不大那就可以用小偏差线性化的方法处理。这类非线性的分析本质上还是用线性系统的工具。另一类就是“本质非线性”它们的特点是函数关系在工作点附近根本不连续、不可导或者无法用切线近似。典型的包括饱和输出到达限幅值后不再随输入增大而增大转折点处不可导。死区输入小到一定程度时完全没有输出小信号下增益为 0。间隙正反向运动特性不一致输入反向时输出要滞后一段。继电特性输出只有开关两个值在切换点处发生跳跃。这类非线性无法通过“在工作点附近取切线”来简化因为它的本质特征就是突变和限幅。所以必须用专门的非线性分析方法。2.2 从一到二分析工具的变化本质非线性一通常介绍的是相平面法。相平面法的优点是直观可以在二维状态空间中画出系统从不同初始状态出发的运动轨迹精确性高缺点是只适用于二阶系统或者可以近似为二阶的系统。一旦系统阶数超过二阶相平面就画不出来了。本质非线性二引入描述函数法正好补上这个短板。描述函数法本质上是一种“谐波线性化”把非线性环节在正弦输入下的输出取基波分量用等效的复数增益来描述这个非线性环节。这样就把一个非线性环节变成了一个“幅值相关的等效线性环节”系统分析就可以继续使用频率特性曲线。学习本章前建议先确认自己是否掌握了下面这些基础典型环节的频率特性惯性环节、振荡环节、积分环节的幅相曲线。Nyquist 稳定判据开环频率曲线如何包围 (-1, j0) 点闭环稳定性怎么判断。傅里叶级数能够写出周期信号的基波分量表达式。基本复变运算复数乘法、除法、幅值与相角计算。这些基础过关之后描述函数法学起来会非常顺。如果这些还不熟建议先回去把奈氏判据复习一遍因为后面的稳定性判断本质上就是把“(-1, j0)”这个固定点换成了“负倒描述函数曲线”这个变量点。3. 典型本质非线性环节的数学描述在学习描述函数法之前先要把几个典型非线性环节的输入-输出关系弄清楚。这部分的公式最好能自己推导一遍而不是死记硬背。因为考试中常考的就是饱和、死区、继电这三个题目变换再多本质都是对周期信号做傅里叶展开取基波。3.1 饱和特性饱和特性的数学描述为$$ y \begin{cases} K x, |x| \le a \ K a, x a \ -K a, x -a \end{cases} $$它的物理含义很常见放大器输出有限幅、电机转速有限制、阀门开度有上下限。输入在小范围内时是线性增益 K一旦输入超出 ±a输出就被钳位在 ±Ka。3.2 死区特性死区特性的数学描述为$$ y \begin{cases} 0, |x| \le \Delta \ K(x - \Delta), x \Delta \ K(x \Delta), x -\Delta \end{cases} $$死区的典型来源是机械间隙、静摩擦、仪表的不灵敏区。小信号下系统没有响应这就是“死区”这个名字的来历。注意死区的等效增益不是常数信号幅值越大死区的影响相对越小。3.3 间隙特性间隙特性也叫回环特性输入输出关系不是一个单值函数而与输入的历史方向有关。典型的例子是齿轮传动中的齿隙。正向运动时输出跟随输入但存在滞后反向运动时输出要等输入走过间隙之后才开始反向。它的数学模型通常用分段函数描述或者直接用滞环曲线表示。3.4 理想继电特性理想继电特性的数学描述最简洁$$ y \begin{cases} M, x 0 \ -M, x 0 \end{cases} $$输出只取 ±M 两个值输入过零时输出跳变。这对应理想继电器、功率开关管、比较器开关等器件。实际工程中还有带死区的继电特性、带滞环的继电特性它们的描述函数会复杂一些但分析方法完全一致。3.5 各环节特点对比特性类型输入输出关系典型来源描述函数特点饱和单值、分段线性放大器限幅、阀门限位实数随 A 增大而减小死区单值、分段线性静摩擦、仪表不灵敏区实数随 A 增大而趋向 K间隙多值、非单值齿轮齿隙复数包含相位滞后理想继电开关型继电器、比较器实数随 A 增大而减小值得注意的是饱和和理想继电的描述函数是实数说明非线性环节不引入额外相位滞后而间隙特性因为含有储能或滞后特性描述函数是复数会在系统中引入相位滞后对稳定性影响更大。4. 描述函数法的基本思路与适用条件4.1 什么是描述函数描述函数法的核心思想是给非线性环节输入一个正弦信号$$ x(t) A \sin \omega t $$非线性环节的输出 y(t) 一般情况下不再是正弦而是一个周期信号。对这个周期信号做傅里叶级数展开取它的基波分量记为$$ y_1(t) Y_1 \sin(\omega t \varphi_1) $$然后定义描述函数为基波分量与输入正弦信号的复数比$$ N(A) \frac{Y_1}{A} e^{j\varphi_1} $$这里最关键的一点N(A) 通常不是常数而是输入幅值 A 的函数。这就是非线性系统和线性系统的本质区别。线性系统的频率特性只与频率有关而非线性环节的等效增益还和信号大小有关。4.2 基波分量的计算计算描述函数的具体步骤是固定的设输入为 x A sin ψ其中 ψ ωt。写出非线性环节的输出 y(ψ)。计算基波分量的傅里叶系数$$ B_1 \frac{1}{\pi} \int_{0}^{2\pi} y(\psi) \sin\psi , d\psi $$$$ C_1 \frac{1}{\pi} \int_{0}^{2\pi} y(\psi) \cos\psi , d\psi $$若非线性为单值奇函数则 C1 0描述函数为实数$$ N(A) \frac{B_1}{A} $$如果非线性是多值函数比如间隙环节则 C1 不为 0描述函数会包含虚部表示相位滞后。4.3 几个重要描述函数公式理想继电特性$$ N(A) \frac{4M}{\pi A} $$饱和特性$$ N(A) \begin{cases} K, A \le a \ \dfrac{2K}{\pi}\left[\arcsin\dfrac{a}{A} \dfrac{a}{A}\sqrt{1-\left(\dfrac{a}{A}\right)^2}\right], A a \end{cases} $$死区特性$$ N(A) \begin{cases} 0, A \le \Delta \ K - \dfrac{2K}{\pi}\left[\arcsin\dfrac{\Delta}{A} \dfrac{\Delta}{A}\sqrt{1-\left(\dfrac{\Delta}{A}\right)^2}\right], A \Delta \end{cases} $$对于间隙、滞环继电等非单值环节N(A) 是复数其具体表达式相对复杂常见教材中都有列表使用的时候直接查表即可。但必须知道虚部的存在会带来相位滞后这在判断稳定性时非常重要。4.4 适用条件与局限性描述函数法不是万能的它的有效性依赖于几个前提条件第一系统要能化简成非线性环节和线性部分串联的典型结构。如果有多个非线性环节通常要先等效合并。第二线性部分必须具有低通滤波特性。这是描述函数法最核心的假设高次谐波经过线性部分后被充分衰减基波占主导。大多数实际的线性系统都在高频段衰减所以这个条件一般可以满足但理论上要注意。第三非线性环节的输入假设是单一频率的正弦信号。如果系统中有多个频率成分描述函数法会失效。第四描述函数法主要用于分析稳定性和自激振荡对于系统的瞬态响应精度不高。它给出的是一个近似结果工程上足够用但不适合做精确的时域分析。5. 用描述函数法判定稳定性与自激振荡5.1 非线性系统的等效闭环结构把非线性环节用描述函数 N(A) 替换后系统可以看成这样一个等效结构前向通道是 N(A) 和线性部分 G(s) 串联反馈为单位反馈或者一个常数反馈。于是闭环特征方程为$$ 1 N(A) G(j\omega) 0 $$即$$ G(j\omega) -\frac{1}{N(A)} $$这个式子就是描述函数法分析稳定性的核心。左边的 G(jω) 是线性部分的频率特性是一条固定曲线右边的 -1/N(A) 是负倒描述函数它随 A 变化是一条参数曲线。5.2 稳定性判据沿用 Nyquist 判据的思路如果在某一幅值 A 下点 -1/N(A) 没有被 G(jω) 曲线包围则系统在这个工作幅值下是稳定的。如果 -1/N(A) 被 G(jω) 曲线包围则系统不稳定。如果 G(jω) 曲线恰好穿过 -1/N(A) 曲线的某一点则系统可能出现自激振荡。实际分析时通常把 G(jω) 曲线和 -1/N(A) 曲线画在同一个复平面中然后看它们的相对位置关系。需要注意的是-1/N(A) 曲线上的每一个点都对应一个具体的幅值 A所以它不是一条“静态”的曲线而是一条带参数的轨迹。5.3 自激振荡稳定性的判断当 G(jω) 与 -1/N(A) 相交时只是说明存在自激振荡的可能性还不能确定这个自激振荡能不能持续。如果振荡幅值稍有波动后能回到交点就是稳定的自激振荡如果稍有波动就发散或者衰减掉就不是稳定的自激振荡。判断方法是看交点处沿 A 增大方向的穿越方向沿 A 增大的方向如果 -1/N(A) 曲线从 G(jω) 包围区域内部穿向外部则这个交点是稳定自激振荡。反过来如果从外部穿向内部则交点是不稳定的。这个方向判断是考试中特别容易出错的地方。建议做题时在 -1/N(A) 曲线上标出 A 增大方向先在交点旁画一个小箭头再判断内外部穿越就不容易漏掉关键信息。5.4 求振荡参数一旦确定某个交点是稳定自激振荡点就可以联立方程求出振荡参数$$ G(j\omega) -\frac{1}{N(A)} $$这个方程包含两个未知数A 和 ω。实部和虚部分别对应一个方程恰好可以解出振荡幅值 A0 和振荡频率 ω0。具体求解时通常可以先令 G(jω) 的虚部为 0求出与负实轴交点处的频率 ω0然后再用实部等式求出 A0。6. 典型例题理想继电特性系统的自激振荡分析这一节用一个工程中最常见的例子把整套流程走一遍。设非线性环节为理想继电特性输出幅值 M线性部分为$$ G(s) \frac{K}{s(s1)(s2)} $$6.1 画出负倒描述函数曲线理想继电特性的描述函数为$$ N(A) \frac{4M}{\pi A} $$所以负倒描述函数为$$ -\frac{1}{N(A)} -\frac{\pi A}{4M} $$当 A 从 0 增大到无穷大时-1/N(A) 从 0 变化到负无穷正好覆盖整个负实轴。这说明理想继电特性的负倒描述函数曲线就是整条负实轴。6.2 计算线性部分与负实轴的交点把 s jω 代入 G(s)$$ G(j\omega) \frac{K}{j\omega(1j\omega)(2j\omega)} $$计算相角$$ \varphi(j\omega) -90^\circ - \arctan\omega - \arctan\frac{\omega}{2} $$求 G(jω) 与负实轴的交点令相角等于 -180°$$ \arctan\omega \arctan\frac{\omega}{2} 90^\circ $$两个反正切之和为 90° 时对应的条件是两个自变量之积为 1$$ \omega \cdot \frac{\omega}{2} 1 $$解得$$ \omega_c \sqrt{2} $$此时 G(jω) 的幅值为$$ |G(j\omega_c)| \frac{K}{\sqrt{2}\cdot\sqrt{3}\cdot 2} \frac{K}{2\sqrt{6}} $$所以 G(jω) 与负实轴的交点坐标为$$ \left(-\frac{K}{2\sqrt{6}},\ 0\right) $$6.3 判断自激振荡由于理想继电特性的 -1/N(A) 覆盖整条负实轴而 G(jω) 与负实轴必然有一个交点所以该系统必然存在自激振荡的可能性。从交点处沿 A 增大的方向看-1/N(A) 从包围区域内部穿向外部因此该交点为稳定自激振荡。振荡频率即为$$ \omega_0 \sqrt{2} \approx 1.414\ \text{rad/s} $$振荡幅值通过实部等式计算$$ -\frac{\pi A}{4M} -\frac{K}{2\sqrt{6}} $$解得$$ A_0 \frac{2MK}{\pi\sqrt{6}} $$如果取 M1、K10则$$ A_0 \frac{20}{\pi\sqrt{6}} \approx 2.60 $$也就是说误差信号会以约 1.414 rad/s 的频率、约 2.60 的幅值持续等幅振荡。这个结果可以用于后续仿真对照。6.4 分析步骤小结这类题目的标准流程可以总结为五步写出非线性环节的描述函数 N(A)。求出负倒描述函数 -1/N(A)。画出 G(jω) 和 -1/N(A) 在同一复平面中的曲线。找交点按 A 增大方向判断自激振荡是否稳定。联立方程求解振荡频率 ω0 和幅值 A0。只要按照这个流程走绝大多数描述函数法题目都能拿分。关键步骤是第三步的曲线画法和第四步的方向判断这两处也是最容易丢分的地方。7. MATLAB/Simulink 仿真验证思路描述函数法本身是近似方法结果需要通过仿真验证。这里给出一个可以实操的 MATLAB 验证方案适用于上面这个理想继电特性的例子。7.1 MATLAB 绘制奈氏曲线与负倒描述函数在 MATLAB 中执行以下脚本% 理想继电特性 线性部分的描述函数法验证 s tf(s); K 10; M 1; G K / (s*(s1)*(s2)); % 绘制线性部分的 Nyquist 曲线 figure; nyquist(G); hold on; % 理想继电特性的负倒描述函数-1/N(A) -pi*A/(4M) A linspace(0.01, 6, 500); NegInvN -pi*A/(4*M); plot(NegInvN, zeros(size(NegInvN)), r--, LineWidth, 2); % 理论交点 omega_c sqrt(2); A_c 2*M*K/(pi*sqrt(6)); plot(-K/(2*sqrt(6)), 0, ko, MarkerFaceColor, k); xlabel(实部); ylabel(虚部); title(Nyquist曲线与负倒描述函数); legend(G(j\omega), -1/N(A), 交点); grid on;运行后可以看到G(jω) 曲线穿过负实轴红色虚线与负实轴重叠黑色圆点标记交点位置。如果 K 变化交点位置会随之改变系统自激振荡的幅值也会变化。7.2 Simulink 搭建非线性闭环系统在 Simulink 中搭一个单位反馈结构Sum 模块误差 e r - y。Relay 模块模拟理想继电特性输出 ±M。Transfer Fcn 模块线性部分 10/(s(s1)(s2))。Scope 模块观察输入输出波形。Relay 模块参数设置为参数值Switch on point0.001Switch off point-0.001Output when onM (取 1)Output when off-M (取 -1)仿真时间可以设置为 10 秒左右。输入信号 r 可以设为单位阶跃也可以设为 0让系统从初始状态的扰动开始自由运动。观察误差信号 e(t) 的波形如果系统出现等幅振荡记录振荡周期和幅值与理论计算结果对比。7.3 仿真结果对照理论上振荡周期为$$ T \frac{2\pi}{\omega_0} \frac{2\pi}{\sqrt{2}} \approx 4.44\ \text{s} $$描述函数法预测误差信号幅值约为 2.60。仿真中看到的波形应该接近等幅正弦振荡频率与理论值基本一致幅值会有一定误差。这属于正常现象因为描述函数法忽略高次谐波本质上是近似方法。如果仿真波形明显发散或者衰减需要回头检查Relay 参数是否设置正确。线性部分传函增益 K 是否偏大导致系统工作在非预期状态。仿真步长是否过大切换点附近是否出现数值抖动。7.4 进一步实验改变参数观察自振变化可以改变 K 值观察自激振荡幅值的变化。从公式$$ A_0 \frac{2MK}{\pi\sqrt{6}} $$可以看出K 增大时振荡幅值近似线性增大但振荡频率不变。这是一个非常有用的工程结论对于含有理想继电特性的系统增大增益主要改变振荡幅度不改变振荡频率。可以用一组 K 值做批量仿真验证。K理论幅值 A0理论频率 ω051.301.414102.601.414153.901.414205.201.414仿真结果和这个表对比能直观看出描述函数法的有效性。8. 常见学习误区与问题排查描述函数法这部分内容学习过程中有几个非常典型的误区下面逐个说明。8.1 混淆本质非线性与非本质非线性很多同学看到“非线性”三个字就开始担心但其实只有本质非线性才需要采用本章的方法。如果系统在工作点附近光滑、连续、可导应该优先考虑小偏差线性化。判断标准很简单能不能在工作点附近用切线替代。能替代的就是非本质非线性不能替代的就是本质非线性。8.2 描述函数公式记忆错误饱和和死区的描述函数公式形式很相似容易记混。记住一个关键区别饱和特性在输入幅值很大时输出被限幅等效增益趋向于 0死区特性在输入幅值很大时死区可以忽略等效增益趋向于 K。用极限行为来检验公式就不容易出错。8.3 负倒描述函数的方向标错-1/N(A) 是一条带参数 A 的曲线必须标明 A 增大的方向。很多题目要求判断自激振荡的稳定性如果不标方向交点两侧的稳定性判断就无从下手。建议在画图时用箭头明确标出 A 从 0 到无穷大的走向。8.4 稳定性判断方向反了自激振荡稳定性的判断容易记反。注意沿 A 增大方向从 G(jω) 包围区域内部穿向外部才是稳定自激振荡。如果反过来从外部穿向内部对应的自激振荡不能维持。考试中可以先写出判断依据再得出结论避免因为方向判断错误而丢分。8.5 描述函数法适用条件被忽略描述函数法不能用于所有非线性系统。如果线性部分没有足够的低通滤波特性高次谐波没有被有效衰减描述函数法的结果可能严重偏离真实情况。做题目时可以默认条件满足做工程分析时必须检查这个前提。8.6 理论结果与仿真不一致理论计算和仿真结果对不上优先检查以下项目问题现象可能原因排查方式仿真没有出现等幅振荡继电器切换点设置过大实际效果不是理想继电将 switch on/off 点调小振荡频率与理论不一致线性部分参数输入错误检查 Transfer Fcn 系数振荡幅值明显偏大仿真步长过大导致切换延迟改用变步长求解器波形出现严重抖动Relay 模块在切换点反复震荡增加切换点迟滞范围结果发散初始条件设置不当或描述函数法预测本来不成立检查系统线性部分低通特性8.7 做题时漏掉自激振荡的必要性判断有些题目中 G(jω) 曲线与 -1/N(A) 曲线不相交此时系统不存在自激振荡直接判断稳定性即可。不要强行找交点。只有当两条曲线相交时才需要进一步判断交点处的自激振荡是否稳定。9. 学习建议与备考要点描述函数法这一章的复习不建议把全部精力放在公式推导上而应该把重点放在“会用”上。这里给出几条实际可操作的建议。9.1 先把三个基本公式背熟理想继电特性、饱和特性、死区特性的描述函数公式必须熟记最好能自己推导一遍。推导过程本身不复杂就是傅里叶基波系数计算。自己推一遍之后公式的物理意义和适用范围都会清晰很多。间隙和滞环环节的描述函数比较复杂知道它是复数、会查表即可。9.2 把分析流程练成肌肉记忆每一道描述函数法题目都可以按照五步走写 N(A)、求 -1/N(A)、画曲线、判断交点稳定性、求解 A 和 ω。把这个流程固定下来考试时即使题目变形也能快速定位到考点。建议找 3 到 5 道典型真题每种非线性环节练一道。9.3 重点关注曲线图考试中描述函数法的大题通常需要画图。G(jω) 曲线的起点、终点、与负实轴的交点是必画要素-1/N(A) 曲线的起点、方向、是否覆盖负实轴也是必画要素。图形画对后面判断基本不会错。9.4 学会用仿真验证理论MATLAB 和 Simulink 是验证描述函数法结论的好工具。建议把前面例题的仿真模型保留下来后续学习非线性校正、非线性系统设计时可以直接复用。仿真不仅能验证理论还能帮助你建立对“自激振荡”这个现象的直观认识。9.5 注意与线性系统知识的联系描述函数法并不是一套全新体系它是频率响应法在非线性系统中的延伸。很多东西都可以类比-1/N(A) 相当于线性系统中 (-1, j0) 点的推广稳定性判断相当于奈氏判据的变体。用这种类比思路学习记忆负担会小很多。9.6 合规提醒如果是在课程设计、毕业设计或工程实践中使用本章方法注意引用的教材、仿真模型和参考代码要保留来源信息。涉及实际工业系统的非线性参数时必须基于真实设备数据建模并在安全边界内进行仿真验证避免将仿真参数直接照搬到现场设备上防止出现安全事故。总结与下一步本质非线性二这一章最值得投入时间的地方有三个典型非线性环节的描述函数公式、负倒描述函数与奈氏曲线的相对位置判断、自激振荡参数的定量计算。先把这三个问题吃透再去做题和仿真效果会好很多。刚开始复习时先拿理想继电特性这个最简单的例子练手把 N(A)、-1/N(A)、G(jω) 这三个量画在同一张图上确认交点坐标和 A 增大方向然后计算振荡参数。这一步走通之后再尝试饱和特性和死区特性最后再看间隙和滞环环节。最容易踩的坑就是自激振荡稳定性判断的方向做题时一定要在 -1/N(A) 上标箭头不要跳步。建议把本文的 MATLAB 脚本跑一遍再去 Simulink 中搭一个继电特性闭环模型亲眼看一次等幅振荡波形。理论和仿真对上了这一章的核心内容也就真正掌握了。下一步可以尝试的方向把线性部分换成含有延迟环节的系统观察负倒描述函数曲线与奈氏曲线的多个交点如何判断或者把理想继电特性换成带死区的继电特性分析死区对自激振荡频率和幅值的影响。这些内容都能用本文的流程直接扩展值得花时间做一轮仿真练习。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价