MATLAB 绘制 SISO 和 MIMO 线性系统的时间和频率响应图

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、时间响应
  • 二、频率响应
  • 三、极点/零点图和根节点
  • 四、响应特性
  • 五、分析 MIMO 系统
  • 六、系统比较
  • 七、修改时间轴或频率轴数值
  • `如果觉得内容不错,请点赞、收藏、关注`


前言

本例演示如何绘制 SISO 和 MIMO 线性系统的时间和频率响应图。


一、时间响应

创建线性系统。在本例中,创建一个三阶传递函数。

sys = tf([8 18 32],[1 6 14 24])
sys =8 s^2 + 18 s + 32-----------------------s^3 + 6 s^2 + 14 s + 24连续时间传递函数。
模型属性

您可以使用 step and impulse 命令绘制该系统的阶跃和脉冲响应。

subplot(2,1,1)
step(sys)
subplot(2,1,2)
impulse(sys)

在这里插入图片描述

您还可以使用 lsim 命令模拟对正弦波等任意信号的响应。输入信号显示为灰色,系统响应显示为蓝色。

clf
t = 0:0.01:4;
u = sin(10*t);
lsim(sys,u,t)   % u,t define the input signal

在这里插入图片描述

您可以在连续或离散的 tfsszpk 模型中使用绘图命令。对于状态空间模型,您还可以绘制从给定初始状态开始的非强迫响应。例如

A = [-0.8 3.6 -2.1;-3 -1.2 4.8;3 -4.3 -1.1];
B = [0; -1.1; -0.2];
C = [1.2 0 0.6];
D = -0.6;
G = ss(A,B,C,D);
x0 = [-1;0;2];  % initial state
initial(G,x0)
grid

在这里插入图片描述

二、频率响应

频域分析是了解控制系统稳定性和性能特性的关键。Bode 图、Nyquist 图和 Nichols 图是绘制和分析线性系统频率响应的三种标准方法。您可以使用 BodeNicholsNyquist 命令创建这些图。

创建线性系统。

sys = tf([8 18 32],[1 6 14 24])
sys =8 s^2 + 18 s + 32-----------------------s^3 + 6 s^2 + 14 s + 24连续时间传递函数。
模型属性

为该系统绘制 Bode 图。

bode(sys)
grid

在这里插入图片描述

为该系统绘制奈奎斯特图。

nyquist(sys)
grid

在这里插入图片描述

为该系统创建一个尼科尔斯图表。

nichols(sys)
grid

在这里插入图片描述

三、极点/零点图和根节点

系统的极点和零点包含有关其动态、稳定性和性能极限的宝贵信息。例如,考虑以下 SISO 控制回路中的反馈回路。

在这里插入图片描述
G = − ( 2 s + 1 ) s 2 + 3 s + 2 G=\frac{-(2s+1)}{s^{2}+3s+2} G=s2+3s+2(2s+1)

对于增益值 k = 0.7,可以使用 pzmap 绘制闭环极点和零点图。

s = tf('s');
G = -(2*s+1)/(s^2+3*s+2);
k = 0.7;
T = feedback(G*k,1);
pzmap(T)
grid, axis([-2 0 -1 1])

在这里插入图片描述

闭环极点(蓝色 x 标记)位于左半平面内,因此在选择增益 k 时,反馈回路是稳定的。这里的阻尼比约为 0.7,表明闭环响应阻尼良好,这一点可以通过以下数据得到证实:

clf
step(T)

在这里插入图片描述

为了进一步了解环路增益 k 对闭环稳定性的影响,可以绘制闭环极点位置与 k 的函数关系图。

rlocus(G)
grid

在这里插入图片描述

点击定位点与 y 轴相交的位置,可以发现当 k = 1.51 时,闭环极点变得不稳定。因此,为保证闭环稳定,环路增益应保持小于 1.5。

四、响应特性

右键单击响应图可以访问各种选项和注释。特别是,通过特性菜单可以显示标准指标,如阶跃响应的上升时间和稳定时间,或频率响应图的峰值增益和稳定裕度。

使用上一节的示例,绘制闭环阶跃响应图:

step(T)

在这里插入图片描述

现在,右键单击曲线图以显示峰值响应和稳定时间特性,并单击蓝点读取相应的过冲和稳定时间值:

在这里插入图片描述

五、分析 MIMO 系统

目前提到的所有命令都完全支持多输入多输出(MIMO)系统。在多输入多输出情况下,这些命令会生成数组图。例如,请看下面的两输入两输出系统。

sys = rss(3,2,2);
sys.A = [-0.5 -0.3 -0.2 ; 0 -1.3  -1.7; 0.4 1.7 -1.3];

阶跃响应是一个 2×2 的图阵列,每列显示一个特定输入通道的阶跃响应。

step(sys)

在这里插入图片描述

您可以右键单击曲线图并选择 I/O 分组 -> 全部子菜单,将所有四个响应组合到一个曲线图上。

在这里插入图片描述

以下附加图有助于分析多输入多输出系统:

  • 奇异值图 (sigma),显示频率响应的主要增益

  • 每个 I/O 对的极点/零点图(iopzplot)

例如,绘制 sys 的峰值增益与频率的函数关系图:

sigma(sys)
grid

在这里插入图片描述

六、系统比较

您可以使用任何响应绘图命令同时绘制多个系统。您可以为每个系统指定特定的颜色、标记或线条样式,以便于比较。以上述反馈为例,用三种不同颜色绘制环路增益 k 的三个值的闭环阶跃响应:

k1 = 0.4;
T1 = feedback(G*k1,1);
k2 = 1;
T2 = feedback(G*k2,1);
step(T,'b',T1,'r',T2,'g')
legend('k = 0.7','k = 0.4','k = 1')

在这里插入图片描述

七、修改时间轴或频率轴数值

您可以修改现有线性分析图的时间和频率向量。

对于阶跃图和脉冲图,可以通过右键单击绘图区域并选择指定时间来指定时间矢量。

在这里插入图片描述

在 "指定时间 "对话框中,您可以使用以下方法之一定义时间值和单位。

  • 自动生成 - 根据系统动态自动生成时间矢量。稀疏系统不支持此选项。

  • 定义停止时间 - 指定停止时间,创建从时间 0 开始的时间矢量。

  • 定义矢量 - 将时间指定为单调递增、间距均匀的时间值矢量。

对于波特图、奈奎斯特图、尼克尔斯图和西格玛图,可以通过右键单击绘图区域并选择指定频率来指定频率矢量。

在这里插入图片描述

在 "指定频率 "对话框中,您可以使用以下方法之一定义频率值和单位。

  • 自动生成 - 根据系统动态自动生成频率矢量。稀疏系统不支持此方法。

  • 定义范围 - 指定频率范围。稀疏系统不支持此方法。

  • 定义矢量 - 指定要绘制成矢量的频率。

如果您的系统是 frd 对象,则会在频率值之间插值绘制响应。

更改时间和频率单位将指定输入的单位,但不会更改绘图中的单位。


如果觉得内容不错,请点赞、收藏、关注

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

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

相关文章

uniapp循环对象列表---点击列表切换选中不同状态

目录 源码图片最后 源码 <template><view><ul><li v-for"(item, index) in list" click"toggleSelection(index)" :class"{selected: selectedIndex index}">{{ item }}<view :class"{selected: selectedInde…

C语言_常用数据类型地址的理解

常用基本数据类型&#xff1a; #include <stdio.h> #include <stdlib.h> #include <stdint.h>int main(){printf("基本数据类型:\n");printf("char: %d\n", sizeof(char));printf("int: %d\n", sizeof(int));printf("do…

操作系统——内存映射文件(王道视频p57)

1.总体概述&#xff1a; 2.传统文件访问方式&#xff1a; 我认为&#xff0c;这种方式最大的劣势在于&#xff0c;如果要对整个文件的不同部分进行多次操作的话&#xff0c;这样确实开销可能会大一些&#xff0c;而且程序员还要指定对应的“分块”载入到内存中 3.内存映射文件…

【网络】HTTPS协议

HTTPS协议 一、什么是HTTPS二、数据的加密1、常见的加密方式2、数据摘要&#xff08;数据指纹&#xff09;3、数字签名 三、HTTPS 的工作过程探究1、方案 1 - 只使用对称加密2、方案 2 - 只使用非对称加密3、方案 3 - 双方都使用非对称加密4、方案 4 - 非对称加密 对称加密 四…

文件夹重命名与大小写转换:提高文件检索准确性的技巧

在文件管理中&#xff0c;文件夹的命名和大小写转换是非常重要的操作。正确的文件夹命名和大小写转换可以提高文件检索的准确性&#xff0c;从而提高工作效率和文件管理的便利性。现在来看云炫文件管理器如何进行文件夹重命名和大小写转换的技巧&#xff0c;以帮助您更好地管理…

2023年金融科技建模大赛(初赛)开箱点评

各位同学大家好&#xff0c;我是Toby老师。2023年金融科技建模大赛&#xff08;初赛&#xff09;从今年10月14日开始&#xff0c;11月11日结束。 比赛背景 发展数字经济是“十四五”时期的重大战略规划。2023年&#xff0c;中共中央、国务院印发了《数字中国建设整体布局规划》…

MASK-RCNN tensorflow环境搭建

此教程默认你已经安装了Anaconda&#xff0c;且tensorflow 为cpu版本。为什么不用gpu版本&#xff0c;原因下面解释。 此教程默认你已经安装了Anaconda。 因为tensorflow2.1后的gpu版&#xff0c;不支持windows。并且只有高版本的tensorflow才对应我的CUDA12.2&#xff1b; 而…

16. 机器学习 - 决策树

Hi&#xff0c;你好。我是茶桁。 在上一节课讲SVM之后&#xff0c;再给大家将一个新的分类模型「决策树」。我们直接开始正题。 决策树 我们从一个例子开始&#xff0c;来看下面这张图&#xff1a; 假设我们的x1 ~ x4是特征&#xff0c;y是最终的决定&#xff0c;打比方说是…

Pikachu(一)

暴力破解 Burte Force&#xff08;暴力破解&#xff09;概述 “暴力破解”是一攻击手段&#xff0c;在web攻击中&#xff0c;一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录&#xff0c;直到得到正确的结果。 为了提高…

Jmeter只能做性能测试吗?

Jmeter除了可以性能测试&#xff0c;还能做接口测试 1、Jmeter和Fiddler&#xff0c;Postman有什么区别? Fiddler&#xff1a;虽然有接口测试功能&#xff0c;很少用来做接口测试。 一般用Fiddle来做抓包和异常测试&#xff0c;辅助接口测试。Postman&#xff1a; 是接口调试…

QML 仪表盘小示例

本次项目已发布在CSDN->GitCode,下载方便,安全,可在我主页进行下载即可,后面的项目和素材都会发布这个平台。 个人主页:https://gitcode.com/user/m0_45463480怎么下载:在项目中点击克隆,windows:zip linux:tar.gz tar # .pro TEMPLATE = appTARGET = dialcontrol​#…

【MySQL】MVCC机制(undo log,read view)

文章目录 前言一. 预备知识二. 模拟MVCC三. Read View四. RC与RR的本质区别结束语 前言 MVCC&#xff08;多版本并发控制&#xff09;是一种用来解决读-写冲突的无锁并发控制 MVCC为事务分配单向增长的事务ID&#xff0c;为每个修改保存一个版本&#xff0c;版本与事物ID相关联…