基于MATLAB的数字仿真实验说明书.doc

上传人:h**** 文档编号:140520 上传时间:2018-07-10 格式:DOC 页数:13 大小:201KB
下载 相关 举报
基于MATLAB的数字仿真实验说明书.doc_第1页
第1页 / 共13页
基于MATLAB的数字仿真实验说明书.doc_第2页
第2页 / 共13页
基于MATLAB的数字仿真实验说明书.doc_第3页
第3页 / 共13页
基于MATLAB的数字仿真实验说明书.doc_第4页
第4页 / 共13页
基于MATLAB的数字仿真实验说明书.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、 1 附录 1: bef实验一的主要程序 洗手 1主要程序 : beef洗手 状态方程模型 洗手 num=1 7 24 24; beef洗手 den=1 10 35 50 24; beef洗手 A B C D=tf2ss(num,den); beef洗手 零极点增益模型 洗手 Z P K=tf2zp(num,den); beef洗手 部分分式形式 洗手 R P H=residue(num,den); beef洗手 洗手 洗手 2主要程序 : beef洗手 ( 1)欧拉法 m文件 洗手 h=0.1;beef洗手 disp(函数的数值解为 );beef %显示 中间的文字 %洗手 disp(y=)

2、;beef %同上 %洗手 y=1;beef洗手 for t=0:h:1 洗手 m=y;beef洗手 disp(y);beef %显示 y的当前值 %洗手 y=m-m*h;beef洗手 end 保存文 件 q2.m; beef在 matalb命令行键入 q2 洗手 洗手 ( 2) tye 的真值 m文件 洗手 h=0.1;beef洗手 disp(函数的离散时刻解为 );beef洗手 disp(y=);beef洗手 for t=0:h:1 洗手 y=exp(-t);beef洗手 disp(y);beef洗手 end 保存文件 q3.m; beef在 matalb命令行中键入 q3 洗手 洗手 比

3、较欧拉方法 求解与真值的差别 欧拉 1 0.9000 0.8100 0.7290 0.6561 0.5905 0.5314 0.4783 0.4305 0.3874 0.3487 真值 1 0.9048 0.8187 0.7408 0.6703 0.6065 0.5488 0.4966 0.4493 0.4066 0.3679 误差 0 -0.0048 -0.0007 0.0118 0.0142 0.0160 0.0174 0.0183 0.0188 -0.0192 -0.0192 显然误差与 2h 为同阶无穷小 , 吃饭 欧拉法具有一阶计算精度 , 吃饭 精度较低 , 吃饭 但算2 法简单

4、。 洗手洗手 洗手 ( 3)二阶龙格 -库塔法 m文件 洗手 h=0.1;beef洗手 disp(函数的数值解为 );beef洗手 disp(y=);beef洗手 y=1;beef洗手 for t=0:h:1 洗手 disp(y);beef洗手 k1=-y;beef洗手 k2=-(y+k1*h);beef洗手 y=y+(k1+k2)*h/2;beef洗手 end 保存文件 q4.m; beef在 matlab的命令中键入 q4 洗手 洗手 比较欧拉法与二阶龙格 -库塔法求解(误差为绝对值) 真值 1 0.9048 0.8187 0.7408 0.6703 0.6065 0.5488 0.496

5、6 0.4493 0.4066 0.3679 龙库 1 0.9050 0.8190 0.7412 0.6708 0.6071 0.5494 0.4972 0.4500 0.4072 0.3685 误差 0 0.0002 0.0003 0.0004 0.0005 0.0006 0.0006 0.0006 0.0007 0.0006 0.0006 明显误差为 3h 得同阶无穷小 , 吃饭 具有二阶计算精度 , 吃饭 而欧拉法具有一阶计算精度 ,吃饭二阶龙格 -库塔法比欧拉法计算精度高 。 洗手洗手 洗手 ( 4)四阶龙格 -库塔法 m文件 洗手 h=0.1;beef洗手 disp(四阶龙格 -库塔

6、方法求解函数数值解为 );beef洗手 disp(y=);beef洗手 y=1;beef洗手 for t=0:h:1 洗手 disp(y);beef洗手 k1=-y;beef洗手 k2=-(y+k1*h/2);beef洗手 k3=-(y+k2*h/2);beef洗手 k4=-(y+k3*h);beef洗手 y=y+(k1+2*k2+2*k3+k4)*h/6;beef洗手 end 保存文件 q5.m; beef在 matlab命令行里键入 q5 洗手 对比四阶 龙格 -库塔方法 : beef 真值 1 0.9048 0.8187 0.7408 0.6703 0.6065 0.5488 0.496

7、6 0.4493 0.4066 0.3679 龙 1 0.9048 0.8187 0.7408 0.6703 0.6065 0.5488 0.4966 0.4493 0.4066 0.3679 3 库 误差 0 0 0 0 0 0 0 0 0 0 0 洗手 显然四阶龙格 -库塔法求解精度很高 , 吃饭基本接近真值 。 洗手 三种方法比较可以得到 洗手 精度(四阶 ) 精度(二阶) 精 度(欧拉) 洗手 洗手 洗手 3主要程序 : beef洗手 采用最小二乘曲线拟合 洗手 x=0.01:1:9.01;beef洗手 y=2.5437 7.8884 9.6242 11.6071 11.9727 13

8、.2189 14.2679 14.6134 15.4045 15.0805;beef洗手 p=polyfit(x,y,3);beef %选定曲线的阶数为 3 阶 , 吃饭 阶数 xi=0:0.01:9.01;beef洗手 yi=polyval(p,xi);beef洗手 plot(x,y,xi,yi)洗手 grid on 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 4 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 附录 2: bef实验二的主要程序 洗手 洗手 1主要程序 : beef洗手 微分方程法 : beef将 ()s 转化为状态方程 , 吃饭 利用 m

9、atlab语句 洗手 num=10;beef洗手 den=1 8 36 40 10;beef洗手 A B C D=tf2ss(num,den)洗手 洗手 洗手 编写 m文件求解微分方程组 洗手 function dx=wffc(t,x)洗手 u=1;beef %阶跃响应 , 吃饭输入为 1%洗手 dx=-8*x(1)-36*x(2)-40*x(3)-10*x(4)+u;beefx(1);beefx(2);beefx(3);beef洗手 保存文件 wffc.m 洗手 洗手 洗手 在命令行键入 洗手 t,x=ode45(wffc,0,8,0;beef0;beef0;beef0);beef洗手 y=

10、10*x(:,4);beef洗手 plot(t,y);beef洗手 grid 洗手 5 洗手 洗手 控制工具箱法 : beef在 matlab命令行中键入 洗手 num=10;beef洗手 den=1 8 36 40 10;beef洗手 sys=tf(num,den);beef洗手 step(sys);beef洗手 grid 洗手 洗手 洗手 simulink法 : beef在 simulink模型窗口中建立如下模型 , 吃饭 键入该题的传递函数 。 洗手洗手 洗手 洗手 洗手 洗手 洗手 洗手 2 1)当输入为 1( t)时(阶跃信号) 洗手 洗手 6 洗手 洗手 2)当输入为 t时(斜坡信

11、号) 洗手 洗手 洗手 3)当输入为 1( t) -1( 1.5) 时(两个信号的合成) 洗手 洗手 7 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 洗手 8 洗手 洗手 洗手 洗手 洗手 附录 3: bef实验三的主要程序 洗手 洗手 1命令行输入数据 : beef洗手 a=0.016 0.864 3.27 3.42 1;beef洗手 b=30 25;beef洗手 X0=0 0 0 0;beef洗手 V=2;beef洗手 n=4;beef 洗手 T0=0;beef 洗手 Tf=10;beef洗手 h=0.25;beef洗手 R=20;bee

12、f洗手 洗手 2形成开 、 beef闭环系统阵 : befsp4-1.m 洗手 b=b/a(1);beefa=a/a(1);beefA=a(2:n+1);beef洗手 A=rot90(rot90(eye(n-1,n);beef-fliplr(A);beef洗手 B=zeros(1,n-1),1;beef洗手 m1=length(b);beef洗手 C=fliplr(b),zeros(1,n-m1);beef洗手 Ab=A-B*C*V;beef洗手 X=X0;beef洗手 y=0;beeft=T0;beef洗手 洗手 3运算求 解 : beef洗手 9 N=round(Tf-T0)/h);bee

13、f洗手 for i=1:N 洗手 K1=Ab*X+B*R;beef洗手 K2=Ab*(X+h*K1/2)+B*R;beef 洗手 K3=Ab*(X+h*K2/2)+B*R;beef洗手 K4=Ab*(X+h*K3)+B*R;beef洗手 X=X+h*(K1+2*K2+2*K3+K4)/6;beef洗手 y=y,C*X;beef洗手 t=t,t(i)+h;beef洗手 end 洗手 洗手 4输出结果 : beef(注意 h值的选取 , 吃饭 太大时将画不出波形!) 洗手 h=0.05;beef洗手 sp3_1 洗手 t,y洗手 plot(t,y) 洗手 grid 洗手 附录 4: bef实验四的

14、主要程序 洗手 洗手 1在 MATLAB命令窗口中输入下列命令 : beef洗手 num=1;beef洗手 den=conv(conv(1,0,1,4),1,4,20);beef洗手 G=tf(num,den);beef洗手 rlocus(G)洗手 grid on 洗手 运行结果为 洗手 10 - 1 0 -8 -6 -4 -2 0 2 4 6-8-6-4-2024688 60 . 9 40 . 50 . 50 . 7 60 . 1 640 . 7 620 . 6 40 . 9 8 5100 . 9 40 . 9 8 50 . 3 40 . 6 40 . 1 60 . 8 60 . 3 40

15、. 8 6R o o t L o c u sR e a l A x isImaginaryAxis洗手 洗手 2 分子分母同乘 100*200得到 洗手 28 0 2 0 0 ( 1 0 0 )()( 2 . 5 1 0 0 ) ( 2 0 . 3 2 0 0 )200sWssss 洗手 在 Matlab窗口中输入下列命令 : beef洗手 k=80*200;beef洗手 num=1 100;beef洗手 a=2.5 100;beef洗手 b=(1/200) 2*0.3 200;beef洗手 den=conv(a,b);beef洗手 w=logspace(-1,1,100);beef洗手 m,p=bode(k*num,den,w);beef洗手 subplot(2,1,1);beef洗手 semilogx(w,20*log10(m);beef洗手 grid;beef洗手 xlabel(Frequency(rad/sec);beef洗手 ylabel(Gain(dB);beef洗手 subplot(2,1,2);beef洗手 semilogx(w,p);beef洗手 grid;beef洗手

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。