当前位置: 华文问答 > 科学

控制系统中的零极点有什么物理意义么?

2013-11-14科学

自动控制理论这门课是不好学。很重要的一个原因是没有特别优秀的教材,并且很可能老师在讲课的时候也不太注重解释「我们到底要干什么」,所以很容易学得云里雾里。

而且,相信我,即使现在感觉学懂了题目都会做了考试也通过了,等到将来学完状态空间描述,学完线性系统理论,甚至再学一些非线性系统的知识之后,你还是会发现以前的好多理解太肤浅,甚至不正确。

要知道零点和极点的物理意义,首先要知道它们是怎么来的。

——这个很简单,从传递函数里来的。

那传递函数是怎么来的呢?

——拉普拉斯变换。

为什么要做拉普拉斯变换?

这个问题就不是那么好回答了。

(拉普拉斯变化有很多种物理意义的解释,我这里只提供其中一种。)要想回答这个问题,我们需要看看所谓的「控制」到底是在干什么。翻开任何一本控制工程基础的教材,引言部分必然会举一系列物理系统的例子,可能罗哩罗嗦一大堆。其实核心只想说明一句话:这个世界里很多现象,是可以(也是必须要)用 常微分方程 来描述的。

输入u(t),输出y(t),还有它们各自对时间t的导数、二阶导数……,一起组成了一个(目前我们只考虑线性的)方程:f(y,dy/dt,....) = g(u, du/dt,...)。线性的意思是,在f()中,y, dy/dt, d2y/dt2(能看懂吧,二阶导数)是不会有平方啊,互相乘之类的事情,只会是 k1*y + k2*dy/dt + k3*d2y/dt2.... 这种形式,k1、k2、k3是常数。

我们不妨认为y是未知的,u是已知的,那么这就是一个关于y(t)的线性常微分方程,而且方程右边是已知的,于是我们可以把它简化写成f(y,dy/dt,....) = g(t)。方程的解y(t)是一个关于时间t的函数。

如果你有一点数学强迫症,那么看到方程的第一反应应该是想求解它。没错。虽然以「自动控制原理」的角度看,求解这个方程似乎没有什么价值,甚至可以说整个「自动控制原理」压根就没想过要求解它,也(似乎)不关心它的解是什么样子的,但是如果学完了线性系统理论(国内很多地方把这门课叫「现代控制理论」,这实在是一个不能再差劲儿的名字了。同理「自动控制原理」听起来也是略奇怪的,不过至少还能忍。「现代控制理论」这名字要吐槽的地方太多,这里暂且不表),你就会发现学习研究一下这个常微分方程的解是很有必要的。

只有知道了方程的解y(t)到底长什么样,才能理解极点的物理意义。

这里就需要补补课了。线性常微分方程怎么解?一个更基础的问题是,它的解长啥样?想了解清楚的话我强烈建议找本相关的教材看一看,其实原理很简单的,不过学习数学的东西还是严谨一些的好。我在这只能试着大概作个介绍。

通常来讲,一个形如 f(y,dy/dt,....) = g(t) 的线性常微分方程,它的解可以分为两个部分:通解加特解。通解就是方程 f(y,dy/dt,....)=0 的解,通解里会有待定的系数,无论系数取多少,通解都满足 f(y,dy/dt,....)=0 。特解呢,就是 f(y,dy/dt,....) = g(t) 的「一个」解。很明显,在没有其它诸如y(0)=a, y'(0)=b的初值条件的情况下,一个特解加上一个「待定系数取任意值」的通解,结果仍然该方程的一个解。

OK,关于线性常微分方程就说到这儿。那它和拉普拉斯变换有什么关系吗?

——拉普拉斯变换可以帮助我们求 f(y,dy/dt,....)=0 的解,也就是求线性常微分方程的通解。

How?

书上说,拉普拉斯变换是一种线性变换,它可以把线性常微分方程变成代数方程。什么意思呢?拉普拉斯变换会把y(t)变成Y(s)(那个公式就不列了,都懂的)。而这个变换是一一对应的,也就是说,一个y(t)对应一个Y(s),可以变过去,还可以变回来。

好,那现在,比如,我有一个关于y(t)的微分方程,不会解,怎么办?

拉普拉斯变换可以变y(t),也就可以变f(y,dy/dt,....)。 f(y,dy/dt,....)=0 会变成 F[Y(s),...]=0。我们不知道y(t)的表达式,于是也就不知道Y(s)的表达式。注意变换是线性的是一一对应的,也就是说如果我们把 F[Y(s),...]=0 看成一个新方程,解出 Y(s),再反变换变回去,就能得到我们原本想求解的y(t)。

这折腾来折腾去的什么好处呢?很简单:对dy/dt 进行拉普拉斯变换,结果是sY(s)-y(0),微分不见了!(千万别忘了-y(0))F[Y(s),...]=0 不再是一个微分方程,而是一个代数方程。 k1*Y(s) + k2*s*Y(s) + ... = c(s)。方程右边通常不是零,而是一个关于s的式子,因为y(0)、y'(0)等等都不一定等于零。接下来可能小学生都能蒙出Y(s)怎么解了吧,用c(s)除以k1+k2*s+k3*s^2+...就行。

最后一步,用拉普拉斯反变换,把求出来的Y(s)变成y(t),就得到 f(y,dy/dt,....)=0 的解了。很简单吧。

关于微分方程,还有最后一点需要说明。我们已经知道了怎么求通解(用拉普拉斯变换),可是,这个通解又究竟长什么样子呢?

我们看看刚才求解过程的最后一步,也就是拉普拉斯反变换。要被反变换的对象是一个分子分母均为多项式的分式。如果你已经熟练掌握了反变换的技巧,你应该知道为了方便查表,可以把这个分式 c(s)/[k1+k2*s+k3*s^2+...],写成一系列简单分式的相加,比如1/(s+a),比如1/[(s+a)^2+w^2],然后就可以查表变回去了。

1/(s+a)的拉普拉斯反变换是什么?exp(-at)。那w^2/[(s+a)^2+w^2]呢?exp(-at)sin(wt)。所以呢,通解最终也就是由一些形如exp(-a1*t)、exp(-a2*t)sin(wt)之类的项相加起来。这就是我们在输入u=0情况下,即 f(y,dy/dt,....) =0 时求得的解y(t)!如果输入u不等于零呢?刚才讲过了,通解加一个特解就是全部的解,也就是说这些项还是会存在于任何一个解中。

OK,知道这么多,够了!下面讲讲零点极点的物理意义是什么。


传递函数是怎么来的?对 f(y,dy/dt,....) = g(u, du/dt,...) 进行拉普拉斯变换,假设初值均为零,然后写出Y(s)/F(s)就行了。那么,极点就是对 f(y,dy/dt,....) 进行拉普拉斯变换提取出Y(s)之后剩下的关于s的多项式(即传递函数分母)的根。

现在,我们再回头看一看常微分方程 f(y,dy/dt,....) =0 的解。 记得30秒前求出的的解的样子吗?那些用拉普拉斯反变换的来的exp(-a1*t)、exp(-a2*t)sin(wt)......,a1、a2是什么?好像,是对某个分子分母都是多项式的分式分解成1/(s+a)之类的时候得到的项。这么说来,-a1、-a2应该是那个分母多项式的根(或者,复平面上根的实部,因为(s+a)^2+w^2的根就是-a+-wi)吧。可是刚才那个分母多项式是什么呢?k1+k2*s+k3*s^2+...,是 f(y,dy/dt,....) 的拉普拉斯变换后,提出公因子Y(s)后留下的多项式。它 和传递函数的分母是一样的!


也就是说,传递函数的极点,和方程 f(y,dy/dt,....) =0 的解,也就是和方程 f(y,dy/dt,....) =g(t) 的解密切相关。

极点有什么物理意义?我随便指定一个输入u(t),u(t) 可以是零(注意这里没有用反馈),那么最终的输出y(t)就是方程 f(y,dy/dt,....) = g(u, du/dt,...) 的解。方程的解是通解加上特解,而通解就是一堆形如exp(-a1*t)、exp(-a2*t)sin(wt)之类的项相加起来,其中-a1、-a2就是传递函数的极点实部!也就是说, 在系统的输出y(t)=blablabla里头,极点(或极点的实部)是位于其数学表达式中指数的幂的位置,与时间t相乘(即exp(p*t)里的p)

如果所有极点都在左半平面,-a1、-a2都是负数,那么随着t趋向于无穷,所有exp(-a1*t)、exp(-a2*t)sin(wt)这些项都趋向于零,于是如果u(t)也为零的话y(t)就等于通解,y(t)趋向于零,所以我们就说系统是稳定的。如果有那么一个极点位于右半平面,即那么有一个-an是大于零的。结果就是随着t趋向于无穷,y(t)里会有那么一个exp(-an*t)趋向无穷大,而其它项都趋向于零,于是y(t)就会趋向于无穷大你的系统就没法稳定了!这就是极点的物理意义。

极点是系统本身的属性,(在没有反馈的情况下),与你怎么调整输入无关。即使你改变了物理系统输入,调整了 g(u, du/dt,...) 这个函数,极点也不会改变。

而零点,则表示输入如何影响系统。因为零点就是 g(u, du/dt,...) 拉普拉斯变换blablabla之后blablabla多项式的根。要说它们有什么直接的物理意义,似乎不太好解释。不过,我们刚才讨论的都是开环的情景,如果系统用上了反馈,开环变成闭环之后, 零点就会参与影响闭环系统的极点了 !关于这时零点是如何发挥作用的,呼,你就慢慢看书慢慢学习吧……