ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

描述函数法与相平面法:非线性系统稳定性分析及自激振荡求解指南

描述函数法与相平面法:非线性系统稳定性分析及自激振荡求解指南 自动控制原理第八章“本质非线性二”核心任务就一个把非线性系统“怎么分析、怎么判断稳定性、怎么求自激振荡”变成能落笔算题的方法。上一讲我们认识了死区、饱和、间隙、继电这些本质非线性也知道了线性化在某些条件下会失效。这一讲不绕概念直接上两个工程上最常用的工具——描述函数法和相平面法。这一讲的定位很明确自动化、控制类专业本科生期末复习考研自动控制原理二轮冲刺以及工作中要处理执行机构限幅、继电器控制、传动间隙等实际问题的工程师。学完你应该能独立完成两类计算给定一个带非线性环节的闭环系统判断是否产生自激振荡估算振荡频率和幅值给定一个二阶非线性系统绘制相轨迹并判断奇点类型和运动形态。下面按照“典型环节建模 → 描述函数法 → 相平面法 → 校正设计 → 易错点排查”的顺序展开。1. 本质非线性二核心任务与学习路线本质非线性二这一讲和第一讲的差别在于从“认识现象”进入“动手计算”。第一讲建立的核心观念是本质非线性不能通过小范围线性化来处理叠加原理失效系统可能出现线性系统里不存在的自激振荡、跳跃现象和极限环。第二讲则要回答三个问题。第一某个本质非线性环节的存在会不会让闭环系统产生持续等幅振荡如果会振荡频率大致是多少振幅范围又落在哪里这是描述函数法可以直接回答的。第二对于低阶非线性系统能不能不依赖频域工具直接在状态平面上直观看到运动趋势这需要相平面法它把二阶系统的运动画成一条条相轨迹奇点和极限环一目了然。第三分析完之后如何改控制器非线性系统的校正不像线性系统那样单纯调增益死区会降低稳态精度饱和会在大误差时掩盖控制量间隙可能直接诱发极限环继电控制则天然自带高频抖动风险。这些都需要在设计阶段提前规避。把这三个问题拆开就得到本讲的学习路线先建立四种典型本质非线性环节的数学模型再掌握描述函数法的推导和使用条件随后用相平面法处理二阶系统最后回到“如何改参数、加反馈、消除或利用非线性”。整章最值得花的精力在两类题上一类是给传递函数和非线性参数判断自振并求交点和频率另一类是给微分方程和多个初始点画相轨迹并判断奇点类型。2. 典型本质非线性环节的数学模型与输入输出特征本质非线性环节的输入输出关系无法在全局范围内用直线近似但每一种典型环节都有明确的物理来源和数学表达。考试和工程分析中90%的情况都集中在死区、饱和、间隙、继电这四类。2.1 死区特性死区又称不灵敏区输入绝对值小于阈值 a 时输出恒为 0超过阈值后输出按线性关系变化。数学表达式为$$ y \begin{cases} 0, |e| \le a \ k(e - a \cdot \operatorname{sgn} e), |e| a \end{cases} $$其中 k 是线性段增益a 是死区宽度。死区常见的物理来源包括放大器小信号不灵敏、静摩擦、液压阀的正重叠等。从控制角度看死区最直接的危害是降低稳态精度系统在小误差状态下相当于开环控制器输出无法驱动执行机构。高频小幅输入下死区会让系统完全失去响应这在随动系统中表现为“小信号跟随丢步”。但在大误差阶段死区的影响相对较小系统仍近似线性因此描述函数法处理时需要让振幅 A 大于死区阈值才算有效。2.2 饱和特性饱和是工程中最常见的本质非线性。输入在线性段内时输出等于 k e当 |e| 超过 a 后输出被限幅在 k a 或 -k a。数学表达式为$$ y \begin{cases} k e, |e| \le a \ k a \cdot \operatorname{sgn} e, |e| a \end{cases} $$运算放大器输出限幅、磁路饱和、阀门开度上下限、电机力矩限制都会产生饱和。饱和的核心影响是大误差时控制器输出到达上限等效增益随输入振幅增大而下降系统响应变慢超调可能减小但也可能让相位滞后更明显诱发极限环。特别要警惕积分环节配合饱和如果控制器有积分项积分饱和会带来明显的超调和振荡这就是工程中必须做抗积分饱和anti-windup的原因。2.3 间隙特性间隙由机械传动中的齿轮间隙、丝杠间隙产生输入反向时输出会滞后一段行程形成回环。间隙特性的数学描述和输入变化方向有关输入从正向变为反向时输出先保持一段时间不变再反向跟随从反向变为正向时同样如此。这块回环面积越大系统的相位滞后就越严重。其物理后果是稳态误差增加、输出出现明显滞后、系统可能在某个增益下产生自激振荡。间隙的描述函数含有实部和虚部不是纯实数计算时一般查表或直接用仿真验证考试中通常只考概念判断和回环对稳定性的影响方向。2.4 继电特性继电特性是典型的开关型非线性输出只有两个或几个固定幅值。理想继电特性为$$ y M \operatorname{sgn} e $$带死区的继电特性在 |e| ≤ a 时输出为 0超过后输出 ±M带滞环的继电特性切换点与运动方向有关。继电控制广泛用于 Bang-Bang 控制、温控开关和电力电子变流器。它的优点是结构简单、响应快缺点是容易产生高频切换和极限环。理想继电器在正弦输入下的描述函数只与输入振幅成反比这个结论在后面判断自振时特别有用。3. 描述函数法原理与负倒描述函数描述函数法的基本思想并不复杂用一个正弦信号去激励非线性环节如果非线性环节是奇对称的稳态输出主要是同频基波加一系列奇次谐波。大多数控制系统具有低通滤波特性高阶谐波经过线性部分后衰减明显因此可以只取基波分量来近似非线性环节的传递关系。这一近似让非线性环节在频域中变成一个“等效复数增益”而且这个增益不是常数它依赖输入正弦信号的振幅 A这就是描述函数 N(A)。3.1 描述函数定义与基波近似设非线性环节输入为 x A sin ωt输出 y(t) 是周期函数省略直流分量后输出基波可以写为$$ y_1(t) a_1 \cos \omega t b_1 \sin \omega t $$傅里叶系数为$$ a_1 \frac{1}{\pi} \int_0^{2\pi} y(t) \cos \omega t , d(\omega t) $$$$ b_1 \frac{1}{\pi} \int_0^{2\pi} y(t) \sin \omega t , d(\omega t) $$描述函数的定义为输出基波复振幅与输入正弦复振幅之比$$ N(A) \frac{b_1 j a_1}{A} $$对于单值奇对称的非线性输出 y(t) 与输入波形关于原点对称a1 通常为 0N(A) 是实数。对于带滞环的继电或间隙特性输出基波相对输入有相位差N(A) 会是一个复数。N(A) 只与输入振幅有关和频率无直接关系这一点和线性频率特性有本质区别。3.2 典型非线性环节的描述函数常用描述函数表是本章的必背内容考试时允许直接使用但必须理解适用范围。理想继电器描述函数为$$ N(A) \frac{4M}{\pi A}, \quad A 0 $$带死区的继电器设死区阈值为 a表达式为$$ N(A) \frac{4M}{\pi A} \sqrt{1 - \left(\frac{a}{A}\right)^2}, \quad A \ge a $$饱和特性的描述函数为$$ N(A) \frac{2k}{\pi} \left[\arcsin\frac{a}{A} \frac{a}{A}\sqrt{1 - \left(\frac{a}{A}\right)^2}\right], \quad A \ge a $$死区特性的描述函数为$$ N(A) k - \frac{2k}{\pi} \left[\arcsin\frac{a}{A} \frac{a}{A}\sqrt{1 - \left(\frac{a}{A}\right)^2}\right], \quad A \ge a $$间隙特性和带滞环继电器的描述函数是复数表达式相对繁琐工程上直接查表或借助数值计算。有一点需要专门提醒描述函数法成立的前提是非线性环节输入端存在近似正弦信号并且线性部分对高次谐波有足够的低通滤波能力。如果系统带宽很宽谐波衰减不充分描述函数法的误差会明显增大。3.3 稳定性判定G(jω) 与 -1/N(A) 曲线把包含非线性环节的闭环系统拆成两部分非线性部分 N(A) 和线性部分 G(jω)闭环特征方程为$$ 1 N(A) G(j\omega) 0 $$改写为$$ G(j\omega) -\frac{1}{N(A)} $$因此在复平面上线性部分的频率特性 G(jω) 随着频率变化形成奈奎斯特曲线而 -1/N(A) 随着振幅 A 变化形成另一条曲线称为负倒描述函数曲线。判断稳定性的规则很简单如果 G(jω) 曲线不包围 -1/N(A) 曲线闭环系统稳定无自激振荡如果 G(jω) 曲线包围 -1/N(A) 曲线闭环系统不稳定信号振幅会增大如果 G(jω) 曲线与 -1/N(A) 曲线相交系统可能出现自激振荡交点的频率由 G(jω) 决定振幅由 -1/N(A) 决定。但两条曲线有交点不一定意味着实际存在稳定极限环还要判断交点附近振幅的变化趋势。具体规则是沿 -1/N(A) 曲线振幅 A 增大的方向如果 G(jω) 曲线从稳定区穿向不稳定区则这个交点对应稳定的自激振荡反过来从不稳定区穿向稳定区的交点对应不稳定极限环在实际系统中通常观察不到。工程上更简单的方法是直接观察交点处的穿越方向配合幅值范围校验 A 是否落在非线性描述函数的有效区间内再结合时域仿真确认。4. 描述函数法做题流程与例题描述函数法的计算题步骤非常固定按流程走可以避免丢分。第一步将系统框图拆成线性部分 G(jω) 和非线性部分 N(A)写出线性部分的传递函数并替换 s jω 得到频率特性。第二步根据非线性环节类型写出描述函数 N(A)化简得到 -1/N(A) 的表达式。单值奇对称非线性的 -1/N(A) 通常在实轴上沿某个方向变化。第三步绘制 G(jω) 曲线与 -1/N(A) 曲线判断包围关系。如果曲线相交解联立方程求交点频率 ω 和振幅 A$$ \begin{cases} \operatorname{Im} G(j\omega) 0 \ \operatorname{Re} G(j\omega) -\frac{1}{N(A)} \end{cases} $$第四步验证 A 的数值是否满足描述函数有效范围再判断交点对应自振是否稳定。4.1 例题含饱和非线性的二阶系统自振判断设非线性环节为饱和特性k 1a 1线性部分传递函数为$$ G(s) \frac{K}{s(0.1s 1)(0.2s 1)} $$饱和特性的负倒描述函数表达式为 -1/N(A)当 A a 时N(A) k所以 -1/N(A) 的起点在 -1 处随着 A 增大N(A) 单调减小-1/N(A) 沿负实轴从 -1 向左延伸到无穷远。G(jω) 的奈奎斯特曲线当 ω 从 0 到无穷时从虚轴负无穷方向开始随着频率增大进入第三象限再穿过负实轴进入第二象限最终趋于原点。联立计算时先令 Im G(jω) 0求得相位穿越频率 ω_c再把频率代入 Re G(jω)得到 G(jω_c) 的实部。以 K 12 为例计算可得穿越频率大约对应相位 -180°实部落在负实轴某点。如果该点位于 -1 左侧说明 G(jω) 曲线与 -1/N(A) 曲线相交交点的振幅 A 由方程 Re G(jω_c) -1/N(A) 解出。若解出的 A 大于饱和阈值 1则系统存在稳定自振如果交点落在 A a 的范围则没有实际物理意义需要重新检查假设。这个例子的关键结论是饱和环节让系统在大振幅下等效增益下降负倒描述函数左移系统更容易出现极限环提高线性部分增益 K 会让 G(jω) 曲线向外扩交点出现得更早。工程中降低 K 或加入相位超前校正都让曲线远离 -1/N(A)。4.2 例题理想继电器系统的极限环理想继电器输出幅值 M线性部分$$ G(s) \frac{1}{s(s1)} $$理想继电器描述函数为 N(A) 4M / (πA)因此$$ -\frac{1}{N(A)} -\frac{\pi A}{4M} $$负倒描述函数是负实轴上从原点向左延伸的射线振幅越大越靠左。G(jω) 为$$ G(j\omega) \frac{1}{j\omega(1 j\omega)} $$令 Im G(jω) 0可得穿越频率 ω 0 或 ω 趋于无穷时的水平渐近线实际求自振时取相位穿越条件。将 G(jω) 与负实轴相交的实部写出并令其等于 -πA/(4M)即可得到自振振幅 A 和频率 ω。这个例子说明继电器控制的小斜率线性系统几乎必然产生极限环振荡幅值和继电器输出 M 成正比M 越大振幅越大频率则由线性部分的动态特性决定。实际继电器Bang-Bang控制中如果不加滞环或死区高频抖动和自振很难避免。5. 相平面法等倾线法、奇点与极限环描述函数法适合频域分析和自振频率估算但它的近似本质意味着结果可能有偏差。相平面法对二阶系统更严格它不依赖谐波线性化而是直接在二维状态空间里分析运动轨迹特别适合研究阶跃响应、斜坡响应下的瞬态过程、极限环和开关切换。5.1 相轨迹与等倾线法二阶自治系统写成$$ \dot{x}_1 x_2 $$$$ \dot{x}_2 f(x_1, x_2) $$其中 x1 是位置量x2 是速度量。把第二式除以第一式得到相轨迹斜率$$ \frac{dx_2}{dx_1} \frac{f(x_1, x_2)}{x_2} $$等倾线法的思路是令这个斜率等于常数 m则$$ f(x_1, x_2) m x_2 $$这条曲线上所有点出发的相轨迹都有相同切线斜率 m。取多个 m 值在相平面上画出一族等倾线然后从初态出发沿着每条等倾线的方向逐段连接就得到近似的相轨迹。手算时取 m 的间隔小一些轨迹更光滑用数值仿真时可以直接积分微分方程不必画等倾线但等倾线法仍然是理解相轨迹方向的基础。5.2 奇点分类与稳定性奇点是系统平衡点满足 x2 0 且 f(x1, 0) 0。奇点附近的行为可以通过在奇点处线性化判断设雅可比矩阵$$ J \begin{bmatrix} 0 1 \ \frac{\partial f}{\partial x_1} \frac{\partial f}{\partial x_2} \end{bmatrix} $$雅可比矩阵的特征值分布决定了奇点类型两个负实特征值奇点为稳定节点相轨迹直接趋近原点两个实部为负的共轭复特征值奇点为稳定焦点相轨迹螺旋趋近原点两个正实部特征值或实部为正的共轭复根奇点为不稳定节点或不稳定焦点一个正实特征值和一个负实特征值奇点为鞍点不稳定纯虚根则为中心点相轨迹是围绕中心的封闭椭圆对应等幅振荡。需要注意本质非线性系统可能同时存在多个奇点不同类型奇点之间的区域被分界线隔开初始状态落在不同区域最终运动形态完全不同。分析时必须从多个初始点出发画相轨迹不能只画一条就下结论。5.3 极限环分析极限环是相平面上一类孤立的闭合相轨迹它对应非线性系统特有的自激振荡。稳定极限环外部的相轨迹逐渐向环上收敛内部的轨迹也向外延伸至环上最终形成等幅振荡。不稳定极限环恰好相反实际系统一旦受到微小扰动就会离开该环因此工程上观察不到稳定持续振荡。判断极限环是否存在以及是否稳定通常结合等倾线图、奇点分布和相轨迹走向综合分析。如果系统只有一个稳定焦点但远离焦点的区域相轨迹受到非线性限幅约束往往会在外围出现一个稳定极限环。这种“内部稳定、外部极限环”的结构在带有饱和、继电和间隙的非线性系统中非常常见。6. 相平面法例题与数值仿真验证用一个带饱和特性的二阶系统说明相平面法的完整分析过程和数值验证方法。设系统状态方程为$$ \dot{x}_1 x_2 $$$$ \dot{x}_2 -2\zeta\omega_n x_2 - \omega_n^2 \operatorname{sat}(x_1) \omega_n^2 u $$饱和函数为$$ \operatorname{sat}(x_1) \begin{cases} x_1, |x_1| \le 0.6 \ 0.6 \operatorname{sgn}(x_1), |x_1| 0.6 \end{cases} $$取 ζ 0.5ωn 2阶跃输入 u 1。在阶跃作用下稳定状态要求系统满足 x1 u 1但饱和环节让 x1 被限幅在 0.6系统实际进入振荡或缓慢爬行状态。通过相轨迹可以直观看到初始误差较大时控制量限幅导致等效阻尼下降相轨迹不会直接收敛到目标点而是在目标点附近产生极限环。用 Python 数值积分可以快速验证相轨迹形状。import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt def system(x, t, zeta, wn, umax): x1, x2 x if x1 umax: sat umax elif x1 -umax: sat -umax else: sat x1 dx1 x2 dx2 -2 * zeta * wn * x2 - wn**2 * sat wn**2 * 1.0 return [dx1, dx2] t np.linspace(0, 30, 3000) umax 0.6 initial_conditions [ [0.0, 0.0], [1.5, 1.5], [-1.2, -2.0], ] plt.figure(figsize(8, 6)) for x0 in initial_conditions: sol odeint(system, x0, t, args(0.5, 2.0, umax)) plt.plot(sol[:, 0], sol[:, 1], linewidth1.5) plt.plot(sol[0, 0], sol[0, 1], o, colorblue) plt.xlabel($x_1$) plt.ylabel($x_2$) plt.title(Phase Plane with Saturation Nonlinearity) plt.grid(True) plt.show()上面的代码在同一相平面上画出多个初始点的相轨迹观察它们是否被同一个闭合轨迹吸引就能判断稳定极限环。需要强调的是仿真参数只是演示实际系统必须根据控制对象的真实参数调整。数值仿真不能替代理论分析但可以作为描述函数法和等倾线法结论的交叉验证。7. 非线性系统的性能改善与校正设计学完分析工具后下一步是解决“发现系统有自振或性能变差该怎么办”的问题。非线性系统的校正不完全等同于线性系统以下几点是工程中最常用的处理策略。第一调整线性部分增益。描述函数法的负倒描述函数曲线位置由非线性参数决定G(jω) 曲线位置由线性部分增益决定。降低增益会让 G(jω) 曲线向内收缩减少与 -1/N(A) 曲线的相交机会从而抑制自激振荡。但增益降低会牺牲快速性所以实际中要在抗自振和响应速度之间折中。第二局部反馈校正。在饱和或死区环节外围加入速度反馈也就是从执行机构输出引回一个微分负反馈可以显著减小非线性环节造成的相位滞后。这个方法在继电控制中特别有效加入阻尼项后高频抖动明显减弱。第三处理死区和间隙。死区导致的稳态误差可以通过提高增益或加入积分作用来消除但积分作用又容易诱发极限环最好配合死区补偿。间隙问题主要从机械层面解决比如齿轮消隙机构、双电机驱动、预载轴承等纯靠控制器很难完全消除回环影响。第四抗积分饱和设计。控制器带积分时如果执行机构进入饱和积分器会继续积累误差导致大超调和振荡。工程上采用条件积分法或跟踪反算抗饱和结构在饱和发生时暂停积分或把积分器重置到实际执行机构能达到的值。这一设计在线性控制器与非线性执行机构耦合时几乎是必需的。第五继电控制系统主动加滞环或死区。纯 Bang-Bang 控制切换频率极高加入滞环后切换次数减少极限环幅值可控但稳态精度有所下降。设计时要根据控制对象的允许振荡范围选择滞环宽度。8. 常考题型与易错点排查本质非线性的题目在期末和考研中区分度很高错误大多出在细节上。下面把最常见的几类问题、错误原因和排查方法整理成一张表。问题现象错误原因排查方式正确做法把 -1/N(A) 当成一个固定点忽略 A 是变量重看负倒描述函数定义-1/N(A) 是随 A 变化的曲线两条曲线相交就断定存在自振没有校验振幅范围检查交点处 A 是否大于阈值 aA 小于阈值则描述函数不成立交点无意义自振交点判断错误没有沿 A 增大方向分析穿越方向从 A a 开始沿曲线方向标箭头按“稳定区→不稳定区”规则判断相平面法只用一根轨迹下结论忽略初值敏感性增加多个初始点重复绘制从不同区域初值出发看是否收敛到同一极限环奇点线性化结果与相轨迹不符奇点处雅可比矩阵算错或线性化条件不满足重新计算偏导数和特征值本质非线性系统必须结合全局相轨迹验证饱和、死区描述函数漏掉条件 A ≥ a只记公式不记适用范围写公式时同步写出定义域所有典型描述函数都要标注有效振幅范围有限幅时系统响应仿真发散模型里执行机构限幅未包含检查方程中 sat 函数是否生效把线性环节和非线性限幅分开建模计算 G(jω) 与实轴交点时忽略相位穿越条件只令虚部为零没有检查 Re 符号验证交点是否在系统稳定边界在 Nyquist 曲线图中标注 -1 点除了表格中的常见错误还有两个复习时容易忽略的点。一是描述函数法要求非线性环节前存在近似正弦信号如果线性部分低通滤波能力弱比如系统带宽设计得很宽谐波分量没有被有效衰减那么描述函数法的结论要打折扣。二是相平面法只适用于二阶自治系统和一阶、二阶分段线性系统高维系统必须改用描述函数法或数值仿真不能把相平面法强行推广到三阶以上。9. 学习建议与后续进阶这一讲的内容到这里最重要的几件事需要反复确认典型非线性环节的动态特性和描述函数公式是否已经形成条件反射能否独立画出理想继电器、死区继电器、饱和特性的 -1/N(A) 曲线走向能否准确指出负倒描述函数曲线的起始点和变化方向。复习优先级最高的任务是练习 G(jω) 与 -1/N(A) 的相交判断。建议准备三道代表性课后题一道饱和非线性加二阶系统求自振一道继电器非线性判断极限环一道带死区非线性讨论稳定性与参数关系。每道题都按“写描述函数 → 求负倒描述函数 → 画曲线 → 联立求交点 → 校验振幅范围”的流程走一遍做完后用 MATLAB Simulink 或 Python 数值积分验证结果。只有仿真结果和手算结论对上才算真正掌握了描述函数法。相平面法要重点掌握等倾线手工绘制和奇点分类。建议用前面给出的 Python 脚本把饱和、死区、继电三种非线性分别带入二阶系统观察相轨迹由内部趋近极限环的过程。视觉化理解比死记奇点类型表更牢固。后续进阶方向是 Lyapunov 稳定性分析、描述函数法的误差分析、滑模控制等非线性控制器设计这些内容以本章的工具作为起点但本质上会换一套更严格的数学语言。这一章可以先收藏备用下一讲进入非线性系统的反馈线性化或离散系统分析到时候再对照着看很多概念会串起来。
返回列表