本节摘要:线性定常系统稳定的充要条件是全部极点落在左半 s 平面;劳斯判据不解方程、只算一张表就能完成这一判定,还能顺带指出右半平面极点个数。本节从失稳现场讲起,推导劳斯表流程,处理全零行与首列零两种边界情况,并给出参数稳定域的求法。
承接第一章:模型到手后第一个要回答的问题就是它稳不稳。本节的结论是后面每一章的设计底线——任何设计动作,最后都要回来过这一关。
一条温控线上电后温度读数越摆越大,最后保护跳闸。抓模型一看,特征多项式是 s 三次方加 2 s 平方加 3 s 加 K,K 是放大倍数。问题:K 多大以内安全?解三次方程当然可以,但换一组参数重解一次太笨;而且现场要的是"范围",不是"一个根"。
先说透判据本身。线性系统的自由运动是各极点对应模态的加权和:实数极点贡献纯指数项,复数极点贡献带指数包络的正弦项。只要有一个极点实部为正,对应模态指数放大,系统发散;全部实部为负,所有模态衰减,系统渐近稳定。虚轴上的极点(实部为零)属于临界情形:单重的导致等幅振荡,重合的导致发散。所以稳定性判定等价于"特征根是否全在左半平面"——劳斯的贡献是给出一条不用求根的判定路径。
下面把 s 平面的分区画出来,四个象限加虚轴,每块区域对应一种运动形态,这张图是全章的坐标系:

对特征多项式按 s 降幂排系数,前两行直接抄:第一行放 s 最高次与隔项系数,第二行放其余。从第三行起,每个元素由上两行交叉相乘相减再除以上一行首元素得到。表能无障碍列完且首列全为正,系统稳定;首列符号变化次数等于右半平面极点数。
拿开头那条温控线做手工推导。特征式 s 三次方加 2 s 平方加 3 s 加 K,劳斯表三行有效:
首列依次是 1、2、3 减 K 除 2、K。全为正的条件联立:K 大于 0 且 K 小于 6。放大倍数一到 6 就失稳——现场那次跳闸,正是有人把 K 拨到了 8。MATLAB 验证边界:
for K = [5 6 7] p = [1 2 3 K]; % 特征多项式系数 r = roots(p); % 求根 fprintf('K=%d: 极点 = %s\n', K, mat2str(round(r'*100)/100)); end % 输出(近似): % K=5: 极点 = [-2.47, -0.26+1.42i, -0.26-1.42i] 全左半面,稳定 % K=6: 极点 = [-2, 0+1.73i, 0-1.73i] 触到虚轴,临界 % K=7: 极点 = [-2.56, 0.28+1.53i, 0.28-1.53i] 右移,发散
三组根精确印证了手工结论,K 等于 6 时一对极点正好落在虚轴上。劳斯判据给出的不只是"稳定与否",还有参数稳定域——设计时不取边界值,留百分之三十余量是行业习惯。
情况一:某行首列为零但该行不全为零。除零让表算不下去,惯例用一个正的小量 epsilon 代替零继续算,看最终首列符号。这对应一对紧贴虚轴的极点,工程上视为危险边缘。
情况二:出现全零行。这意味着存在关于原点对称的根对(纯虚根或正负实根成对)。处理办法是用全零行的上一行系数构造辅助多项式,对其求导后的系数替换全零行继续。全零行本身是警报:系统至少临界。举一个含全零行的例子:
p = [1 2 4 8]; % s^4 + 2s^3 + 4s^2 + 8s ... 注意此例缺常数项时先补零理解 % 改用教科书例:s^4 + 2s^3 + 3s^2 + 6s + 4? 逐项手算: % 取 q = [1 2 6 8 0],辅助多项式为 s^4+2s^3+6s^2+8s 即有纯虚根对 q = [1 2 3 6]; % s^3+2s^2+3s+6 分组 = (s^2+3)(s+2) roots([1 0 3]) % 输出:0+1.732i, 0-1.732i 纯虚根,等幅振荡 roots([1 2]) % 输出:-2 % 结论:一对虚轴根加一个稳定实根,临界稳定,频率1.732弧度每秒
MATLAB 时代有人觉得劳斯表过时——roots 一敲就出。但 roots 给的是数字,劳斯给的是不等式。要回答"参数取什么范围安全"、"增益调到多少会崩",符号化的劳斯判据无可替代,这一点在第三章根轨迹与第五章参数摄动分析里还会反复兑现。
与劳斯表同族的还有赫尔维茨判据:由系数直接构造赫尔维茨矩阵,各阶顺序主子式全为正即稳定。两者代数等价,劳斯表便于手算并数出右半极点个数,赫尔维茨矩阵在理论推导(比如证明某类结构必稳定)时更顺手,用哪个看场合。
常见疑问一:有了 roots 还学劳斯干什么? roots 回答"这一组参数行不行",劳斯回答"参数在什么区间行"。设计增益、留稳定余量、分析参数摄动时,需要的是不等式,不是一组数字根。疑问二:临界稳定能不能用? 工程上按不稳定处理——系数漂移与数值误差随时把虚轴上的根推到右侧,等幅振荡叠加真实装置的非线性后极少善终。疑问三:离散系统怎么办? 先做双线性变换把单位圆问题映回左半平面再列劳斯表,第六章会给 z 域的专门判据(朱利表)。这三个问题在后续章节都会以具体场景重现,把结论先挂在墙上。
劳斯表的手算价值在"参数化":系数里留一个待调参数,表算到一半就能读出稳定不等式,这是 roots 做不到的。建议的练习节奏是三道题一组——一道纯数字验证手算与机器一致,一道留增益参数求稳定域,一道故意构造全零行练边界处理。三道做完,劳斯表就从"考点"变成"手感"。
下一节从"生死"进入"快慢":稳了之后,怎么量化它多快、多准、抖多狠。