利用Matlab实现时域分析功能的示例详解

 更新时间:2023年02月07日 10:36:38   作者:Vizio__  
利用MATLAB可以方便地进行控制系统的时域分析。这篇文章主要通过简单的示例为大家介绍了Matlab进行时域分析的具体操作,需要的可以参考一下

利用MATLAB可以方便地进行控制系统的时域分析。洋相判断系统的稳定性,只要求出系统的闭环极点,即闭环传递函数的分母多项式的根即可,而分析系统的动态特性,只要求出系统的阶跃响应即可。

利用MATLAB控制系统工具箱中所提供的求联系系统的单位阶跃响应函数step(),单位冲激响应函数impluse(),任意输入信号下的响应函数lsim()等函数可以方便的求出系统在该信号作用下的响应。

step函数(求阶跃响应)

step(num,den)

num表示分子各阶系数,den表示分母各阶系数

作用:已知闭环传递函数,求其阶跃响应

step(num,den)会输出图像;ct2=step(num,den)输出数值。

impulse函数(求脉冲响应)

impulse(num,den)

num表示分子各阶系数,den表示分母各阶系数

作用:已知闭环传递函数,求其脉冲响应

impulse(num,den)会输出图像;ct2=impulse(num,den)输出数值。

lsim函数(求输出)

lsim(sys,u,t)

sys传递函数,u 输入函数,t时域自变量

作用:已知输入函数和传递函数,用这个可以的到每次系统的输入对应的输出(输入函数u要是时域中的,可以输出图像也可以是对应的值)

1.求二阶系统不同阻尼比条件下的阶跃响应曲线

已知典型二阶系统的传递函数为

假设Wn=1,试在同一张图上绘制当阻尼比分别为0、0.1、0.3、0.5、0.7、1、2时系统的单位阶跃曲线

dum=[4];
den1=[1 0 4];
den2=[1 0.4 4];
den3=[1 1.2 4];
en4=[1 2 4];
den5=[1 2.8 4];
den6=[1 4 4];
den7=[1 8 4];
sys1=tf(dum, den1);
sys2=tf(dum, den2);
sys3=tf(dum, den3);
sys4=tf(dum, den4);
sys5=tf(dum, den5);
sys6=tf(dum, den6);
sys7=tf(dum, den7);
step(sys1, sys2, sys3, sys4, sys5, sys6, sys7);

可以看到阻尼比为0时无法收敛,其他阻尼比均收敛

2.求二阶负反馈系统的动态性能指标 

设单位负反馈二阶系统的开环传递函数为

G(s)=1.25/s²+s

试计算系统的动态性能指标:上升时间tr、峰值时间tp、超调量、调整时间ts

clear
num=1.25;
den=[1 1 0];
sys=tf(num,den);%建立系统开环传递函数模型
sys=feedback(sys,1);%建立系统闭环传递函数模型
[y,t]=step(sys);%求系统单位阶跃响应
ytr=find(y>=1);
rise_time=t(ytr(1))%计算上升时间
[ymax,tp]=max(y);
peak_time=t(tp)%计算峰值时间
max_overshoot=ymax-1%计算超调量
s=length(t);
while y(s)>0.98&y(s)<1.02
    s=s-1;
end
settling_time=t(s+1)%计算调整时间
plot(t,y,'k',t,ones(length(t),1),'k-.')%绘制响应曲线
axis([0 10 0 2.2])
title('Plot of Unit-Setp Response Curves','Position',[5 2.22],'FontSize',8)
xlabel('Time(sec)')
ylabel('Response')

到此这篇关于利用Matlab实现时域分析功能的示例详解的文章就介绍到这了,更多相关Matlab时域分析内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++ Boost Spirit精通教程

    C++ Boost Spirit精通教程

    Boost是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称
    2022-11-11
  • C语言在linux下编程详解

    C语言在linux下编程详解

    这篇文章主要介绍了linux下基于C语言的编程,实例分析了基本使用技巧与相关概念,具有一定参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • C语言数据结构之使用链表模拟栈的实例

    C语言数据结构之使用链表模拟栈的实例

    这篇文章主要介绍了C语言数据结构之使用链表模拟栈的实例的相关资料,需要的朋友可以参考下
    2017-08-08
  • C语言编程PAT乙级学习笔记示例分享

    C语言编程PAT乙级学习笔记示例分享

    这篇文章主要为大家介绍了C语言编程PAT乙级学习笔记实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • C语言实现进程5状态模型的状态机

    C语言实现进程5状态模型的状态机

    状态机在实际工作开发中应用非常广泛,用这幅图就可以很清晰的表达整个状态的流转。本篇通过C语言实现一个简单的进程5状态模型的状态机,让大家熟悉一下状态机的魅力,需要的可以参考一下
    2022-10-10
  • C/C++ 读取16进制文件的方法

    C/C++ 读取16进制文件的方法

    下面小编就为大家带来一篇C/C++ 读取16进制文件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 基于C语言实现创意多彩贪吃蛇游戏

    基于C语言实现创意多彩贪吃蛇游戏

    这篇文章主要介绍了如何利用C语言实现一个创意多彩贪吃蛇游戏,这是一个纯C语言外加easyx库的绘图函数制作而成的有趣小游戏,无需引入额外资源,感兴趣的可以动手尝试一下
    2022-08-08
  • C语言文件操作之fread函数详解

    C语言文件操作之fread函数详解

    fread()函数用来从指定文件中读取块数据,下面这篇文章主要给大家介绍了关于C语言文件操作之fread函数的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • c语言5个常用的排序算法实例代码

    c语言5个常用的排序算法实例代码

    这篇文章主要介绍了c语言5个常用的排序算法实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • C语言 文件的随机读写详解及示例代码

    C语言 文件的随机读写详解及示例代码

    本文主要介绍C语言 文件的随机读写,这里整理了相关资料及示例代码以便大家学习参考,学习此部分内容的朋友可以参考下
    2016-08-08

最新评论