山东工商学院计算机仿真及应用实验报告实验七 MATLAB的基本应用(二)及Simulink仿真(验证性实验)学院:专业班级:实验时间:学号:姓名:一、实验目的1、掌握连续信号的仿真和傅里叶分析方法2、掌握连续系统的分析方法(时域分析法,拉氏变换法和傅里叶分析法);3、掌握离散信号的仿真和分析运算方法4、掌握离散系统的分析方法(时域分析法);5、掌握符号运算方法;6、掌握Simulink仿真工具;二、实验原理1、连续信号的仿真和分析法,参考教材第6.1节,重点:单位冲激信号的仿真方法;单位阶跃信号的仿真方法;复指数信号的仿真方法2、连续系统的分析方法,参考教材第6.1节,重点:例6.2,LTI系统的零输入响应的求解方法;例6.3,LTI系统的冲激响应的求解方法例6.5,LTI系统的零状态响应的求解方法例6.6,系统中有重极点时的计算3、系统的频域分析方法,参考教材第6.2节,重点:例6.7,方波分解为多次正弦波之和例6.8:全波整流电压的频谱例6.10:调幅信号通过带通滤波器例6.12:用傅里叶变换计算滤波器的响应和输出4、离散信号的仿真和分析法,参考教材第6.3节,7.1节,重点:单位脉冲序列impseq,单位阶跃序列stepseq例7.1:序列的相加和相乘例7.2:序列的合成与截取例7.3:序列的移位和周期延拓运算三、实验内容(包括内容,程序,结果)以自我编程练习实验为主,熟悉各种方法和设计,结合课堂讲授,实验练习程序代码。
1、根据教材第6.1节的内容,练习连续信号和系统的时域分析和拉氏变换方法。
q602clear,clca=input('输入分母系数向量a=[a1,a2,...]= ');n=length(a)-1;Y0=input('输入初始条件向量Y0=[y0,Dy0,D2y0,...]= ');p=roots(a);V=rot90(vander(p));c=V\Y0';dt=input('dt= ');tf=input('tf= ');t=0:dt:tf;y=zeros(1,length(t));for k=1:n y=y+c(k)*exp(p(k)*t); end plot(t,y),grid hold on输入分母系数向量a=[a1,a2,...]= [3 5 7 1] 输入初始条件向量Y0=[y0,Dy0,D2y0,...]= [1 0 0] dt= 0.2 tf= 8Warning: Imaginary parts of complex X and/or Y arguments ignored. > In q602 at 9输入分母系数向量a=[a1,a2,...]= [3 5 7 1] 输入初始条件向量Y0=[y0,Dy0,D2y0,...]= [0 1 0] dt= 0.2 tf= 8Warning: Imaginary parts of complex X and/or Y arguments ignored. > In q602 at 9输入分母系数向量a=[a1,a2,...]= [3 5 7 1] 输入初始条件向量Y0=[y0,Dy0,D2y0,...]= [0 0 1] dt= 0.2 tf= 8Warning: Imaginary parts of complex X and/or Y arguments ignored. > In q602 at 91234567800.10.20.30.40.50.60.70.80.91q603clear,clca=input('多项式分母系数向量a= ');b=input('多项式分子系数向量b= ');[r,p]=residue(b,a),disp('解析式h(t)=r(i)*exp(p(i)*t)')disp('给出时间数组t=[0:dt:tf]')dt=input('dt= ');tf=input('tf= ');t=0:dt:tf;h=zeros(1,length(t));for i=1:length(a)-1 h=h+r(i)*exp(p(i)*t); end plot(t,h),grid多项式分母系数向量a= poly([0 -1+2i -1-2i -2 -5]) 多项式分子系数向量b= [8 3 1]r =0.62000.1300 - 0.3900i0.1300 + 0.3900i-0.90000.0200p =-5.0000-1.0000 + 2.0000i-1.0000 - 2.0000i-2.0000解析式h(t)=r(i)*exp(p(i)*t)给出时间数组t=[0:dt:tf]dt= 0.2tf= 8012345678-0.15-0.1-0.0500.050.10.150.20.252、 根据教材第6.2节练习傅里叶分析方法。
q607t =0:.01:2*pi;y =sin(t);plot(t,y),figure(gcf),pause y =sin(t) + sin(3*t)/3;plot(t,y), pausey =sin(t) + sin(3*t)/3 + sin(5*t)/5 + sin(7*t)/7 + sin(9*t)/9;plot(t,y) z= zeros(10, max(size(t)));x = zeros(size(t)); for k=1:2:19x= x + sin(k*t)/k;y((k+1)/2, : )=x; endpause,figure(1),plot(t,y(1:9, : )),grid line([0,pi+0.5],[pi/4,pi/4]) text(pi+0.5,pi/4,'pi/4') halft=ceil(length(t)/2);pause,figure(2),mesh(t(1:halft),[1:10],y(:, 1:halft)1234567-1-0.8-0.6-0.4-0.200.20.40.60.8101234567-1-0.8-0.6-0.4-0.200.20.40.60.811234567-1-0.8-0.6-0.4-0.200.20.40.60.810123451000.20.40.60.81q609clear, format compact L=0.4;C=10e-6;R=200; Um=100;w1=100*pi;N=input('需分析的谐波次数2N= '); n=1:N/1;w=[eps,2*n*w1];Us = 4*Um/pi*[0.5,-1./(4*n.^2-1)]; z1=j*w*L;z2=1./(j*w*C);z3=R; z23=z2.*z3./(z2+z3); UR=Us.*z23./(z1+z3) UR =Columns 1 through 663.6620 - 0.0000i 3.6951 +16.0354i 0.8430 + 0.7970i 0.2077 + 0.1185i 0.0711 + 0.0294i 0.0302 + 0.0099i Columns 7 through 110.0149 + 0.0040i 0.0081 + 0.0019i 0.0048 + 0.0010i 0.0030 + 0.0005i 0.0020 + 0.0003i谐波次数谐波幅度谐波相移0 63.6620 -0.00002.0000 16.4556 77.02384.0000 1.1601 43.39406.0000 0.2391 29.71218.0000 0.0769 22.503510.0000 0.0318 18.086112.0000 0.0154 15.110014.0000 0.0083 12.971316.0000 0.0049 11.361318.0000 0.0031 10.105820.0000 0.0020 9.0997disp(' 谐波次数谐波幅度谐波相移 ');disp([2*[0,n]',abs(UR)',angle(UR)'*180/pi])3、根据教材第6.3节的内容,练习离散信号和系统的时域分析方法。
q613clear,n0=0;nf=10;ns=3;n1=n0:nf;x1=[zeros(1,ns-n0),1,zeros(1,nf-ns)];n2=n0:nf;x2=[(n1-ns)>=0];n3=n0:nf;x3=exp((-0.2+0.5j)*n3);subplot(2,2,1),stem(n1,x1);title('单位脉冲序列')subplot(2,2,2),stem(n2,x2);title('单位阶跃序列')subplot(2,2,3),stem(n3,real(x3));line([0,10],[0,0])title('复指数序列'),ylabel('实部')subplot(2,2,4),stem(n3,imag(x3));line([0,10],[0,0])ylabel('虚部')51000.20.40.60.81单位脉冲序列51000.20.40.60.81单位阶跃序列510-0.50.51复指数序列实部510-0.20.20.40.6虚部4、 根据教材第9.1节的内容,以及表9.1,练习符号运算。
5、 根据教材第9.2节练习Simulink 方法。
Inductive current chopping by an ideal switchContinuousVs=120V rms 60 HzTimerStray Capacitance 50 nFScope2Scope1Rs = 50 ohm L = 1 HRs 1 ohm v +-Ind. voltageg m 12Ideal Switch?Double click here for more infoi+-Ind. current<Switch current><Switch v oltage>四、实验总结与体会用matlab解决各种信号、电路问题很方便,省去了大量的计算,提高了准确性。
但是编程需要对matlab有很高的运用能力,必须多加练习。