【matlab】李雅普诺夫稳定性分析

目录

引言

一、基本概念

二、李雅普诺夫稳定性分析方法

[1. 第一方法(间接法)](#1. 第一方法(间接法))

[2. 第二方法(直接法)](#2. 第二方法(直接法))

三、应用与发展

matalb代码

对称矩阵的定号性(正定性)的判定

线性定常连续系统的李雅普诺夫稳定性

线性定常离散系统的李雅普诺夫稳定性


引言

李雅普诺夫稳定性分析是俄国数学家和力学家A.M.李雅普诺夫在1892年创立的用于分析系统稳定性的理论。该理论能同时适用于分析线性系统和非线性系统、定常系统和时变系统的稳定性,是更为一般的稳定性分析方法。以下是对李雅普诺夫稳定性分析的基本介绍:

一、基本概念

  1. 标量函数的定号性
    • 正定(半正定):若V(0)=0,且对任意非零x,V(x)>0(≥0),则称标量函数V(x)正定(半正定)。
    • 负定(半负定):类似地,若V(x)<0(≤0),则称标量函数V(x)负定(半负定)。
    • 非负定(非正定):正定和半正定(负定和半负定)统称为非负定(非正定)。
    • 不定:无任何定号性的称为不定。
  2. 实对称矩阵的正定性
    • 定理:实对称矩阵A是正定(半正定)的,当且仅当所有特征值均大于(大于等于)零;或者所有主子式均大于(大于等于)零。
  3. 李雅普诺夫稳定性
    • 平衡状态:对于系统,满足f(x)=0的状态x称作系统的平衡状态或平衡点。
    • 稳定性:若对于任意给定正实数ε,都存在δ,使得从满足不等式|x0|≤δ的任意初始状态出发的系统运动,满足|x(t)|≤ε(t≥0),则称系统的平衡状态是(在李雅普诺夫意义下)稳定的。
    • 渐近稳定:若平衡状态不仅是李雅普诺夫稳定的,还存在一个邻域(吸引域),从该邻域内出发的运动都会渐进地收敛到平衡点,则称平衡状态是渐近稳定的。
    • 全局渐近稳定:若渐近稳定且吸引域充满整个状态空间,则称平衡状态是全局渐近稳定的。

二、李雅普诺夫稳定性分析方法

1. 第一方法(间接法)
  • 原理:将系统的描述在平衡点附近进行线性化,针对线性化模型进行稳定性判断,判断雅克比矩阵A的特征值的实部。
  • 稳定性判别定理
    • 若A的特征值均具有负实部,则系统是渐近稳定的;
    • 若存在特征值具有正实部,则系统是不稳定的;
    • 其他情况,则不能判定。
2. 第二方法(直接法)
  • 原理:直接构造一个正定的标量函数V(x)(能量函数),通过判断该函数沿系统状态轨线对时间的导数V'(x)的定号性来判别系统平衡状态的稳定性。
  • 稳定性判别定理
    • 若V(x)正定,V'(x)负定,则原点是渐近稳定的;
    • 若V(x)正定,V'(x)半负定,且V'(x)在原点外不恒为零,则原点是渐近稳定的;
    • 若V(x)正定,V'(x)半负定,但V'(x)在原点外恒为零,则原点是稳定的;
    • 若V(x)正定,V'(x)不定,则不能判定稳定性。

三、应用与发展

李雅普诺夫稳定性理论自提出以来,一直是指导系统稳定性研究的重要工具。特别在非线性系统稳定性分析方面,该理论显示了其独特的优越性。随着研究的深入,李雅普诺夫第二方法被推广到研究一般系统的稳定性,如度量空间中不变集合的稳定性、大系统或多级系统的稳定性等。

总之,李雅普诺夫稳定性分析是一种重要的系统稳定性分析方法,它提供了从能量角度判断系统稳定性的新思路,并在实际应用中得到了广泛的验证和应用。

matalb代码

对称矩阵的定号性(正定性)的判定

判别对称矩阵的定号性(正定性)的方法主要有塞尔维斯特定理的判别法、矩阵特征值判别法和合同变换法。
判定矩阵正定性的函数posit_def()的主要调用格式为:
sym_P=posit_def(P)
其中,输入矩阵P须为对称矩阵,ü输出sym_P为'positive', 'nonnegat','negative','nonposit'和'undifini'分别表示输入矩阵P为正定、非负定(半正定)、负定、非正定(半负定)与不定。
eg:

=[1 -1 -1; -1 3 2; -1 2 -5];
result_state=posit_def(P);    % 采用合同变换法判定矩阵定号性
switch  result_state(1:5)       % 运用开关语句,分类陈述矩阵正定否的判定结果 
    case 'posit'
        disp('The matrix is a positive definite matrix.')
    otherwise
        disp('The matrix is not a positive definite matrix.')
end 

基于合同变换法的矩阵定号性(正定性)的判定函数posit_def()

function sym_P=posit_def(P)
[m,n]=size(P);
if n>1
   for i=1:n-1
      for j=i:n       dia_v(j)=abs(P(j,j));      end
      [mindv,imin]=max(dia_v(i:n));
      imin=imin+i-1;
      if mindv>0
         if imin > i
            a=P(imin,:);  P(imin,:)=P(i,:);  P(i,:)=a;
            b=P(:,imin);  P(:,imin)=P(:,i);  P(:,i)=b;    
         end
         for j=i+1:n
            x=P(i,j)/P(i,i);
            P(:,j)=P(:,j)-P(:,i)*x; P(j,:)=P(j,:)-P(i,:)*x;
         end
      end
   end
end
for i=1:n
    dia_vect(i)=P(i,i);
end
mindv=min(dia_v);  maxdv=max(dia_v);
if mindv>0
    sym_P='positive';
elseif mindv>=0
    sym_P='nonnegat';        
elseif maxdv<0
    sym_P='negative';        
elseif maxdv<=0
    sym_P='nonposit';        
else
    sym_P='undifini';       
end 

线性定常连续系统的李雅普诺夫稳定性

基于此函数求解李雅普诺夫方程所得对称矩阵解后,通过判定该解矩阵的正定性来判定线性定常连续系统的李雅普诺夫稳定性。函数lyap()的主要调用格式为:
P=lyap(A,Q)
其中,矩阵A和Q分别为连续时间李雅普诺夫矩阵代数方程 PA +A tP =-Q的已知矩阵,即输入条件; 而P为该矩阵代数方程的对称矩阵解。
eg:

下面分别基于矩阵特征值和合同变换两种方法判定李雅普诺夫方程的解的正定性,再来判定线性系统的渐近稳定性。

A=[0 1; -1 -1];
Q=eye(size(A,1));                % 取Q矩阵为与A矩阵同维的单位矩阵
P=lyap(A,Q);                       % 解李雅普诺夫代数方程,得对称矩阵解P
P_eig=eig(P);                       % 求P的所有特征值
if min(P_eig)>0                   % 若对称矩阵P的所有特征值大于0,则矩阵P正定,
                                                    % 即系统为李雅普诺夫稳定的
    disp('The system is Lypunov stable.')
else                                      % 否则为不稳定
    disp('The system is not Lypunov stable.')
end 

result_state=posit_def(P);             % 用合同变换法判别矩阵P的正定性
switch  result_state(1:8)
    case 'positiv'                              % 若矩阵P正定,则系统为李雅普诺夫稳定的
        disp('The system is Lypunov stable. ')
    otherwise                                  % 否则为不稳定
        disp('The system is not Lypunov stable. )
end

线性定常离散系统的李雅普诺夫稳定性

与连续李雅普诺夫矩阵代数方程函数lyap()的调用格式类似,函数dlyap()的主要调用格式为:

P=dlyap(G,Q)

其中矩阵G和Q分别为需求解的离散时间李雅普诺夫矩阵代数方程的已知矩阵,即输入条件;而P为该矩阵代数方程的对称矩阵

G tPG -P =-Q

eg:

G=[0 1; -0.5 -1];
Q=eye(size(G,1));
P=dlyap(G,Q);
result_state=posit_def(P);
switch  result_state(1:5)
    case 'posit'
        disp('The system is Lypunov stable. ')
    otherwise
        disp('The system is not Lypunov stable.' )
end
相关推荐
Evand J3 小时前
LOS/NLOS环境建模与三维TOA定位,MATLAB仿真程序,可自定义锚点数量和轨迹点长度
开发语言·matlab
孤亭远见7 小时前
COMSOL with Matlab
matlab
图南楠10 小时前
simulink离散传递函数得到差分方程并用C语言实现
matlab
信号处理学渣10 小时前
matlab画图,选择性显示legend标签
开发语言·matlab
机器学习之心21 小时前
Bayes-GRU-Attention的数据多特征分类预测Matlab实现
matlab·分类·gru
叶庭云21 小时前
Matlab 和 R 语言的数组索引都是从 1 开始,并且是左闭右闭的
matlab·编程语言·r·数组索引·从 1 开始
γ..1 天前
基于MATLAB的图像增强
开发语言·深度学习·神经网络·学习·机器学习·matlab·音视频
IT猿手1 天前
基于PWLCM混沌映射的麋鹿群优化算法(Elk herd optimizer,EHO)的多无人机协同路径规划,MATLAB代码
算法·elk·机器学习·matlab·无人机·聚类·强化学习
超级大咸鱼1 天前
CW信号的正交解调
matlab·verilog·fpga·数字信号·解调·正交解调·cw
乌恩大侠2 天前
画图,matlab,
开发语言·matlab