首页 测控专业计算机仿真实验指导书

测控专业计算机仿真实验指导书

举报
开通vip

测控专业计算机仿真实验指导书测控专业计算机仿真实验指导书 实验一 123,,(1)已知矩阵,b=[7 8;9 10;11 12],利用MATLAB进行a,,,456,, 矩阵计算:a*b a/b a\b a^3 a.*b a./b a.\b a.^3 解: >> a=[1 2 3;4 5 6] a = 1 2 3 4 5 6 >> b=[7 8;9 10;11 12] b = 7 8 9 10 11 12 >> a*b ans = 58 64 139 154 >> a=[1 2 3;4 5 6] a = ...

测控专业计算机仿真实验指导书
测控专业计算机仿真实验指导书 实验一 123,,(1)已知矩阵,b=[7 8;9 10;11 12],利用MATLAB进行a,,,456,, 矩阵计算:a*b a/b a\b a^3 a.*b a./b a.\b a.^3 解: >> a=[1 2 3;4 5 6] a = 1 2 3 4 5 6 >> b=[7 8;9 10;11 12] b = 7 8 9 10 11 12 >> a*b ans = 58 64 139 154 >> a=[1 2 3;4 5 6] a = 1 2 3 4 5 6 >> b=[7 8 9;10 11 12] b = 1 7 8 9 10 11 12 >> a/b ans = 3.0000 -2.0000 2.0000 -1.0000 >> (2)多项式计算:求[12+2×(7-4)]?32的算数计算结果。 解:>> a=12; >> b=2*(7-4); >> c=(a+b)/32 c = 0.5625 2(编写M文件绘制函数的图形。 【例1-1】:绘制下面函数在[0 3]区间的图形。 sinx, x,0, ,y(x),x, 0,x,3 , ,,x,6, x,3, MATLAB程序: x=-6:0.1:6; leng=length(x); for m=1:leng if x(m)<=0 y(m)=sin(x(m)); elseif x(m)<=3 y(m)=x(m); else 2 y(m)=-x(m)+6; end end plot(x,y,'*'),grid; 练习:绘制下面的图形:(1)sin(1/t),-1> t=-0.1:0.0001:0.1; >> leng=length(t); >> for m=1:leng if t(m)<=-1 y(m)=0; elseif t(m)>=1 y(m)=0; else y(m)=sin(1/t(m)); end end % Warning: Divide by zero. >> plot(t,y,'*'),grid; 3 (2)1-cos3(7t) >> t=-1:0.0001:1; >> leng=length(t); >> for m=1:leng if t(m)<=0 y(m)=1-cos(3*(7*t(m))); else y(m)=1-cos(3*(7*t(m))); end end >> plot(t,y,'*'),grid; >> 4 3(建立Simulink模型,进行系统仿真。 【例1-2】:信号发生器发出幅值为1,频率为0.2Hz(下图实为0.5Hz)的正弦信号。信号分两路输出:一路直接送到示波器,一路扩大5倍送到另外的示波器。 启动Simulink,建立如图模型,并运行,观察运行结果。 5 解: 练习:(1)应用Simulink建立系统模型,并对系统的阶跃响应进行仿真。 1G(s), 2s,4s,8 解: 6 (2)建立一个简单的模型,用信号发生器产生一个幅值为2V,频率为0.5Hz的正弦波,并叠加一个0.1V的噪声信号,将叠加后的信号显示在示波器上。 7 8 实验2 f(t),sin(,t,,)(1)正弦交流信号 实现 ,MATLAB程序如下: t=-0:0.001:1; y=sin(2*pi*t); plot(t,y,'k'); xlabel('时间(t)');ylabel('幅值(f)');title('正弦交流信号'); f(t),,(t)(2)单位阶跃信号 MATLAB程序如下: t=-2:0.01:6; u=(t>=0); plot(t,u); axis([-2,6,0,1.2]) xlabel('时间(t)');ylabel('幅值(f)');title('单位阶跃信号'); ,3t,4jtf(t),e(3)复指数信号 MATLAB程序如下: t=0:0.01:3; a=-3;b=4; z=exp((a+i*b)*t); subplot(221); plot(t,imag(z)),title('实部');xlabel('时间');ylabel('幅值'); f(t),sin(2,t)subplot(222); plot(t,real(z)),title('虚部');xlabel('时间');ylabel('幅值'); subplot(223); plot(t,abs(z)),title('模');xlabel('时间');ylabel('幅值'); subplot(224); plot(t,angle(z)),title('相角');xlabel('时间');ylabel('幅值'); 9 2.连续时间信号的基本运算 (1)加(减)、乘运算 实现两个信号的加法和乘法运算:要求两个信号运算的时间序列长度相同。 MATLAB程序如下: t=0:0.01:2; f1=exp(-3*t); f2=0.2*sin(4*pi*t); f3=f1+f2; f4=f1.*f2; subplot(221);plot(t,f1);title('f1(t)'); subplot(222);plot(t,f2);title('f2(t)'); subplot(223);plot(t,f3);title('f1+f2'); subplot(224);plot(t,f4);title('f1*f2'); (2)信号的反褶、移位、尺度变换 f(t)f(,at,b)(a,0)由到步骤: 移位尺度反褶f(t),,,,f(t,b),,,,f(at,b),,,,f(,at,b) f(t),sin(t)/tf(t)【例2-1】已知。试通过反褶、移位、尺度变换由 f(,2t,3)的波形得到的波形。 MATLAB程序如下 syms t; f=sym(‘sin(t)/t’); f1=subs(f,t,t+3); f2=subs(f1,t,2*t); f3=sub(f2,t,-t); subplot(2,2,1);ezplot(f,[-8,8]);grid on; subplot(2,2,2);ezplot(f1,[-8,8]);grid on; subplot(2,2,3);ezplot(f2,[-8,8]);grid on; subplot(2,2,4);ezplot(f3,[-8,8]);grid on; 10 (3)连续信号的卷积运算 y,conv(x,h)用于实现x、h两个序列的卷积,假定都是从n=0开始。Y序列的长度为x、h序列的长度之和再减1. 【例2-2】求两个方波信号的卷积。 MATLAB程序如下: y1=[ones(1,20),zeros(1,20)]; y2=[ones(1,10),zeros(1,20)]; y=conv(y1,y2); n1=1:length(y1); n2=1:length(y2); L=length(y); subplot(3,1,1);plot(n1,y1);axis([1 L 0 2]); subplot(3,1,2);plot(n2,y2);axis([1 L 0 2]); n=1:L; subplot(3,1,3);plot(n,y),axis([1 L 0 20]); 【例2-3】求两个指数信号的卷积。 MATLAB程序如下: 11 t=0:0.01:1; y1=exp(-6*t); y2=exp(-3*t); y=conv(y1,y2); L1=length(y1); L2=length(y2); L=length(y); subplot(3,1,1);plot(t,y1); subplot(3,1,2);plot(t,y2); t1=0:0.01:2; subplot(3,1,3);plot(t1,y); ,(t,3),cos3t,sin2t1. 编制程序,生成如下连续信号: 解:>> t=-2:0.01:6; >> u=(t>=3); >> plot(t,u); 12 >> t=-2:0.01:6; >> u=(t>=3); >> plot(t,u); >> t=-0:0.001:1; >> y=sin(2*t); >> z=cos(3*t); >> w=y+z; >> plot(w); 13 14 实验3 ''''的冲激 【例3-1】求系统(t),(t),(t),(t),(t)y6y3y3x9x响应和阶跃响应。 (1)系统的冲激响应的MATLAB程序如下: b=[3,9];a=[1,6,8]; sys=tf(b,a) t=0:0.1:10; y=impulse(sys,t); plot(t,y); xlabel('time(t)');ylabel('y(t)');title('单位冲激响应'); (2)系统的阶跃响应的MATLAB程序如下: b=[3,9];a=[1,6,8]; sys=tf(b,a) 15 t=0:0.1:10; y=step(sys,t); plot(t,y); xlabel('time(t)');ylabel('y(t)');title('单位阶跃响应'); ''',,【例3-2】求系统的全响(t),(t),cos(t),y(),(),0yyy00应。 MATLAB程序如下: b=[1];a=[1,0,1]; sys=tf(b,a) t=0:0.1:10; x=cos(t); y=lsim(sys,x,t); plot(t,y); xlabel('time(t)');ylabel('y(t)');title('零状态响应'); 16 利用函数直接求的程序: b=[1];a=[1,0,1]; [A B C D]=tf2ss(b,a); sys=ss(A,B,C,D); t=0:0.1:10; x=cos(t); y=lsim(sys,x,t); plot(t,y); xlabel('time(t)');ylabel('y(t)');title('系统响应'); 17 ?琠????????氠湥?敬杮桴琨??‾潦???敬杮植?琠洨??礍?氠湥?敬杮桴琨??‾潦???敬杮植?琠洨??礍洨??潣???琪洨??攠獬????挭獯???????湥?湥??†汰瑯琨礬???牧摩????? ?‾潦???敬杮植?琠洨??礍洨??潣???琪洨??攠獬????挭獯???????湥?湥??†汰瑯琨礬???牧摩????? ‾潦???敬杮植?琠洨??礍洨??潣???琪洨??攠獬????挭獯???????湥?湥??†汰瑯琨礬???牧摩????? 植?琠洨??礍洨??潣???琪洨??攠獬????挭獯???????湥?湥??†汰瑯琨礬???牧摩????? ?琠洨??礍洨??潣???琪洨??攠獬????挭獯???????湥?湥??†汰瑯琨礬???牧摩????? 礍洨??潣???琪洨??攠獬????挭獯???????湥?湥??†汰瑯琨礬???牧摩????? 洨??潣???琪洨??攠獬????挭獯???????湥?湥??†汰瑯琨礬???牧摩????? ???? ??? ?? 18 ? 19 20 21 0 0週 0週? 0週? 0週?倲 0週?倲 0週?倲 ? 0週?倲 ?? 0週?倲 ?? 0週?倲 ??? 0週?倲 ???? 22 0週?倲 ???? 0週?倲 ???? 0週?倲 ???? 0週?倲 ???????? 0週?倲 ???????? 0週?倲 ????????連 0週?倲 ????????連? 0週?倲 ????????連?逤 0週?倲 ????????連?逤 0週?倲 ????????連?逤 0週?倲 ????????連?逤 0週?倲 ????????連?逤 0週?倲 ????????連?逤 0週?倲 ????????連?逤 0週?倲 ????????連?逤 0週?倲 ????????連?逤?? ???? 0週?倲 ????????連?逤?? ???? 0週?倲 ????????連?逤?? ????逌 0週?倲 ????????連?逤?? ????逌 0週?倲 ????????連?逤?? ????逌 0週?倲 ????????連?逤?? ????逌 0週?倲 ????????連?逤?? ????逌 0週?倲 ????????連?逤?? ????逌 0週?倲 ????????連?逤?? ????逌 0週?倲 ????????連?逤?? ????逌 0週?倲 ????????連?逤?? ????逌 0週?倲 ????????連?逤?? ????逌 0週?倲 ????????連?逤?? ????逌 0週?倲 ????????連?逤?? ????逌0週?倲 ????????連?逤?? ????逌週?倲 ????????連?逤?? ????逌?倲 ????????連?逤?? ????逌倲 ????????連?逤?? ????逌? ? ? ? ? ú ????????連?逤?? ????逌? ? ? ? ? ú ,????????連?逤?? ????逌? ? ? ? ? ú ,???????連?逤?? ????逌? ? ? ? ? ú ,??????連?逤?? ????逌? ? ? ? ? ú , 23 ?????連?逤?? ????逌? ? ? ? ? ú ,????連?逤?? ????逌? ? ? ? ? ú ,???連?逤?? ????逌? ? ? ? ? ú ,??連?逤?? ????逌? ? ? ? ? ú ,?連?逤?? ????逌? ? ? ? ? ú ,連?逤?? ????逌? ? ? ? ? ú ,?逤?? ????逌? ? ? ? ? ú , ú 逤?? ????逌? ? ? ? ? ú , ú ,?? ????逌? ? ? ? ? ú , ú ,? ????逌? ? ? ? ? ú , ú , ????逌? ? ? ? ? ú , ú ,????逌? ? ? ? ? ú , ú ,???逌? ? ? ? ? ú , ú ,??逌? ? ? ? ? ú , ú ,?逌? ? ? ? ? ú , ú ,逌? ? ? ? ? ú , ú ,? ? ? ? ? ú , ú , ? ? ? ? ú , ú , ú ? ? ? ? ú , ú , ú , ? ? ? ú , ú , ú ,? ? ? ú , ú , ú , ? ? ú , ú , ú ,? ? ú , ú , ú , ? ú , ú , ú ,? ú , ú , ú , ú , ú , ú ,ú , ú , ú , , ú , ú , , ú , ú , , ú , ú , , ú , ú , ú , ú , ú , ú ,, ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , 24 ú , ú , ú , ú , ú , ú ,ú , ú , ú , , ú , ú , , ú , ú , , ú , ú , , ú , ú , ú , ú , ú , ú ,, ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú ,ú , ú , ú , , ú , ú , , ú , ú , , ú , ú , , ú , ú , ú , ú , ú , ú ,, ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú ,ú , ú , ú , , ú , ú , , ú , ú , , ú , ú , , ú , ú , ú , ú , ú , ú ,, ú , ú , ú , ú , ú , ú , ú , ú , ú , 25 ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú ,ú , ú , ú , , ú , ú , , ú , ú , , ú , ú , , ú , ú , , ú , ú ,, ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú , ú ,ú , ú , , ú , , ú , , ú , , ú , , ú ,, ú , ú , ú , ú , ú , ú , ú ,ú , , , , , ,, 26 ú 27 ú 28 ú 29 ú 30 ú 31 ú 32 ú 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 实验4 1(周期信号的分解 【例4-1】用正弦信号的叠加近似合成一个频率为50Hz,幅度为3的方波。 MATLAB程序如下: clear all fs=10000; t=[0:1/fs:0.1]; f0=50; sum=0; subplot(211) for n=1:2:9 plot(t,4/pi*1/n*sin(2*pi*n*f0*t),'k'); hold on; end title('信号叠加前'); subplot(212) for n=1:2:9; sum=sum+4/pi*1/n*sin(2*pi*n*f0*t); end plot(t,sum,'k'); title('信号叠加后'); 69 2(傅里叶变换和逆变换的实现 求傅里叶变换,可以调用forier函数,调用格式为F=fourier(f,u,v),是关于u的函数f的傅里叶变换,返回函数F是关于v的函数。 求傅里叶逆变换,可以调用iforier函数,调用格式为f=ifourier(F,u,v),是关于v的函数F的傅里叶逆变换,返回函数f是关于u的函数。 ,2|t|【例4-2】已知连续信号,通过程序完成其傅里叶变换。 f(t),e MATLAB程序如下: syms t f=fourier(exp(-2*abs(t))); ezplot(f); 70 1【例4-3】已知连续信号,通过程序完成其傅里叶F(j),,21,,变换。 MATLAB程序如下: syms t w ifourier(1/(1+w^2),t) 3(傅里叶变换的性质 举例练习傅里叶变换的时移特性和频移特性。 1,2t【例4-4】分别绘出信号和的频谱,求f(t,1)f(t),,(t)e2 1,2t的频谱。 f(t),,(t)e2 MATLAB程序如下: r=0.02;t=-5:r:5; N=200;W=2*pi; k=-N:N;w=k*W/N; f1=1/2*exp(-2*t).*stepfun(t,0); 71 F=r*f1*exp(-j*t'*w); F1=abs(F);P1=angle(F); subplot(3,1,1);plot(t,f1);grid xlabel('t'),ylabel('f(t)');title('f(t)'); subplot(3,1,2); plot(w,F1);xlabel('w');grid;ylabel('F(jw)的模'); subplot(3,1,3); (度)'); plot(w,P1*180/pi);grid;xlabel('w');ylabel('相位 再求信号f(t-1)的频谱: r=0.02;t=-5:r:5;N=200;W=2*pi;k=-N:N;w=k*W/N; f1=1/2*exp(-2*(t-1)).*stepfun(t,1); F=r*f1*exp(-j*t'*w); F1=abs(F);P1=angle(F); subplot(3,1,1);plot(t,f1);grid xlabel('t'),ylabel('f(t)');title('f(t)'); subplot(3,1,2); plot(w,F1);xlabel('w');grid;ylabel('F(jw)的模'); subplot(3,1,3); plot(w,P1*180/pi);grid;xlabel('w');ylabel('相位(度)'); 72 【例4-5】傅里叶变换的频移特性:信号为门信号,绘出f(t),g(t) ,j10tj10t(t),f(t)(t),f(t)ff信号和信号的频谱,并与原信号的ee12 频谱图进行比较。 (1),求其频谱可以采用数值计算的f(t),g(t),,(t,1),,(t,1) 方法。MATLAB程序如下: R=0.02;t=-2:R:2; f=stepfun(t,-1)-stepfun(t,1); w1=2*pi*5; N=500; k=0:N; W=k*w1/N; F=f*exp(-j*t'*W)*R; F=real(F);W=[-fliplr(W),W(2:501)]; F=[fliplr(F),F(2:501)]; subplot(211);plot(t,f); 73 xlabel('t'),ylabel('f(t)');axis([-2,2,-0.5,2]); title('f(t)=u(t+1)-u(t-1)'); subplot(212);plot(W,F); xlabel('w'),ylabel('F(w)');title('f(t)的傅里叶变换'); ,j10tj10t(t),f(t)(t),f(t)ff (2)得到,的频谱的ee12 MATLAB程序如下: R=0.02;t=-2:R:2; f=stepfun(t,-1)-stepfun(t,1); f1=f.*exp(-j*10*t);f2=f.*exp(j*10*t); w1=2*pi*5; N=500; k=-N:N; W=k*w1/N; F1=f1*exp(-j*t'*W)*R;F2=f2*exp(-j*t'*W)*R; F1=real(F1);F2=real(F2); subplot(211);plot(W,F1); xlabel('w'),ylabel('F1(w)');title('F1(jw)的频谱'); 74 subplot(212);plot(W,F2); xlabel('w'),ylabel('F2(w)');title('F2(jw)的频谱'); 实验5 【例5-1】信号,绘制MATLAB曲面观察拉普f(t),,(t),,(t,2) 拉斯变换与傅里叶变换的关系,可以求得信号的拉普拉斯变换与傅里叶变 ,s21,,j,e换:F(s),,F(j,),2Sa(,)es MATLAB程序如下: %绘制矩形信号拉氏变换曲面图 clf; a=-0:0.1:5; 75 b=-20:0.1:20; [a,b]=meshgrid(a,b); c=a+i*b; c=(1-exp(-2*c))./c; c=abs(c); mesh(a,b,c); surf(a,b,c); view(-60,20); axis([-0,5,-20,20,0,2]); title('拉氏变换(s域像函数)'); colormap(hsv); MATLAB程序如下: %绘制矩形信号傅氏变换曲线 w=-20:0.1:20; %确定频率范围 Fw=(2*sin(w).*exp(i*w))./w; %计算傅里叶变换 plot(w,abs(Fw)); %绘制信号振幅频谱曲线 title('傅里叶变换(振幅频谱曲线)'); xlabel('频率'); 76 2(应用拉普拉斯变换求解系统的响应 【例5-2】一个非时变电路的转移函数为: 4(s,6000)u100, H(s),,26,875s,88,ugs10 ,12.5cos(8000t)V,求的稳态响应。 若uu0g 应用拉普拉斯变换法求解,MATLAB程序如下: syms s t; Hs=sym('(10^4*(s+6000))/(s^2+875*s+88*10^6)'); Vs=laplace(12.5*cos(8000*t));Vos=Hs*Vs; Vo=ilaplace(Vos); Vo=vpa(Vo,4); ezplot(Vo,[1,1+5e-3]);hold on; ezplot('12.5*cos(8000*t)',[1,1+5e-3]); 50,50]); axis([1,1+2e-3,- text(0.25,0.85,'输出电压','sc'); text(0.07,0.35,'输入电压','sc'); title('稳态响应');xlabel('电压');ylabel('时间'); 77 3(零极点分布与系统稳定性的关系 2,3,2ss【例4-3】已知连续系统的函数为,H(s),432,2,3,s,5sss编写程序求出系统的零极点,并画出系统的零极点图,判断其稳定性。 系统零极点的位置可以用MATLAB的多项式求根的函数roots,来求得,调用的格式为p=roots(A),其中A为待求根的多项式的行向量,返回的p为包含该多项式所有根的列向量。 系统零极点求取的MATLAB程序如下: %求零极点 clear; b=[1,3,2];a=[1,2,3,1,5]; zs=roots(b) ps=roots(a) plot(real(zs),imag(zs),'go',real(ps),imag(ps),'mx','markersize',12) ;grid on; legend('零点','极点'); 78 4.求系统的冲激响应 已知系统的零极点分布,可以利用MATLAB绘制其连续系统冲激响应的函数impluse(),来绘制系统的冲激响应。 16-4】连续系统的系统函数为【例2-,求系统的冲激响H(s),s,5 应。 MATLAB程序如下: clear; a=[1,2];b=[1]; impulse(b,a) 79 80
本文档为【测控专业计算机仿真实验指导书】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_882336
暂无简介~
格式:doc
大小:605KB
软件:Word
页数:0
分类:其他高等教育
上传时间:2018-01-04
浏览量:18