您好,欢迎访问三七文档
《控制系统计算机仿真—课程设计作业》姓名:专业:学号:1.构造矩阵(1)试将.*AB与BA*的结果相加,并找出相加后新矩阵中绝对值大于10的元素。(2)组合成一个43的矩阵,第一列为按列顺序排列的A矩阵元素,第二列为按列顺序排列的B矩阵元素,第三列为按列顺序排列的C矩阵元素。(1)matlab:A=[-71;8-3];B=[42;57];C=[59;62];D=A.*B+A*Bnum=find(abs(D)10);D(num)结果:D=-51-557-26ans=-5157-26(2)matlab:NEW=[A(1,:),A(2,:);B(1,:),B(2,:);C(1,:),C(2,:)]’结果:NEW=-745129856-3722.绘制函数曲线,要求写出程序代码(1)在区间[0,2]均匀的取50个点,构成向量X。(2)在同一窗口绘制曲线y1=sin(2*t-0.3);y2=3cos(t+0.5);要求y1曲线为红色点划线,标记点为圆圈;y2为蓝色虚线,标记点为星号。程序代码:t=linspace(0,2*pi,50);714259,,835762ABCy1=sin(2*t-0.3);y2=3*cos(t+0.5);plot(t,y1,'r.',t,y2,'b-');holdonplot(t,y1,'o',t,y2,'*');holdoff3.写出生成下图所示波形的MATLAB程序。图中三个波形均为余弦波,x范围为[pi/2~7*pi/2]。要求它的正半波被置零;且在24[,]33和810[,]33处被削顶。程序:x=linspace(pi/2,7*pi/2,100);y1=cos(x);figure(1)plot(x,y1)y1(find(y10))=0;figure(2)plot(x,y1)n=find((x2*pi/3&x4*pi/3)|(x8*pi/3&x10*pi/3));y1(n)=cos(2*pi/3);figure(3)plot(x,y1)4对于x=[-2π,2π],y1=sinx、y2=cosx、y3=sin2x、y4=cos2x①用MATLAB语言分四个区域分别绘制的曲线,并且对图形标题及横纵坐标轴进行标注。②另建一个窗口,不分区,用不同颜色、线型绘出四条曲线,并标注图例注解。Matlab:x=linspace(-2*pi,2*pi,1000);y1=sin(x);y2=cos(x);y3=sin(2*x);y4=cos(2*x);figure(1)subplot(2,2,1)plot(x,y1)xlabel('ºá×ø±êx=[-2*pi,2*pi]');ylabel('×Ý×ø±êy=sin(x)')title('y=sin(x)ÔÚ[-2*pi,2*pi]Ö®¼äµÄÇúÏßͼ')subplot(2,2,2)plot(x,y2)xlabel('ºá×ø±êx=[-2*pi,2*pi]');ylabel('×Ý×ø±êy=cos(x)')title('y=cos(x)ÔÚ[-2*pi,2*pi]Ö®¼äµÄÇúÏßͼ')subplot(2,2,3);plot(x,y3);xlabel('ºá×ø±êx=[-2*pi,2*pi]');ylabel('×Ý×ø±êy=sin(2x)')title('y=sin(2x)ÔÚ[-2*pi,2*pi]Ö®¼äµÄÇúÏßͼ')subplot(2,2,4);plot(x,y4);xlabel('ºá×ø±êx=[-2*pi,2*pi]');ylabel('×Ý×ø±êy=cos(2x)')title('y=cos(2x)ÔÚ[-2*pi,2*pi]Ö®¼äµÄÇúÏßͼ')figure(2)plot(x,y1,'r-',x,y2,'b.',x,y3,'ko',x,y4,'g*')legend('y=sin(x)','y=cos(x)','y=sin(2x£©','y=cos(2x)')5.请分析并修改下面的程序,使用矩阵或数组运算的顺序结构完成嵌套for语句的相同功能。A=[123;456;789];[rc]=size(A);fori=1:1:rforj=1:1:cif(A(i,j)8|A(i,j)2)A(i,j)=0;endendend修改后的matlab:A=[123;456;789];A(find(A8|A2))=0;A6.假设a是这样一组数组:222()(1)(2)(3)anananan,且(1)0,(2)1,(3)2aaa。试分别用循环指令for以及while来寻求该数组中第一个大于10000的元素。Matlab:a(1)=0;a(2)=1;a(3)=2;fori=4:infa(i)=a(i-1)^2-a(i-2)^2+a(i-3)^2;ifa(i)10000breakendenda(i),i结果:ans=871431i=87.编写分段函数其他021210)(xxxxxf的函数文件,存放在文件ff.m中,用input语句输入x值,计算)(),2()2-(fff,的值。x=input('ÇëÊäÈëx=');ifx=0&x1f(x)=x;elseifx=1&x=2f(x)=2-x;elsef(x)=0;endf(x)结果:请输入x=-2f=0ff.m请输入x=sqrt(2)f=0.5858ff.m请输入x=inff=08.(2)将上题编程改为M函数程序文件,该函数文件满足:对于任意输入的正整数n,能够输出对应次数小球反弹的高度。functionff=f(x)ifnargin==0,x=1;endifx=0&x1f(x)=x;elseifx=1&x=2f(x)=2-x;elseifx0disp('ÊäÈë´íÎó');elsef(x)=0;endf(x)9.已知两个传递函数分别为:12212(),()313GxGxsss①在MATLAB中分别用传递函数、零极点、和状态空间法表示;②在MATLAB中分别求出通过反馈、串联、并联后得到的系统模型;Matlab:sys1=tf([1],[31])ss(sys1)zpk(sys1)sys2=tf([2],[3,1,0])ss(sys2)zpk(sys2)feedback(sys1,sys2,-1)parallel(sys1,sys2)series(sys1,sys2)10.已知系统的方框图如图所示,试推导出从输入信号到输出信号的总系统模型。Matlab:sys1=tf([1],[1,1]);sys2=tf([1,0],[1,0,2]);sys3=tf([4,2],[1,2,1]);sys11=feedback(sys1*sys2,sys3,-1);sys4=tf([1],[1,0,0]);sys22=feedback(sys4,50,-1);sys5=tf([1,0,2],[1,0,0,14]);sys=3*feedback(sys11+sys22,sys5,-1)结果:Transferfunction:6s^8+15s^7+168s^6+417s^5+384s^4+2358s^3+4662s^2+2436s+84-----------------------------------------------------------------------------------s^10+3s^9+55s^8+177s^7+305s^6+1382s^5+2775s^4+3882s^3+7952s^2+5716s+140411.设单位负反馈控制系统的开环传递函数为:2()(717)KGssss(1)试绘制K=10,100时闭环系统的阶跃响应曲线,并计算上升时间,超调量和过渡时间;(2)绘制K=1000时闭环系统的阶跃响应曲线,与K=10,100所得的结果相比较,分析增益系数与系统稳定性的关系。Matlab:K=input('请输入增益系数K=');sys1=tf([K],[1,7,17,0]);sys=feedback(sys1,1);[y,t]=step(sys);plot(t,y)grid[Y,k]=max(y);timeopeak=t(k);c=dcgain(sys);percentovershoot=100*(Y-c)/c%Çó½â³¬¶ÈÁ¿n=1;whiley(n)0.1*cn=n+1endm=1;whiley(m)0.9*cm=m+1;endrisetime=t(m)-t(n)%Çó½âÉÏÉýʱ¼äi=length(t);while(y(i)0.98*c&y(i)1.02*c)i=i-1;endsettingtime=t(i)%Çó½â¹ý¶Éʱ¼äK=10时闭环系统的阶跃响应曲线012345678900.10.20.30.40.50.60.70.80.91percentovershoot=-0.1162risetime=2.7802settingtime=5.1279K=100时闭环系统的阶跃响应曲线0510152025303500.20.40.60.811.21.41.61.8percentovershoot=76.0846risetime=0.3180settingtime=24.5778K=1000:0510152025-8-6-4-20246810x1024percentovershoot=9.6105e+026risetime=0.0674settingtime=22.1165由k=10,100,1000,过渡时间依次为:5.1279,24.5778,22.1165,且由第三个图看出K=1000时系统已经呈现高度不稳定性,由此可以看出增益系数越高,过渡时间越长,系统稳定性更差*12.设单位负反馈控制系统的开环传递函数为3(0.51)()(1)(0.251)sGssss(1)利用Matlab建立上述控制系统的数学模型。(2)利用Matlab绘制系统的单位阶跃响应曲线和单位冲激响应曲线。(3)利用LTIViewer工具绘制系统的单位阶跃响应曲线和单位冲击响应曲线,并分析系统性能。Matlab:num=[1.53];den=conv([10],conv([0.25,1],[1,1]));sys=tf(num,den);sys=feedback(sys,1);figure(1)step(sys)figure(2)impulse(sys)ltiview控制系统的数学模型为:Transferfunction:1.5s+3-------------------------------0.25s^3+1.25s^2+2.5s+3单位阶跃响应曲线:012345600.20.40.60.811.21.4StepResponseTime(sec)Amplitude单位冲激响应曲线:01234567-0.4-0.200.20.40.60.811.21.4ImpulseResponseTime(sec)Amplitude利用LTIViewer工具:系统上升时间在1s左右,且经过4s后单位阶跃响应趋近与稳定。*13.已知系统如下2(1)()()KsGsssa绘制在下列条件下的根轨迹:(1)10;(2)8;(3)6;(4)4;(5)2aaaaaMatlab:a=input('ÇëÊäÈëa=');num=[1,1];den=[1,a,0,0];sys=tf(num,den);rlocus(sys);gridon;title('¸ù¹ì¼£');根轨迹依次为:-12-10-8-6-4-202-8-6-4-2024680.140.30.440.580.720.840.920.980.140.30.440.580.720.840.920.9824681012根轨迹图RealAxisImaginaryAxis-
本文标题:控制系统仿真
链接地址:https://www.777doc.com/doc-4493713 .html