《控制系统计算机仿真—课程设计作业》姓名: 专业: 学号:1. 构造矩阵(1)试将.*A B 与B A *的结果相加,并找出相加后新矩阵中绝对值大于10的元素。
(2)组合成一个43的矩阵,第一列为按列顺序排列的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=find(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 6714259,,835762A B C -⎡⎤⎡⎤⎡⎤===⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦-3 7 22. 绘制函数曲线,要求写出程序代码(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);y1=sin(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. 写出生成下图所示波形的MA TLAB 程序。
图中三个波形均为余弦波,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(y1>0))=0;figure(2)plot(x,y1)n=find((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π,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=[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;endendend修改后的matlab:A=[1 2 3; 4 5 6; 7 8 9];A(find(A>8|A<2))=0;A6. 假设a 是这样一组数组:222()(1)(2)(3)a n a n a n a n =---+-,且(1)0,(2)1,(3)2a a a ===。
试分别用循环指令for 以及while 来寻求该数组中第一个大于10000 的元素。
Matlab :a(1)=0;a(2)=1; a(3)=2; for i=4:infa(i)=a(i-1)^2-a(i-2)^2+a(i-3)^2; if a(i)>10000 break end end a(i),i 结果:ans =871431 i = 87. 编写分段函数⎪⎩⎪⎨⎧≤≤-<≤=其他021210)(x xx x x f 的函数文件,存放在文件ff.m 中,用input 语句输入x 值,计算)(),2()2-(∞f f f ,的值。
x=input('ÇëÊäÈëx=');if x>=0&x<1 f(x)=x; elseif x>=1&x<=2 f(x)=2-x; else f(x)=0; end f(x) 结果:请输入x=-2 f = 0 > ff.m请输入x=sqrt(2) f =0.5858 >> ff.m请输入x=inf f = 08. (2)将上题编程改为M 函数程序文件,该函数文件满足:对于任意输入的正整数n ,能够输出对应次数小球反弹的高度。
function ff=f(x)if nargin==0,x=1;end if x>=0&x<1 f(x)=x; elseif x>=1&x<=2 f(x)=2-x; elseif x<0disp('ÊäÈë´íÎó'); else f(x)=0; end f(x)9. 已知两个传递函数分别为:12212(),()313G x G x s s s==++①在MA TLAB 中分别用传递函数、零极点、和状态空间法表示; ②在MATLAB 中分别求出通过反馈、串联、并联后得到的系统模型;Matlab :sys1=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. 已知系统的方框图如图所示,试推导出从输入信号到输出信号的总系统模型。
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)结果:Transfer function:6 s^8 + 15 s^7 + 168 s^6 + 417 s^5 + 384 s^4 + 2358 s^3 + 4662 s^2 + 2436 s + 84 -----------------------------------------------------------------------------------s^10 + 3 s^9 + 55 s^8 + 177 s^7 + 305 s^6 + 1382 s^5 + 2775 s^4 + 3882 s^3+ 7952 s^2 + 5716 s + 140411. 设单位负反馈控制系统的开环传递函数为:2()(717)KG s s s s =++(1)试绘制K=10,100时闭环系统的阶跃响应曲线,并计算上升时间,超调量和过渡时间; (2)绘制K=1000时闭环系统的阶跃响应曲线,与K=10,100所得的结果相比较,分析增益系数与系统稳定性的关系。