打算开个系列内容记录一下学习自动控制原理时我的一些理解和体会,也顺便在这个过程中再复习一遍经典控制理论。由于是复习,所以会假设读者已经大致学习过一遍本课程,着重点会在于(我本人)学习过程中一些困惑的地方。学习进程主要跟着西北工业大学卢京潮老师的录播课程1进行的(相信大部分同学也是看这个课程学习的自控),中间会穿插一些高等数学、信号与系统(虽然我觉得信号与系统这门课程的基础架构完全依托于自动控制原理,但有些自控中一笔带过的概念会在信号与系统中有非常详尽的讲解,不仅要知其然还要知其所以然)的知识;使用的教材是卢老师主编的《自动控制原理》,后面的文章也基本按照会卢老师教材中的目录安排;当然还有一些其他的图书值得参考,附列在这篇文章的最后。可以自行查阅。
![卢京潮. 自动控制原理[M]. 第一版. 清华大学出版社, 2013](https://z4a.net/images/2025/03/17/cdc3a92b7d69ceb1db93a769d9cbaa1e.md.png#center)
卢京潮. 自动控制原理[M]. 第一版. 清华大学出版社, 2013
引言
什么是自动控制?我想从《三体》第三册中摘抄一段:
在接下来的IDC委员会会议上,主席拿来了一把他安排人专门制造的伞,与故事中空灵画师送给公主的保护伞一样,是黑色的,有八根伞骨,每根的末端都有一只小石球。真正意义上的伞早就从现代生活中消失了,现代人遮雨使用一种叫避雨器的东西,如小手电筒般大小,向上吹出气流把雨吹开。人们当然知道伞这东西曾经存在,也在影视中见过,但很少有人见过实物。大家好奇地争相摆弄这东西,发现它可以像故事中描写的那样在旋转中借石球的离心力张开,在旋转速度过快或过慢时也能发出相应的声音报警。大家的第一感觉是这样旋转着打伞是件很累的事,公主的奶妈居然能这样打一天伞,很让人佩服。
AA也拿过伞旋转着打开,她的手劲比较小,转动的伞面很快垂下来,警示转速过慢的鸟叫声出现了。
从主席把伞第一次打开时,程心就目不转睛地盯着它,现在,她突然指着AA喊道:“别停下!”
AA加快了伞的转速,鸟叫声消失了。
“再转快些。”程心盯着伞说。
AA使尽力气转伞,警示转速过快的风铃声出现了;然后程心又让她转慢些,直到再次出现鸟叫声,就这样反复了几次。
“这不是伞!”程心指着旋转中的伞说,“我知道它是什么!”
旁边的毕云峰点点头,“我也知道了。”然后他转向在场的第三个公元人曹彬,“这是一种只有我们三个人才能想到的东西。”
“是的。”曹彬看着伞兴奋地说,“即使在我们那个时代,这东西也很陌生了。”
其余的与会者有的看着这三个活着的古人,有的看着伞,全都莫名其妙,但也都兴奋地期待着。
“蒸汽机离心调速器。”程心说。
“那是什么,一种控制电路?”有人问。
毕云峰摇摇头,“发明那东西的时候还没有电。”
曹彬开始解释:“那是18世纪出现的东西,一种用于调节蒸汽机转速的装置。它主要由两根或四根头部带金属球的悬杆和一根带套筒的转轴组成,就像这把伞,只是伞骨数量要少些。这个装置的转轴由蒸汽机带动旋转,当蒸汽机转速过快时,铁球由于离心力抬起悬杆,带动套筒上升,把与套筒相连的蒸汽门关小,降低蒸汽机转速;蒸汽机转速过低时,离心力的减小使悬臂内合,像伞合上一样,推动套筒下滑,开大蒸汽门增加转速……这是最早的工业自动控制系统。”
这一段情节安排得非常巧妙:在场的三个公元人都有工科专业背景,学习过自动控制原理这门课程。在他们的时代(也就是我们的时代),这门课程的第一节课还会举出『蒸汽机离心调速器』的例子以说明课程的应用场景;三个世纪后的人们已经不知道这是个什么东西了。蒸汽机离心调速器很好地展示了自动控制理论的研究目标:对复杂现实系统进行建模并按照规律控制系统中的某个量,使其稳定在某个数值附近,或者按照我们希望的规律变化。
虽然小说中提到的蒸汽机离心调速器在早期的蒸汽机中得到了大量应用,但人们很快就发现把它直接做出来后装上蒸汽机经常会产生振荡现象,即蒸汽机的转速会时快时慢地周期变化。可以想象一下传统不锈钢压力锅盖上面那个泄压阀:它的重量经过设计,当锅内的压力达到一定值时蒸汽就会把这个不锈钢锭顶起来,并顺着钢锭上的开孔放出让它旋转。但生活经验告诉我们它的旋转是并非匀速的,而是会有规律地振荡,从而导致放气声也随之忽高忽低。
这种振荡促使着人们继续研究控制理论,想找出设计稳定控制系统的普遍规律。但现实中的系统都是以微分方程,甚至高阶偏微分方程描述的,想直接求解这样的一个方程非常困难;好在后来控制科学家提出了不必求解微分方程也能判断系统稳定性的一般方法(劳斯-赫尔维茨稳定判据,与拉普拉斯变换后得到的系统复变方程中零极点的位置有关;奈奎斯特稳定判据,与经典控制理论的频率域方法有关),解决了稳定性的判断问题。
借助于奈奎斯特提出的频率域(复变函数)方法与之前控制科学家们长期研究的时域(微分方程)方法,经典控制理论的基座已经建立起来了。伊文斯(消灭人类暴政,世界属于三体!)提出的根轨迹法某种程度上可以看作是二者的结合,提供了一个在计算机尚不发达的年代简单且快速地对控制系统进行大致定量分析的方法;再加上对线性离散系统分析时使用的拉普拉斯变换之推广——$z$变换,与对简单非线性系统分析时使用的相平面法和描述函数法,一般大学中开设的『自动控制原理』课程大概就讲到这里了。再往后面的最优控制、状态空间方法,以及鲁棒控制等更加现代的控制理论每个拎出来都能单独作为一门课程,想在这寥寥几篇文章中讲明白实在不太可能(而且我自己也弄得不是很明白,到时也需要和新学一样从头来过)。
自动控制的一般概念
上面对这门课程将要讨论的内容大致回顾了一遍,接下来让我们从头看看应该从哪里开始研究控制系统。
开环控制和闭环控制
开环控制系统指的是系统的控制作用不受输出影响的控制系统。一个典型的例子是保温电热水壶:不考虑其他因素,则通过电位器旋钮调节电阻大小会改变回路中的电流,从而改变电热丝的热功率,烧热壶中的水。但这个过程没有反馈的参与,水温最后稳定的范围是取决于环境温度、水壶壁的导热效率等因素的。
闭环控制系统则将系统输出量的信息反馈到输入端,得到输入和输出的差值(称作偏差);利用这个偏差信号对系统进行调节,最终达到减小或消除偏差的目的即为闭环负反馈控制。仍以保温壶举例:我们在壶中放入一个温度传感器并设定一个预期值,根据读取得到的数值调节电位器的阻值,如果水温偏低则调小电位器使热功率上升,加热壶中水,反之则调大电位器使热功率下降,水温降低。
为何最小化偏差就能使系统稳定?我们先来看课本上的一幅图:

典型的反馈控制系统方框图(教材P8 图1.5)
对于刚刚提到保温壶的例子,其输入量就是我们设定的预期水温,被控对象是水壶的电热丝,输出量是测得水的温度,而测量元件即为刚提到的温度传感器。最小化偏差在这里非常好理解:当输入温度与测得水温有差异时这个信号会输入到控制系统,调节电热丝进行“多退少补”;最后达到稳态时壶中的水温会与设定值完全相同,系统也就停止工作直到热量散失测得水温下降,再次启动调节。这是一个最简单的使用负反馈控制原理的闭环控制系统例子。
上图中各个元件准确的定义可以参考教材P8。
控制系统的分类
这一段基本是书上的内容,参见教材1.6 自动控制系统的分类。
按给定信号形式不同
- 恒值控制系统(也称为定值系统或调节系统):控制输入是恒定值,要求被控量保持给定值不变。例如前面提到的液位控制系统,直流电动机调速系统等。
- 随动控制系统(也称为伺服系统):控制输入是变化规律未知的时间函数,系统的任务是使被控量按同样的规律变化并与输入信号的误差保持在规定范围内。例如函数记录仪,自动火炮系统和飞机——自动驾驶仪系统等。
- 程序控制系统:的给定信号按预先编制的程序确定,要求被控量按相应的规律随控制信号变化。机械加工中的数控机床就是典型的例子。
按系统参数是否随时间变化
如果控制系统的参数在系统运行过程中不随时间变化,则称之为定常系统或者时不变系统,否则称其为时变系统。
控制系统的参数是什么?从物理意义上看就是系统中各个元件的固有参数,比如电容的容量、弹簧的弹性系数、电机的转矩等。时不变的一个反例就是白炽灯(老式的钨丝灯泡)的电阻。对于一个冷启动的白炽灯,其电阻会随着时间推移灯泡温度上升而缓慢下降,因而它不是一个时不变元件。虽然现实世界中不存在真正的时不变元件,但在某个范围内它们的变化微乎其微,这时我们仍然可以近似地将其作为定常系统来处理。
按系统是否满足叠加原理
按系统是否满足叠加原理,可以将系统分为线性系统与非线性系统。
什么是叠加原理?我们用$F(x)$来表示一个系统的输出,其中$F$描述了系统本身,$x$是系统的输入。如果对于多个输入线性地叠加在一起形成一个总和的输入$x=x_1+x_2+…$,有
$$F(x_1+x_2+…)=F(x_1)+F(x_2)+… \ ,$$
即总和的输入产生的输出会等于每个输入单独产生的输出之代数和,我们称满足这个规律的系统符合叠加原理(具有叠加性)。
如果对于一个系统,将其输入信号$x(t)$乘以某个常数$\alpha$,则输出信号$y(t)$也相应地乘以$\alpha$。则我们称这个系统满足齐次性(或比例性)。
一般可以使用微分方程对线性系统进行数学描述:
$$a_n\frac{\mathrm{d}^n y}{\mathrm{d} t^n} + a_{n-1}\frac{\mathrm{d}^{n-1} y}{\mathrm{d} t^{n-1}} + a_{n-2}\frac{\mathrm{d}^{n-2} y}{\mathrm{d} t^{n-2}} + … + a_1\frac{\mathrm{d} y}{\mathrm{d} t} + a_0 y = f(t) \ ,$$
其中$y(t)$是系统的输出,$f(t)$是系统的输入,$a_i$为方程各阶项的系数。如果上式中的$f(t) \equiv 0$,则我们称这个方程为齐次的;如果$a_i$都为常数,则我们称这个方程为是常系数的。
线性时不变(Linear Time Invariant, LTI)系统总是能用常系数线性微分方程来描述。当系统的输入$f(t) \neq 0$时,我们从描述方程中解出的$y(t)$称为系统的受迫响应,即由外部输入导致的响应;当$f(t) = 0$时,我们得到的$y(t)$称为系统的自由响应,这部分响应由系统本身特性所决定。
由于LTI系统满足齐次性和叠加性,系统的渐进稳定性与初始状态及外作用无关,从而使我们能够用拉普拉斯变换把系统微分方程转化为代数方程求解。这部分基础知识的介绍可以参见卢老师的课程。接下来的研究主要围绕线性时不变系统展开。
如果控制系统中含有一个或一个以上非线性元件,这样的系统就属于非线性控制系统。非线性系统不满足叠加原理,系统响应与初始状态和外作用都有关。虽然实际物理系统都具有某种程度的非线性,但在通过在一定范围内合理地简化(如泰勒展开后取低阶项),多数物理系统都可以足够准确地近似为线性系统并进行分析。
按系统中的信号是连续的还是离散的
如果系统中各部分的信号都是连续函数形式的模拟量,则这样的系统就称为连续系统,接下来要讨论的系统大部分都属于连续系统。如果系统中有一处或几处的信号是离散信号(脉冲序列或数码),则这样的系统就称为离散系统(包括采样系统和数字系统)。离散系统一般需要使用$z$变换进行分析;计算机控制系统就是离散控制系统的典型例子。
按系统输入/输出信号的数量
按照系统输入信号和输出信号的数目,可将系统分为单输入-单输出(SISO)系统和多输入-多输出(MIMO)系统。
单输入-单输出系统通常称为单变量系统,这种系统只有一个输入(不包括扰动输入)和一个输出。多输入-多输出系统通常称为多变量系统,有多个输入或多个输出。单变量系统可以视为多变量系统的特例。
在描述多输入-多输出系统时,我们通常会使用状态空间方程,这部分知识可以参考现代控制理论中的相关内容。本课程主要讨论的是SISO系统,涉及到MIMO的情形时我们会把每个输入和输出拆分出来研究它们各自的影响:由于线性时不变系统满足叠加原理,因此对于某个特定的输出端口,所有输入经过系统后产生的输出叠加在一起即为这个端口最终会得到的输出。
控制系统的性能目标
对于一个控制系统,我们一般从稳、准、快三个方面评价其性能。
稳定性
稳定性指的是系统重新恢复平衡状态的能力。任何一个能够正常工作的控制系统,首先必须是稳定的。稳定是对自动控制系统的最基本要求。
由于闭环控制系统有反馈作用,控制过程有可能出现振荡或发散。回到之前在引言中提到的压力锅泄压阀的例子:它泄压时的振动正是来源于压力锅-泄压阀系统自身的不稳定性。更具体地,这个系统可以被简化为带有阻尼与弹性恢复力的二阶系统。在临界状态时蒸汽流速会随阀门开度增加而显著增大,使系统进入负阻尼状态;但是泄压阀中限位器(钢锭内卡住泄压孔的弹片,防止压力过大把泄压阀吹走)的存在引入了非线性因素,最终二者共同作用形成了一个稳定的振荡。

不同系统的单位阶跃响应过程 《自动控制原理》 卢京潮 P15
不稳定的系统无法投入使用,其振荡/发散的性质最终会烧毁元件,使系统无法继续工作(例如把麦克风靠近扩音音箱时会产生强烈的自激放大噪音,如果不赶快拿开就会导致设备损坏)。
准确性
准确性是对系统稳态(静态)性能的要求。对一个稳定的系统而言,当过渡过程结束后,系统输出量的实际值与期望值之差称为稳态误差,它是衡量系统控制精度的重要指标。稳态误差越小,表示系统的准确性越好,控制精度越高。
快速性
快速性是对系统过渡过程(动态)性能的要求。描述系统动态性能可以用平稳性和快速性加以衡量。平稳是指系统由初始状态过渡到新的平衡状态时,具有较小的过调(超调量,指第一次调节时系统输出值超过稳态值的多少)和振荡性;快速是指系统过渡到新的平衡状态所需要的调节时间较短。动态性能是衡量系统质量高低的重要指标。
控制系统的数学模型
从元部件特性建立系统线性微分方程
在研究元部件特性时,我们主要研究的是与这个元部件相关的物理量和时间的函数关系。自动控制原理中主要研究的是电路与机械两种系统的分析和校正。
电路分析
可以先看看这个视频【动态系统的建模与分析】2_电路系统建模_基尔霍夫定律来了解在自动控制原理课程中典型的电路分析过程;如果要深入学习电路分析,可以参考电子工业出版社 『国外电子与通信教材系列』的《工程电路分析》2,虽然厚但是讲的非常清晰透彻。
先来看裴润老师教材中总结的常用电路元件的微分方程描述:

电阻、电容、电感两端电压电流的关系 《自动控制原理(上册)》 裴润 P12
对于电路,在分析时还需要用到基尔霍夫电路定律及复阻抗分析方法:
所有进入某节点的电流的总和等于所有离开这节点的电流的总和。
沿着闭合回路所有器件两端的电势差(电压)的代数和等于零。
元件 | 阻抗 | 物理意义 |
---|---|---|
电阻 | $Z_R = R$ | 纯实数,不随频率变化 |
电容 | $Z_C = \frac{1}{j\omega C} = -\frac{j}{\omega C}$ | 电容的阻抗随频率增加而减小 |
电感 | $Z_L = j\omega L$ | 电感的阻抗随频率增加而增加 |
如果将上表中的$j\omega$换成$s$,我们就得到了各个元件参数的复频域($s$域)表示。实际上在学习信号与系统课程时会有一个小节专门讲解使用拉普拉斯变换进行电路分析:这种方法的本质是利用拉普拉斯变换将描述电路系统的常微分方程变换为$s$域上的代数方程,求解后再使用拉普拉斯反变换回时域得到结果。
我们可以用网孔法/节点电压法结合复阻抗来计算电路中各个元件两端的电压和流经它的电流。
网孔法
- 定义网孔电流:
- 网孔:指不包含其他回路的最小封闭回路。
- 网孔电流:在每个网孔中,假设一个顺时针或逆时针的电流,并假设所有网孔电流都互不相关(实际上可能有部分重叠)。
- 应用基尔霍夫电压定律(KVL):对于每个网孔,列出 KVL 方程:
$$\sum V = 0, $$
即网孔中所有元件的电压降之和等于零。
分析共用电阻:如果一个电阻 仅属于一个网孔,则其电压降等于该网孔电流乘以电阻值(欧姆定律);若其 被两个网孔共用,则其电压降等于该电阻的电流(即两个网孔电流之差)乘以电阻值。
求解线性方程组:列出所有独立的KVL方程后,解方程组,求出所有网孔电流。
节点电压法
选择参考节点:选择一个电路中的参考节点(接地节点)并将参考节点的电压定义为0V,通常选择电压最低或者连接支路最多的点。
标注节点电压:对非参考节点(其余所有节点)计算其相对于参考节点的电位差;
应用基尔霍夫电流定律(KCL):对每个未知节点列出 KCL 方程:
$$\sum_{k=1}^{n}{i_k} = 0, $$
即进入节点的电流 = 离开节点的电流。之后使用欧姆定律($I = \frac{U}{R}$, 其中$R$指的是复阻抗),将电流用电压表示出来。
- 求解方程:将每个节点的电流-电压关系综合形成线性方程组,解出节点电压;如果需要,可以用节点电压求解电路中的电流。
机械系统分析
同样地,裴润老师已经为我们总结了常见的机械系统要素:

机械系统中的基本要素 《自动控制原理(上册)》 裴润 P13
让我们来明确一下机械系统中运动物体所遵循的物理定律。
- 做直线运动的物体要遵循牛顿第二定律,即
$$\sum F = m \frac{\mathrm{d}^2 x}{\mathrm{d} t^2}, $$
式中$F$为物体所受到的力,$m$为物体的质量,$x$为物体在此过程中的线位移,$t$为物体运动过程所经历的时间。
回顾一下高中物理知识,我们知道物体受到的力是满足矢量分解/叠加原理的。也就是说,我们在分析受力时可以将物体受到的所有力都计算出其在运动轴向上的分力,并用牛顿第二定律$F= m a = m \ddot{x}$将二者联系起来。
- 转动的物体要遵循牛顿转动定律,即
$$\sum T = J \frac{\mathrm{d}^2 \theta}{\mathrm{d} t^2}, $$
式中$T$为物体所受到的力矩,$J$为物体的转动惯量3,$\theta$为物体在此过程中的角位移,$t$为物体运动过程所经历的时间。
我们可以注意到转动力矩的表达式十分类似于牛顿第二定律。转动惯量是物体的一个固有属性,与转动轴和质量有关:
对于质点, 其转动惯量$J = m r^2$,其中$m$是其质量,$r$是质点和旋转轴的垂直距离。
对于刚体,可将其视作无限个质点之和并用积分计算其转动惯量:$J = \int{\rho r^{2}} \mathrm{d}V$,其中$\rho$是物体的密度,$\mathrm{d}V$是体积微元。
- 实际运动中的物体总是会受到摩擦力的阻碍:做线运动的物体要受到摩擦力$F_c$的作用,可以表示为
$$F_c = F_B + F_f = f \frac{\mathrm{d} x}{\mathrm{d} t} + F_f, $$
式中$F_B$为粘性摩擦力,与运动的速度成正比,$f$是粘性摩擦系数;$F_f$为恒值摩擦力,又称作库仑摩擦力。
- 对于转动的物体,摩擦力体现为摩擦力矩$T_c$
$$T_c = T_B + T_f = K_c \frac{\mathrm{d} \theta}{\mathrm{d} t} + T_f, $$
类似地,式中$T_B$是粘性摩擦力矩,与转动的叫速度成正比,粘性阻尼系数$K_c$是其比例系数;$T_f$为恒值摩擦力矩。
对机械系统中的每个部件分析其各物理量之间的关系后加总,即可得到系统输入与输出之间的关系。
傅里叶级数与傅里叶变换
在学习拉普拉斯变换之前,有必要先回顾一下傅里叶变换。数学家们一般用花体字母$\mathscr{F}$表示傅里叶变换,$\mathscr{L}$表示拉普拉斯变换。
连续时间周期信号的傅里叶级数展开
连续时间傅里叶级数是一种将任意连续时间周期信号表示成无穷多个周期函数的线性组合,可以表示为复指数形式和三角函数形式如下:
$$x(t) = \sum_{k = - \infty}^{+ \infty} a_k e^{j \omega_0 t} = \sum_{k = 0}^{+ \infty} B_k \cos(j \omega_0 t) + C_k \sin(j \omega_0 t). $$
其中$\omega_0 = \frac{2 \pi}{T_0}$是输入信号的角频率,$T_0$是输入信号的周期。$k = 0$的项被称为直流分量,$k = 1$为基波分量,$k = N$的分量被称为$N$次谐波分量。
在复指数形式中,系数$a_k$的值可以利用三角函数的正交性计算:
$$a_k = \frac{1}{T_0} \int_{0}^{T_0} x(t) e^{-j \omega_0 t} \mathrm{d} t$$
这部分的证明可以参见浙江大学胡浩基老师的信号与系统课程:函数的正交分解_2022浙江大学信号与系统(含配套课件和代码) - 胡浩基老师。
非周期信号的傅里叶变换导出
对于非周期信号,我们可以将其视作周期为无限大的周期信号来应用傅里叶级数展开。这时x(t)的周期$T$满足$T \to + \infty$,则对应有$\frac{2 \pi}{T} = \omega_0 \to 0$。此时的$a_k$的计算转变为
$$a_k = \frac{1}{T_0} \int_{- \infty}^{+ \infty} x(t) e^{j \omega_0 t} \mathrm{d} t ,$$
我们定义
$$X(j \omega) = \int_{- \infty}^{+ \infty} x(t) e^{j \omega_0 t} \mathrm{d} t ,$$
则$a_k$可以表示为
$$a_k = \frac{1}{T_0} X(j \omega_0) .$$
将其代回到$x(t)$的傅里叶级数展开式,有
$$x(t) = \sum_{k = - \infty}^{+ \infty} a_k e^{j \omega_0 t} = \sum_{k = - \infty}^{+ \infty} \frac{1}{T_0} X(j \omega_0) e^{j \omega_0 t} = \frac{1}{2 \pi} \sum_{k = - \infty}^{+ \infty} \omega_0 X(j \omega_0) e^{j \omega_0 t} .$$
当$\omega_0 \to 0$时,根据黎曼积分4的定义将$\omega$视作积分微元,则上式可以表示为
$$x(t) = \frac{1}{2 \pi} \int_{- \infty}^{+ \infty} X(j \omega_0) e^{j \omega_0 t} \mathrm{d} \omega$$
于是我们得到了傅里叶变换对$x(t) \overset{\mathscr{F}}{\longleftrightarrow}X(j \omega)$
$$ \begin{aligned} X(j \omega) &= \int_{\infty}^{+ \infty} x(t) e^{-j \omega t} \mathrm{d} t , \newline x(t) &= \frac{1}{2 \pi} \int_{- \infty}^{+ \infty} X(j \omega) e^{j \omega t} \mathrm{d} \omega . \end{aligned} $$
这里的$X(j \omega)$表示的是将时域信号$x(t)$展开为三角函数信号之叠加时,对应频率为$\omega$的复指数信号$e^{j \omega t}$的“复幅度”。当然,上面的过程只极简略地说明了$x(t)$与$X(j \omega)$是如何互相转换的,它们之间详细的物理意义请参考胡浩基老师的课程。
傅里叶变换的收敛条件
并不是所有的$x(t)$都能够通过傅里叶变换得到其频谱。具体来说,输入的时域函数$x(t)$必须满足狄利克雷条件,其傅里叶变换才是收敛的:
$x(t)$绝对可积,即$\int_{- \infty}^{+ \infty} | x(t) | \mathrm{d} t < + \infty$;
在任意有限区间内,$x(t)$只有有限个最大值和最小值;
在任意有限区间内,$x(t)$只有有限个不连续点,并且在每个不连续点上信号都是有限值。
傅里叶变换与微分方程求解
为什么说傅里叶变换和微分方程的求解有关?让我们回到高数课堂,回忆一下二阶常系数线性非齐次微分方程的求解。一般来说,二阶常系数非齐次微分方程可以写成如下形式:
$$y^{\prime \prime} + p y^\prime + q y = f(x) ,$$
其中$p$,$q$是常数。我们特别关心$f(x)$的两种形式:
$$ \begin{aligned} f(x) &= e^{\lambda x} P_m (x) , \newline f(x) &= e^{\lambda x} [P_l (x) \cos(\omega x) + Q_n (x) \sin(\omega x)] , \end{aligned} $$
其中$P_m (x)$、$P_l (x)$与$Q_n (x)$分别是$m$、$l$、$n$次的多项式。这些特定$f(x)$形式对应的非齐次特解是有公式可循的,并且与齐次方程$y^{\prime \prime} + p y^\prime + q y = 0$的特征根强相关,即使在高于二阶的情形下也是如此。
可惜的是现实中需要解决的实际物理问题大部分都没有如此理想的形式。但我们自然会想:如果能通过某种数学变换将任意函数都转化成上面两种特殊形式,那很容易就可以求解这样的微分方程了;傅里叶所做的工作正是如此。他提出的傅里叶变换能将任意的函数变换成三角函数形式(前提是满足狄利克雷条件),那么求解这样的微分方程就变成了简单的分解$f(x)$成谐波组合形式 $\rightarrow$ 求解三角函数形式的非齐次方程 $\rightarrow$ 把所有分解结果对应的非齐次方程的解相加,当分解后保留的谐波次数足够多(类似于泰勒展开保留高次项),最终就能以足够精度得到原始微分方程的解。
拉普拉斯变换
狄利克雷条件限制了傅里叶变换所适用的对象,具体来说是要求$x(t)$的积分$\int_{- \infty}^{+ \infty} | x(t) | \mathrm{d} t$必须是收敛的。但这样好的性质并不常见,不如说现实世界中碰到的$x(t)$绝大部分都会发散;有没有办法绕过这个限制呢?我们说有的。回顾从时域到频域的傅里叶变换式
$$X(j \omega) = \int_{- \infty}^{+ \infty} x(t) e^{-j \omega t} \mathrm{d} t ,$$
由于$x(t)$的积分不收敛,因此它的傅里叶变换不存在。按照之前的思路:能不能通过某种变换让$x(t)$变成可以收敛的形式呢?拉普拉斯仔细研究了这个问题,选择让$x(t)$乘以一个衰减因子$e^{- \sigma t}$使其积分收敛。在高等数学中我们知道在进行无穷小量阶的比较时,指数函数的收敛速度会远远将多项式和对数甩开:
$$\lim_{x \to + \infty} \frac{a^{-x}}{x^{-n}} = \lim_{x \to + \infty} \frac{x^n}{a^x} = 0, a > 1, n > 0. $$
也就是说当$\sigma$足够大时,$x(t)e^{- \sigma t}$的积分总是收敛的(即使在$x(t)$中含有$e^{at}$时也是如此,只要$\sigma > a$即可)。我们试着将它们视作一个整体进行傅里叶变换:
$$X(\sigma + j \omega) = \int_{- \infty}^{+ \infty} [x(t)e^{- \sigma t}] e^{-j \omega t} \mathrm{d} t ,$$
由于我们正在学习的是一门工科课程,现实世界中会碰到的信号$x(t)$总是因果的,在因果起点$t = 0$之前信号不存在;而且从数学上看,当$t < 0$时刚添加的这个收敛因子$e^{- \sigma t}$自己反而会发散,起不到收敛作用。因此,我们的积分下限可以从$0$开始。从数轴上看这时的积分范围只占整个实数域$(- \infty, + \infty)$的一半,称为单边拉普拉斯变换。
在信号与系统中,因果信号 是指在 当前时间或未来时间不依赖于过去时间的信号。换句话说,一个因果信号在$t < 0$时为零,即信号不会在因果起点(通常是$t = 0$)之前存在。
另外注意到$e^{- \sigma t}$与$e^{-j \omega t}$可以合并;令$s = \sigma + j \omega$并统一符号表示,有
$$X(s) = \int_{0}^{+ \infty} x(t) e^{-(\sigma + j \omega) t} \mathrm{d} t = \int_{0}^{+ \infty} x(t) e^{-st} \mathrm{d} t ,$$
上式即为单边拉普拉斯变换的定义,记作$X(s) = \mathscr{L} [x(t)]$。实际上,在$(- \infty, + \infty)$上积分的双边拉普拉斯变换是存在的,并在信号的稳定性、系统频率响应和双边系统的研究上有广泛应用;但在经典控制理论中我们主要使用单边拉普拉斯变换。从定义式可以看出来拉普拉斯变换某种程度上可以视作傅里叶变换的推广5,它绕过了狄利克雷条件的限制,使傅里叶变换可以适用于任意函数(信号)。
需要指出的是我们在拉普拉斯变换中加入的衰减因子$e^{- \sigma t}$并不仅仅是数学上使$x(t)$收敛的trick,它有着明确的物理意义。在进行傅里叶变换时我们必须在$(- \infty, + \infty)$上对$t$积分(或对于因果信号在$(0, + \infty)$上积分结果也完全相同,此时傅里叶变换称为单边傅里叶变换),使输入信号$x(t)$的完整过程参与计算才能够得到结果。这种处理使得傅里叶变换主要突出信号的稳态频率特性,而难以直接分析其瞬态特性;而加入衰减因子$e^{- \sigma t}$的拉普拉斯变换为信号的早期部分赋予较大的权重,并使较晚部分衰减,因此适用于分析系统的瞬态响应和稳态响应。
更具体地,拉普拉斯变换引入的$s = \sigma + j \omega$是一个复变量,输入信号$x(t)$与其积分本质是一个投影运算:类似于傅里叶变换将$x(t)$投影到一组三角函数组成的基函数上得到其在各个频率上的分量$X(j \omega)$,拉普拉斯变换把时域信号$x(t)$投影到以$e^{-st}$定义的基函数构成的复频域($s$域)上,并得到信号在这些基上的加权系数$X(s)$;这个投影不仅考虑了信号的振荡行为(通过虚部$j \omega$表示),还考虑了信号的指数增长或衰减(由实部$\sigma$反映)。这让我们能同时分析$x(t)$的瞬态和稳态特性。
从这个角度出发也就不难理解系统闭环传递函数的零极点位置对系统稳定性的决定性作用了:当右半$s$平面(即$\sigma > 0$)上存在极点时,系统的自然响应中会包含$e^{\sigma t} e^{j \omega t}$的分量,导致信号随时间发散,系统变得不稳定。这部分内容会在后面的时域分析以及根轨迹分析中详细讨论。
由于拉普拉斯变换是将时域函数$f(t)$6变换成复频域上的函数$F(s)$,因此我们参照复分析中的说法,把$F(s)$称作$f(t)$的象函数。
拉普拉斯变换的收敛域
这部分内容来源于郑君里,应启珩,杨为里《信号与系统(上册)》第三版的4.2 拉普拉斯变换的定义、收敛域
。
在前面的讨论中,我们说函数$f(t)$乘以衰减因子$e^{- \sigma t}$后,就有可能满足绝对可积条件使变换成立。现在来详细讨论这一点。
假设当$\sigma > \sigma_0$时,函数$f(t) e^{- \sigma t}$在$t \to + \infty$时的值趋近于$0$,即
$$\lim_{t \to + \infty} f(t) e^{- \sigma t} = 0 \quad (\sigma > \sigma_0) ,$$
其中$\sigma_0$是与函数的性质有关的一个常数。根据$\sigma_0$的数值,可将$s$平面划分为两个区域:其中通过$\sigma_0$的垂直线是收敛区(收敛域)的边界,称为收敛轴;$\sigma_0$在$s$平面内称为收敛坐标。满足上式的函数称为“指数阶函数”。指数阶函数若具有发散特性可借助于$e^{- \sigma t}$的衰减压下去,使之成为收敛函数。凡是有始有终,能量有限的信号,如单个脉冲信号,其收敛坐标坐落于$- \infty$,全部$s$平面都属于收敛区。也就是说,有界的非周期函数其拉氏变换一定存在。

收敛区的划分 《信号与系统(上册)》 郑君里,应启珩,杨为里 P189
如果信号的幅度既不增长也不衰减而等于稳定值,则其收敛坐标落在原点, s右半平面属于收敛区。换句话说,对任何周期信号只要稍加衰减就可收敛。
任何随时间成正比增长的信号,其收敛坐标落于原点。这是因为
$$\lim_{t \to + \infty} t e^{- \sigma t} = 0 \quad (\sigma > 0) .$$
- 与$t^n$成比例增长之函数其收敛坐标也落在原点:
$$\lim_{t \to + \infty} t^n e^{- \sigma t} = 0 \quad (\sigma > 0) .$$
- 如果函数按指数规律$e^{at}$增长,则只有当$\sigma > a$时才满足
$$\lim_{t \to + \infty} e^{at} e^{- \sigma t} = 0 \quad (\sigma > 0) ,$$
所以收敛坐标为
$$\sigma_0 = a .$$
- 对于一些比指数函数增长得更快的函数,不能找到它们的收敛坐标,因而不能进行拉氏变换。例如$e^{t^2}$或$t e^{t^2}$ (定义域为$0 \leq t \leq + \infty$)就不是指数阶函数,但若把这种函数限定在有限时间范围之内,还是可以找到收敛坐标进行拉氏变换的。如
$$ f(t) = \begin{cases} e^{t^2} \quad (0 \leq t < T) \newline 0 \quad \ \ (t < 0, t > T) \end{cases} $$
它的收敛坐标存在。
以上研究了单边拉氏变换的收敛条件。双边拉氏变换的收敛问题将比较复杂,收敛条件将受到更多限制,但在自动控制原理中我们主要研究单边拉氏变换;由于单边拉氏变换的收敛问题比较简单,一般情况下,求函数单边拉氏变换时不再加注其收敛范围。
拉普拉斯变换的性质
这部分的内容来源于胡寿松《自动控制原理》第七版的附录A 傅里叶变换和拉普拉斯变换
中的5. 拉普拉斯变换定理
,各个定理的证明可以参见原书。
线性性质
设$F_1 (s) = \mathscr{L} [f_1 (t)]$, $F_2 (s) = \mathscr{L} [f_2 (t)]$,$a$,$b$为常数,则有
$$\mathscr{L} [a f_1 (t) + b f_2 (t)] = a \mathscr{L} [f_1 (t)] + b \mathscr{L} [f_2 (t)] = a F_1 (s) + b F_2 (s) ,$$
即拉普拉斯变换满足叠加原理。
微分定理
设$F(s) = \mathscr{L} [f(t)]$,则有
$$\mathscr{L} [\frac{\mathrm{d} f(t)}{\mathrm{d} t}] = s F(s) - f(0) .$$
这个定理也可以推广到$n$阶导数的情况:
$$\mathscr{L} [\frac{\mathrm{d}^{n} f(t)}{\mathrm{d} t^{n}}] = s^{n} F(s) - [s^{n-1} f(0) + s^{n-2} f^{\prime}(0) + … + s f^{(n-2)} (0) + f^{(n-1)}(0)] ,$$
式中$f(0), f^{\prime} (0), f^{\prime \prime} (0), …, f^{(n-1)} (0)$为$f(t)$及其各阶导数在$t = 0$时的值。
积分定理
设$F(s) = \mathscr{L} [f(t)]$,则有
$$\mathscr{L} [\int f(t) \mathrm{d} t] = \frac{1}{s} F(s) + \frac{1}{s} f^{(-1)}(0) ,$$
式中$f^{(-1)}(0)$是$\int f(t) \mathrm{d} t$在$t = 0$时的值。
与微分定理类似,对$n$重积分应用拉普拉斯变换可以得到
$$\mathscr{L} [\underbrace{\int … \int}_{n} f(t)( \mathrm{d} t)^n] = \frac{1}{s^n} ,$$
即原函数$f(t)$的$n$重积分的拉氏变换等于其象函数$F(s)$除以$s^n$。
初值定理
若函数$f(t)$及其一阶导数$f^{\prime} (t)$都是可拉氏变换的,则函数$f(t)$的初值为
$$f(0_+) = \lim_{t \to 0_+} f(t) = \lim_{s \to + \infty} s F(s) ,$$
即原函数$f(t)$在自变量$t$趋于零(从正向趋于零)时的极限值取决于其象函数$F(s)$在自变量$s$趋于无穷大时的极限值。
终值定理
若函数$f(t)$及其一阶导数都是可拉氏变换的,则其终值为
$$\lim_{t \to + \infty} f(t) = \lim_{s \to 0} s F(s) ,$$
即原函数$f(t)$在自变量$t$趋于无穷大时的极限值,取决于象函数$F(s)$在自变量$s$趋于零时的极限值。
位移定理
设$F(s) = \mathscr{L} [f(t)]$,则有
$$ \begin{aligned} \mathscr{L} [f(t - \tau_0)] &= e^{- \tau_0 s} F(s) , \newline \mathscr{L} [e^{\alpha t} f(t)] &= F(s - \alpha) . \end{aligned} $$
它们分别表示实域中的位移定理和复域中的位移定理(实位移定理和复位移定理)。实位移定理表示原函数$f(t)$沿时间轴平移$\tau_0$时,其对应的象函数$F(s)$要乘以$e^{- tau_0 s}$;复位移定理表示象函数$F(s)$的自变量$s$位移$\alpha$时,相应于其原函数$f(t)$乘以$e^{\alpha t}$,可用于求拉普拉斯反变换。
相似定理
设$F(s) = \mathscr{L} [f(t)]$,则有
$$\mathscr{L} [f(\frac{t}{a})] = a F(as) ,$$
式中$a$为实常数。相似定理讲的是当原函数$f(t)$在时域上按比例展开/压缩时,对应的象函数$F(s)$会被压缩/展开。
卷积定理
设$F_1 (s) = \mathscr{L} [f_1 (t)]$,$F_2 (s) = \mathscr{L} [f_2 (t)]$,则有
$$F_1 (s) F_2 (s) = \mathscr{L} [\int_{0}^{t} f_1 (t - \tau) f_2 (\tau) \mathrm{d} \tau] ,$$
式中$\mathscr{L} [\int_{0}^{t} f_1 (t - \tau) f_2 (\tau) \mathrm{d} \tau$称为$f_1 (t)$与$f_2 (t)$的卷积,可记作$f_1 (t) \ast f_2 (t)$。卷积定理讲的是两个原函数在时域上的卷积等于它们象函数在频域上的乘积。
常用函数的拉普拉斯变换表
下面整理了一些常用函数的拉普拉斯变换,以供查阅:
时域函数 $f(t)$ | 象函数 $F(s) = \mathscr{L} [f(t)]$ |
---|---|
$1$ | $\frac{1}{s}$ |
$t$ | $\frac{1}{s^2}$ |
$t^n$ | $\frac{n!}{s^{n+1}}$ |
$e^{at}$ | $\frac{1}{s-a}$ |
$t^n e^{at}$ | $\frac{n!}{(s-a)^{n+1}}$ |
$\sin(\omega t)$ | $\frac{\omega}{s^2 + \omega^2}$ |
$\cos(\omega t)$ | $\frac{s}{s^2 + \omega^2}$ |
$e^{at} \sin(\omega t)$ | $\frac{\omega}{(s-a)^2 + \omega^2}$ |
$e^{at} \cos(\omega t)$ | $\frac{s-a}{(s-a)^2 + \omega^2}$ |
$\delta(t)$(单位冲激函数) | $1$ |
$u(t)$(单位阶跃函数) | $\frac{1}{s}$ |
$\frac{d}{dt} f(t)$ | $s F(s) - f(0)$ |
$\int_0^t f(\tau) d\tau$ | $\frac{F(s)}{s}$ |
$e^{-at} f(t)$ | $F(s+a)$ |
$f(t-T) u(t-T)$(延迟) | $e^{-Ts} F(s)$ |
周期函数 $f(t)$ | $\frac{1}{1 - e^{-Ts}} \int_0^T e^{-st} f(t) dt$ |
拉普拉斯反变换
与傅里叶变换类似,拉普拉斯变换也存在其逆变换:
$$f(t) = \frac{1}{j 2 \pi} \int_{\sigma - j \infty}^{\sigma + j \infty} F(s) e^{st} \mathrm{d} s ,$$
记作
$$f(t) = \mathscr{L}^{-1} [F(s)] .$$
但做积分运算实在是太费事了,我们一般不使用这个方法进行拉普拉斯反变换。在学习高等数学时,我们会通过查表的方式求得常见函数的不定积分;对于一些复杂函数,我们则会以各种技巧将它们分解成常见函数的线性组合后再查表得到结果。类似地,我们也能够预先求出一些基础时域函数的拉普拉斯变换,再将复杂的象函数$F(s)$分解成常用象函数的线性组合后直接查表获得它们对应的原始时域函数。我们一般使用部分分式分解法求解。
部分分式法展开
这一部分内容主要来源于卢老师《自动控制原理》的附录A 拉普拉斯变换及反变换
。如果仍有不理解的地方,可以参考胡浩基老师的信号与系统课程中关于部分分式法的片段:用傅里叶变换计算信号卷积_2022浙江大学信号与系统(含配套课件和代码) - 胡浩基老师;胡老师在他的课程里把这种方法称为『盖起来算其他』,很简明易懂的称呼。
我们知道,任意一个代数式总是能写成有理分式的形式,或更进一步地使用多项式除法将其拆分成有理真分式。我们不妨假设某个系统的传递函数$F(s)$是$s$的有理真分式7
$$F(s) = \frac{B(s)}{A(s)} = \frac{b^{m} s^{m} + b^{m-1} s^{m-1} + … + b_1 s + b_0}{a^{n} s^{n} + a^{n-1} s^{n-1} + … + a_1 s + a_0} \quad (n > m) ,$$
其中系数$a_0, a_1, …, a_n$与$b_0, b_1, …, b_m$都是实常数;$m, n$为正整数。根据特征方程$A(s) = 0$是否有重根可以分两种情况讨论如何将$F(s)$分解成部分分式:
特征方程无重根
这时,$F(s)$能展开为$n$个简单的部分分式之和的形式,即
$$F(s) = \frac{c_1}{s - s_1} + \frac{c_2}{s - s_2} + … + \frac{c_i}{s - s_i} + … + \frac{c_n}{s - s_n} = \sum_{i=1}^{n} \frac{c_i}{s - s_i} ,$$
式中$s_1, s_2, …, s_n$为特征方程$A(s) = 0$的根,$c_i$为待定常数,称为$F(s)$在$s_i$处的留数,可以按下面的两个式子计算
$$c_i = \lim_{s \to s_i} (s - s_i) F(s) ,$$
$$c_i = \frac{B(s)}{A^{\prime} (s)} \bigg |_{s = s_i} ,$$
即我们可以先把$F(s)$写成如下形式
$$F(s) = \frac{B(s)}{A(s)} = \frac{b^{m} s^{m} + b^{m-1} s^{m-1} + … + b_1 s + b_0}{(s - s_1)(s - s_2) … (s-s_i) … (s - s_n)} ,$$
之后计算$F(s)$在$s \to s_i$时的极限即得$c_i$的值。
求出所有$c_i$后,反查拉普拉斯变换表就能获得原函数$f(t)$:
$$f(t) = \mathscr{L}^{-1} [F(s)] = \mathscr{L}^{-1} (\sum_{i=1}^{n} \frac{c_i}{s - s_i}) = \sum_{i=1}^{n} c_i e^{- s_i t} .$$
特征方程有重根
设$A(s) = 0$有$r$重根,此时$F(s)$可写为
$$ \begin{aligned} F(s) &= \frac{b^{m} s^{m} + b^{m-1} s^{m-1} + … + b_1 s + b_0}{(s - s_1)^{r}(s - s_{r+1}) … (s - s_n)} \newline \quad \newline &= \frac{c_{r}}{(s - s_1)^{r}} + \frac{c_{r - 1}}{(s - s_1)^{r - 1}} + … + \frac{c_1}{(s - s_1)} + \frac{c_{r + 1}}{s - s_{r + 1}} + … + \frac{c_{i}}{(s - s_i)} + \frac{c_n}{s - s_n} , \end{aligned} $$
式中为的重根,为的个单根;其中仍可按无重根情形下的两个式子进行计算,重根则由下式进行计算
$$ \begin{cases} c_r = \lim_{s \to s_1} (s - s_1)^r F(s) , \newline c_{r - 1} = \lim_{s \to s_1} \frac{\mathrm{d}}{\mathrm{d} s} [(s - s_1)^r F(s)] , \newline \vdots \newline c_{r - k} = \frac{1}{k!} \lim_{s \to s_1} \frac{\mathrm{d}^k}{\mathrm{d} s^k} [(s - s_1)^r F(s)] , \newline \vdots \newline c_1 = \frac{1}{(r - 1)!} \lim_{s \to s_1} \frac{\mathrm{d}^{r-1}}{\mathrm{d} s^{r-1}} [(s - s_1)^r F(s)] . \end{cases} $$
求出每个$c_i$后,对所得分离开的$F(s)$应用拉普拉斯反变换即可得到原函数$f(t)$:
$$ \begin{aligned} f(t) &= \mathscr{L}^{-1} [F(s)] \newline \quad \newline &= \mathscr{L}^{-1} [\frac{c_{r}}{(s - s_1)^{r}} + \frac{c_{r - 1}}{(s - s_1)^{r - 1}} + … + \frac{c_1}{(s - s_1)} + \frac{c_{r + 1}}{s - s_{r + 1}} + … + \frac{c_{i}}{(s - s_i)} + \frac{c_n}{s - s_n}] \newline \quad \newline &= [\frac{c_{r}}{(r - 1)!} t^{r - 1} + \frac{c_{r - 1}}{(r - 2)!} t^{r - 2} + … + c_2 t + c_1] e^{s_1 t} + \sum_{i = r + 1}^{n} c_i e^{e^{s_i t}} . \end{aligned} $$
微分算子法
前面已经提到线性时不变系统可以用一个常系数线性微分方程描述。在高等数学中我们已经学习过用于求解高阶微分方程的特征方程法,即假设解的形式为$y=e^{\lambda t}$并代入原方程进行求解;但这种方式求解起来非常繁琐,并且对于不同的输入(即非齐次方程右边的$x(t)$多项式)都要解对应的方程。
在19世纪末,英国工程师赫维赛德(O.Heaviside, 1850 ~ 1925)发明了微分算子法解决了电工程计算中的一些基本问题。虽然这个方法简单好用,但在当时并没有经过严密的数学证明,为许多人所诟病;后来,人们从法国数学家拉普拉斯(P.S.Laplace, 1749 ~ 1825)的著作中为这个方法找到了可靠的数学依据,并将其取名为拉普拉斯变换方法。
欧拉方程的求解
为了说明微分算子法,让我们回到高等数学课堂,回忆一下欧拉方程应当如何求解:
形如$x^n y^{(n)} + P_1 x^{n-1} y^{(n-1)} + P_2 x^{n-2} y^{(n-2)} + … + + P_{n-1} x y^{\prime} + P_n y = f(x)$,其中$P_1, P_2, …, P_{n-1}, P_n$为常数的方程称为欧拉方程。
我们先做变量代换$x = e^t$,则可得$t = \ln(x)$。此时
$$ \frac{\mathrm{d} x}{\mathrm{d} t} = \frac{\mathrm{d} e^{t}}{\mathrm{d} t} = e^{t} = x ,$$
相应地,有
$$ \frac{\mathrm{d} t}{\mathrm{d} x} = \frac{\mathrm{d} \ln (x)}{\mathrm{d} x} = \frac{1}{x} .$$
此时$y$对$x$的一阶导可以写为
$$\frac{\mathrm{d} y}{\mathrm{d} x} = \frac{\mathrm{d} y}{\mathrm{d} t} \cdot \frac{\mathrm{d} t}{\mathrm{d} x} = \frac{1}{x} \cdot \frac{\mathrm{d} y}{\mathrm{d} t} = \frac{y^{\prime} (t)}{x} ,$$
这时原关于$x$的函数$y(x)$转变为关于$t$的函数$y(t)$;在后面的表述中,我们在单独提及$y$时特指$y$关于$x$的函数。
再来看二阶的情况:
$$\frac{\mathrm{d}^2 y}{\mathrm{d} x^2} = \frac{\mathrm{d} \frac{\mathrm{d} y}{\mathrm{d} x}}{\mathrm{d} x} = \frac{\mathrm{d} [\frac{1}{x} \cdot \frac{\mathrm{d} y(t)}{\mathrm{d} t}]}{\mathrm{d} x} = \frac{\mathrm{d} [\frac{1}{x} \cdot \frac{\mathrm{d} y(t)}{\mathrm{d} t}]}{\mathrm{d} t} \cdot \frac{\mathrm{d} t}{\mathrm{d} x}= [\frac{y^{\prime} (t)}{x}]^{\prime}_{t} \cdot \frac{1}{x} = \frac{x y^{\prime \prime} (t) - x y^{\prime} (t)}{x^2} \cdot \frac{1}{x} = \frac{y^{\prime \prime} (t) - y^{\prime} (t)}{x^2} ,$$
注意看上式中将对$x$的二阶求导转换到对$t$的二阶求导时,分母和分子中$x$的对消关系。
三阶情况下
$$ \begin{aligned} \frac{\mathrm{d}^3 y}{\mathrm{d} x^3} &= \frac{\mathrm{d} \frac{\mathrm{d}^2 y}{\mathrm{d} x^2}}{\mathrm{d} x} = \frac{\mathrm{d} [\frac{y^{\prime \prime} (t) - y^{\prime} (t)}{x^2}]}{\mathrm{d} x} = \frac{\mathrm{d} [\frac{y^{\prime \prime} (t) - y^{\prime} (t)}{x^2}]}{\mathrm{d} t} \cdot \frac{\mathrm{d} t}{\mathrm{d} x} = [\frac{y^{\prime \prime} (t) - y^{\prime} (t)}{x^2}]^{\prime}_{t} \cdot \frac{1}{x} \newline \quad \newline &= \frac {x^2 [y^{\prime \prime \prime} (t) - y^{\prime \prime} (t)] - 2x^2 [y^{\prime \prime} (t) - y^{\prime} (t)]}{x^4} \cdot \frac{1}{x} = \frac {[y^{\prime \prime \prime} (t) - y^{\prime \prime} (t)] - 2 [y^{\prime \prime} (t) - y^{\prime} (t)]}{x^3} \newline \quad \newline &= \frac {y^{\prime \prime \prime} (t) - 3 y^{\prime \prime} (t) + 2 y^{\prime} (t)}{x^3} . \end{aligned} $$
回到欧拉方程的标准形式,我们注意到对于每一个$n$阶的导数项$y^{(n)}$,都有一个$x$的$n$次项$x^{n}$作为系数。将其代入到我们刚刚做过变量代换得到的方程,在一阶时为
$$x y^{\prime} = x \cdot \frac{y^{\prime} (t)}{x} = \frac{\mathrm{d} y}{\mathrm{d} t} ,$$
在二阶时
$$x^2 y^{\prime \prime} = x^2 \cdot \frac{y^{\prime \prime} (t) - y^{\prime} (t)}{x^2} = y^{\prime \prime} (t) - y^{\prime} (t) = \frac{\mathrm{d}^2 y}{\mathrm{d} t^2} - \frac{\mathrm{d} y}{\mathrm{d} t} ,$$
在三阶时
$$x^3 y^{\prime \prime \prime} = x^3 \cdot \frac {y^{\prime \prime \prime} (t) - 3 y^{\prime \prime} (t) + 2 y^{\prime} (t)}{x^3} = y^{\prime \prime \prime} (t) - 3 y^{\prime \prime} (t) + 2 y^{\prime} (t) = \frac{\mathrm{d}^3 y}{\mathrm{d} t^3} - 3 \frac{\mathrm{d}^2 y}{\mathrm{d} t^2} + 2 \frac{\mathrm{d} y}{\mathrm{d} t} ,$$
现在到了关键环节:将对$t$求导的运算记作$D$,求二阶导记作$D^2$,依此类推。我们先不管为什么要这样做,试着把$D$表示的形式用在上面$x^{k} y^{(k)}$到$\frac{\mathrm{d}^{k} y}{\mathrm{d} t^{k}} - …$的式子中,有
一阶时
$$x y^{\prime} = \frac{\mathrm{d} y(t)}{\mathrm{d} t} = D y(t) ,$$
二阶时
$$x^2 y^{\prime \prime} = \frac{\mathrm{d}^2 y(t)}{\mathrm{d} t^2} - \frac{\mathrm{d} y(t)}{\mathrm{d} t} = D^2 y(t) - Dy(t) = D(D-1)y(t) ,$$
三阶时
$$x^3 y^{\prime \prime \prime} = \frac{\mathrm{d}^3 y(t)}{\mathrm{d} t^3} - 3 \frac{\mathrm{d}^2 y(t)}{\mathrm{d} t^2} + 2 \frac{\mathrm{d} y(t)}{\mathrm{d} t} = D^3 y(t) - 3 D^2 y(t) + 2Dy(t) = D(D-1)(D-2) y(t) ,$$
可以证明,在k阶时也有类似的形式
$$x^{k} y^{(k)} = D(D-1) … (D-k+2)(D-k+1) y(t) .$$
对于$n$阶欧拉方程$x^n y^{(n)} + P_1 x^{n-1} y^{(n-1)} + P_2 x^{n-2} y^{(n-2)} + … + + P_{n-1} x y^{\prime} + P_n y = f(x)$,我们将上面得到的关系式代入并整理,可以得到类似于
$$D^{n} y(t) + Q_1 D^{n-1} y(t) + … + Q_{n-1} D y(t) + Q_n y = f(t)$$
的形式,其中$Q_1, Q_2, … ,Q_n$是将括号展开后得到的新常系数;之后将$D^{n} y(t)$变换回$\frac{\mathrm{d}^n y(t)}{\mathrm{d} t^n}$的形式即可按照常系数非齐次线性微分方程的方法对此方程进行求解,得到$y$关于$t$的结果后再以$t = \ln (x)$代入即可得到原方程的解。
这里有点类似于对可降阶的微分方程$y^{\prime \prime} = f(y, y^{\prime})$的解法:令$y^{\prime} = p$,则 $$y^{\prime \prime} = \frac{\mathrm{d} p}{\mathrm{d} x} = \frac{\mathrm{d} p}{\mathrm{d} y} \cdot \frac{\mathrm{d} y}{\mathrm{d} x} = p \cdot \frac{\mathrm{d} p}{\mathrm{d} y} .$$ 之后将原方程视作以$y$为自变量,$p$为因变量的一阶微分方程求解即可。
常微分方程的微分算子法
实际上,欧拉方程的解法正是针对具有特定形式的变系数微分方程所适用的微分算子法;对于常微分方程,这个方法会简单得多。
对一个常微分方程$a_n y^{(n)} + a_{n-1} y^{(n-1)} + … + a_1 y’ + a_0 y = f(x)$,我们用记号$D$代表对$x$求解,即
$$D = \frac{\mathrm{d}}{\mathrm{d} x} ,$$
则这个常微分方程可以表示为
$$(a_{n} D^{n} + a_{n-1} D^{n-1} + … + a_1 D + a_0) y = f(x) ,$$
将y的系数部分视作关于D的代数方程,列出特征方程:
$$a_{n} D^{n} + a_{n-1} D^{n-1} + … + a_1 D + a_0 = 0 ,$$
求出这个代数方程的根,即原方程的特征根即可得到原方程对应齐次方程的通解:
特征根形式 | 对应齐次方程解的形式 | 说明 |
---|---|---|
$r_1, r_2, …, r_k \newline$是不相等的实数($k$个单根) | $y = C_1 e^{r_1 x} + C_2 e^{r_2 x} + … +C_k e^{r_k x}$ | $C_1, C_2, …, C_k$为常数 |
$r = r_1 = r_2 = … = r_k \newline$是$k$个相等的实数($k$重根) | $y = C_1 e^{r x} + C_2 x e^{r x} + … + C_k x^{k-1} e^{r x}$ | 有$k$个$e^{r x}$项,每项中$x^{i}$的次数依次递加 |
$r_{1, 2} = \alpha_i \plusmn j \beta_i$(共轭复根) | $y = e^{\alpha_i x} (C_1 \cos(\beta_i x) + C_2 \sin(\beta_i x))$ | 高阶方程可能存在多组共轭复根,对每一组均有此形式的特解 |
$r_{1, 2} = r_{3, 4} = … = \newline r_{u, v} = \alpha_i \plusmn j \beta_i \newline$是$k$个相等的共轭复数($k$重复根) | $y = \newline e^{\alpha_i x} [(C_1 + C_2 x + … + C_{k} x^{k-1}) \cos(\beta_i x) + \newline (C_{k+1} + C_{k+2} x + … + C_{2k} x^{k-1}) \sin(\beta_i x)]$ | $\cos(\beta_i x)$与$\sin(\beta_i x)$前的系数可参考$k$重根时的形式 |
对于高阶微分方程,其特征方程的根可能由以上的一种或多种形式构成;在列出对应的特征根时我们只需要将各个根简单相加即可得到结果。
如果读者还记得高等数学课堂上的内容,应该会很快发现上述内容就是二阶齐次常系数线性微分方程通解求法的推广,这也就是所谓的微分算子法。
用拉普拉斯变换解微分方程
这一小节要讲的是为什么我们可以用$s$代替系统常微分方程中对$t$求导的部分,将微分方程转换为代数方程求解。
首先让我们回顾一下拉普拉斯变换的性质 - 微分定理:
设$F(s) = \mathscr{L} [f(t)]$,则有 $$\mathscr{L} [\frac{\mathrm{d} f(t)}{\mathrm{d} t}] = s F(s) - f(0) .$$ 这个定理也可以推广到$n$阶导数的情况: $$\mathscr{L} [\frac{\mathrm{d}^{n} f(t)}{\mathrm{d} t^{n}}] = s^{n} F(s) - [s^{n-1} f(0) + s^{n-2} f^{\prime}(0) + … + s f^{(n-2)} (0) + f^{(n-1)}(0)] ,$$ 式中$f(0), f^{\prime} (0), f^{\prime \prime} (0), …, f^{(n-1)} (0)$为$f(t)$及其各阶导数在$t = 0$时的值。
我们马上注意到,象函数在变换过程中会显式包含原时域函数$f(t)$及其各阶导数在$t = 0$时的初始条件。在使用传统方法求解微分方程时,我们通常先求得$f(t)$含高阶导数的解析表达式,再代入初始条件以获得唯一解;而使用拉普拉斯变换求解时,我们可以直接在变换过程中引入初始条件,得到$F(s)$的解析表达式,随后通过逆变换求得时域解。
然而,如果时域函数$f(t)$及其各阶导数在$t = 0$时的值都为$0$,那么其$n$阶导数的拉普拉斯变换可以简化为:
$$\mathscr{L} [\frac{\mathrm{d}^{n} f(t)}{\mathrm{d} t^{n}}] = s^{n} F(s) ,$$
这无疑为微分方程的求解带来了很大方便。但在实际系统中,初始条件严格为零的情况相当罕见;幸运的是,由于线性系统满足叠加原理,我们可以把系统中非零初始状态产生的输出和零初始条件下输入信号产生的输出分开求解。在应用拉普拉斯变换时,我们通常将系统分解为零输入响应和零状态响应,并假设零状态响应是在零初始条件下启动的。
零初始条件是指系统在$t = 0$时的所有初始状态(例如初始位移、速度、电流、电压等)都为零;更严谨地,零初始条件指系统中各状态变量的初始值都为零。
零输入响应是指在没有外部输入(即 $x(t) = 0$)的情况下,系统仅由初始条件决定的响应。它反映了系统的自然特性,即系统在初始条件的作用下如何自由演化。
零状态响应是指在初始条件为零(即系统初始状态为$0$)的情况下,系统对外部输入$x(t)$的响应。它反映了系统如何对输入信号作出反应,与系统本身的初始状态无关。
在零初始条件下,微分方程中的$k$阶项对应变换后的$k$次项,即
$$ \begin{aligned} a_n y^{(n)} (t) + a_{n - 1} y^{(n - 1)} (t) + … + a_1 y(t) + a_0 &= b_m x^{(m)} (t) + b_{m - 1} x^{(m - 1)} (t) + … + b_1 x (t) + b_0 \newline &\Big\downarrow\mathscr{L} \newline a_n s^n Y(s) + a_{n - 1} s^{n - 1} Y(s) + … + a_1 s Y(s) + a_0 &= b_m s^m X(s) + b_{m - 1} s^{m - 1} X(s) + … + b_1 s X(s) + b_0 \end{aligned} $$
式中$y^{(i)}$表示对时域函数$y(t)$求$i$阶导,$x^{(j)}$表示对时域函数$x(t)$求$j$阶导,$Y(s), X(s)$分别为$y(t)$与$x(t)$的象函数;$a_1, a_2, …, a_n$与$b_1, b_2, …, b_n$都为常数。
如果我们将$s^k$看作对$t$求$k$阶导的记号,那么拉普拉斯变换可以看作是对时域函数$x(t), y(t)$的微分算子法,只需按代数方程的方法将$Y(s)$用$X(s)$表示并求出其反变换即可得$y(t)$与$x(t)$在时域上的关系。
更进一步地,如果$x(t)$是系统的输入,$y(t)$是系统的输出,则可以定义传递函数$G(s)$:
$$G(s) = \frac{Y(s)}{X(s)}$$
上式称为这个系统的传递函数。它描述了系统在零初始条件下的输入输出关系,并完全由系统本身的参数决定。
运动的模态
线性微分方程的解由齐次方程的通解和输入信号对应的特解组成。通解反映的是系统的自由响应(即零输入响应)。如果微分方程的特征根是单实根$\lambda_1, \lambda_2, …$,则把函数$e^{\lambda_1 t}, e^{\lambda_2 t}, …$称为该微分方程所描述运动的模态,也叫振型。
如果特征根中有多重根$\lambda$,则模态是具有$t e^{\lambda t}, t^2 e^{\lambda t}, …$形式的函数。
如果特征根中有共轭复根$\lambda = \sigma + j \omega$,则其共轭复模态$e^{\sigma + j \omega}$、$e^{\sigma - j \omega}$可写成实函数模态$e^{\sigma t} \sin(\omega t)$、$e^{\sigma t} \cos(\omega t)$。
联系之前常微分方程的微分算子法中有关齐次微分方程特征根与解的形式的表格,我们很快发现模态其实指的就是系统微分方程对应齐次方程的通解。那么,这些通解究竟代表了什么?
让我们回忆一下线性代数中有关线性方程组的内容:我们把$Ax = 0$称为齐次方程,$Ax = B$称非齐次方程。齐次方程的所有解向量都能用其通解$x_1, x_2, …, x_m$的线性组合表示;其中$m = n - r(A)$,$n$是$A$的列数(即变量的个数),$r(A)$是矩阵$A$的秩。这些通解是线性无关的。更进一步地,我们可以说这些通解向量张成了一个$m$维的向量空间,此空间中的所有向量都是齐次方程的解。
类似地,$n$阶齐次常系数线性微分方程的所有解构成一个$n$维解空间8,该空间由$n$个线性无关的基函数(即模态函数,如$e^{\lambda t}, t^k e^{\lambda t}$等)张成。这也就是说,模态即是组成系统自由响应的基底,系统的所有可能的自由响应都存在于此解空间中。
需要注意的是,系统的受迫响应并不一定由模态组成。,例如多项式形态的输入信号会使得受迫响应中有额外的多项式项;但如果系统的输入信号类似于本身的模态(复指数部分接近使得输入信号频率与系统的模态频率匹配),则其受迫响应可能会被投影到该模态上,甚至导致系统共振(可联系二阶系统的谐振频率理解)。
从模态角度来看,系统的稳定性取决于所有特征根的实部。如果所有特征根的实部都小于零($\mathrm{Re}(\lambda) < 0$),则所有模态都会随时间衰减,系统是渐进稳定的。如果存在至少一个特征根的实部为正($\mathrm{Re}(\lambda) > 0$),则相应的模态 $e^{\lambda t}$ 会随时间指数增长,使得系统不稳定。如果特征根的实部恰好为零,则系统处于边界稳定状态,其响应可能不会发散但也不会衰减。
作为拓展,在状态空间分析中,系统的模态与其结构密切相关:
- 能控性:若某一模态无法被输入激励,则系统不完全能控;
- 能观性:若某一模态无法从输出观测,则系统不完全能观。
参考书
以下列出的是我个人学习时使用过的一些自控教材,可供参考:
胡寿松, 姜斌, 张绍杰. 自动控制原理[M]. 第八版. 科学出版社, 2024:国内最普遍流行的控制理论教材,涵盖了经典控制理论和现代控制理论两个方面。这本书很厚很大很全面,但对卢老师的视频课程不是十分适配,可以作为卢老师那本薄书(相对)的补充。
裴润, 宋申民. 自动控制原理[M]. 第二版. 哈尔滨工业大学出版社, 2023:分上下册,上册为经典控制理论,下册为现代控制理论。第一版正文中的符号错误之多让人怀疑出版时有没有校对,好在我买的是二手书有前辈学长(学姐?)的笔记勘误看起来稍微好些,不知第二版有无修正;此外可能哈工大做控制的教授从苏联一脉相承,书中使用的闭环系统误差定义在输出端(期望输出-实际输出)而不是同美帝及其他国内教材一样定义在输入端(实际输入-实际输出),在后续列写闭环系统误差方程等章节也和其他教材有显著不同。
吴麒, 王诗宓. 自动控制原理[M]. 第二版. 清华大学出版社, 2006:看网上说是清华本校用的教材,最大的特色是自控和现控穿插着讲。比如第一章先介绍传统时域微分方程——拉普拉斯变换——复域代数方程,紧接着马上开始介绍状态变量和状态空间方程。对于初学者不是很友好
也有可能是我太笨了,但是频域分析的部分感觉写的不错。上下册加在一起比胡寿松那本还厚。另外这本书还用了数十页的篇幅讲了国内外控制理论的研究发展史,可以很清晰地看到这门学科的发展脉络。王天威. 控制之美(卷1)——控制理论从传递函数到状态空间[M]. 第二版. 清华大学出版社, 2022:B站一位做机器人控制的UP主DR_CAN出的书,实际上初学者可能看不太明白,需要在学习完经典+现代控制理论,或至少学完经典控制理论后再作阅读会得到对控制理论的更统一的认识。他的视频讲的非常简明易懂,很适合新学或者复习。
以上图书都可以很容易地在Z-Library上找到下载,当然如果有能力还是购买一本实体书支持一下各位老师。
后记
我个人觉得自动控制原理,或者说控制理论这个学科具有非常典型的工科特征:用数学方法解决物理问题。通过对现实问题抽象建模,在适当时候采取一些近似方法,得到的结论可以很好地吻合实际结果并指导现实生产生活,是各工学学科最大的意义所在。
其实一开始想写这篇文章只是回忆起《三体》里有关蒸汽机离心调速器的部分很适合作为自动控制原理这门课程的引入,遂想用它作为开头写一下这门课程的学习笔记;但写着写着发现介绍一些数学知识会更好一些,于是越挖越深不知不觉就写了两万字……感谢你能看到这里。如果发现本文有遗漏或可改进之处,可以在下面的评论区留言,谢谢!
下一篇文章预计介绍一下传递函数、梅逊增益公式等等把第一二章完结,之后就该进入时域分析、频域分析和根轨迹法的正题了。
Hayt W H, Jr, EKemmerly J, etal. 工程电路分析[M]. 第八版. 电子工业出版社, 2012. ↩︎
https://zh.wikipedia.org/wiki/%E8%BD%89%E5%8B%95%E6%85%A3%E9%87%8F ↩︎
https://zh.wikipedia.org/wiki/%E9%BB%8E%E6%9B%BC%E7%A7%AF%E5%88%86 ↩︎
当然也可以认为傅里叶变换是拉普拉斯变换在$\sigma = 0$ 情况下的特例;这时我们是从复频域的角度出发对系统进行的分析,要求你完全地掌握了拉普拉斯变换的意义。不过我个人觉得傅里叶变换清晰的物理图景更适合入手这两个变换,所以还是先从傅里叶变换讲起。 ↩︎
在信号与系统中,我们研究的对象是信号,并用$x(t)$表示输入信号;而在自动控制原理中,我们主要研究系统及其传递函数,因此更多地用$f(t)$表示一个系统的时域函数。 ↩︎
实际物理上可实现系统的传递函数一定是有理真分式(即分子次数小于分母次数)的形式,否则一个信号在经过这个被动元件构成的系统后能量会变大,显然违反了现实世界的物理规则。 ↩︎
https://zh.wikipedia.org/wiki/%E5%87%BD%E6%95%B0%E7%A9%BA%E9%97%B4 ↩︎