一、什么是稳定点
一个控制系统就和一个社会一样,稳定性是首先要解决的重要问题,是其他一切工作的基础。稳定性问题的字面意思很好理解了,那就是系统在受到扰动后,能否能有能力在平衡态继续工作。大家都知道,历史上社会改革成本很高,且以失败者居多,从控制论的角度来看,就是对社会这个大系统的稳定性研究不够,导致扰动发生后,社会发散了。
要研究稳定,首先要研究稳定点,那什么是稳定点呢?我们以发射火箭为例
可见稳定点就是系统状态不再发生变化的点,它可能不止一个,它也可能很脆弱,稍微有个扰动,就不稳定了。
二、什么是李雅普诺夫稳定
早在1892年,俄国有一个叫李雅普诺夫的学者发表了一篇著名的文章《运动稳定性一般》问题,建立了关于运动稳定的一般理论,光看这个文章的名字就不一般,也确实,在尔后百余年,这个理论在数学、力学和控制理论中全面开花,已经成为稳定性研究方向的基础性理论,俄罗斯人对于数学上和工程上的直觉确实令人赞叹。
李雅普诺夫稳定性理论研究的是在扰动下稳定点的稳定性问题。
简单来说,如果稳定状态 xex_exe 受到扰动后,仍然停留在 xex_exe 附近,我们就称 xex_exe 在李雅普诺夫意义下是稳定的(Lyapunov stable)。
如果稳定状态 xex_exe 受到扰动后,最终都会收敛到 xex_exe,我们就称 xex_exe在李雅普诺夫意义下是渐进稳定的(Asymptotically stable)。
如果稳定状态xex_exe受到任何扰动后,最终都会收敛到 xex_exe,我们就称 xex_exe在李雅普诺夫意义下是大范围内渐进稳定的(Asymptotically stable in large)。
相反,如果稳定状态 xex_exe 受到某种扰动后,状态开始偏离 xex_exe,我们就称xex_exe 在李雅普诺夫意义下是不稳定的(Unstable)。
示意图如下:
下面我们就分别具体看一下。
2.1 什么是李雅普诺夫意义下的稳定
2.2 什么是渐进稳定
2.3 什么是大范围渐进稳定
2.4 什么是不稳定
三、李雅普诺夫第一法
可见,与原轨迹还是比较接近的。一般的书上,对于李雅普诺夫第一法都是一笔带过,其实在工程实践中,第一法应用非常多,比如复杂的飞机飞行控制,就是将飞机模型线性化成多个线性化模型进行设计,感兴趣的可参见Design an LQR Servo Controller in Simulink。
四、李雅普诺夫第二法
五、MATLAB代码
鉴于很多知友对文章中插图的MATLAB代码感兴趣,先将部分代码附录如下,其余按格式更改即可。
首先是定义状态方程函数:
function d=dxdt(t,x)d=[ x(2)+x(1)*(2-x(1)^2-x(2)^2); -x(1)+x(2)*(2-x(1)^2-x(2)^2) ];
根据状态方程,画出变量轨迹:
figure('color','w');
hold on
for theta=[0:20]*pi/10x0=3*[cos(theta);sin(theta)];%定义初始值数组[t,x]=ode45(@dxdt,[0:0.1:8],x0);plot(x(:,1),x(:,2),'linewidth',0.5)quiver(x(:,1),x(:,2),gradient(x(:,1)),gradient(x(:,2)),'linewidth',3.0);%增加轨迹方向箭头
end
for theta=[0:2:20]*pi/10x0=1e-5*[cos(theta);sin(theta)];[t,x]=ode45(@dxdt,[0:0.2:20],x0);plot(x(:,1),x(:,2),'linewidth',0.5)quiver(x(:,1),x(:,2),gradient(x(:,1)),gradient(x(:,2)),'linewidth',1.5)xlabel('x1','FontSize',18,'FontWeight','bold','Color','r');ylabel('x2','FontSize',18,'FontWeight','bold','Color','r')title('Made by J P
https://zhuanlan.zhihu.com/p/58738073