【matlab】状态空间模型与传递函数模型的建立与转换

目录

SISO系统

MIMO系统

状态空间模型

状态空间模型到传递函数模型的转换

传递函数模型到状态空间模型的转换

(1) 转换函数ss()

(2) 规范形转换函数canon()

(3) 常微分方程(传递函数)转换为状态空间模型函数dif2ss()  

状态空间模型的变换

 特征值、特征向量与广义特征向量的计算

线性定常系统可以是连续系统,也可以是离散系统线

SISO系统

线性定常连续系统一般以常系数线性常微分方程来描述。对于一个SISO线性定常连续系统,其常微分方程描述为:

对应的经拉氏变换得到的传递函数模型为

在Matlab中,多项式a_0s^n+a_1s^{n-1}...+a_n常用数组表达,如n阶多项式可用n+1个元素的数组表达为[aa1  …  an],其中,数组元素按多项式中“s”的降幂顺序排列,其中的“0”不能省略。因此传递函数的分子与分母多项式可以用2个数组表达

num=[bb1  …  bn]

den=[aa1  …  an]

在Matlab中,传递函数模型变量的数据结构为‘tf’类,可采用函数命令tf()来描述分子和分母多项式的数组组合,建立控制系统的传递函数模型。
tf()函数命令的主要调用格式为
                       sys=tf(num,den)或直接为sys=tf([bb1  …  bn], [aa1  …  an])
经过上述命令,变量sys即表示上述连续系统传递函数模型。类似地,对于SISO线性定常离散系统,其高阶差分方程模型和z域传递函数模型分别为

建立Matlab的离散定常系统传递函数模型可采用函数命令tf(),其建立离散系统传递函数的语句为:
num=[b0  b1  …  bn]den=[a0  a1  …  an]sys=tf(num, den, Ts)
或直接为:
sys=tf([b0  b1  …  bn], [a0  a1  …  an] , Ts)
其中,Ts为采样周期的值。当Ts=-1或者Ts=[]时,则系统的采样周期未定义。经过上述命令,变量sys即表示上述离散系统传递函数模型。
eg:

num_1=[1 2 1];
den_1=[1 5 6];
sys_1=tf(num_1,den_1,-1)

MIMO系统

MIMO线性定常连续系统的传递函数阵G(s)可以表示为

其中,Gij(s)=nij(s)/dij(s)描述了第i个输出与第j个输入之间的动态传递关系,nij(s)和dij(s)分别为其分子与分母多项式.
eg:

num={[1 2 1] [1 5]; [2 3] [6]};den={[1 5 6] [1 2]; [1 6 11 6] [2 7]};sys_1=tf(num,den)

状态空间模型

线性定常连续系统的状态空间模型为

ss()函数的主要调用格式为:
sys=ss(A,B,C,D)
式中,A,B,C,D为已经赋值的适宜维数的数组(矩阵)。
若输入的矩阵维数不匹配,ss()函数将显示出错信息,指出系统矩阵维数不匹配。对线性定常离散系统S(G,H,C,D),则用函数ss()来建立状态空间模型的调用格式为:

sys=ss(G,H,C,D,Ts)

式中,Ts为输入的采样周期,与建立离散系统传递函数的Matlab函数tf()的格式一致。

eg:

A_2=[0 1; -2 -3];
B_2=[0; 1];  C_2=[1 0];  
D_2=0;
sys_2=ss(A_2,B_2,C_2,D_2) 

状态空间模型到传递函数模型的转换

由状态空间模型求解传递函数模型问题的调用格式为:

连续系统: con_tf=tf(con_ss)

离散系统: dis_tf=tf(dis_ss)

传递函数模型到状态空间模型的转换

(1) 转换函数ss()

连续系统: con_ss=ss(con_tf)

离散系统: dis_ss=ss(dis_tf)

(2) 规范形转换函数canon()
Matlab提供的规范形转换函数canon()可以将传递函数模型转换得到状态空间的模态规范形,即对角规范形,其调用格式为:

连续系统: con_ss=canon (con_tf, 'modal')

离散系统: dis_ss=canon (dis_tf, 'modal')

(3) 常微分方程(传递函数)转换为状态空间模型函数dif2ss()  
函数dif2ss()的主要调用格式为:
sys_ss=dif2ss (sys_tf,type)
sys_ss=dif2ss (sys_num, sys_den,type)
eg:
num_1=[2 14 24];  den_1=[1 5 8 4];
sys_1=tf(num_1,den_1);
sys_comp=dif2ss(sys_1,'companion')
sys_jord=dif2ss(num_1,den_1,'jordan') 

状态空间模型的变换

Matlab提供在给定变换矩阵下,计算状态空间模型变换的可直接调用函数ss2ss(),其调用格式为:
sysT = ss2ss(sys,T)
其中,sys和sysT分别为变换前与变换后(输入与输出)的状态空间模型变量;T为给定的变换矩阵。
eg:
A=[0 1 0; 0 0 1; -6 -11 -6];
B=[0; 0; 6];  C=[1 0 0];  D=0;
P=[1 1 1; -1 -2 -3; 1 4 9];
sys_in=ss(A,B,C,D);
sys_out=ss2ss(sys_in,inv(P)) 

 特征值、特征向量与广义特征向量的计算

Matlab提供直接计算特征值和特征向量的函数为eig(),其调用格式为:

d = eig(A)

[V,D] = eig(A)

Matlab的函数eig()不能直接计算广义特征向量,要计算广义特征向量则需要符号计算工具箱的函数jordan(),其调用格式为

J = jordan(A)

[V,J] = jordan(A)

eg:

A=[0 1 0; 0 0 1; -4 -8 -5];
B=[0; 0; 1];  C=[1 0 0];  D=0;
sys_in=ss(A,B,C,D);
[P,J]=jordan(A);
sys_out=ss2ss(sys_in,inv(P)) 

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

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

相关文章

everything高级搜索-cnblog

everything高级搜索用法 基础4选项验证 总结搜索方式 高级搜索搜指定路径文件名: 文件名 路径不含文件名: !文件名包含单词 路径包含指定内容: 路径 content:内容 大小写 区分大小写搜索搜指定路径文件名: case:文件名 路径全字匹配 全字搜指定路径文件名: wholewo…

中霖教育:二级建造师未注册还需要继续教育吗?

关键词:中霖教育怎么样,中霖教育口碑 如果通过了二级建造师考试但是没有注册,还用继续教育吗? 1. 未注册的二级建造师 二级建造师在其证书获取后三年内没有进行注册时,在申请初始注册之前必须完成规定的本专业继续教育课程。 …

ubuntu运行qq音乐闪退

ubuntu运行qq音乐闪退 修改/usr/share/applications中的qqmusic.desktop,在Exec后加上 --no-sandbox,如下图所示: 该文件有可能是只读,权限不够的话用sudo vim qqmusic.desktop

java项目的一些功能(完善登录功能、注册接口参数校验、完善分页查询、完善日期格式、更新文章分类和添加文章分类的分组校验、自定义校验、文件上传 )

目录 完善登录功能 注册接口参数校验 完善分页查询 完善日期格式 更新文章分类和添加文章分类的分组校验 ​编辑 自定义校验 文件上传 完善登录功能 对前端传过来的明文密码进行md5加密处理 password DigestUtils.md5DigestAsHex(password.getBytes()); 这样既可 注…

Python数据分析案例50——基于EEMD-LSTM的石油价格预测

案例背景 很久没更新时间序列预测有关的东西了。 之前写了很多CNN-LSTM,GRU-attention,这种神经网络之内的不同模型的缝合,现在写一个模态分解算法和神经网络的缝合。 虽然eemd-lstm已经在学术界被做烂了,但是还是很多新手小白或…

驾校管理系统的全面革新与升级

智慧驾校系统是一款专为现代驾校量身定制的综合性管理平台,它深度融合了云计算、大数据、物联网及人工智能等前沿技术,旨在为驾校打造一个高效、智能、便捷的运营生态系统。该系统通过数字化、信息化的手段,彻底革新了传统驾校的管理模式,不仅极大地提升了驾校的运营效率,…

Open3D 点云CPD算法配准(粗配准)

目录 一、概述 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2配准后点云 一、概述 在Open3D中,CPD(Coherent Point Drift,一致性点漂移)算法是一种经典的点云配准方法,适用于无序点云的非…

【漏洞复现】宏景eHR LoadOtherTreeServlet SQL注入漏洞

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合,满足动态化、协同化、流程化、战略化需求的软件。 0x02 漏洞概述 宏景eHR LoadOtherTreeServlet接口处存在SQL注入漏洞,未经身份验证的远程攻击者除了可以利用 SQL 注入漏…

孩子很内向,是不是自闭症?

作为星启帆寄宿制自闭症学校的老师,我深知内向与自闭症之间存在着本质的区别,尽管两者在社交表现上可能有一定的相似性。 首先,内向是一种性格特质,表现为个体在社交场合中相对安静、羞涩,更喜欢独处或与小范围的人交往…

Webpack: Loader开发 (1)

概述 如何扩展 Webpack?有两种主流方式,一是 Loader —— 主要负责将资源内容翻译成 Webpack 能够理解、处理的 JavaScript 代码;二是 Plugin —— 深度介入 Webpack 构建过程,重塑 构建逻辑。 相对而言,Loader 的职责…

Zookeeper分布式锁原理说明【简单易理解】

Zookeeper 非公平锁/公平锁/共享锁 。 1.zookeeper分布式锁加锁原理 如上实现方式在并发问题比较严重的情况下,性能会下降的比较厉害,主要原因是,所有的连接都在对同一个节点进行监听,当服务器检测到删除事件时,要通知…

人脸识别课堂签到系统【PyQt5实现】

人脸识别签到系统 1、运用场景 课堂签到,上班打卡,进出门身份验证。 2、功能类别 人脸录入,打卡签到,声音提醒,打卡信息导出,打包成exe可执行文件 3、技术栈 python3.8,sqlite3,opencv,face_recognition,PyQt5,csv 4、流程图 1、导入库 2、编写UI界面 3、打…

HackTheBox----Editorial

Editorial 测试过程 1 信息收集 NMAP端口扫描 nmap -sC -sV 10.10.11.20服务器开启了 22、80 端口 80 端口测试 服务器只开启了 22 和 80 端口,先从 80 端口开始进行测试 echo "10.10.11.20 editorial.htb" | sudo tee -a /etc/hostspublish with us…

SwiftData 模型对象的多个实例在 SwiftUI 中不能及时同步的解决

概览 我们已经知道,用 CoreData 在背后默默支持的 SwiftUI 视图在使用 @FetchRequest 来查询托管对象集合时,若查询结果中的托管对象在别处被改变将不会在 FetchedResults 中得到及时的刷新。 那么这一“囧境”在 SwiftData 里是否也会“卷土重来”呢?空说无益,就让我们在…

RK3588编译rkmpp,拉取海康威视网络摄像头264码流并运行yolo

硬件:EVB评估版 SOC:Rockchip RK3588 背景: 由于项目需要,需要拉取264码流,并通过将yolov5s.pt将模型转化为rknn模型,获取模型分析结果。取流可以通过软件解码或者硬件解码,硬件解码速度更快&…

Java版Flink使用指南——安装Flink和使用IntelliJ制作任务包

大纲 安装Flink操作系统安装JDK安装Flink修改配置启动Flink测试 使用IntelliJ制作任务包新建工程Archetype 编写测试代码打包测试 参考资料 在《0基础学习PyFlink》专题中,我们熟悉了Flink的相关知识以及Python编码方案。这个系列我们将使用相对主流的Java语言&…

LabVIEW在自动化测试项目中的推荐架构

在自动化测试项目中,推荐使用LabVIEW的生产者-消费者(Producer-Consumer)架构。这种架构利用队列实现数据的异步传输和处理,提供了高效、稳定和可扩展的解决方案。其主要优点包括:实现数据采集与处理的解耦、提高系统响…

中国IDC圈探访北京•光子1号金融算力中心

今天,“AI”、“大模型”是最炙手可热的话题,全球有海量人群在工作生活中使用大模型,大模型产品涉及多模态,应用范围已涵盖电商、传媒、金融、短视频、制造等众多行业。 而回看2003年的互联网记忆, “上网”“在线”是…

【LVGL-SquareLine Studio】

LVGL-SquareLine Studio ■ SquareLine Studio-官网下载地址■ SquareLine Studio-参考博客■ SquareLine Studio-安装■ SquareLine Studio-汉化■ SquareLine Studio-■ SquareLine Studio-■ SquareLine Studio-■ SquareLine Studio-■ SquareLine Studio- ■ SquareLine S…

C++基础(十一):STL简介

从今天开始,我们正式步入STL的学习,STL(标准模板库,Standard Template Library)是C标准库的重要组成部分,提供了一系列通用的类和函数模板,包括容器、算法、迭代器等。它的设计极大地提高了代码…