一、根轨迹法概述
1.1 根轨迹法的基本概念
根轨迹法,说白了就是研究系统参数变化时,闭环极点怎么跑的。
我刚开始做控制系统设计那会儿,总觉得这玩意儿有点抽象。后来有一次调试伺服系统,发现增益调大了系统就振荡,调小了又响应太慢。折腾了半天,才意识到——这不就是根轨迹在作怪吗?
根轨迹法的核心思想很简单:当系统某个参数(通常是开环增益 K)从 0 变化到 ∞ 时,闭环特征方程的根在复平面上画出的轨迹。这些轨迹,就是根轨迹。
为什么要看这个?因为闭环极点的位置,直接决定了系统的稳定性、快速性和阻尼特性。你想想看,一个系统好不好用,归根结底就是看它的极点落在哪儿。
关键点:根轨迹法是一种图解方法,不需要求解高阶特征方程,就能直观地看到参数变化对系统性能的影响。这在工程实践中非常实用。
1.2 根轨迹方程
根轨迹方程是怎么来的?咱们一步步推。
考虑一个典型的单位负反馈系统,开环传递函数为 G(s),闭环传递函数为:
Φ(s) = G(s) / [1 + G(s)]
闭环特征方程就是:
1 + G(s) = 0
把 G(s) 写成零极点形式:
G(s) = K * (s - z₁)(s - z₂)...(s - zₘ) / (s - p₁)(s - p₂)...(s - pₙ)
其中 K 是开环增益,zᵢ 是开环零点,pⱼ 是开环极点。
那么特征方程变成:
1 + K * (s - z₁)(s - z₂)...(s - zₘ) / (s - p₁)(s - p₂)...(s - pₙ) = 0
整理一下:
K * (s - z₁)(s - z₂)...(s - zₘ) / (s - p₁)(s - p₂)...(s - pₙ) = -1
这就是根轨迹方程。它等价于两个条件:幅值条件和相角条件。
我的经验:根轨迹方程看起来复杂,但实际画图时,我们主要用相角条件来确定轨迹的形状,用幅值条件来确定轨迹上某点对应的增益值。分开处理,思路就清晰了。
1.3 幅值条件和相角条件
根轨迹方程 G(s) = -1,可以拆成两个部分:
相角条件
相角条件说的是:根轨迹上的任意一点 s,到所有开环零点的相角之和,减去到所有开环极点的相角之和,等于 ±(2k+1)π。
写成公式:
∠G(s) = Σ∠(s - zᵢ) - Σ∠(s - pⱼ) = ±(2k+1)π, k = 0, 1, 2, ...
这个条件决定了根轨迹的形状。说白了,就是找那些满足相角条件的点,把它们连起来,就是根轨迹。
我记得有一次做电机控制器的参数整定,用相角条件快速判断了某个增益下系统会不会振荡。嗯,比硬算特征方程快多了。
幅值条件
幅值条件说的是:根轨迹上的任意一点 s,对应的开环增益 K 等于所有极点到该点的距离乘积,除以所有零点到该点的距离乘积。
写成公式:
|G(s)| = K * Π|s - zᵢ| / Π|s - pⱼ| = 1
所以:
K = Π|s - pⱼ| / Π|s - zᵢ|
这个条件用来干什么?用来算增益。当你确定了根轨迹上的某个点(比如希望系统有某个阻尼比),用幅值条件就能算出对应的 K 值。
注意:相角条件是根轨迹存在的充要条件,幅值条件只是用来确定增益大小的。也就是说,先找满足相角条件的点,再算这些点对应的 K 值。顺序不能搞反。
1.4 知识体系结构
下面这张图,把根轨迹法的核心逻辑串起来了:
1.5 一个简单的例子
光说理论不过瘾,咱们看个例子。
假设开环传递函数为:
G(s) = K / [s(s + 2)]
这是一个二阶系统,开环极点在 s = 0 和 s = -2,没有零点。
相角条件要求:
∠(s - 0) + ∠(s + 2) = ±(2k+1)π
什么意思?就是根轨迹上的点,到两个极点的相角之和必须是 180° 的奇数倍。
我当年学到这里的时候,老师让我们用尺子和量角器在纸上画。现在嘛,用 MATLAB 几行代码就搞定了:
% MATLAB 代码示例
num = [1];
den = [1 2 0];
rlocus(num, den);
grid on;
title('G(s) = K/[s(s+2)] 的根轨迹');
运行这段代码,你会看到根轨迹从两个极点出发,在实轴上相遇后,分叉进入复平面。当 K 增大到某个临界值时,根轨迹穿过虚轴——系统开始不稳定。
避坑指南:我曾经在调试一个位置伺服系统时,想当然地认为增益越大越好。结果画了根轨迹才发现,增益超过临界值后,系统就振荡了。所以啊,画根轨迹不是走形式,是真的能帮你避免踩坑。
1.6 小结
根轨迹法的核心就三件事:
- 基本概念:参数变化时闭环极点的轨迹
- 根轨迹方程:1 + G(s) = 0,是推导的起点
- 两个条件:相角条件定轨迹形状,幅值条件算增益大小
掌握了这些,后面的绘制规则和系统校正,学起来就顺了。
公众号:蓝海资料掘金营,微信deep3321