matlab求lypunov,【原创】Lyapunov、Sylvester和Riccati方程的Matlab求解

2023-11-12

Lyapunov、Sylvester和Riccati方程是控系统常用到的几个方程,应用和计算比较广泛

在这里我们只要讨论下Lypunov方程的连续方程、离散方程的数值和解析解法,其中数值解法MATLAB提供的直接的lyap()和dlyap()函数

一、连续Lyapunov方程

连续Lyapunov方程可以表示为

324619ae995a043bc12bde7d078becb8.gif

1.gif (936 Bytes, 下载次数: 24)

2009-1-12 10:17 上传

Lyapunov方程来源与微分方程稳定性理论,其中要求C为对称正定的n×n方阵,从而可以证明解X亦为n×n对称矩阵,这类方程直接求解比较困难,不过有了Matlab中lyap()函数,就简单多了。

>> A=[1 2 3;4 5 6;7 8 0]

A =

1     2     3

4     5     6

7     8     0

>> C=-[10 5 4;5 6 7;4 7 9]

C =

-10    -5    -4

-5    -6    -7

-4    -7    -9

>> X=lyap(A,C)

X =

-3.9444    3.8889    0.3889

3.8889   -2.7778    0.2222

0.3889    0.2222   -0.1111复制代码二、Lyapunov方程的解析解

利用Kroncecker乘积的表示方法,可以将Lyapunov方程写为

324619ae995a043bc12bde7d078becb8.gif

2.gif (1.06 KB, 下载次数: 12)

2009-1-12 10:17 上传

可见,方程有唯一解的条件并不局限与C对称正定,只要满足 非奇异即可保证方程唯一解。同时也打破了传统观念,C必须对称正定的。

function x=lyap2(A,C)

%Lyapunov方程的符号解法

n=size(C,1);

A0=kron(A,eye(n))+kron(eye(n),A);

c=C(:);

x0=-inv(A0)*c;

x=reshape(x0,n,n)复制代码恩下面看一个示例,体会下符号解法

>>A=[1 2 3;4 5 6;7 8 0];

>>C=-[10 5 4;5 6 7;4 7 9];

>>x=lyap2(sym(A),sym(C))

x =

[ -71/18,   35/9,   7/18]

[   35/9,  -25/9,    2/9]

[   7/18,    2/9,   -1/9]复制代码三、离散Lyapunov方程

离散Lyapunov方程的一般形式为

324619ae995a043bc12bde7d078becb8.gif

3.gif (987 Bytes, 下载次数: 12)

2009-1-12 10:27 上传

Matlab中直接提供了dlyap()函数求解该方程:X=dlyap(A,Q)

其实,如果A矩阵非奇异,则等式两边同时右乘

324619ae995a043bc12bde7d078becb8.gif

4.gif (904 Bytes, 下载次数: 6)

2009-1-12 10:27 上传

得到

324619ae995a043bc12bde7d078becb8.gif

5.gif (1.39 KB, 下载次数: 6)

2009-1-12 10:27 上传

就可以将其变换成连续的Sylvester方程

324619ae995a043bc12bde7d078becb8.gif

6.gif (1.99 KB, 下载次数: 8)

2009-1-12 10:27 上传

而Sylvester方程是广义Lyapunov方程,故离散的Lyapunov方程还可以使用下面的方法求解

B=-inv(A’)

C=Q*inv(A’)

X=lyap(A,B,C)复制代码下面总结下我们上面的讲到的知识点:

X=lyap(A,C)                                 连续Lyapunov方程数值解法

X=lyap2(A,C)                               连续Lyapunov方程符号解法

X=lyap(A,B,C)                                广义Lyapunov方程,即Sylvester方程

X=dlyap(A,Q)或者X=lyap(A,-inv(A’),Q*inv(A’))    离散Lyapunov方程

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab求lypunov,【原创】Lyapunov、Sylvester和Riccati方程的Matlab求解 的相关文章

随机推荐

  • Java异步执行方法

    一 利用多线程 直接new线程 Thread t new Thread Override public void run longTimeMethod 使用线程池 private ExecutorService executor Execu
  • 机器学习实验1---决策树预测泰坦尼克数据集

    泰坦尼克号乘客数据集分析 ID3算法决策树 泰坦尼克问题是一个比较经典的案例 此次实验的目的在于用决策树进行乘客的生存预测 数据集中的具体字段为 数据 含义 PassengerId 乘客编号 Survived 是否幸存 Pclass 船票等
  • 为什么要做一款ERP软件——开源软件诞生7

    技术之外的探讨 第7篇 用日志记录 开源软件 的诞生 赤龙ERP开源地址 点亮星标 感谢支持 与开发者交流 kzca2000 码云 https gitee com redragon redragon erp GitHub https git
  • 微搭低代码学习之销售员销售目标采集系统开发

    四月二十三 春意渐浓 草木抽出新枝 鸟儿唱响欢融 花开满园 香气袭人 阳光明媚 人们心情舒畅 愿这美好的日子 伴随你一生 使用Notion AI提问 写一首关于4月23日的诗 文章目录 前言 一 销售员销售目标采集系统需求分析 一 需求背景
  • Matplotlib绘制混淆矩阵及colorbar标签设置

    本文提供一种通过Matplotlib绘制混淆矩阵并调整colorbar标签的程序 直接上程序 from sklearn metrics import confusion matrix import matplotlib pyplot as
  • JS从编译到运行代码的过程

    js运行分为两个阶段 具体AST树以及bytecode等名词看我上一篇文章 浏览器工作原理 1 编译阶段 js代码 gt AST树 代码被解析的过程 v8引擎内部会在堆内存帮助我们创建一个对象 GlobalObject gt GO 简称GO
  • JS闭包理解

    JS闭包 1 闭包 每次看到jQuery的时候 首先想到的就是闭包 这是个常谈的问题了 今天重新回忆了一下闭包 什么是闭包 当有一个函数想要访问另一个函数内部的变量 这个是访问不了的 所有我们要用闭包来访问 所以简单的来说 闭包就是连接函数
  • STM32使用IIC协议驱动0.96寸OLED屏

    IIC是常用的协议之一 它通过不同的地址来区分设备 并且端口需要是开漏模式 并且需要接上拉电阻 要使用IIC驱动OLED 首先要配置IIC void I2C Configuration void I2C InitTypeDef I2C In
  • 程序员工资大概组成【刚毕业的大学生看过来】

    一 程序员的薪资组成是什么样子的呢 薪资组成因人而异 受到很多因素的影响 如工作地点 工作经验 工作职责 专业领域等 一般而言 中国程序员的薪资组成包括基本工资 绩效工资 津贴和奖金等 在中国 程序员的平均薪资水平受到地区 行业和职业经验等
  • C++实现一个线程池

    一 为什么使用线程池 大家都知道C 支持多线程开发 也就是支持多个任务并行运行 我们也知道线程的生命周期中包括创建 就绪 运行 阻塞 销毁等阶段 所以如果要执行的任务很多 每个任务都需要一个线程的话 那么频繁的创建 销毁线程会比较耗性能 有
  • 【计算机视觉

    文章目录 一 检测相关 9篇 1 1 Boosting Detection in Crowd Analysis via Underutilized Output Features 1 2 CircleFormer Circular Nucl
  • 油猴安装错误问题(下载中断问题)及脚本安装

    第一步 在电脑c盘找到这个文件 C Windows System32 drivers etc 然后用记事本打开hots 打开之后如此图 2 在host文件最后面 添加 131 253 33 219 edge microsoft com 13
  • 利用python绘制二三维曲面和矢量流线图

    为了实现不同数据的可视化 最近研究了python环境下的可视化方案 为后续的流体运动仿真模拟做好储备 由于python处理数据的便利性 导致目前很多后端处理或者可视化成图操作都在python中实现 比如前端是vue 加上简单的交互操作 后端
  • nextjs的getStaticProps要点

  • 24时区来源,CST,CET,UTC,DST,Unix时间戳概述、关系、转换

    全球24个时区的划分 相较于两地时间表 显示世界各时区时间和地名的世界时区表 Universal WorldTime 就显得精密与复杂多 通常世界时区表的表盘上会标示着全球24个时区的城市名称 全球24个时区是如何产生的 过去世界各地原本各
  • 【学习笔记】【DBN】十九——深度信念网络DBN

    本篇简要介绍深度信念网络DBN 是一个不太常见的神经网络 首先对深度信念网络 DBN 进行简要介绍 然后对其组成原件RBM的结构 原理和训练过程进行介绍 接着对DBN的训练过程进行介绍 目录 一 DBN概述 二 首先玻尔兹曼机 RBM 1
  • 图形推理1000题及答案解析_公考干货

    图形推理中 立体折叠类图形最大的难点就是考察人的立体空间推理 主要考察方式有折纸盒 三视图 剖面图 解题方法有特殊面法 相邻面法 相对面法 无论题目有多难都不会逃出这三个方法 但是很多考生的立体推理能力比较差 教给大家一个小技巧 在考试过程
  • LeetCode 20. 有效的括号

    题目链接 https leetcode cn problems valid parentheses C 代码如下 class Solution public bool isValid string s stack
  • The Standard C Library

    C的标志库函数是学习和使用C语言的基础 是编写经典C程序的基础 是学习其他计算机知识的基础 C标志库中一共包含了15个头文件
  • matlab求lypunov,【原创】Lyapunov、Sylvester和Riccati方程的Matlab求解

    Lyapunov Sylvester和Riccati方程是控系统常用到的几个方程 应用和计算比较广泛 在这里我们只要讨论下Lypunov方程的连续方程 离散方程的数值和解析解法 其中数值解法MATLAB提供的直接的lyap 和dlyap 函