基于matlab线性控制系统的分析.docx
- 文档编号:26617052
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:15
- 大小:65.68KB
基于matlab线性控制系统的分析.docx
《基于matlab线性控制系统的分析.docx》由会员分享,可在线阅读,更多相关《基于matlab线性控制系统的分析.docx(15页珍藏版)》请在冰豆网上搜索。
基于matlab线性控制系统的分析
基于MATLAB对线性控制系统的分析
学院:
物理与机电工程学院
班级:
电子122班
姓名:
李家旗
学号:
1251001211
日期:
2014-12-28
基于MATLAB线性控制系统的分析
摘要:
MATLAB是国际上使用最为广泛的科学与工程计算软件工具。
与其他编
程类语言相比,MATLAB具有强大、丰富的内置函数和工具箱,界面设计时更加简洁、快捷与直观。
在简要介绍线性控制系统分析方法的基础上,并在MATLAB7.1和WINDOWS7操作系统下成功实现,经过试验测试,结果正确。
该方法对于其他关于MATLAB的应用具有抛砖引玉的作用。
关键词:
MATLAB;线性控制系统。
Analysisof LinearControl Systembasedon MATLAB
Abstract:
MATLABisacomputingsoftwaretoolsforinternationalusemostpopularscientificandengineering.Andother
TheChengLeilanguagecompared,MATLABhasapowerful,richbuilt-infunctionandtoolbox,interfacedesignmoresimple,quickandintuitive.Basedonabriefintroductiontolinearcontrolsystemsanalysismethod,andsuccessfullyimplementedinMATLAB7.1andWINDOWS7operatingsystem,bytesting,theresultiscorrect.ThemethodisvaluablefortheotherMATLABapplicationrole.
Keywords:
MATLAB; LinearControl System.
摘要..........................................................................................1
1引言......................................................................................3
2分析动态性能.......................................................................3
2.1动态性能指标的定义...................................................3
2.2MATLAB函数编程求系统的动态性能........................3
2.3近似条件.......................................................................6
3分析稳态性能..............................................................................6
3.1稳态性能指标的定义....................................................6
3.2MATLAB函数编程求系统的稳态性能.....................6
参考文献................................................................................8
附录.......................................................................................9
1引言
在确定系统的数学模型后,便可以用几种不同的方法去分析控制系统的动态性能和稳态性能。
在经典控制理论中,常用时域分析法,根轨迹法或频域分析法来分析线性控制系统的性能。
MATLAB是美国MATHWORKS公司研制开发的软件
产品,它是当今世界上使用最为广泛的科学计算软件之一,MATLAB具有强大、丰富的内置函数和工具箱,以及高度灵活的可编程性,MATLAB特别适用于科学计算、图形图像处理、数据的拟合和可视化等,还具有动画处理、FOURIER变换、有限差分和有限元的处理等高级功能[1]。
由于采用了面向对象的技术并且以矩阵运算为基础,它的数据处理效率是其他软件很难相比的。
与VC相比,两者在图形界面之间有很大的相似性,但MATLAB实现更简单,特别是对于有大量数值运算和图形图像处理的程序,MATLAB具有很大优势。
本文将线性控制系统和MATLAB相结合,利用MATLAB结合例子从时域方面分析线性控制系统。
2分析动态性能
2.1动态性能指标的定义
上升时间rt:
指响应从终值10%上升到终值90%所需的时间;对于有振荡系统,亦可定义为响应从零第一次上升到终值所需的时间。
上升时间是系统响应速度的一种度量。
上升时间越短,响应速度越快。
峰值时间pt:
指响应超过其终值到达第一个峰值所需的时间。
调节时间st:
指响应到达并保持在终值5%内所需的最短时间。
超调量σ%:
指响应的最大偏离量h(tp)与终值h(∞)的差与终值h(∞)比的百分数,即σ%=(h(tp)-h(∞))/h(∞)*100%
若h(tp) 超调量亦称为最大超调量,或百分比超调量。 在实际应用中,常用的动态性能指标多为上升时间、调节时间和超调量。 通常,用tr或tp评价系统的响应速度;用σ%评价系统的阻尼程度;而ts是同时反映响应速度和阻尼程度的综合性能指标。 应当指出,除简单的一、二阶系统外,要精确确定这些动态性能指标的解析表达式是很困难的。 2.2MATLAB函数编程求系统的动态性能 假设有如下线性控制系统: G(s)=2.268/(s^3+1.64*s^2+1.312*s+0.5376),分析其动态性能: MATLAB程序如下: num=2.268;den=[1,1.64,1.312,0.5376]; t=0: 0.01: 20; step(num,den,t); [y,x,t]=step(num,den,t);%求单位阶跃响应 maxy=max(y);%响应的最大偏移量 yss=y(length(t));%响应的终值 pos=100*(maxy-yss)/yss;%求超调量 fori=1: 2001 ify(i)==maxy n=i; end end tp=(n-1)*0.01;%求峰值时间 y1=1.05*yss;y2=0.95*yss; i=2001; whilei>0 i=i-1; ify(i)>=y1||y(i)<=y2;m=i;break end end ts=(m-1)*0.01;%求调节时间 title('单位阶跃响应');grid; 保存并运行程序,得到单位响应曲线如图2.2所示: 图2.2 从阶跃响应曲线图中得到系统的动态性能指标: 最大偏离量h(tp)=4.59,终值h(∞)=4.22,上升时间tr=2.81,峰值时间tp=6.07,调节时间ts=7.48,超调量σ%=8.74。 当G(s)=5.67/(s^3+2.9*s^2+2.32*s+1.344),分析其动态性能: 将上述程序中分子分母的系数替换为此时的系数,程序其余部分不变。 运行程序得到阶跃响应曲线如下: 图2.3 最大偏离量h(tp)=4.85,终值h(∞)=4.22,上升时间tr=2.23,峰值时间tp=5.09,调节时间ts=10.5,超调量σ%=14.9。 当G(s)=11.34/(s^3+5*s^2+3.36*s+2.688),分析其动态性能: 将上述程序中分子分母的系数替换为此时的系数,程序其余部分不变。 运行程序得到阶跃响应曲线如下: 图2.4 最大偏离量h(tp)=5.27,终值h(∞)=4.22,上升时间tr=1.91,峰值时间tp=4.62,调节时间ts=11,超调量σ%=24.9。 由上述动态性能,基本可以看出非主导极点对系统动态性能的影响为: 增大峰值时间,使系统响应速度变慢,但可以使超调量σ%减小,表明闭环非主导极点可以增大系统阻尼,并且这种作用将随闭环极点接近虚轴而加剧。 从以上三幅阶跃响应的动态性能指标可以看出,它们的终值相等。 说明主导极点所对应的响应分量,随时间的推移衰减缓慢,在系统的时间响应过程中起主导作用。 2.3近似条件 2.3.1闭环主导极点 对稳定的闭环系统,远离虚轴的极点对应的模态只影响阶跃响应的起始 段,而距虚轴近的极点对应的模态衰减缓慢,系统动态性能主要取决于这些极点对应的响应分量。 此外,各瞬态分量的具体值还与其系数大小有关。 根据部分分式理论,各瞬态分量的系数与零、极点的分布有如下关系: ①若某极点远离原点,则相应项的系数很小; ②若某极点接近一零点,而又远离其他极点和零点,则相应项的系数也很小; ③若某极点远离零点又接近原点或其他极点,则相应项系数就比较大。 系数大而且衰减慢的分量在瞬态响应中起主要作用。 因此,距离虚轴最近而且附近又没有零点的极点对系统的动态性能起主导作用,称相应极点为主导极点。 2.3.2估算高阶系统动态性能指标的零点极点法 一般规定,若某极点的实部大于主导极点实部的5~6倍以上时,则可以忽略相应分量的影响;若两相邻零、极点间的距离比它们本身的模值小一个数量级时,则称该零、极点对为“偶极子”,其作用近似抵消,可以忽略相应分量的影响。 在绝大多数实际系统的闭环零、极点中,可以选留最靠近虚轴的一个或几个极点作为主导极点,略去比主导极点距虚轴远5倍以上的闭环零、极点,以及不十分接近虚轴的靠得很近的偶极子,忽略其对系统动态性能的影响。 应该注意使简化后的系统与原高阶系统有相同的闭环增益,以保证阶跃响应终值相同。 利用MATLAB语言的step指令,可以方便准确地得到高阶系统的单位阶跃响应和动态性能指标。 3分析稳态性能 3.1稳态性能指标的定义 稳态误差是描述系统稳态性能的一种性能指标,通常在阶跃函数、斜坡函数或函数作用下进行测定或计算。 若时间趋于无穷时,系统的输出量不等于输入量或输入量的确定函数,则系统存在稳态误差。 稳态误差是系统控制精度或抗扰动能力的一种度量。 3.2MATLAB函数编程求系统的稳态性能 MATLAB环境下控制系统求解稳态误差的一般步骤: (1)对于给定的系统进行稳定性判定,一般通过调用函数root()命令的程序。 程序运行后所得系统闭环特征根的实部都是负值,说明闭环系统稳定,接下来进行稳态误差的计算才是有意义的。 (2)系统单位阶跃给定响应与稳态误差,可通过调用函数step()命令来实现。 (3)系统单位斜坡给定响应与稳态误差根据以上分析的计算斜坡响应与稳态误差的思考与题目要求通过调用函数step()命令的程序来实现。 下面通过一个实例计算控制系统的稳态误差: 假设一单位负反馈系统的传递函数为: G(s)=(24*s^2+18*s+3)/(s^4+2*s^3+10s^2),绘制出系统的单位等加速度信号输入响应及其稳态误差响应曲线,计算响应的稳态误差,MATLAB程序如下: clearall; clc; n1=[24,18,3];d1=[1,2,10,0,0];s1=tf(n1,d1); sys=feedback(s1,1); roots(sys.den{1}); 程序运行后的结果为: ans= -0.7303+5.7086i -0.7303-5.7086i -0.2697+0.1335i -0.2697-0.1335i 由于系统闭环全部特征根的实部均为负值,所以该系统稳定。 新建M文件,在M文件中接着输入: clc; n1=3*conv([2,1],[4,1]); d1=conv([1,0,0],[1,2,10]); s1=tf(n1,d1); sys=feedback(s1,1); t=0: 0.1: 30; num1=sys.num{1}; den1=[sys.den{1},0,0]; sy1=tf(num1,den1); y1=step(sy1,t); nu2=1; den2=[1,0,0,0]; sy2=tf(nu2,den2); y2=impulse(sy2,t); subplot(121),plot(t,[y2,y1]),grid; subplot(122),es=y2-y1;plot(t,es),grid; ess=es(length(es)); 运行MATLAB程序,得到单位等加速度响应与其误差响应如图3所示: 图3.1 有运行结果可知其稳态误差为: ess= 3.3355 当等加速度输入信号作用于系统时,系统的输入也作等加速度变化。 参考文献: [1]MATLAB及在电子信息类课程中的应用(第2版)唐向宏岳恒立邓雪峰编著; [2]自动控制原理基础教程(第三版)胡寿松主编 附录: 程序a: num=2.268;den=[1,1.64,1.312,0.5376]; t=0: 0.01: 20; step(num,den,t); [y,x,t]=step(num,den,t);%求单位阶跃响应 maxy=max(y);%响应的最大偏移量 yss=y(length(t));%响应的终值 pos=100*(maxy-yss)/yss;%求超调量 fori=1: 2001 ify(i)==maxy n=i; end end tp=(n-1)*0.01;%求峰值时间 y1=1.05*yss;y2=0.95*yss; i=2001; whilei>0 i=i-1; ify(i)>=y1||y(i)<=y2;m=i;break end end ts=(m-1)*0.01;%求调节时间 title('单位阶跃响应');grid; 程序b: num=5.67;den=[1,2.9,2.32,1.344]; t=0: 0.01: 20; step(num,den,t); [y,x,t]=step(num,den,t);%求单位阶跃响应 maxy=max(y);%响应的最大偏移量 yss=y(length(t));%响应的终值 pos=100*(maxy-yss)/yss;%求超调量 fori=1: 2001 ify(i)==maxy n=i; end end tp=(n-1)*0.01;%求峰值时间 y1=1.05*yss;y2=0.95*yss; i=2001; whilei>0 i=i-1; ify(i)>=y1||y(i)<=y2;m=i;break end end ts=(m-1)*0.01;%求调节时间 title('单位阶跃响应');grid; 程序c: num=11.34;den=[1,5,3.36,2.688]; t=0: 0.01: 20; step(num,den,t); [y,x,t]=step(num,den,t);%求单位阶跃响应 maxy=max(y);%响应的最大偏移量 yss=y(length(t));%响应的终值 pos=100*(maxy-yss)/yss;%求超调量 fori=1: 2001 ify(i)==maxy n=i; end end tp=(n-1)*0.01;%求峰值时间 y1=1.05*yss;y2=0.95*yss; i=2001; whilei>0 i=i-1; ify(i)>=y1||y(i)<=y2;m=i;break end end ts=(m-1)*0.01;%求调节时间 title('单位阶跃响应');grid; 程序d: clearall; clc; n1=[24,18,3];d1=[1,2,10,0,0];s1=tf(n1,d1); sys=feedback(s1,1); roots(sys.den{1}); 程序e: clearall; clc; n1=3*conv([2,1],[4,1]); d1=conv([1,0,0],[1,2,10]); s1=tf(n1,d1); sys=feedback(s1,1); t=0: 0.1: 30; num1=sys.num{1}; den1=[sys.den{1},0,0]; sy1=tf(num1,den1); y1=step(sy1,t); nu2=1; den2=[1,0,0,0]; sy2=tf(nu2,den2); y2=impulse(sy2,t); subplot(121),plot(t,[y2,y1]),grid; subplot(122),es=y2-y1;plot(t,es),grid; ess=es(length(es));
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 matlab 线性 控制系统 分析