系统动力学与控制论及滑模控制
系统动力学与控制论的理解。
系统
维基百科里是这样定义系统(System)的:
System (from Latin systēma, in turn from Greek σύστημα systēma) is a set of entities, real or abstract, comprising a whole where each component interacts with or is related to at least one other component and they all serve a common objective. Any object which has no relation with any other element of the system is not part of that system but rather of the system environment. A subsystem then is a set of elements, which is a system itself, and a part of the whole system.
翻成中文大体意思就是: 系统,是一系列的真实的或者抽象的对象,以及对象之间的交互影响构成的。
动力学系统
维基百科中是这样定义动力学系统(Dynamical System)的:
The dynamical system concept is a mathematical formalization for any fixed “rule” which describes the time dependence of a point’s position in its ambient space. The mathematical models used to describe the swinging of a clock pendulum, the flow of water in a pipe, or the number of fish each spring in a lake are examples of dynamical systems.
A dynamical system has a state determined by a collection of real numbers, or more generally by a set of points in an appropriate state space. Small changes in the state of the system correspond to small changes in the numbers. The numbers are also the coordinates of a geometrical space—a manifold. The evolution rule of the dynamical system is a fixed rule that describes what future states follow from the current state. The rule is deterministic: for a given time interval only one future state follows from the current state.
系统动力学
而系统动力学(System Dynamics)是这样定义的:
System Dynamics is an approach to understanding the behaviour of complex systems over time. It deals with internal feedback loops and time delays that affect the behaviour of the entire system.
系统动力学是过程导向的研究方法, 擅长于大量变量、高阶非线性系统的研究,系统中的因、果回馈关系环环相扣,例如研究世界人口、生产活动、污染、自然资源等问题的“世界动力学模式”(Forrester, 1973)、研究都市发展动态的“都市动力学模式”(Forrester, 1969)等。
系统动力学应用的领域非常广泛,包含生态、经济、社会、组织、管理、环境保护等。系统动力学研究的主要贡献是对于动态系统反直觉行为的深入了解,透过行为背后的结构性原因(互动机制)来解释为何行为产生如此的变化形态;其次透过电脑的模拟提供了政策设计与学习的练习场。
系统动力学对问题的理解,是基于系统行为与内在机制间的相互紧密的依赖关系,并且透过数学模型的建立与操弄的过程而获得的,逐步发掘出产生变化形态的因、果关系,系统动力学称之为结构。所谓结构是指一组环环相扣的行动或决策规则所构成的网络,例如指导组织成员每日行动与决策的一组相互关连的准则、惯例或政策,这一组结构决定了组织行为的特性。构成系统动力学模式结构的主要元件包含下列几项,“流”(flow)、“积量”(level)、“率量” (rate)、“辅助变量”(auxiliary) (Forrester, 1961)。
控制理论
控制理论(Control Theory)是这样定义的:
In engineering and mathematics, control theory deals with the behavior of dynamical systems. The desired output of a system is called the reference. When one or more output variables of a system need to follow a certain reference over time, a controller manipulates the inputs to a system to obtain the desired effect on the output of the system.
基于以上的东西,我们基本上可以知道,系统是一个由相互存在各种联系的实体构成的集合。动力学系统则是泛指系统成员之间的规则以及变化依赖于时间的变化的系统。系统动力学是用数学的办法来研究系统行为,导向的一种办法。控制理论则是用数学的办法建立规则来引导系统向我们需要的形式转化。
一个动力学系统基本上可以将它当前的输出信号看成是依赖于它当前输入信号以及历史输入信号的一个函数。这样的一个系统的控制器基本上应该是一个反馈控制器。下图是一个简单的闭环反馈控制系统:
图中P是目标系统。C是控制器.r 是参考信号(Reference), y 是输出信号(output), r 与 y 相减,就得到系统误差(Error) e. 控制器C根据e来调整输出控制信号(Control Signal) u 作为系统P的输入信号(Input Signal)。这个控制系统的目的就是让系统P的输出信号 y 尽量的和参考信号 r 一致。 这个是一个简单的单入单出(Single-In-Single-Out, SISO)系统。
一个动力学系统,一般的,可以用一个或者几个,大多数情况下是几个微分方程来表示。这些微分方程可以是线性的也可以是非线性的,对应的是线性系统和非线性系统。 系统稳定性一般由系统的输入输出来决定的。一般认为,一个系统,在任意时间内,如果输入信号是在一定限制范围内,输出信号也在一定限制范围内的话,这个系统就被认为是稳定的,反之则是不稳定的。
对于线性系统,判断其稳定性有简单的办法可循。对系统的状态方程取拉普拉斯变换之后,如果系统的奇点全部位于时间平面的左半轴,或者是说只有在时间是负值的时候才会出现系统奇点,这样的系统,就被认为是稳定的。但是对于非线性系统。对其奇点位置的判断难度相当之大。因此非线性系统控制比线性系统控制难度要大的多。
滑模控制的概念
滑模控制是属于变结构控制的一种。适用于线性系统和非线性系统。出现的时间大约是在上个世纪的50年代。后来有人结合自适应控制的办法发展出了自适应滑模控制。滑模控制的基本想法很简单,就是定义一个切换面S(也叫滑动参数)保这个切换面上系统是稳定的,至少是近似稳定的。然后用控制信号把系统调整到这个切换面上。比方说吧。如果系统状态高于切换面了。控制信号就会把它压下去。低于切换面了,控制信号就会把它托起来。显然,在时间轴上看,就像是系统状态在切换面上产生了滑动,所以叫做滑模控制。
这个理论的还一个目的就是,一旦系统进入了切换面(时间轴上看,就是S收敛到了0),系统就开始调整输出信号,使其与参考信号相吻合(系统误差 e 开始收敛),并且这个收敛只和切换面有关,和外界干扰以及其他的因素没有任何关系。经典的滑模理论中,S和 e 的收敛都是渐近的。也就是说理想状态下,当时间趋向0则S和 e 彻底收敛于0。上个世纪末。满老师(Associate Professor Man Zhihong)和他的同学Xing Huoyu一起发了一篇论文,提出了Terminal Sliding Mode的概念。也就是用一种控制的办法,让S和 e 在有限时间内收敛到0。
前面说了,对于非线性系统要判断其稳定性不能用拉普拉斯变换之后判断奇点位置的办法。所以这里要提到一个人,俄罗斯的一个科学家,叫李亚普诺夫(Lyapunov), 他在19世纪末20世纪初的时候提出了所谓李亚普诺夫稳定性理论,用以判断系统的稳定性,适用于非线性系统。李亚普诺夫稳定性理论分为两个部分。第一个我们叫第一方法(First Method):如果对一个系统状态方程,在某一点上可以找到一个线性系统和其近似相等。如果这个线性系统在这一点上是稳定的。那么就可以说这个非线性系统在这一点上局部稳定。
第二个就是第二方法(Second Method)或者叫直接法(Direct Method),基本想法很简单。比如说吧。一个不知道内部结构是怎么的锅。你往里面丢一个球,如果你希望这个球是稳定的,或者它在哪儿你是知道的。那有什么办法?最简单的办法就是让它停下来别动。也就是让它的能量收敛到0。那么直接法就是说,如果一个系统,考查它的系统能量,如果在时间趋向无穷大时候他的系统能量收敛于0,那么就可以认为这个系统是稳定的。
状态方程
上面说的其实都是要基于系统状态方程。如何获得一个系统的状态方程放后面去和等效原理一起讨论。这里只是简单说一下,对一个动力学系统,一般地,最终可以用两种办法获得系统状态方程。对于对物理不熟悉的人来说,可以用拉各朗日方法(Lagrangian Dynamics),用系统动能与系统势能的差来定义一个拉各朗日函数,然后基于这个拉各朗日函数来获得系统状态方程。对于熟悉物理的人来说,还是直接使用牛顿欧拉办法(Newton-Euler Dynamics), 实际上也就是运用力矩和牛顿第二定律, 来获得系统状态方程。
一个例子
下面假定我们已经获得了系统状态方程.为方便讨论,以一个简单的二阶微分方程为例来说明如果用李亚普诺夫稳定性原理以及滑模控制理论来实现对相应系统的控制。
$$I\frac{d^2\theta}{dt^2}+mlgsin\theta=\tau$$
这是一个倒摆的状态方程. 其中的$\theta$下面用q表示.一阶微分用 $\dot q$表示,二阶微分用$\ddot q$表示.
式中$I$是系统惯量. q 是系统输出. 也就是倒摆转过的角度. m是倒摆的质量, g是万有引力常数,$l$是质心到转轴的距离.右边的$\tau$ 是倒摆受到的力矩,也就是系统输入,以后用u表示.
其中的g和$l$是可以确切知道的,m和$I$未定,假定 R 是参考信号,也就是我们想要这个倒摆怎么动的一个参考,u是我们要得到的控制信号。怎么样产生一个控制信号让这个倒摆的输出 q 符合 参考信号R ,并且保证系统的稳定性(Stability)、 可靠性(Reliability) 和 鲁棒性(这个我真不知道为什么国内是这样翻译的….英文是 Robustness, 指的是系统的抗干扰能力)。 这就是我们要做的.
首先定义切换面 S=0。因为我们需要的是输出 q 符合参考信号R,所以定义一个误差参数 $e = R - q$, 接着由 e 来定义切换面S. 令 $S = \dot e + ke$ ,这样定义的目的是,在切换面上满足 S=0,所以会有$\dot e + ke=0$ 。而这个微分方程的解是$e=e^{-kt}$ ,也就是说误差e指数收敛,这就意味着当时间趋向无穷大的时候, q 渐近趋近参考信号R。$I\ddot q+mgLsin(q) = u \tag{1}$
基于这个状态方程,首先定义追踪误差
$e = q-R \tag{2}$
其中R是参考信号, q是系统输出.
用误差定义滑动参量S。(注意:如果不是追踪系统,一般是使用系统状态参量矢量来定义S,即 $S =CX=C_0 X+C_1 \dot X+C_2\ddot X ……$)
$S = \dot e+ke \tag{3}$
下面用S来定义李亚普懦夫能量函数
$V = (1/2)*SQ(S)\tag{4}$
SQ表示平方运算square
显然V作为能量函数必须大于0,这里定义的V也确实是大于0。依据李亚普懦夫直接法,要让系统稳定,就必须让系统能量收敛,也就是V必须要收敛。V要收敛就需要满足一个条件,那就是V的一阶导数小于0,即 $\dot V <0$。
依 (4)有$\dot V = S\dot S = S(\ddot e+k\dot e)$
依$S = \dot e+ke$
显然$\ddot e = \ddot q - \ddot R$
所以有$\dot V = S(\ddot q - \ddot R +k\dot e) \tag{5}$
由(1) 可以得到 $$\ddot q = \frac{u - mgLsin(q)}{I}$$
代入(5)得到
$\dot V = S( (\frac{u - mgLsin(q)}{I} - \ddot R + k\dot e) \tag{6}$
(6) 式的右边出现了u,这正是我们想要的,因为u是控制信号,是需要我们去产生的,于是我们可以设计一个控制器,产生控制信号u,使得$\dot V < 0$
假定这里面,惯性参数$I$ 、质量m 都是未知的,但是我们知道
$0 < I_1 < I < I_2$ 且 $0 < m_1 < m < m_2$
于是选择
$u = - I_2Sign(S)(|\ddot R+k|\dot e||+mgL/I_1)\tag{7}$
Sign 函数表示取符号. 如果 Sign(5) =1, sign(-7.2) = -1…
将(7) 代入(6)可以得到 $\dot V < -|S| < 0$
于是我们有 V > 0, 且 $\dot V < 0$ ,可以推出 V收敛也就是 $V \to 0$,也就是 $(1/2)*SQ(S) \to 0$
一旦 V 收敛,S也收敛,也就有 S = 0. 也就是系统进入切换面。S收敛了以后 就有 $\dot e + ke=0$,,这个微分方程的解就是 $e=e^{-kt}$ ,因为k是正常数,所以 e 指数收敛,即 $e \to 0$
而依据 e 的定义,就有 $q - R \to 0$ ,也就是 $q \to R$ 输出信号收敛于参考信号,追踪目的达到!
滑模的好处在于,控制信号的作用是调整状态,使得S收敛。一旦S收敛了以后,系统误差只和S有关,也就是说外界干扰以及内部噪音之类的东西对误差的收敛没有影响,保证了系统的稳定性的同时,也有很强的抗干扰能力。所以在导弹跟踪等领域的应用是很广的。