当前位置: 首页 > article >正文

MATLAB 控制系统设计与仿真 - 21

频域分析的MATLAB函数

频域分析法是经典控制领域的一个重要分析与设计工具,是应用频率特性研究线性系统的一种实用方法。一般用开环系统Bode图,Nyquist图,Nichols图以及相应的稳定判据来分析系统的稳定性,动态性能,稳态性能。

Nyquist图

MATLAB提供了nyquist函数用于求连续系统的Nyquist图,函数的调用格式为:

nyquist(sys); % 计算并在当前窗口绘制线性系统sys的Nyquist图
              % 当系统为多输入/多输出时,产生一组Nyquist图,每个输入输出对应一个Nyquist图
nyquist(sys,w); % 显示定义绘制时的频率点w。
                % 若要定义频率范围,w必须有[wmin wmax]格式,
                % 如果定义频率点,则w必须是所需频率点组成的向量
[re im w]=nyquist(sys); % 返回系统的频率响应,re为实部,im为虚部,w为对应的频率点

例-1

连续系统的传递函数为:

G(s)=\frac{s+8}{s(s^2+s+4)(s+1)(s+3)}

绘制对应的Nyquist图:

MATLAB代码如下:

clear all;clc;
s=tf('s');
sys=(s+8)/(s*(s^2+s+4)*(s+1)*(s+3));
nyquist(sys);
ylim([-2 2]);

程序运行结果如下:

Bode图

MATLAB提供了bode函数用于求系统的Bode图,函数的调用格式为:

bode(sys); % 计算并在当前窗口绘制sys的Bode图
bode(sys,w); % 计算并在当前窗口绘制sys的Bode图,w为所需频率点的向量
[mag,phase,w]=bode(sy,w); % 计算Bode图数据并存储在变量中,
                           % mag为幅值,phase为相位,w为对应的频率点

例-2

对例-1的传递函数绘制Bode图

MATLAB程序如下:

clear all;clc;
s=tf('s');
sys=(s+8)/(s*(s^2+s+4)*(s+1)*(s+3));
w=0:0.1:1000;
bode(sys,w);
grid on

程序运行结果如下:

Nichols图

MATLAB提供了nichols函数求取连续系统的Nichols频率响应曲线,函数的调用格式为:

nichols(sys); % 计算并在当前窗口绘制sys的Nichols图
nichols(sys,w); % 计算频率范围w内的sys的Nichols图
[mag, phase, w]=nichols(sys,win); % 计算并返回sys的Nichols图数据,
                                  % mag为Nichols图幅值,phase为Nichols图相位 

例-3

对例-1的传递函数绘制Nichols图

MATLAB程序如下:

clear all;clc;
s=tf('s');
sys=(s+8)/(s*(s^2+s+4)*(s+1)*(s+3));
w=0:0.1:1000;
nichols(sys,w);
grid on

程序运行结果如下:

Nichols图可以很直观的看到闭环系统

\frac{sys}{1+sys}的gain margin 和phase margin,所以在控制系统设计中也是一个很好的工具。后面会用具体实例来说明Nichols的稳定性判据。

最后,欢迎大家有问题给我留言。

另外欢迎小伙伴们点赞转发加关注

谢大家!!


http://www.kler.cn/a/580793.html

相关文章:

  • 启动wsl里的Ubuntu24报错:当前计算机配置不支持 WSL2,HCS_E_HYPERV_NOT_INSTALLED
  • leetcode hot100 二叉树
  • Spark(8)配置Hadoop集群环境-使用脚本命令实现集群文件同步
  • 《C#上位机开发从门外到门内》1-2:上位机开发语言与工具、开发环境部署
  • 实现“一塔一档”管理模式需要多种物联网(IoT)技术的支持
  • 若依-导出后端解析
  • Git常用命令全面分类总结
  • Java 三路快排
  • MySQL知识点(第一部分)
  • postgresql14编译安装脚本
  • Bartender 5 for Mac 多功能菜单栏管理
  • Unity Post-Processing后处理
  • 【ARM内核】SWCLK/SWDIO引脚复用
  • Word如何避免英文字母在上下行分开
  • 面试题之Vuex,sessionStorage,localStorage的区别
  • 机器学习—赵卫东阅读笔记(一)
  • 探讨AI钓鱼助理APP借助AWS Lambda和Go语言实现,对钓鱼人的渔获提升
  • 固定表头、首列 —— uniapp、vue 项目
  • 前馈神经网络 - 参数学习(梯度下降法 - 多分类任务)
  • 【go语言圣经1.2】