简介:这套《自动控制原理》课程笔记整理自B站UP主Dr.CAN的13期系列视频,面向正在学习传递函数、稳定性分析与控制器设计的高校学生和自学者。笔记覆盖开环与闭环系统、反馈控制、传递函数极点与稳定性、根轨迹、终值定理与稳态误差、PID控制器、分离点与大汇合点等核心内容,并以手写批注、公式推导和例题示意呈现,便于对照视频逐节回顾;每期按主题拆分,公式与图示结合,重要结论醒目易查。资源为单个PDF文档,共12.27MB,适合用平板或电脑随时查阅;目前已有847人学习。作者结合研一暑期自学经历完成整理,除课堂笔记外还标注了个人理解与易混点,能帮助读者快速抓住奈奎斯特图之前的主干知识,也为后续深入卡尔曼滤波、模型预测控制和最优控制打下基础。
1. 传递函数的主线:极点为什么必须落在复平面左半边
同样是一个极点,符号一正一负,命运完全相反:s = -1 的系统受扰动后会自己慢慢回到原位,s = +1 的系统会越冲越远直到脱出工作区间。初学自动控制,最容易被各种名词拦住——开环、闭环、传递函数、根轨迹、稳态误差,似乎每个都要单独学一遍,背完就忘。实际上这些概念是一条主线上的不同截面:反馈让系统知道偏差,传递函数把系统写成代数语言,极点描述系统的性格,根轨迹则是设计者给极点安排位置的图形工具。这套 13 期课程笔记走的就是这条主线,从传递函数一路推到奈奎斯特图,主线通了,名词自然各归其位。
2. 开环与闭环:反馈系统凭什么比开环多一条活路
2.1 开环系统的盲区:控制器只认识目标值,不认识真实状态
笔记里用了两个很朴素的例子说明开环的短板。温室系统:输入端给的是期望温度对应的控制器输出,但下雨水会渗进来、金属会生锈,这些扰动不会被测量到,输出已经偏了,控制器仍然按原计划输出,系统没有任何机会知道自己偏了。这就是开环的本质——控制器的输入只有目标值,没有真实状态。
单摆例子把这个问题画得更直观:A 点(最低点)和 B 点(竖直倒立点)都是合力为零的平衡位置,但性质完全不同。把单摆稍微拨离 A 点,它会在重力作用下荡回来;拨离 B 点,它会直接倒下去,没有任何外力让它回到 B。A 点附近的行为叫稳定,B 点附近的行为叫不稳定。开环系统的处境与倒立摆一模一样:没有反馈机制,一旦偏离平衡,就没有力量把它推回去。
这个例子的价值在于,它把「稳定」从一种模糊的感觉变成了可检验的性质:受扰后能否回到平衡位置。而这种性质最终会落实到极点上,后面第 2.3 小结会看到,极点位置正是这个性质的代数化身。
2.2 闭环的本质:用误差驱动替代目标驱动
闭环系统的关键改动是加一条反馈路径:把输出 y 量回来,与期望 r 做差,控制器拿到的输入变成了误差 e = r − y。这一改动让控制器从「按剧本输出」变成「按偏差修正」:输出偏低了,误差为正,控制器加大输出;输出偏高了,误差为负,控制器减小输出。控制器的输入从定值变成了输出本身的函数,回路闭合,系统第一次「知道自己偏了」。
笔记里把反馈控制称为自控核心,这句判断值得展开。反馈带来的最直接收益是扰动抑制:开环系统里扰动直接叠加在输出上,系统无力抵抗;闭环系统里,扰动使输出偏离期望,误差随之产生,控制器反向修正,等效于给系统装了一个自动纠偏的机制。温室的漏水、生锈这类扰动,闭环会通过误差逐渐把它们对输出的影响压下去。
理解了这一点再回头看稳定性定义:稳定性关心的不是系统是否受扰,而是受扰后能否自我修复。下一节要回答的问题是,为什么这种「自我修复能力」会精确地等于「极点在左半平面」。
2.3 极点的正负为什么等于系统的生死
用一个一阶系统说明:微分方程 a₁ ẏ + a₀ y = u,齐次解形如 y(t) = C·e^{st},其中 s 是特征方程 a₁s + a₀ = 0 的解,也就是传递函数分母的根——极点。如果 s = -1,t → ∞ 时 e^{-t} 趋于 0,任意初始偏移都被抹平;如果 s = +1,扰动会以指数速度放大,输出迅速偏离线性区,甚至损坏被控对象。笔记里反复强调的「极点要在左半平面」,本质就是在复平面上画出 s 的位置:实部为负才谈得上收敛。
二阶系统同理。特征根 s₁,s₂ = −ζωₙ ± ωₙ√(ζ²−1),实部 −ζωₙ 的符号决定衰减:实部为负,振荡或单调地回到平衡;实部为正,无论是否有振荡,幅值都在增长。所以高阶系统的稳定性判据全部归结为一句话:所有极点实部小于零,即全部落在复平面左半开平面。
这也是为什么所有稳定性分析都盯着分母特征方程——分母等于零的解就是极点,极点全在左半边,系统对所有有界输入都有有界响应。时域里「回不回得来」的直觉,被翻译成了复平面上的一个简单几何条件,后面的根轨迹、PID 设计,全都是围绕这个条件在给极点搬位置。
3. 从时域到复域:传递函数的分母里写着系统的全部性格
3.1 拉普拉斯变换到底做了什么
传递函数来自对时域微分方程做拉普拉斯变换。变换后,卷积变成乘法,积分变成 1/s,微分变成 s。阶跃信号 1(t) 对应 1/s,斜坡信号 t 对应 1/s²——输入信号的形状被编码成 s 的不同幂次。原本需要求解微分方程的动态描述,变成了一道代数式的比值:输出拉氏变换/输入拉氏变换。
笔记里有个代谢的类比:把饮食摄入记为正、运动消耗记为负,净能量的时域曲线是一条随时间波动的函数;对它做变换得到关于 s 的表达式,这个表达式的分母决定了净能量曲线最终是趋于平衡还是持续发散。类比不需要精确,但点出了变换的核心用途——时域里看的是波形,s 域里看的是分布。时域里系统行为是一条难以归纳的曲线,s 域里系统行为就集中写在一个有理多项式的分母上。
从这个角度理解,传递函数不是横空出世的工具,而是「把微积分换成代数」的省力杠杆。分母多项式一旦写出来,零点的个数、极点的位置、系统的型别就全摆在纸面上了,后面所有性能指标的计算都以它为起点。
3.2 终值定理与稳态误差:系统最终停在哪里,只和极点有关
终值定理给出了一个极其好用的捷径:若 sF(s) 的所有极点都在左半开平面,则 lim(t→∞) f(t) = lim(s→0) sF(s)。也就是说不求解微分方程、不仿真,只靠 F(s) 在 s = 0 附近的表现就能算出稳态值。
条件必须兑现:sF(s) 在虚轴上有极点时,系统的稳态行为可能是持续振荡或无界增长,这时直接令 s→0 会得到完全错误的结果。笔记里专门写了一句「须存在终值」,指的就是这个前提。
用阶跃输入看稳态误差,就能看清积分环节的价值。单位反馈系统误差传递函数 E(s) = R(s)/(1+G(s)),阶跃输入下 R(s) = 1/s。纯比例控制 G(s) = K 时,误差终值 = 1/(1+K),K 再大误差也消不掉;在控制器里加一个积分环节,相当于 G(s) 带上了 1/s,系统型别提高,常值输入下的稳态误差直接降为 0。笔记里「积分控制消除稳态误差」的来源就在这里——不是积分有什么魔法,而是它在分母上多了一个 s=0 的极点,把误差传递函数的直流增益压成了零。
3.3 一阶与二阶:极点怎么摆,决定了快慢与过冲
一阶系统 G(s) = 1/(Ts+1),极点 s = −1/T,阶跃响应约 3T 进入稳态,T 越小响应越快。二阶系统特征方程 s² + 2ζωₙs + ωₙ²,极点位置由阻尼比 ζ 和自然频率 ωₙ 共同决定:ζ < 1 时极点是共轭复根,响应有超调有振荡;ζ = 1 临界阻尼无过冲;ζ > 1 过阻尼,慢而不冲。
这里能看出设计者真正在做的事:性能指标不外乎快慢、超调、稳态误差,而这三件事全部由极点在复平面上的位置决定——实部越靠左收敛越快,虚部与实部的比值决定了振荡程度。笔记里提到「把一阶系统变成二阶系统」会引入振荡,说的就是积分环节给系统增加了一个极点,阶次升高,原来的单调响应可能变成欠阻尼振荡。控制器的设计,本质是在给系统搬家、给极点找位置。
4. 避坑与排查:极点分析里的五类真实翻车记录
这些坑多数不是「概念不懂」,而是「算完不验证」。五条都来自实际使用这套笔记时容易被错误示范带偏的地方。
4.1 把零点当成极点,稳定判据直接失效
现象:画系统的根轨迹或看波德图时,盯着开环传递函数的零点判断稳定性,结论和仿真完全对不上。
原因:稳定性只由闭环特征方程的根——也就是极点——决定。零点影响的是稳态增益和动态响应曲线的形状,不影响系统是否收敛。笔记里反复强调「看分母」,分母=0 的解才是极点;分子=0 的解是零点,两者职责不同。
解决:先写闭环传递函数 Φ(s) = G(s)/(1+G(s)H(s)),再解 1+G(s)H(s) = 0 的特征方程。凡是判断稳定性的动作,一律回到这个步骤,别拿开环零点的位置充当判据。
4.2 终值定理套在无界输入上
现象:给系统输入斜坡或抛物线信号,直接用 lim_{s→0} sF(s) 求稳态误差,算出一个有限值,仿真里输出却一直在涨。
原因:终值定理成立的前提是 sF(s) 的极点都在左半开平面。斜坡输入对应 1/s²,sF(s) 里还残留着虚轴上的二重极点,稳态输出无界,终值根本不存在。笔记里特意写的「须存在终值」,就是挡这一刀的。
解决:套定理之前先检查 sF(s) 的极点分布;发现虚轴极点就改判「无界/持续变化」,不要硬算。系统型别不够时,稳态误差是无穷大,这不是公式的问题,是系统的客观行为。
4.3 把开环极点当成闭环极点来设计
现象:按开环传递函数的极点判断系统响应速度,参数改了,实测响应和预判差了一大截。
原因:根轨迹里画的曲线是「闭环极点随增益 K 移动的轨迹」,起点是开环极点、终点是开环零点或无穷远,但中间位置的闭环极点不等于开环极点。反馈回路改变了特征方程,极点位置是随 K 变化的。
解决:先画出根轨迹,再在轨迹上取对应 K 的点来读极点位置。不要拿开环极点直接当闭环极点用;K 很小和 K 很大时,闭环极点可能分别靠近开环极点和开环零点,中间区间只能从根轨迹上读。
4.4 分离点算出复数解直接采用
现象:用解析法求分离点,解出一堆复数,直接代入设计,结果根轨迹对不上。
原因:分离点的数学条件是特征方程有重根,对应 dK/ds = 0。但这个条件是必要条件不是充分条件,解出来可能落在实轴之外,或落在没有根轨迹经过的实轴区间,这些解无效。
解决:求出候选点后做两步验证——实部区间内确实有根轨迹,且代回 K 的表达式后 K > 0。下面这段求分离点的代码就演示了验证过程:
# 求开环传函 G(s) = (s+2) / (s(s+1)(s+3)) 的根轨迹分离点 import sympy as sp s, K = sp.symbols('s K') G = (s + 2) / (s * (s + 1) * (s + 3)) # 开环传函 K_expr = sp.solve(1 + K * G, K)[0] # 由 1+KG=0 解出 K 关于 s 的表达式 dK_ds = sp.diff(K_expr, s) # 分离点处 dK/ds = 0 candidates = sp.solve(dK_ds, s) print("候选分离点:", candidates) for point in candidates: # 只保留实数解,且代回 K 必须为正 if sp.im(point) == 0 and sp.re(sp.simplify(K_expr.subs(s, point))) > 0: print("有效分离点:", sp.N(point))K 对 s 的表达式来自特征方程,分离点对应重根的位置。代码里最后两步验证——虚部为零、K 为正——是分离点正确性的两道闸门,少了任何一步都可能把一个纯数学上的临界点当成真实轨迹点,后面设计参数时就会翻车。
4.5 反馈符号接反,负反馈变正反馈
现象:闭环仿真发散,但理论分析说系统稳定;检查模型发现比较器处减法写成了加法。
原因:反馈控制依赖误差 e = r − y。符号一反转,误差变成 e = r + y,控制器在输出偏离时会推着系统继续偏离,等效于把极点的实部推到右半平面,稳定系统直接变不稳定。笔记里强调闭环关键在「比较期望与实际输出的差值」,这个差值正是控制方向。
解决:算闭环传函时逐项检查符号;拿到现场调试图,先确认反馈路径是负号再接控制器增益。经验做法是在仿真正弦扫频信号下看输出相对输入是反相还是同相,反相才是负反馈。
5. 根轨迹与 PID:控制器参数到底动了极点的哪根弦
5.1 根轨迹的视角:给定一个 K,极点在哪儿
根轨迹回答的核心问题是:闭环特征方程 1 + K·G(s) = 0 的根随增益 K 怎么移动。K 从 0 增大到无穷,每个根画出一条轨迹,轨迹的起点是开环极点(K=0 时闭环极点等于开环极点),终点是开环零点或无穷远(K 趋于无穷)。全部轨迹合起来构成根轨迹图。
绘制规则来自两个条件:幅值条件 |G(s)| = 1/K,相角条件 ∠G(s) = 180° + k·360°。笔记里用 × 表示极点、o 表示零点,实轴上某区间右侧的极点数与零点数之和为奇数时,该区间属于根轨迹。这些规则的产物是一张可以徒手画出的地图:增益 K 是滑块,滑块一动,极点在复平面上沿轨迹行走,系统的响应速度、振荡程度随之变化。
分离点和汇合点是这张图上两个关键的转折位置:分离点是根从实轴上分开、进入复平面的地方,汇合点是根从复平面回到实轴的地方。它们通常决定了两段不同性质的动态行为——实轴上的实根单调收敛,离开实轴后的共轭复根则伴随振荡。
5.2 P 动作:增益 K 的移动滑块
比例控制在数学上就是乘一个常数 K,等价于在根轨迹图上移动滑块。一阶系统加纯比例控制器,闭环极点从 −1/T 向负方向移动,K 越大响应越快;但二阶或更高阶系统里,K 增大到一定程度,一对共轭根会跨过虚轴进入右半平面,系统失稳。
这就是比例控制的代价:它只提供增益,不提供阻尼。靠增大 K 换响应速度,同时把极点往虚轴方向推;增益能加到多大,取决于根轨迹与虚轴的交点,超过这个安全边界,无论响应多快都失去意义。笔记里说的「比例控制快速反应但有稳态误差」「不会把增益调太大」,本质都是对这条轨迹几何的保守总结。
5.3 I 动作:在原点种下一个极点
积分的拉氏形式是 1/s,加到控制器里等于在开环传递函数上乘一个 1/s。这个操作给系统增加了一个位于 s=0 的极点,系统阶次抬高一级,所以笔记里写「一阶系统变成二阶系统」。阶次升高的直接后果是原来没有的振荡可能会出现。
但积分环节的真正价值不在阶次,而在型别。第 3.2 小节算过:有了 s=0 的极点,系统对常值输入的稳态误差直接变零。代价是相位裕度下降,极点往虚轴方向吸引,系统容易变得迟钝甚至振荡。PI 控制器的常见补救是同时增加一个零点去抵消部分极点,用零点的相位补偿积分带来的相位滞后。
5.4 D 动作:补一个零点,相当于提前刹车
微分项在拉氏域里表现为 s,给系统增加一个零点。零点不改变极点的个数,但会改变根轨迹的形状,把一部分轨迹往左半平面拉,提升阻尼。直观理解是:微分看到的是误差的变化率,误差还在增大,它就先输出反向修正,相当于提前刹车。
纯微分不能单独使用,因为它会放大高频噪声——测量噪声往往是高频的,微分项会把这些噪声放大成剧烈的控制输出。实用做法是 PD 或 PID 组合,三个动作各司其职,一张表可以看得比较清楚:
| 动作 | 数学形式 | 引入什么 | 主要代价 | 典型任务 |
|---|---|---|---|---|
| P | K | 增益 | 稳态误差消不掉 | 快速响应 |
| I | Kᵢ/s | s=0 极点 | 阶次升高、易振荡 | 消除常值稳态误差 |
| D | K_d·s | 零点 | 放大高频噪声 | 增加阻尼、抑制超调 |
从这里能看到控制器设计的一条共通思路:P 负责把响应速度推上去,I 负责把稳态误差清零,D 负责拦住 P 和 I 激起的振荡。三者各自改变极点或零点的配置,最终还是在复平面上给系统找一个既有足够快的衰减速度、又有足够大阻尼的位置。
6. 设计取舍:用根轨迹选增益,本质是在快与稳之间签合同
增益 K 拉得越大,极点越靠近虚轴甚至跨过虚轴。K 大的系统响应锋利,但对参数变化和噪声极端敏感;K 小的系统稳如老狗,反应却慢得让人着急。控制设计的核心交易就是这一笔:用响应速度换稳定裕度,或者反过来。工程上常见的做法是先画根轨迹,按期望阻尼比定一个目标极点区域,再反推出 K 的范围,最后用仿真和实测各验一遍,而不是直接拍一个 K 值。
这套 13 期课程笔记给我的最大收获,是把这些取舍全部串到了同一条主线上:开环与闭环讲为什么需要反馈,传递函数讲系统怎么写成分母多项式,极点和终值定理讲稳定性与稳态误差的判据,根轨迹讲极点随增益怎么走,PID 讲三个动作各自动了哪根弦。真正自己把笔记过完一遍之后会发现,之前觉得玄学的「调参手感」,底层其实都是极点在复平面上的位置在说话。笔记停在奈奎斯特图 Part 1,频域判据是另一条同样重要的路;再往后的卡尔曼滤波、MPC、最优控制,则是把视角从「极点配置」升级为「状态估计加滚动优化」。
从那以后,我看任何控制算法都会先问一句:它的闭环极点在哪儿。先答出这个问题,再谈参数怎么调、效果怎么验。希望帮到你。
本文还有配套的精品资源,点击获取