基于matlab的系统的时域响应分析.docx
- 文档编号:26810907
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:18
- 大小:92.02KB
基于matlab的系统的时域响应分析.docx
《基于matlab的系统的时域响应分析.docx》由会员分享,可在线阅读,更多相关《基于matlab的系统的时域响应分析.docx(18页珍藏版)》请在冰豆网上搜索。
基于matlab的系统的时域响应分析
摘要
系统的时域响应分析是衡量控制系统的重要指标。
所谓控制系统的时域响应分析就是在时间域内求解系统的微分方程,然后根据绘制出来的曲线分析系统的性能和各主要参数对系统性能的影响。
不过这里的响应曲线一般是指典型的响应曲线,即所谓的阶跃响应和脉冲响应。
求解系统典型响应的思路是首先列出微分方程组,对方程两边同时取拉普拉斯变换得到系统传递函数,然后根据绘制出来的图形进行系统分析。
利用MATLAB提供的系统时域响应分析函数可以方便、快捷地观察到系统的输出是否满足要求。
经过系统仿真后得出诸如系统传递函数等的上升时间、调节时间、超调量和稳态误差等参数。
此次综合实践所选的系统经过MATLAB软件进行系统仿真后,得到系统的输出函数,可以直观的看到系统个状态量变化情况。
关键词:
MATLAB软件;系统时域响应分析;系统的响应曲线
Abstract
Thesystemtimedomainresponseanalysisisanimportantindicatortomeasurecontrolsystem.Theso-calledcontrolsystemisthetime-domainresponseofthesystemintimedomainforsolvingdifferentialequations,andthendrawouttheperformancecurveanalysissystemandthemainparametersonsystemperformance.Buthere,generallyreferstoatypicalresponsecurveoftheresponsecurve,theso-calledstepresponseandpulseresponse.Atypicalresponsetotheideaofsolvingthesystemislistedfirstdifferentialequations,bothsidesoftheequationatthesametimetakingtheLaplacetransformofthesystemtransferfunction,andthendrawoutasystematicanalysisofthegraphic.
MATLABprovidesasystemusingtimedomainresponseanalysisfunctioncanbequicklyandeasilyobservewhethertheoutputofthesystemtomeettherequirements.Afterthesystemobtainedaftersimulationofthesystemtransferfunction,etc.,suchasrisetime,adjustingtime,overshootandsteady-stateerrorandotherparameters.
ThepracticeoftheselectedsystemisanintegratedMATLABsystemsimulationsoftware,gotthesystemoutputfunction,youcanseevisualchangesintheamountofsystem-state.
Keywords:
MATLABsoftware;thesystemtimedomainresponseanalysis;systemresponsecurves
第1章绪论
1.1概述
在控制系统分析和设计中,常采用典型响应特性来描述系统的动态性能。
响应是指在系统输人信号作用下,系统输出量的变化特性。
典型响应是指采用零初值条件时典型信号作用下,系统输出量的变化特性。
常用的典型响应有阶跃响应、脉冲响应和频率响应等。
1.2时域响应分析
系统的时域响应分析是衡量控制系统的重要指标,也是系统分析不可缺少的组成部分。
1.2.1系统响应的输入信号
1.用于系统响应的输入信号应具有下列特性:
能使系统的输出有足够显著的变化;在存在其他外扰作用下,能从系统的输出中分离出高的输入信号影响;易于实现;能激发系统特性的所有模态,包括低频和高频特性;对生产过程的影响要小。
2.常用的输入信号
常用的输入信号有非周期函数、周期函数、非周期随机函数、周期随机函数等。
非周期函数包含所有频带,因此能激发系统的所有模态,但对生产过程影响较大,常用的非周期函数是阶跃函数和脉冲函数。
周期函数要在不同频率下检测系统的输入和输出,费时且数据后处理工作量大,但能直接得到系统的频率特性曲线,常用的周期函数有正弦函数、方波函数。
非周期随机函数采用生产过程的数据,对生产过程影响最小,但数据处理较复杂。
周期随机函数是人为的随机函数,它以一定的周期重复,但又有随机函数的统计特性,函数的发生较方便,常用的周期随机函数有伪随机双位函数。
本节讨论非周期函数信号作为输入信号时系统的输出响应分析。
1.2.2根据模型获得响应曲线
根据系统的模型和输入信号,可以获得系统的输出响应,常用的方法有拉氏反变换法、部分分式展开法和直接计算法等。
分别介绍如下。
系统输入信号是阶跃信号时,系统的输出特性是阶跃响应。
1.3本次综合实践2的意义
目前,系统的时域响应分析是衡量控制系统的重要指标,与人工手动计算相比,大大提高了运行效率。
本实验正是利用MATLAB自带的系统仿真软件进行系统仿真设计的。
第2章MATLAB软件简介
2.1MATLAB
利用MATLAB软件自带的模块集和工具箱经行控制系统的设计,经系统仿真后得出控制系统传函的个项指标。
2.2MATLAB概述
MATLAB是矩阵实验室(MatrixLaboratory)之意。
除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
2.2.1MATLAB软件
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多.在新的版本中也加入了对C,FORTRAN,c++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用,非常的方便。
MATLAB的基础是矩阵计算,但是由于他的开放性,并且mathwork也吸收了像maple等软件的优点,使MATLAB成为一个强大的数学软件。
当前流行的MATLAB6.5/7.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox),工具包又可以分为功能性工具包和学科工具包,功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。
学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。
开放性使MATLAB广受用户欢迎,除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。
2.2.2Matlab的优势和特点
1.友好的工作平台和编程环境
MATLAB由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。
而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
2.简单易用的程序语言
Matlab一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。
使之更利于非计算机专业的科技人员使用。
而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
3.强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。
在通常情况下,可以用它来代替底层编程语言,如C和C++。
在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。
MATLAB的这些函数集包括从最简单最基本的函数到诸如距阵,特征向量、快速傅立叶变换的复杂函数。
函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
4.出色的图形处理功能
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和距阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
可用于科学计算和工程绘图。
新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使他不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。
同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。
另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
5.应用广泛的模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。
一般来说,他们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。
目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
6.实用的程序接口和发布平台
新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。
允许用户编写可以和MATLAB进行交互的C或C++语言程序。
另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。
MATLAB的一个重要特色就是他有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。
工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
7.应用软件开发(包括用户界面)
在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5。
第3章系统的软件设计思路
3.1典型信号的生成
[u,t0]=gensig(type,tp,te)---生成典型信号并返回信号数据,type=‘square’时生成方波;type=‘sin’时生成正弦波;type=‘pulse’时生成脉冲序列。
tp为信号周期,单位为秒;te为信号持续时间,单位为秒;t0为时间向量,单位为秒;ts为信号采样向量。
[u,t0]=gensig(type,tp,te)---生成典型信号。
ts为采样周期,单位为秒。
例:
生成一周期为10秒、持续时间50秒、采样周期为0.3秒的正弦波和一周期为10秒,持续时间为100秒的方波。
[u,t0]=gensig('sin',10,50,0.3);%生成一周期为10秒、持续时间50秒、采样周期为0.3秒的正弦波
figure;plot(t0,u);%显示生成信号的曲线,如图3-1所示
[u,t0]=gensig('square',10,100);%生成一周期为10秒的方波
figure;plot(t0,u);%显示生成信号的曲线,如图3-2所示
图3-1生成信号曲线
图3-2生成信号曲线
3.2系统直流增益
k=dcgain(num,den)---得到由传递函数模型所描述系统的直流增益k。
k=dcgain(a,b,c,d)---得到由状态空间模型所描述系统的直流增益k。
3.3系统的固有频率和阻尼系数
[wnks]=damp(den)---得到由传递函数模型所描述系统的固有频率wn向量和阻尼系数ks向量。
den为系统传递函数的分母多项式向量。
[wnks]=damp(a)---得到由状态空间模型所描述系统的固有频率wn向量和阻尼系数ks向量。
a为系统矩阵。
e=damp(den)---得到由传递函数模型所描述系统的特征值向量e。
e=damp(a)---得到由状态空间模型所描述系统的特征值向量e。
例:
给系统模型
G(s)=
求系统的固有频率、阻尼系数、特征值域直流增益。
3.4系统零输入响应
通过initial()函数为系统状态空间模型提供状态的初始值。
为对状态观测器和状态变量反馈控制的研究、分析提供了方便。
initial(a,b,c,d,e,x,0,t)---显示给定系统初始化状态时系统的零输入响应曲线。
x0为系统初始化状态值向量,长度为状态个数。
t为给定的终止时间值,也可以给定时间向量,单位为秒,如果不选择t,时间坐标由系统自动生成。
[y,x,t0]=initial(a,b,c,d,x0,t)--得到给定系统初始状态时系统的零输入响应数据。
y为系统输出向量;x为状态变化数据矩阵,每一列为一个状态变化数据。
为时间向量,单位为秒。
3.5典型系统传递函数分析
step(num,den)--对由传递函数模型所描述系统施加阶跃输入,显示系统阶跃响应曲线。
step(num,den,t)---按给定时间t,单位为秒,显示系统在0~t时间内的阶跃响应曲线。
step(a,b,c,d)---对于状态空间模型所描述系统施加阶跃输入,显示系统阶跃响应曲线。
step(a,b,c,d,l,t)----对于状态空间模型所描述系统施加阶跃输入,显示系统阶跃响应曲线。
t为时间向量,单位为秒
y=step(···)返回函数阶跃响应,数据赋给向量y。
[y,x,t0]=tep(···)---返回系统冲激响应,数据赋飞、给向量y。
如果输入参数为传递函数模型,则向量x为空。
如果输入参数为状态空间模型,则向量x为一矩阵,矩阵的每一列对系统一个状态的变化数据。
向量to为时间范围,单位为秒。
Impulse(num,den)---对由传递函数模型所描述吸系统施加阶跃输入,显示系统冲激应曲线。
Impulse(num,den,t)---按给定时间t(单位为秒),显示系统在0~t时间内的冲激响应曲线。
Impulse(a,b,c,d)---对由状态空间模型所描述吸系统施加阶跃输入,显示系统冲激应曲线。
Impulse(a,b,c,d,l,t)---对由状态空间模型所描述吸系统施加阶跃输入,显示系统冲激应曲线。
y=impulse(···)---返回系统冲激响应,数据赋给向量y。
[y,x,t0]=impulse(···)---返回系统冲激响应,数据赋给向量y;如果输入参数为传递函数模型,则向量x为空;如果输入参数为状态空间模型,则向量x为一矩阵,矩阵每一列对应系统一个状态的变化数据,向量t0为时间范围,单位为秒。
3.6任意给定输入的系统时域响应
lsim(num,den,u,t)---显示由传递函数模型所描述系统对给输入u,在时间范围t内的系统输出曲线。
u为输输入向量,t为时间向量,单位为秒。
u,v两向量长度应相等。
lsim(a,b,c,d,u,t)---显示由状态空间模型所描述系统对给输入u,在时间范围t内的系统输出曲线。
u为输输入向量,t为时间向量,单位为秒。
u,v两向量长度应相等。
lsim(a,b,c,d,u,t,x0)---显示由状态空间模型所描述系统对给输入u,在时间范围t内的系统输出曲线。
u为输输入向量,t为时间向量,单位为秒。
u,v两向量长度应相等。
X0为系统状态初始值向量。
如果省略,系统初始化状态为0.
y=lsim(···)---返回系统在给定输入参数时的时域响应数据向量y。
[y,x,t0]=lsim(···)---返回系统在给定输入参数时的时域响应数据向量y。
如果输入参数为传递函数模型,则向量x为空;如果输入参数为状态空间模型,则向量x为一矩阵,矩阵的每一列对应系统一个状态的变化数据,向量t0为时间范围。
3.7典型系统传递函数分析应用举例
例:
给定系统的状态空间模型为
观察系统各状态的阶跃响应和冲激响应情况。
closeall;
a=[-1,0,0;2,-7,-3.1623;0,3.1623,0];b=[1;1;0];c=[0,0,1.8974];d=0;
[y,x,t]=step(a,b,c,d);%得到阶跃响应状态变化数据
figure;plot(t,x(:
1),t,x(:
2),t,x(:
3));grid;%显示系统各状态变化,如图3-3所示
title('StepResponse');
xlabel('Time(sec)');
ylabel('Amplitude');
legend('x1','x2','x3');%增加系统状态标识
[y,x,t]=impulse(a,b,c,d);%得到冲激响应状态变化数据
figure;plot(t,x(:
1),t,x(:
2),t,x(:
3));grid;%显示各状态变化,如图3-4所示
title('ImpulseResponse');
xlabel('Time(sec)');
ylabel('Amplitude');
legend('x1','x2','x3');%增加系统状态标识
图3-3系统各状态变化
图3-4系统各状态变化
第4章系统函数的仿真及分析
4.1系统传递函数的模型建立及仿真
控制系统的方框图如下图所示,由4个环节串联而成的单位反馈系统。
观察系统的阶跃响应与冲激响应。
G1G2G3G4
-
图4-1单位反馈系统
closeall;
num1=[1,0.5];den1=[1,0.1];num2=[1];den2=[1.0];%构成各环节的传递函数表达式
num3=[2];den3=[1,2];num4=[10];den4=[1,10];
[numx,denx]=series(num1,den1,num2,den2);%环节串联计算
[numx,denx]=series(numx,denx,num3,den3);
[numx,denx]=series(numx,denx,num4,den4);
[num,den]=cloop(numx,denx);%得到最终闭环系统的传递函数
figure;step(num,den);%显示阶跃响应曲线,如图4-2所示
figure;impulse(num,den);%显示冲激响应曲线,如图4-3所示
printsys(mun,den);%显示最终闭环系统的传递函数
图4-2阶跃响应曲线
图4-3冲激响应曲线
观察输入为如图4-4所示的信号时,系统输出。
closeall;
num1=[1,0.5];den1=[1,0.1];num2=[1];den2=[1.0];%构造各环节的传递函数表达
num3=[2];den3=[1,2];num4=[10];den4=[1,10];
[numx,denx]=series(num1,den1,num2,den2);%环节串联计算
[numx,denx]=series(numx,denx,num3,den3);
[numx,denx]=series(numx,denx,num4,den4);
[num,den]=cloop(numx,denx);%得到最终闭环系统的传递函数
tx=0:
0.1:
60;%设定时间向量、时间起止点及步长
ux=30*tx/length(tx);%构造给定输入向量
ux(tx>20)=1;ux(tx>40)=0;
figure;plot(tx,ux,'r');%显示系统输入曲线,如图4-4所示
figure;lsim(num,den,ux,tx)%显示系统输出曲线,如图4-5中的折线所示
holdon;plot(tx,ux,'r');%同图显示系统输入曲线,如图4-5中的曲线所示
legend('output','input');%增加曲线标识
图4-4系统输入曲线
图4-5系统输出曲线
4.2系统传递函数的仿真结果分析
结论
经过两周来的综合实践2的设计,我受益匪浅。
它不仅使我对系统的时域响应分析有了更深入的了解,在设计的同时,也让我拓宽了专业方面的知识,增加了我对电子信息专业的热情,对设计的热情。
对系统的时域响应分析,用手工方程求解比较困难。
本次实验利用MATLAB提供的系统时域响应分析函数,展示了MATLAB语言分析计算响应的全过程,大大提高了计算效率,获得了可视化的计算结果。
在经行本文实验仿真设计时遇到了诸如软件安装调试等诸多问题。
在本次实践中,我还存在着许多缺点和不足。
对MATLAB软件的功能及系统时域响应分析的知识了解不够。
在回顾系统的时域响应分析知识以及区图书馆查阅大量相关资料基础上,应用MATLAB实现了对系统的时域响应分析。
在实验中,我深切的感受到MATLAB软件强大的计算能力,这使我对MATLAB有了更深入的了解,为将来的毕业设计以及工作,打下了坚实的基础。
参考文献
[1]郑君里,应启珩,杨为理。
信号与系统。
北京:
高等教育出版社,2000.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 matlab 系统 时域 响应 分析