自控实验报告第四次-陈尧

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

成绩北京航空航天大学自动控制原理实验报告学院仪器科学与光电工程学院专业方向惯性技术与导航仪器班级学号学生姓名尧爸爸指导教师自动控制与测试教学实验中心实验四控制系统数字仿真目录一、实验目的...............................................................................................3二、实验内容...............................................................................................3三、理论计算...............................................................................................31.求解ζ和主导极点所对应角度β..................................................................32.用matlab绘制系统的根轨迹并找到主导极点................................................33.求解K值..................................................................................................4四、计算机仿真............................................................................................51.实验程序.................................................................................................5①四阶龙格库塔计算函数:RgKta.m........................................................5②stepspecs.m.......................................................................................5③主程序test.m.....................................................................................72.超调量和ts.............................................................................................83.阶跃响应曲线............................................................................................8五.实验总结.....................................................................................................9一、实验目的通过本实验掌握利用四阶龙格——库塔法进行控制系统数字仿真的方法,并分析系统参数改变对系统性能的影响。二、实验内容已知系统结构如图4-1:图4-1若输入为单位阶跃函数,计算当超调量分别为5%,25%,50%时K的取值(用主导极点方法估算),并根据确定的K值在计算机上进行数字仿真。三、理论计算1.求解ζ和主导极点所对应角度β①根据公式:2/1%100%e,可以解得相应的ξ5%25%50%ζ0.690.40370.2155β46.37°66.19°77.56°2.用matlab绘制系统的根轨迹并找到主导极点由cosβ=ξ,过原点做倾角为180-β的直线,与系统根轨迹的交点即为系统主导极点。代码如下:%%绘制跟轨迹和主导极点所在位置%holdon;num=[1];dun=[1,10,25,0];rlocus(num,dun)t=-4:0.001:0;y1=-t*tan(46.37/57.3);y2=-t*tan(66.19/57.3);y3=-t*tan(77.555/57.3);plot(t,y1,t,y2,t,y3);3.求解K值由模值方程||||||可解K四、计算机仿真1.实验程序①四阶龙格库塔计算函数:RgKta.m%RgKta.m%功能:进行龙格库塔计算。(A,B,C,D)为系统的系数矩阵,x0为输入,h为仿真步长,%r为输入信号幅值,t0为仿真的起始时间,tf为终止时间;t为仿真时间,y为系统输出function[t,y]=RgKta(A,B,C,D,x0,h,r,v,t0,tf);x=x0;y=0;t=t0;fori=1:tf/hK1=A*x+B*r;K2=A*(x+h*K1/2)+B*r;K3=A*(x+h*K2/2)+B*r;K4=A*(x+h*K3)+B*r;x=x+h*(K1+2*K2+2*K3+K4)/6;y=[y;C*x];t=[t;t(i)+h];end②stepspecs.mfunction[os,ts,tr]=stepspecs(t,y,yss,sp)%STEPSPECSSystemStepResponseSpecifications.%[OS,Ts,Tr]=STEPSPECS(T,Y,Yss,Sp)returnsthepercentovershootOS,%settlingtimeTs,andrisetimeTrfromthestepresponsedatacontained%inTandY.%Yisavectorcontainingthesystemresponseattheassociatedtime%pointsinthevectorT.Yssisthesteadystateorfinalvalueofthe%response.%IfYssisnotgiven,Yss=Y(end)isassumed.Spisthesettlingtime%percentage.%IfSpisnotgiven,Sp=5%isassumed.Thesettlingtimeisthetimeit%takestheresponsetoconvergewithin+-SppercentofYss.%Therisetimeisassumedtobethetimefortheresponsetoinitially%travelfrom10%to90%ofthefinalvalueYss.%D.C.Hanselman,UniversityofMaine,Orono,ME04469%MasteringMATLAB7%2005-03-20%--------------------------------------------------------------------------N=length(y);ify(1)0y1=mean(y(1:floor(0.01*N)));y=y-y1;endifnargin2error('AtLeastTwoInputArgumentsareRequired.')endifnumel(t)~=length(t)||numel(y)~=length(y)error('TandYMustbeVectors.')endifnargin==2yss=y(end);yss=mean(y(floor(0.9*N):N));sp=5;elseifnargin==3sp=5;endifisempty(yss)yss=mean(y(floor(0.9*N):N));endifyss==0error('YssMustbeNonzero.')endifyss0%handlecasewherestepresponsemaybenegativey=-y;yss=-yss;endt=t(:);y=y(:);%findrisetimeusinglinearinterpolationidx1=find(y=0.1*yss,1);idx2=find(y=0.9*yss,1);ifisempty(idx1)||idx1==1||isempty(idx2)error('NotEnoughDatatoFindRiseTime.')endalpha=(yss/10-y(idx1-1))/(y(idx1)-y(idx1-1));t1=t(idx1-1)+alpha*(t(idx1)-t(idx1-1));alpha=(9*yss/10-y(idx2-1))/(y(idx2)-y(idx2-1));t2=t(idx2-1)+alpha*(t(idx2)-t(idx2-1));tr=t2-t1;③主程序test.m%test.m%功能:仿真计算当超调量为5%,25%,50%的K值,求解调节时间,并画出阶跃响应曲线y=[00];k=1;whilemax(y)=1.5%%1.05(5%超调),1.25(25%超调),1.5(50%超调)num1=[k];den1=[110250];[num,den]=feedback(num1,den1,1,1);[A,B,C,D]=tf2ss(num,den);x0=[0;0;0];v=1;tf=10;t0=0;h=0.1;r=1;[t,y]=RgKta(A,B,C,D,x0,h,r,v,t0,tf);k=k+1;end[os,ts,tr]=stepspecs(t,y,y(end),5)2.超调量和ts由stepspecs函数得出下图中仿真部分数据,并和理论值比较。3.阶跃响应曲线图4-2超调量为5%时的系统阶跃响应曲线图4-3超调量为25%时的系统阶跃响应曲线图4-4超调量为50%时的系统阶跃响应曲线五.实验总结本次实验中,先通过对Runge-Kutta法推导过程的学习,了解了其原理,通过实验指导中给出的教程,运用四阶Runge-Kutta法,通过matlab编程,实现了给定系统对阶跃信号的仿真,通过与理论值的对比,得出了其算法的优越性。而对理论值的计算也让我掌握了根轨迹法的matlab实现,对其的感性认识进一步加深。

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功