线性系统理论及应用GUI设计及仿真

目录

1.控制系统的状态空间模型

1.1.状态空间模型

1.2 传递函数模型

1.3 传递函数转换为状态空间模型

1.4.状态空间模型转换为传递函数

1.5.状态空间模型转化为约当标准型

2.线性系统的时域分析

2.1.矩阵指数函数的计算

2.2.线型定常连续系统的状态空间模型求解

3.线性系统能控性和能观性

3.1.状态能控性判定

3.2.状态能观性的判定

3.3.能控标准型与能观标准型

3.4 按能控标准型分解和按能观标准型分解

3.5.最小实现函数

4.李雅普诺夫稳定性分析

4.1.对称矩阵正定性的判定

4.2.连续系统李雅普诺夫判定

4.3.离散系统李雅普诺夫方程求解

5.线性系统综合

5.1反馈控制系统的模型计算

5.2.系统状态反馈极点配置

5.3降维观测器设计

本文界面设计主要基于MATLAB GUI平台,结合控制系统基础理论和MATLAB控制系统工具箱,实现了用于线性系统理论及应用界面的设计。主要包括: 控制系统的状态空间模型,线性系统的时域分析,线性系统能控性和能观性,李雅普诺夫稳定性分析和线性系统综合。

1.控制系统的状态空间模型

1.1.状态空间模型

已知线型定常连续系统Σ(A,B,C,D),可调用函数ss(·)建立其状态空间模型,调用格式为:sys=ss(A,B,C,D)。

已知线型定常离散系统Σ(G,H,C,D),可调用函数ss(·)建立其状态空间模型,调用格式为:sys=ss(G,H,C,D,Ts)。其中,Ts为采样周期,输出sys为离散系统的状态空间描述。

                  图2 仿真界面 

GUI界面的输入框和选择框上输入各输入项和选择项,按“确定”键,则有如图2所示的仿真界面输出。

1.2 传递函数模型

num=(bm,bm-1, … , b0)

den=(1,an-1, … , a0)

单输入单输出线型定常连续系统的调用格式为:

sys=tf(num,den)

单输入单输出线型定常离散系统的调用格式为:

sys=tf(num,den,Ts)

            图3 传递函数模型

1.3 传递函数转换为状态空间模型

[A,B,C,D]=tf2ss(num,den)

执行该命令后,输出为状态空间模型的系数矩阵A,B,C,D。

 图4 传递函数转换为状态空间模型

1.4.状态空间模型转换为传递函数

[num,den]=ss2tf(A,B,C,D)

执行该命令后,输出为传递函数分子和分母多项式的系数数组num,den。

图5 状态空间模型转换为传递函数

1.5.状态空间模型转化为约当标准型

[P,J]=jordan(A)

其中,J是A的约当标准型,P是将A变换为J的线性变换矩阵。

    图6 状态空间模型转化为约当标准型

2.线性系统的时域分析

2.1.矩阵指数函数的计算

(1)对eAt进行数值计算时:eAt=expm(A)

计算结果如图1所示

           图7 eAt数值计算

(2)对eAt进行符号计算时:eAt=expm(A)

其中,t为符号变量,表达式A*t为MATLAB的符号矩阵。

          图8 eAt符号计算

2.2.线型定常连续系统的状态空间模型求解

(1)任意输入的系统响应函数lsim()

[y,t,x]=lsim( sys,u,t,x0)

其中,sys为系统的状态空间模型,t为时间坐标数组,u为输入信号对应于t的各时刻输入信号采样值组成的数组,x0为初始状态向量。

        图9 任意输入的系统响应

(2)初始状态响应函数initial()

[y,t,x] = initial(sys,x0,t)

其中sys为输入的状态空间模型;x0为给定的初始状态;t为指定仿真计算状态响应的时间区间变量(数组)。

         图10 初始状态响应

(3)连续系统离散化

将连续系统的传递函数模型和状态空间模型变换为离散系统的传递函数模型和状态空间模型,其主要调用格式为

sysd = c2d(sys,Ts,method)

其中,sys为输入的连续系统传递函数模型或状态空间模型;

sysd为离散化所得的离散系统传递函数模型或状态空间模型;

Ts为采样周期;

method为离散化方法选择变量,它可以为zoh、foh、tustin和matched等,分别对应于基于0阶和1阶保持器的离散化法、双线性法和零极点匹配法。

     图11 连续系统离散化

3.线性系统能控性和能观性

3.1.状态能控性判定

Qc=ctrb(A,B)

Qc=ctrb(sys)

其中,第一种输入格式为直接给定系统矩阵A和输入矩阵B,第二种格式为给定状态空间模型sys。

输出矩阵Qc为计算所得的能控性矩阵。

基于能控性矩阵函数ctrb()及能控性矩阵Qc的秩的计算,就可以进行连续线性定常系统的状态能控性的代数判据判定。

k=rank(A)

k=rank(A,tol)

其中,A为输入矩阵,输出k为A的秩。

d=size(X)

m=size(X,dim)

[d1,d2,d3,...,dn]=size(X)

其中,输出d为数组X的各维的大小组成的一维数组;m为数组X的第dim维的大小;d1,d2,d3,…,dn为数组X的各维的大小。

          图11 状态能控性判定

3.2.状态能观性的判定

Qo=obsv(A,C)

Qc=obsv(sys)

其中,第一种输入格式为直接给定系统矩阵A和输入矩阵C,第二种格式为给定状态空间模型sys。

输出矩阵Qo为计算所得的能观性矩阵。

基于能观性矩阵函数obsv()及能观性矩阵Qo秩的计算,就可以进行连续和离散线性定常系统的状态能观性的代数判据判定

图12 连续系统状态能控性判定

图13 离散系统状态能控性判定

3.3.能控标准型与能观标准型

MATLAB提供的建立系统标准型的函数cannon(·)只能用于建立对角线标准型和单输入单输出能控标准型。

图14 能控规范Ⅰ形

3.4 按能控标准型分解和按能观标准型分解

MATLAB提供了.按能控标准型分解的函数ctrbf(·)和按能观标准型分解的函数obsvf(·)。

图15 能控性分解

图16 能观性分解

3.5.最小实现函数

G_minreal=minreal(G)

其中,G_minreal为系统的最小实现,G为系统的状态空间模型。

             图17 最小实现

4.李雅普诺夫稳定性分析

4.1.对称矩阵正定性的判定

A_eig=eig(A)

其中A_eig为矩阵A的全部特征值构成的向量。

判别矩阵P的正定性也可利用上述函数,若特征值全部大于0,则P正定。

另一种判定矩阵正定性的函数posit_def()的主要调用格式为

sym_P=posit_def(P)

其中,输入矩阵P须为对称矩阵,

输出sym_P为描述矩阵P的符号串。

输出sym_P为'positive', 'nonnegat','negative','nonposit'和'undifini'分别表示输入矩阵P为正定、非负定(半正定)、负定、非正定(半负定)与不定。

图18 对称矩阵正定性的判定

4.2.连续系统李雅普诺夫判定

求解连续系统李雅普诺夫方程ATP+PA=-Q中的对称矩阵P,调用格式为:

P=lyap(A',Q)

图19 连续系统李雅普诺夫判定

4.3.离散系统李雅普诺夫方程求解

求解离散系统李雅普诺夫方程GTPG-P=-Q中的对称矩阵P,调用格式为:

P=dlyap(G',Q)

图20 离散系统李雅普诺夫判定

5.线性系统综合

5.1反馈控制系统的模型计算

基于反馈系统模型函数fdb_model (),可方便地求解闭环控制系统的状态空间模型和传递函数模型。函数fdb_model()的调用格式为:

clsys = fdb_model(sys,K,H,type1,type2)

其中,sys为状态空间模型;K为反馈矩阵;H为前馈矩阵。

图21 反馈控制系统的模型计算

5.2.系统状态反馈极点配置

对于单输入线性定常系统Σ0(A,b):

K=acker(A,b,p)

其中,p为闭环系统期望极点构成的一维数组,输出K为状态反馈矩阵。

其中,p为闭环系统期望极点构成的一维数组,输出K为状态反馈矩阵。该函数既可用于单输入系统,也可适用于多输入系统。

图22 极点配置

5.3降维观测器设计

降维观测器仿真函数rdobsv_lsim(),

函数obsv_lsim()的调用格式为[yt,eyt,t,xt,ext]=obsv_lsim(sys,G,u,t,x0,ex0)

其中,输入格式的sys为被控对象模型,G为状态观测器增益矩阵,

x0和ex0分别为被控对象和状态观测器的初始状态,

u和t分别为被控系统的输入信号采样序列和时间数组;

输出格式的yt和xt为被控对象的输出响应和状态响应, eyt和ext分别为状态观测器的输出和状态的估计值。

图23 降维观测器设计

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/41315.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu24.04按关键字卸载不需要的apt包

使用的时候发现一个imagemagic无法正常读取文件,试图卸载 man apt经过尝试后,发现list的一个神奇关键字,用来显示已安装的软件包 sudo apt list --installed | grep image按image关键字过滤: 之后按软件名卸载即可 sudo apt pu…

开关电源——调制模式和工作模式

一、开关电源的调制模式 开关电源作为一种广泛应用于电子设备中,用于将一定电压和电流转换为另一种电压和电流的技术,以下是开关电源三种常见的调制模式: 脉冲宽度调制(Pulse Width Modulation) 脉冲频率调制&#xff…

高德地图 key 和安全密钥使用

参考高德地图:JS API 安全密钥使用 高德地图 key 和安全密钥使用 一、通过明文方式设置参数查看如下成功后返回的信息 二、通过代理服务器转发实验:通过本地地址转发返回错的错误信息,如下通过正确的项目的的服务地址,返回正常参数…

【VUE基础】VUE3第一节—vite创建vue3工程

什么是VUE Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面&#xff0…

Java+MySQL8.0.36+ElementUI数字化产科信息管理系统之”五色管理”

JavaMySQL8.0.36ElementUI数字化产科信息管理系统之”五色管理” 一、数字化产科信息管理系统概述 数字化产科信息管理五色管理是一种基于孕产妇妊娠风险的分类管理方法,通过数字化手段实现孕产妇全周期的健康风险评估与管理。该方法将孕产妇按照风险等级分为绿色、…

DC-DC充放电原理

文章目录 前言1. 电子器件1.1 电容1.2 电感 2. 升压电路3. 降压电路4. 电压均衡电路4.1 被动均衡4.2 主动均衡 5. 我的疑问5.1 对于升压电路,怎么设计升压到多少V后,停止升压?5.2 什么是等效电阻?5.3 快充是如何实现的&#xff1f…

LightGlue: Local Feature Matching at Light Speed【文献阅读】

论文:LightGlue: Local Feature Matching at Light Speed 代码:https://github.com/cvg/LightGlue 作者:1 ETH Zurich__2 Microsoft Mixed Reality & AI Lab Abstract 提出的LightGlue是一个深度神经网络用于学习图像间的局部特征匹配。…

WAIC | 上海人形机器人创新中心 | 最新演讲 | 详细整理

前言 笔者看了7月4号的人形机器人与具身智能发展论坛的直播,并在7月5日到了上海WAIC展会现场参观。这次大会的举办很有意义,听并看了各家的最新成果,拍了很多照片视频,部分演讲也录屏了在重复观看学习 稍后会相继整理创立穹彻智…

算法系列--分治排序|归并排序|逆序对的求解

一.基本概念与实现 归并排序(mergeSort)也是基于分治思想的一种排序方式,思路如下: 分解:根据中间下标mid将数组分解为两部分解决:不断执行上述分解过程,当分解到只有一个元素时,停止分解,此时就是有序的合并:合并两个有序的子区间,所有子区间合并的结果就是原问题的解 归并…

第一节 网络安全概述

一.网络空间安全 网络空间:一个由信息基础设施组成相互依赖的网络。 ---- 海陆空天(大海、陆 地、天空、航天) 通信保密阶段 ---- 计算机安全 ----- 信息系统安全 ----- 网络空间安全 计算机安全:开始秉持着“严于律己&#x…

C语言 指针和数组—指针数组及其在字符串处理中的应用

目录 问题的提出 问题的解决 回头看——指针、数组及其他类型的混合 指针数组与指向数组的指针 字符串的排序 问题的提出 问题的解决 回头看——指针、数组及其他类型的混合  基本数据类型  int 、 long 、 char 、 short 、 float 、 double……  数组是一种从…

设计模式之模版方法

模版方法介绍 模版方法(Template Method)模式是一种行为型设计模式,它定义了一个操作(模板方法)的基本组合与控制流程,将一些步骤(抽象方法)推迟到子类中,使得子类可以在…

【UE5.1】Chaos物理系统基础——03 炸开几何体集

目录 步骤 一、通过径向向量将几何体集炸开 二、优化炸开效果——让破裂的碎块自然下落 三、优化炸开效果——让碎块旋转起来 四、优化炸开效果——让碎块旋转的越来越慢 步骤 一、通过径向向量将几何体集炸开 1. 打开上一篇中(【UE5.1】Chaos物理系统基础—…

Spring IOC基于XML和注解管理Bean

IoC 是 Inversion of Control 的简写,译为“ 控制反转 ”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出 松耦合、更优良的程序。 Spring 通过 IoC 容器来管理所有 Java 对象…

如何从 Windows 11/10/8.1/8/7 恢复已删除的视频

意外删除了视频或格式化了 SD 卡/硬盘?没有备份已删除的视频?别担心,我们有解决方案来恢复 Windows 11、10 中已删除的视频并处理这种糟糕的情况。 但在了解如何恢复已删除的视频和视频恢复应用程序之前,请知道 Windows 会为您提…

ARMv8寄存器详解

文章目录 一、ARMv8寄存器介绍二、通用寄存器三、 PSTAE寄存器四、特殊寄存器五、系统寄存器 一、ARMv8寄存器介绍 本文我来给大家介绍一下ARMv8的寄存器部分,ARMv8中有34个寄存器,包括31个通用寄存器、一个栈指针寄存器SP(X31),一个程序计数器寄存器PC…

Transformer前置知识:Seq2Seq模型

Seq2Seq model Seq2Seq(Sequence to Sequence)模型是一类用于将一个序列转换为另一个序列的深度学习模型,广泛应用于自然语言处理(NLP)任务,如机器翻译、文本摘要、对话生成等。Seq2Seq模型由编码器&#…

JavaEE初阶-网络原理1

文章目录 前言一、UDP报头二、UDP校验和2.1 CRC2.2 md5 前言 学习一个网络协议,最主要就是学习的报文格式,对于UDP来说,应用层数据到达UDP之后,会给应用层数据报前面加上UDP报头。 UDP数据报UDP包头载荷 一、UDP报头 如上图UDP的…

Emacs之解决:java-mode占用C-c C-c问题(一百四十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

C++语言相关的常见面试题目(二)

1.vector底层实现原理 以下是 std::vector 的一般底层实现原理: 内存分配:当创建一个 std::vector 对象时,会分配一块初始大小的连续内存空间来存储元素。这个大小通常会随着 push_back() 操作而动态增加。 容量和大小:std::vec…