《控制系统计算机仿真一课程设计作业》姓名: 专业:学号:(1)试将A.* B 与A* B 的结果相加,并找出相加后新矩阵中绝对值大于10的元素。
(2) 组合成一个4 3的矩阵,第一列为按列顺序排列的A 矩阵元素,第二列为按列顺序排列的B 矩阵元素,第三列为按列顺序排列的 C 矩阵元素。
(1)matlab :A=[-7 1;8 -3]; B=[4 2;5 7]; C=[5 9;6 2]; D=A.*B+A*Bnum=fi nd(abs(D)>10); D(num) 结果:D =-51 -5 57 -26 ans =-51 57 -26(2)matlab: NEW=[A(1,:),A(2,:);B(1,:),B(2,:);C(1,:),C(2,:)] '结果:NEW =-7 4 5 1 2 9 8 5 6 -3722. 绘制函数曲线,要求写出程序代码 (1)在区间[0,2]均匀的取50个点,构成向量 X 。
⑵在同一窗口绘制曲线 y 仁sin(2*t-0.3); y2=3cos(t+0.5);要求y1曲线为红色点划线,标记点为圆圈;y2为蓝色虚线,标记点为星号。
程序代码: t=li nspace(0,2*pi,50);1.构造矩阵,B5 7,Cy1=si n( 2*t-0.3);y2=3*cos(t+0.5);plot(t,y1, 'r.' ,t,y2, 'b-');hold onplot(t,y1, 'o' ,t,y2, '*');hold off3. 写出生成下图所示波形的MATLAB程序。
图中三个波形均为余弦波,x范围为[pi/2 ~2 4 8 107*pi/2]。
要求它的正半波被置零;且在[,]和[——, ]处被削顶。
3 3 3 3程序:x=li nspace(pi/2,7*pi/2,100);y1=cos(x);figure (1)plot (x,y1 )y1(fi nd(y1>0))=0;figure(2) plot(x,y1)n=fi nd((x>2*pi/3 &x<4*pi/3)|(x>8*pi/3 &x<10*pi/3));y1( n)=cos(2*pi/3);figure(3)plot(x,y1)4 对于x= [—2 n, 2n], y1=si nx、y2=cosx、y3=s in 2x、y4=cos2x①用MATLAB语言分四个区域分别绘制的曲线,并且对图形标题及横纵坐标轴进行标注。
②另建一个窗口,不分区,用不同颜色、线型绘出四条曲线,并标注图例注解。
Matlab : x=linspace(-2*pi,2*pi,1000);y1=si n( x);y2=cos(x);y3=si n( 2*x);y4=cos(2*x);figure(1)subplot(2,2,1)plot(x,y1)xlabel( 'o ax ?±e x=[-2*pi,2*pi]' );ylabel( ' x Y x ?±e y=sin(x)')title( 'y=sin(x)? u [-2*pi,2*pi]???? 卩?? u ?? i ?' )5. 请分析并修改下面的程序,使用矩阵或数组运算的顺序结构完成嵌套A=[1 2 3; 4 5 6; 7 8 9]; [r c]=size(A); for i=1:1:rfor j=1:1:cif (A(i,j)>8 | A(i,j)<2) A(i,j)=0; end end end修改后的 matlab : A=[1 2 3; 4 5 6; 7 8 9]; A(find(A>8|A<2))=0;A6. 假 设 a 是 这 样 一 组 数 组 : a(n) a(n 1)2 a(n 2)2 a(n 3)2 , 且 a(1) 0,a(2) 1, a(3) 2。
试分别用循环指令 for 以及 while 来寻求该数组中第一个大于 10000 的元素。
Matlab : a(1)=0;a(2)=1; a( 3)=2; for i=4: infa(i)=a(i-1)A 2-a(i-2)A 2+a(i-3)A 2; if a(i)>10000break end endsubplot(2,2,2) plot(x,y2)xlabel( 'o ax ?±e x=[-2*pi,2*pi]' ylabel( ' x Y x ? ±e y=cos(x)') title( 'y=cos(x)? u [-2*pi,2*pi]???? subplot(2,2,3); plot(x,y3);xlabel( 'o ax ?±e x=[-2*pi,2*pi]' ylabel( ' x Y x ?±e y=sin(2x)' ) title( 'y=sin(2x)? u [-2*pi,2*pi]???? subplot(2,2,4); plot(x,y4); xlabel( 'o ax ?± e x=[-2*pi,2*pi]'ylabel( 'x Y x ?± e y=cos(2x)' ) title( 'y=cos(2x)?u [-2*pi,2*pi]????figure(2)plot(x,y1, 'r-' ,x,y2, 'b.',x,y3,legend( 'y=sin(x)', 'y=cos(x)' );卩??u ???' ));卩??u ?? ?'));卩??u ?? ?')'ko' ,x,y4,'g*'),'y=sin(2x £ ?' ,‘y=cos(2x)')for 语句的相同功a(i),i结果:ans =871431i =2 x 1 x 2的函数文件,存放在文件ff.m中,用in put语句7.编写分段函数f (X)0 其他输入x值,计算f(-2),f(、、2), f()的值。
x=input( '?? e ? e ?x=');if x>=0& x<1f(x)=x;elseif x>=1& x<=2f(x)=2-x;elsef(x)=0;endf(x)结果:请输入x=-2f => ff.m请输入x=sqrt(2)f =0.5858>> ff.m请输入x=inff =8. (2)将上题编程改为M函数程序文件,该函数文件满足:对于任意输入的正整数n,能够输出对应次数小球反弹的高度。
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]);fun cti on ff=f(x)if n arg in==0,x=1; end if x>=0& x<1 f(x)=x; elseifx>=1& x<=2f(x)=2-x; elseif x<0disp( ' e ?e ??)0 ' else f(x)=0; end f(x)9.已知两个传递函数分别为:G(x)3TTG 2(x)2 3s 2 s①在MATLAB 中分别用传递函数、零极点、和状态空间法表示; ②在MATLAB 中分别求出通过反馈、串联、并联后得到的系统模型; Matlab :sys 仁tf([1],[3 1]) 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. 已知系统的方框图如图所示,试推导出从输入信号到输出信号的总系统模型。
sys=3*feedback(sys11+sys22,sys5,-1)结果:Tran sfer fun cti on:6 s A 8 + 15 s A7 + 168 s A 6 + 417 s A 5 + 384 s A 4 + 2358 s A 3 + 4662 s A 2 + 2436 s + 84 s A 10 + 3 sA9 + 55 sA8 + 177 sA7 + 305 sA6 + 1382 sA5 + 2775 sA4 + 3882 sA3+ 7952 sA2 + 5716 s140411. 设单位负反馈控制系统的开环传递函数为:(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=dcga in( sys);percentovershoot=100*(Y-c)/c %?o ?a3?? ea?n=1;while y( n)<0.1*c n=n+1 end m=1;while y(m)<0.9*c m=m+1; endrisetime=t(m)-t(n) %?o ?a e ? e y e± ?? i=le ngth(t);while (y(i)>0.98*c&y(i)<1.02*c) i=i-1; endsett in gtime=t(i)%?o ?a1y? ee± ??G(s)Ks(s 2 7s 17)perce ntovershoot = -0.1162 risetime =2.7802 sett in gtime =5.1279K=100时闭环系统的阶跃响应曲线 perce ntovershoot =76.0846 risetime = 0.3180 sett in gtime = 24.5778K=1000 :K=10时闭环系统的阶跃响应曲线1.8IIA- (^ .■ ■ u ■ i.U A u當*1. || Ij ■1.4 1.20.8 0.6 0.4 0.21.6perce ntovershoot =9.6105e+026risetime =0.0674sett in gtime =22.1165由k=10,100,1000,过渡时间依次为:5.1279,24.5778,22.1165,且由第三个图看出K=1000 时系统已经呈现高度不稳定性,由此可以看出增益系数越高,过渡时间越长,系统稳定性更差*12.设单位负反馈控制系统的开环传递函数为3(°5s 1)G(s)s(s 1)(0.25s 1)(1)利用Matlab建立上述控制系统的数学模型。