引言
——为什么要线性化?
上篇主要介绍了卡尔曼滤波的推导过程,由前篇的描述可知,卡尔曼滤波的应用前提是系统需为线性系统,且系统的噪声(过程噪声、测量噪声)均为高斯白噪声。但实际上,几乎所有的系统是非线性的(倒立摆、机器人系统),即系统状态变量的差分方程是非线性的。既然如此,是不是意味着卡尔曼滤波无法应用了呢?当然不是。我们知道,对于非线性系统的分析复杂,虽然有许多方法对其分析(相平面、描述函数法等),但很多情况下依然会选择线性化处理,使其等效为一个线性系统。经过线性化话处理后,卡尔曼滤波的适用条件便可满足,这也就是扩展卡尔曼滤波(Extern Kalman Filter, EKF)的由来。
本篇主要介绍在操作点(an operator point)处对非线性系统的雅克比线性化(Jacobian Linearization)的过程以及实例分析。
一、控制系统的数学描述
设一动态系统的数学模型为:
其中该系统的状态变量向量
为便于对上述模型的理解,给出两个实例。
实例1:线性系统
实例2:非线性系统
二、线性系统与非线性系统的差别
通过上述两个实例了解了系统模型的描述形式,但这两个系统之间有何差别?即线性系统与非线性系统的区别在哪呢?了解控制对象的基本属性是我们设计控制算法的前提。
(1)齐次性
线性系统可以应用线性叠加原理,也就是满足齐次性,而描述非线性系统的数学模型为非线性微分方程,因此叠加原理不可用。故能否应用叠加原理是这两类系统的本质区别。
(2)平衡态
什么是平衡态(an equilibrium point)
平衡态的定义:在无外力作用且系统输出的各阶倒数等于零时,系统处于平衡态,而此时系统的状态点即为平衡点(
显然,对于线性系统,只有一个平衡状态
通过上述两个实例不难分析出非线性系统与线性系统之间的这两个特性。这一部分参考胡寿松版《自动控制原理》第八章即可。
三、非线性系统的线性化
——如何线性化?
若上述系统为一非线性系统,则该系统在一个操作点
若该非线性系统的运动在标称系统轨迹(nominal system trajectory)的邻域内,即
此时
忽略高阶项并化简,可知在操作点
————————————————————
————————————————————
其中:
因此,对比式(1)(2)可知,在标称轨迹
——————————————
——————————————
不难得知,上述线性化方程式已成为Kalman滤波所需的状态方程和观测方程形式,根据前篇的Kalman滤波基本方程(黄金五条),即可得基于状态偏差的Kalman滤波递推方程的最优估计(PX4飞控基于此)。
四、实例分析
倒立摆(A pendulum)
倒立摆的动态模型如上所示,系统的平衡方程[5]:
令状态变量
- 在平衡点
处的线性化方程如下所示:
- MATLAB code实现如下
syms x1 x2 u;
syms M g l I;
x = [x1 x2];
f1 = x2;
f2 = -(M*g*l/I)*sin(x1)+u/I;
f = [f1; f2];
F = jacobian(f,x)
G = jacobian(f,u)
xp = [pi 0];
A = subs(F, x , xp)
五、小结
查阅这部分文献,会发现对非线性系统线性化的讨论,多是对非线性系统的平衡点处系统性能的讨论,也许会有如下疑问。
Why do we linearize a nonlinear equation around an equilibrium point?www.researchgate.net事实上,以无人机为例,应用EKF进行状态最优估计中,根据无人机的当前飞行轨迹处进行线性化,而不是在其平衡点处,因此,应用EKF时,不可避免地需要考虑系统的发散问题。
参考文献
[1]Luc Jaulin. 移动机器人原理与设计[M]. 机械工业出版社. 2018. Page_40
[2] 胡寿松. 自动控制原理(第5版)[M]. 科学出版社, 2007. Page_387
[3] Jacobian Linearizations, equilibrium points.
[4] Linearize Nonlinear Models - MATLAB & Simulink - MathWorks
[5] ECE311 - Dynamic Systems and Control Linearization of Nonlinear Systems.
[6] 付梦印, 邓志红, 闫莉萍. Kalman滤波理论及其在导航系统中的应用[M]. 科学出版社, 2010. Page_80