系统稳定性判定分析(一)---- 常系数线性系统内部稳定性

2024-05-01 15:20

本文主要是介绍系统稳定性判定分析(一)---- 常系数线性系统内部稳定性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 线性系统稳定性分析
    • 线性定常系统(线性时不变/自治系统)稳定性分析
    • 线性定常系统内部稳定性示例
  • 参考文献

  从上一节 系统稳定性的介绍中可以得知,分析系统内部稳定(Lyapunov意义下稳定)时可不考虑系统的输出情况,可直接通过系统的状态方程分析系统的稳定性。系统的状态方程根据构建形式的不同,可分为线性系统与非线性系统。如下基于由简入繁的原则,首先整理线性系统的稳定性分析过程。

本文内容主要基于Antsaklis, P. J., & Michel, A. N. (1997). Linear systems (Vol. 8). New York: McGraw-Hill. 一书。

线性系统稳定性分析

   ~~~~     线性系统根据状态方程中是否显含时间变量 t t t(状态变量本身为时间 t t t的函数,因此状态方程一定与时间 t t t有关。若状态方程中显示的包含时间 t t t的表达式,则表示状态方程显含时间变量 t t t。否则,状态方程不显含时间变量 t t t),可将线性系统划分为线性自治系统(或线性时不变系统) x ˙ = f ( x ( t ) ) , (1) \dot{\pmb{x}}=f(\pmb{x}(t)),\tag{1} x˙=f(x(t)),(1)与线性非自治系统(线性时变系统) x ˙ = f ( t , x ( t ) ) , (2) \dot{\pmb{x}}=f(t,\pmb{x}(t)),\tag{2} x˙=f(t,x(t)),(2)通常为表述简单,系统 (1) 与 (2) 可直接省略括号内的时间变量 t t t,表示为 x ˙ = f ( x ) \dot{\pmb{x}}=f(\pmb{x}) x˙=f(x) x ˙ = f ( t , x ) \dot{\pmb{x}}=f(t,\pmb{x}) x˙=f(t,x)
   ~~~~     如下首先分析线性自治系统的稳定性。

线性定常系统(线性时不变/自治系统)稳定性分析

   ~~~~     考虑如下线性时不变系统 x ˙ = A x . (3) \dot{\pmb{x}}=A\pmb{x}.\tag{3} x˙=Ax.(3)定义 x e \pmb{x}_e xe 为系统(3)平衡点,则系统(3)李雅普诺夫意义下的稳定性可通过如下定理进行判定:

定理1. 系统(3)的平衡点 x e \pmb{x}_e xe稳定的,当且仅当其系数矩阵 A A A (或者系统(3)的雅可比矩阵) 的所有特征值的实部小于等于0,且每个实部为零的特征值都有一个相关的 1 阶 Jordan 块。系统(3)的平衡点 x e \pmb{x}_e xe渐近稳定的,当且仅当其系数矩阵 A A A (或者系统(3)的雅可比矩阵) 的所有特征值的实部小于0
相反地,系统(3)的平衡点 x e \pmb{x}_e xe不稳定的,当且仅当其系数矩阵 A A A (或者其雅可比矩阵) 至少存在一个实部大于0的特征值,或者其实部为零的特征值所对应的Jordan块的阶数大于1阶。

补充: 有关特征值,Jordan块的介绍可参见矩阵分析:特征值,相似度对角化,Jordan标准形。
注: 通常我们所说的一个系统的收敛是与系统平衡点的渐近稳定有关,关于两者有如下定义:

定义1. 系统(3)的平衡点 x e \pmb{x}_e xe 是渐近稳定的当且仅当其(1) 是稳定的,(2) 当 t → ∞ t\to \infty t 时,系统(3)的解趋近于平衡点 x e \pmb{x}_e xe

线性定常系统内部稳定性示例

【示例一】分析如下系统在李雅普诺夫意义下的稳定性:
[ x ˙ 1 x ˙ 2 ] = [ 0 1 − 1 0 ] [ x 1 x 2 ] . (4) \begin{bmatrix} \dot x_1\\ \dot x_2 \end{bmatrix}=\begin{bmatrix} 0&1\\ -1&0 \end{bmatrix}\begin{bmatrix} x_1\\ x_2\end{bmatrix}.\tag{4} [x˙1x˙2]=[0110][x1x2].(4)通过计算可以得知系统(4)的平衡点 x e = [ x 1 e , x 2 e ] T = [ 0 , 0 ] T \pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T xe=[x1e,x2e]T=[0,0]T,其特征值为 λ 1 , 2 = ± i \lambda_{1,2} = \pm i λ1,2=±i,其Jordan块为 [ i 0 0 − i ] \begin{bmatrix} i&0\\ 0&-i \end{bmatrix} [i00i]。根据定理1,系统(4)的平衡点 x e = [ x 1 e , x 2 e ] T = [ 0 , 0 ] T \pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T xe=[x1e,x2e]T=[0,0]T是稳定的。系统(4)在初值为(0,0)条件下的运行轨迹如下所示:
在这里插入图片描述
系统(4)在初值为(0,1)条件下的运行轨迹如下所示:
在这里插入图片描述
结合以上两图可知,系统(4)的平衡点是稳定的,整体运行轨迹在平衡点的一定范围内波动。

【示例二】分析如下系统在李雅普诺夫意义下的稳定性:
[ x ˙ 1 x ˙ 2 ] = [ 0 1 0 0 ] [ x 1 x 2 ] . (5) \begin{bmatrix} \dot x_1\\ \dot x_2 \end{bmatrix}=\begin{bmatrix} 0&1\\ 0&0 \end{bmatrix}\begin{bmatrix} x_1\\ x_2\end{bmatrix}.\tag{5} [x˙1x˙2]=[0010][x1x2].(5)通过计算可以得知系统(5)的平衡点 x e = [ x 1 e , x 2 e ] T = [ 0 , 0 ] T \pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T xe=[x1e,x2e]T=[0,0]T,其特征值为 λ 1 , 2 = 0 \lambda_{1,2} = 0 λ1,2=0,其Jordan块为 [ 0 1 0 0 ] \begin{bmatrix} 0&1\\ 0&0 \end{bmatrix} [0010],特征值0所对应的Jordan块的阶数为2。根据定理1,系统(5)的平衡点 x e = [ x 1 e , x 2 e ] T = [ 0 , 0 ] T \pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T xe=[x1e,x2e]T=[0,0]T是不稳定的。系统(5)在初值为(0,1)条件下的运行轨迹如下所示:
在这里插入图片描述
【示例三】分析如下系统在李雅普诺夫意义下的稳定性:
[ x ˙ 1 x ˙ 2 ] = [ 2.8 9.6 9.6 − 2.8 ] [ x 1 x 2 ] . (6) \begin{bmatrix} \dot x_1\\ \dot x_2 \end{bmatrix}=\begin{bmatrix} 2.8&9.6\\ 9.6&-2.8 \end{bmatrix}\begin{bmatrix} x_1\\ x_2\end{bmatrix}.\tag{6} [x˙1x˙2]=[2.89.69.62.8][x1x2].(6)通过计算可以得知系统(6)的平衡点 x e = [ x 1 e , x 2 e ] T = [ 0 , 0 ] T \pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T xe=[x1e,x2e]T=[0,0]T,其特征值为 λ 1 , 2 = ± 10 \lambda_{1,2} = \pm10 λ1,2=±10,其Jordan块为 [ 10 0 0 − 10 ] \begin{bmatrix} 10&0\\ 0&-10 \end{bmatrix} [100010],存在一个实部大于0的特征值。根据定理1,系统(6)的平衡点 x e = [ x 1 e , x 2 e ] T = [ 0 , 0 ] T \pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T xe=[x1e,x2e]T=[0,0]T是不稳定的。系统(6)在初值为(0,1)条件下的运行轨迹如下所示:在这里插入图片描述
【示例四】分析如下系统在李雅普诺夫意义下的稳定性:
[ x ˙ 1 x ˙ 2 ] = [ − 1 0 − 1 − 2 ] [ x 1 x 2 ] . (7) \begin{bmatrix} \dot x_1\\ \dot x_2 \end{bmatrix}=\begin{bmatrix} -1&0\\ -1&-2 \end{bmatrix}\begin{bmatrix} x_1\\ x_2\end{bmatrix}.\tag{7} [x˙1x˙2]=[1102][x1x2].(7)通过计算可以得知系统(7)的平衡点 x e = [ x 1 e , x 2 e ] T = [ 0 , 0 ] T \pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T xe=[x1e,x2e]T=[0,0]T,其特征值为 λ 1 = − 1 \lambda_1= -1 λ1=1 λ 2 = − 2 \lambda_2= -2 λ2=2其Jordan块为 [ − 1 0 0 − 2 ] \begin{bmatrix} -1&0\\ 0&-2 \end{bmatrix} [1002],存在一个实部大于0的特征值。根据定理1,系统(7)的平衡点 x e = [ x 1 e , x 2 e ] T = [ 0 , 0 ] T \pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T xe=[x1e,x2e]T=[0,0]T是渐近稳定的。系统(7)在初值为(0,1)条件下的运行轨迹如下所示:
在这里插入图片描述

注: 上述四个示例的代码如下,需适当修改函数中的状态方程表达式,以及主函数中的时间变量的区间范围。

function dxdt = vdp1(t,x)%dxdt = [x(2);0];
%  dxdt = [x(2);-x(1)];
% dxdt = [-x(1);-x(1)-2*x(2)]; %dxdt = [x(2);-2*sin(x(1))];dxdt = [2.8*x(1)+9.6*x(2);9.6*x(1)-2.8*x(2)];
end
%[t,y] = ode45(odefun,tspan,y0)
[t,x] = ode45(@vdp1,[0 20],[0,1]);
plot(t,x)
xlabel('Time t');
ylabel('Solution x');
legend('x_1','x_2')

参考文献

[1] Antsaklis, P. J., & Michel, A. N. (1997). Linear systems (Vol. 8). New York: McGraw-Hill.
[2] 线性系统稳定性一般定理、齐次线性系统稳定性
[3] 矩阵分析:特征值,相似度对角化,Jordan标准形

这篇关于系统稳定性判定分析(一)---- 常系数线性系统内部稳定性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/952011

相关文章

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3