理论力学matlab编程
- 格式:doc
- 大小:123.50 KB
- 文档页数:4
确定一轻型货车的动力性能货车可装用4挡或5挡变速器,任选其中的一种进行整车性能计算:1绘制汽车驱动力与行驶阻力平衡图;2求汽车最高车速,最大爬坡度及克服该坡度时相应的附着率;3绘制汽车行驶加速度倒数曲线,用图解积分法求汽车用2档起步加速行驶至70km/h的车速-时间曲线,或者用计算机求汽车用2档起步加速行驶至70km/h的加速时间;轻型货车的有关数据:汽油发动机使用外特性的Tq-n曲线的拟合公式为式中,Tq为发动机转矩N m;n为发动机转速r/min;发动机的最低转速nmin =600r/min,最高转速nmax=4000r/min;装载质量 2000kg 整车整备质量 1800kg 总质量 3880kg 车轮半径传动系机械效率ηt=滚动阻力系数f=空气阻力系数×迎风面积C D A=主减速器传动比i0=飞轮转动惯量 I f=m2二前轮转动惯量I w1=m2四后轮转动惯量I w2=m2质心至前轴距离满载 a=质心高满载 hg=解:Matlab程序:1 求汽车驱动力与行驶阻力平衡图和汽车最高车速程序: n=600:10:4000;Tq=+n/1000n/1000.^2+n/1000.^n/1000.^4;m=3880;g=;nmin=600;nmax=4000;G=mg;ig= ;nT=;r=;f=;CDA=;i0=;L=;a=;hg=;If=;Iw1=;Iw2=;Ft1=Tqig1i0nT/r;Ft2=Tqig2i0nT/r;Ft3=Tqig3i0nT/r;Ft4=Tqig4i0nT/r;Ft5=Tqig5i0nT/r;ua1=rn/ig1/i0;ua2=rn/ig2/i0;ua3=rn/ig3/i0;ua4=rn/ig4/i0;ua5=rn/ig5/i0;ua=0:5:120;Ff=Gf;Fw=CDAua.^2/;Fz=Ff+Fw;plotua1,Ft1,ua2,Ft2,ua3,Ft3,ua4,Ft4,ua5,Ft5,ua,Fz;title'驱动力-行驶阻力平衡图';xlabel'uakm/s';ylabel'FtN';gtext'Ft1',gtext'Ft2',gtext'Ft3',gtext'Ft4',gtext'Ft5',gtext'Ff+Fw'; zoom on;x,y=ginput1;zoom off;disp'汽车最高车速=';dispx;disp'km/h';汽车最高车速=km/h2求汽车最大爬坡度程序:n=600:10:4000;Tq=+n/1000n/1000.^2+n/1000.^n/1000.^4;m=3880;g=;nmin=600;nmax=4000;G=mg;ig= ;nT=;r=;f=;CDA=;i0=;L=;a=;hg=;If=;Iw1=;Iw2=;Ft1=Tqig1i0nT/r;ua1=rn/ig1/i0;Ff=Gf;Fw1=CDAua1.^2/;Fz1=Ff+Fw1;Fi1=Ft1-Fz1;Zoom on;imax=100tanasinmaxFi1/G;disp'汽车最大爬坡度=';dispimax;disp'%';汽车最大爬坡度=%3求最大爬坡度相应的附着率和求汽车行驶加速度倒数曲线程序:clearn=600:10:4000;Tq=+n/1000n/1000.^2+n/1000.^n/1000.^4;m=3880;g=;nmin=600;nmax=4000;G=mg;ig= ;nT=;r=;f=;CDA=;i0=;L=;a=;hg=;If=;Iw1=;Iw2=;Ft1=Tqig1i0nT/r;Ft2=Tqig2i0nT/r;Ft3=Tqig3i0nT/r;Ft4=Tqig4i0nT/r;Ft5=Tqig5i0nT/r;ua1=rn/ig1/i0;ua2=rn/ig2/i0;ua3=rn/ig3/i0;ua4=rn/ig4/i0;ua5=rn/ig5/i0;Fw1=CDAua1.^2/;Fw2=CDAua2.^2/;Fw3=CDAua3.^2/;Fw4=CDAua4.^2/;Fw5=CDAua5.^2/;Ff=Gf;deta1=1+Iw1+Iw2/mr^2+Ifig1^2i0^2nT/mr^2;deta2=1+Iw1+Iw2/mr^2+Ifig2^2i0^2nT/mr^2;deta3=1+Iw1+Iw2/mr^2+Ifig3^2i0^2nT/mr^2;deta4=1+Iw1+Iw2/mr^2+Ifig4^2i0^2nT/mr^2;deta5=1+Iw1+Iw2/mr^2+Ifig5^2i0^2nT/mr^2;a1=Ft1-Ff-Fw1/deta1m;ad1=1./a1;a2=Ft2-Ff-Fw2/deta2m;ad2=1./a2;a3=Ft3-Ff-Fw3/deta3m;ad3=1./a3;a4=Ft4-Ff-Fw4/deta4m;ad4=1./a4;a5=Ft5-Ff-Fw5/deta5m;ad5=1./a5;plotua1,ad1,ua2,ad2,ua3,ad3,ua4,ad4,ua5,ad5;axis0 99 0 10;title'汽车的加速度倒数曲线';xlabel'uakm/h';ylabel'1/a';gtext'1/a1';gtext'1/a2';gtext'1/a3';gtext'1/a4';gtext'1/a5'; a=maxa1;af=asinmaxFt1-Ff-Fw1/G;C=tanaf/a/L+hgtanaf/L;disp'假设后轮驱动,最大爬坡度相应的附着率=';dispC;假设后轮驱动,最大爬坡度相应的附着率=4 >>clearnT=;r=;f=;CDA=;i0=;If=;Iw1=;Iw2=;L=;a=;hg=;m=3880;g=;G=mg; ig= ;nmin=600;nmax=4000;u1=rnmin./ig/i0;u2=rnmax./ig/i0;deta=0ig;for i=1:5detai=1+Iw1+Iw2/mr^2+Ifigi^2i0^2nT/mr^2;endua=6::99;N=lengthua;n=0;Tq=0;Ft=0;inv_a=0ua;delta=0ua; Ff=Gf;Fw=CDAua.^2/;for i=1:Nk=i;if uai<=u22n=uaiig2i0/r/;Tq=+n/1000n/1000^2+n/1000^n/1000^4;Ft=Tqig2i0nT/r;inv_ai=deta2m/Ft-Ff-Fwi;deltai=inv_ai/;elseif uai<=u23n=uaiig3i0/r/;Tq=+n/1000n/1000^2+n/1000^n/1000^4;Ft=Tqig3i0nT/r;inv_ai=deta3m/Ft-Ff-Fwi;deltai=inv_ai/;elseif uai<=u24n=uaiig4i0/r/;Tq=+n/1000n/1000^2+n/1000^n/1000^4;Ft=Tqig4i0nT/r;inv_ai=deta4m/Ft-Ff-Fwi;deltai=inv_ai/;elsen=uaiig5i0/r/;Tq=+n/1000n/1000^2+n/1000^n/1000^4;Ft=Tqig5i0nT/r;inv_ai=deta5m/Ft-Ff-Fwi;deltai=inv_ai/;enda=delta1:k;ti=suma;endplott,ua;axis0 80 0 100;title'汽车2档原地起步换挡加速时间曲线';xlabel'时间ts';ylabel'速度uakm/h';>> ginputans =所以汽车2档原地起步换挡加速行驶至70km/h 的加速时间约为已知货车装用汽油发动机的负荷特性与万有特性;负荷特性曲线的拟合公式为:44332210e e e e P B P B P B P B B b ++++=其中,b 为燃油消耗率g/kW h ;Pe 为发动机净功率kW ;拟合式中的系数随转速n 变化;怠速油耗s mL Q id /299.0=怠速转速400r/min;计算与绘制题中货车的1汽车功率平衡图;2最高档与次高档的等速百公里油耗曲线;或利用计算机求货车按JB3352-83规定的六工况循环行驶的百公里油耗;计算中确定燃油消耗值b 时,若发动机转速与负荷特性中给定的转速不相等,可由相邻转速的两根曲线用插值法求得;解:Matlab 程序:(1)汽车功率平衡图程序:clearn=600:10:4000;Tq=+n/1000n/1000.^2+n/1000.^n/1000.^4;m=3880;g=;G=mg;ig= ;nT=;r=;f=;CDA=;i0=;L=;a=;hg=;If=;Iw1=;Iw2=;ua1=rn/ig1/i0;ua2=rn/ig2/i0;ua3=rn/ig3/i0;ua4=rn/ig4/i0;ua5=rn/ig5/i0;Pe1=Tq.ig1i0.ua1./3600r;Pe2=Tq.ig2i0.ua2./3600r;Pe3=Tq.ig3i0.ua3./3600r;Pe4=Tq.ig4i0.ua4./3600r;Pe5=Tq.ig5i0.ua5./3600r;ua=0::119;Ff=Gf;Fw=CDAua.^2/;Pf=Ffua/3600;Pw=Fw.ua/3600;Pe0=Pf+Pw./nT;Pe=maxPe1;plotua1,Pe1,ua2,Pe2,ua3,Pe3,ua4,Pe4,ua5,Pe5,ua,Pe0,ua,Pe;axis0 119 0 100;title'汽车功率平衡图';xlabel'uakm/h';ylabel'Pekw';gtext'1',gtext'2',gtext'3',gtext'4',gtext'5',gtext'Pf+Pw/et',gt ext'Pe';2最高档与次高档的等速百公里油耗曲线程序:clearn=600:1:4000;m=3880;g=;G=mg;ig= ;nT=;r=;f=;CDA=;i0=;L=;a=;hg=;If=;Iw1=;Iw2=;n0=815 1207 1614 2012 2603 3006 3403 3804;B00= ;B10= ;B20= ;B30= ;B40= ;B0=splinen0,B00,n;B1=splinen0,B10,n;B2=splinen0,B20,n;B3=splinen0,B30,n;B4=splinen0,B40,n;Ff=Gf;ua4=rn/ig4/i0;ua5=rn/ig5/i0;Fz4=Ff+CDAua4.^2/;Fz5=Ff+CDAua5.^2/;Pe4=Fz4.ua4./nT1000;Pe5=Fz5.ua5./nT1000;for i=1:1:3401b4i=B0i+B1iPe4i+B2iPe4i.^2+B3iPe4i.^3+B4iPe4i.^4; b5i=B0i+B1iPe5i+B2iPe5i.^2+B3iPe5i.^3+B4iPe5i.^4; endpg=;Q4=Pe4.b4./.ua4.pg;Q5=Pe5.b5./.ua5.pg;plotua4,Q4,ua5,Q5;axis0 100 10 30;title'最高档与次高档等速百公里油耗曲线';xlabel'uakm/h';ylabel'百公里油耗L/100km';gtext'4',gtext'5';i为、、、、时的燃油经济性—加速时改变题中轻型货车的主减速器传动比,做出i值对汽车性能的影响;间曲线,讨论不同解:Matlab程序:主程序:i0=,,,,; %输入主传动比的数据for i=1:1:5yi=jiasushijiani0i; %求加速时间endy;for i=1:1:5bi=youhaoi0i; %求对应i0的六工况百公里油耗endb;plotb,y,'+r'hold onb1=linspaceb1,b5,100;y1=splineb,y,b1; %三次样条插值plotb1,y1; %绘制燃油经济性-加速时间曲线title'燃油经济性—加速时间曲线';xlabel'百公里油耗L/100km';ylabel'加速时间s';gtext'i0=',gtext'i0=',gtext'i0=',gtext'i0=',gtext'i0=';子程序:1 function y=jiasushijiani0 %求加速时间的处理函数n1=linspace0,5000; %先求各个档位的驱动力nmax=4000;nmin=600;r=;yita=;CDA=;f=;G=3880;ig=,,,;%i0=for i=1:1:4 %i为档数uamaxi=chesunmax,r,igi,i0; %计算各个档位的最大速度与最小速度uamini=chesunmin,r,igi,i0;uai,:=linspaceuamini,uamaxi,100;ni,:=zhuansuuai,:,r,igi,i0; %计算各个档位的转速范围 Ttqi,:=zhuanjuni,:; %求出各档位的转矩范围 Fti,:=qudongliTtqi,:,igi,i0,yita,r; %求出驱动力Fi,:=fG+CDAuai,:.^2/; %求出滚动阻力和空气阻力的和deltai,:=1+++igi^2i0^2yita/3880r^2; %求转动质量换算系数ai,:=1./deltai,:.3880./Fti,:-Fi,:; %求出加速度F2i,:=Fti,:-Fi,:;end%下面分各个档位进行积分,求出加速时间temp11,:=ua2,:/;temp12,:=1./a2,:;n1=1;for j1=1:1:100if ua3,j1>maxua2,:&&ua3,j1<=70temp21,n1=ua3,j1/;temp22,n1=1./a3,j1;n1=n1+1;endendn2=1;for j1=1:1:100if ua4,j1>maxua3,:&&ua4,j1<=70;temp31,n2=ua4,j1/;temp32,n2=1./a4,j1;n2=n2+1;endendy=temp11,1temp12,1+qiujitemp11,:,temp12,:+qiujitemp21,:,temp22,:+qiuj itemp31,:,temp32,:;end2 function ua=chesun,r,ig,i0; %由转速计算车速ua=r.n/igi0;3 function n=zhuansuua,r,ig,i0; %求转速n=igi0.ua./r;end4 function y=zhuanjun; %求转矩函数y=+.n./1000.n./1000.^2+.n./1000.^.n./1000.^4;5 function y=qudongliTtq,ig,i0,yita,r; %求驱动力函数y=igi0yita.Ttq/r;end6 function p=qiujix0,y0 %求积分函数n0=sizex0;n=n02;x=linspacex01,x0n,200 ;y=splinex0,y0,x; %插值% figure;plotx,y;p=trapzx,y ;end7 %求不同i0下的六工况油耗function b=youhaoi0;global f G CDA yita m r If Iw1 Iw2 pg B0 B1 B2 B3 B4 n %声明全局变量ig=,,,;r=;yita=;CDA=;f=;%i0=;G=3880;If=;Iw1=;Iw2=;m=3880; %汽车的基本参数设定n0=815 1207 1614 2012 2603 3006 3403 3804;B00= ;B10= ;B20= ;B30= ;B40= ;n=600:1:4000;B0=splinen0,B00,n;B1=splinen0,B10,n;B2=splinen0,B20,n; %使用三次样条插值,保证曲线的光滑连续B3=splinen0,B30,n;B4=splinen0,B40,n;ua4=r.n./i0ig4; %求出发动机转速范围内对应的III、IV档车速F4=fG+CDAua4.^2/; %求出滚动阻力和空气阻力的和P_fw4=F4.ua4./yita1000; %求出阻力功率for i=1:1:3401 %用拟合公式求出各个燃油消耗率b4i=B0i+B1iP_fw4i+B2iP_fw4i^2+B3iP_fw4i^3+B4iP_fw4i^4;endpg=; %汽油的重度取Lua4_m=25,40,50; %匀速阶段的车速s_m=50,250,250; %每段匀速走过的距离b4_m=splineua4,b4,ua4_m; %插值得出对应速度的燃油消耗率F4_m=fG+CDAua4_m.^2/; %车速对应的阻力P_fw4_m=F4_m.ua4_m./yita1000; %发动机功率Q4_m=P_fw4_m.b4_m.s_m./102.ua4_m.pg ; Q4_a1=jiasu40,25,ig4,,ua4,i0; Q4_a2=jiasu50,40,ig4,,ua4,i0; Qid=;tid=;s=1075;Q_i=Qidtid; %求出减速阶段的燃油消耗量 Q4all=sumQ4_m+Q4_a1+Q4_a2+Q_i100/s; %IV 档六工况百公里燃油消耗量 b=Q4all;8加速阶段处理函数function q=jiasuumax,umin,ig,a,ua0,i0;global f G CDA yita m r If Iw1 Iw2 pg B0 B1 B2 B3 B4 n; %i0 ; ua1=umin:1:umax; %把速度范围以1km/h 为间隔进行划分 delta=1+Iw1+Iw2/mr^2+Ifig^2i0^2yita/mr^2;P0=Gf.ua0./3600+CDA.ua0.^3/76140+deltam.ua0/3600a/yita; P=Gf.ua1/3600+CDA.ua1.^3/76140+deltam.ua1/3600a/yita; dt=1/a ; %速度每增加1km/h 所需要的时间for i=1:1:3401 %重新利用拟合公式求出b 与ua 的关系 b0i=B0i+B1iP0i+B2iP0i^2+B3iP0i^3+B4iP0i^4; endb1=interp1ua0,b0,ua1; %插值出各个速度节点的燃油消耗率 Qt=P.b1./.pg; %求出各个速度节点的燃油消耗率 i1=sizeQt; i=i12;Qt1=Qt2:i-1;q=Qt1+Qtidt./2+sumQt1dt; %求该加速阶段的燃油消耗量2)求行驶车速Ua =30km/h,在ϕ=路面上车轮不抱死的制动距离;计算时取制动系反应时间'2τ=,制动减速度上升时间''2τ=;3)求制动系前部管路损坏时汽车的制动距离s,制动系后部管路损坏时汽车的制动距离's ; 解:Matlab 程序: (1) 求利用附着系数曲线和制动效率曲线程序: cleark=4080;hgk=;Lk=;ak=;betak=;bk=Lk-ak;%空载时的参数 mm=9290;hgm=;Lm=;am=;betam=;bm=Lm-am;%满载时的参数 z=0::; figure1; fai=z;fai_fk=betakzLk./bk+zhgk;%空载时前轴的φffai_fm=betamzLm./bm+zhgm;%满载时前轴的φffai_rk=1-betakzLk./ak-zhgk;%空载时后轴的φrfai_rm=1-betamzLm./am-zhgm;%满载时后轴的φrplotz,fai_fk,'b--',z,fai_fm,'r',z,fai_rk,'b--',z,fai_rm,'r',z,fai,' k';title'利用附着系数与制动强度的关系曲线';xlabel'制动强度z/g';ylabel'利用附着系数φ';gtext'φr空载',gtext'φr满载',gtext'φ=z',gtext'φf空载',gtext'φf 满载';figure2;Efk=z./fai_fk100;%空载时前轴的制动效率Efm=z./fai_fm100;Erk=z./fai_rk100;Erm=z./fai_rm100;plotfai_fk,Efk,'b',fai_fm,Efm,'r',fai_rk,Erk,'b',fai_rm,Erm,'r'; axis0 1 0 100;title'前.后制动效率曲线';xlabel'附着系数φ';ylabel'制动效率%';gtext'Ef',gtext'Er',gtext'Er',gtext'满载',gtext'空载';(2)问和3问程序:clearmk=4080;hgk=;Lk=;ak=;betak=;bk=Lk-ak;%空载时的参数mm=9290;hgm=;Lm=;am=;betam=;bm=Lm-am;%满载时的参数z=0::1;fai_fk=betakzLk./bk+zhgk;%空载时前轴的φffai_fm=betamzLm./bm+zhgm;%满载时前轴的φffai_rk=1-betakzLk./ak-zhgk;%空载时后轴的φrfai_rm=1-betamzLm./am-zhgm;%满载时后轴的φrEfk=z./fai_fk100;%空载时前轴的制动效率Efm=z./fai_fm100;Erk=z./fai_rk100;Erm=z./fai_rm100;t1=;t2=;ua0=30;fai=;g=;ak1=Erk81gfai/100;am1=Erm81gfai/100;Sk1=t1+t2/2ua0/+ua0^2/ak1;%制动距离Sm1=t1+t2/2ua0/+ua0^2/am1;disp'空载时,汽车制动距离Sk1=';dispSk1;disp'满载时,汽车制动距离Sm1=';dispSm1;ak2=faigak/Lk+faihgk; am2=faigam/Lm+faihgm; ak3=faigbk/Lk-faihgk; am3=faigbm/Lk-faihgm;Sk2=t1+t2/2ua0/+ua0^2/ak2;%制动距离 Sm2=t1+t2/2ua0/+ua0^2/am2; Sk3=t1+t2/2ua0/+ua0^2/ak3; Sm3=t1+t2/2ua0/+ua0^2/am3;disp'空载时,前制动器损坏,汽车制动距离Sk2='; dispSk2;disp'满载时,前制动器损坏,汽车制动距离Sm2='; dispSm2;disp'空载时,后制动器损坏,汽车制动距离Sk3='; dispSk3;disp'满载时,后制动器损坏,汽车制动距离Sm3='; dispSm3;空载时,汽车制动距离Sk1=满载时,汽车制动距离Sm1=空载时,前制动器损坏,汽车制动距离Sk2=满载时,前制动器损坏,汽车制动距离Sm2=空载时,后制动器损坏,汽车制动距离Sk3=满载时,后制动器损坏,汽车制动距离Sm3=二自由度轿车模型的有关参数如下:总质量 m=绕Oz 轴转动惯量 23885m kg I z ⋅= 轴距 L= 质心至前轴距离 a= 质心至后轴距离 b=前轮总侧偏刚度 k 1=-62618N/rad 后轮总侧偏刚度 k 2=-110185N/rad 转向系总传动比 i=20 试求:1) 稳定性因数K 、特征车速u ch ; 2) 稳态横摆角速度增益曲线asr u -⎪⎭⎫δω、车速u=s 时的转向灵敏度sw rδω;3) 静态储备系数.,侧向加速度为时的前、后轮侧偏角绝对值之差21αα-与转弯半径的比值R/R 0R 0=15m;4) 车速u=s 时,瞬态响应的横摆角速度波动的固有圆频率0ω、阻尼比ζ、反应时间τ与峰值反应时间ε解:Matlab 程序: m=;Iz=3885;L=;a=;b=;k1=-62618;k2=-110185; i=20;g=;R0=15;u1=; K=ma/k2-b/k1/L^2; Uch=1/K^1/2;%特征车速disp'稳定性因数s^2/m^2K='; dispK;disp'特征车速m/sUch='; dispUch; u=0::30;S=u./L1+Ku.^2;%稳态横摆角速度增益 plotu,S;title'汽车稳态横摆角速度增益曲线'; xlabel'车速um/s';ylabel'稳态横摆角速度增益'; disp'u=s 时,转向灵敏度为'; dispS448;SM=k2/k1+k2-a/L; ay=g; A=KayL; B=L/R0; R=L/B-A;C=R/R0;%转弯半径比 disp'静态储备系数.='; dispSM;disp'侧向加速度为时前、后轮侧偏角绝对值之差rad a1-a2='; dispA;disp'侧向加速度为时转弯半径比值R/R0='; dispC;W0=L/u1k1k2/mIz1+Ku1^2^1/2;%固有圆频率D=-mk1a^2+k2b^2-Izk1+k2/2LmIzk1k21+Ku1^2^1/2;%阻尼比 t=atan1-D^2^1/2/-mu1aW0/Lk2-D/W01-D^2^1/2;%反应时间 E=atan1-D^2^1/2/D/W01-D^2^1/2+t;%峰值反应时间 disp'车速u=s 时的瞬态响应参数分别为:'; disp'横摆角速度波动的固有圆频率rad 为 '; dispW0;disp'阻尼比为'; dispD;disp'反应时间s 为'; dispt;disp'峰值反应时间s 为'; dispE;稳定性因数s^2/m^2K=特征车速m/sUch=u=s 时,转向灵敏度为静态储备系数.=侧向加速度为时前、后轮侧偏角绝对值之差rad a1-a2=侧向加速度为时转弯半径比值R/R0=车速u=s 时的瞬态响应参数分别为: 横摆角速度波动的固有圆频率rad 为阻尼比为反应时间s 为峰值反应时间s 为车身-车轮双质量系统参数:10,9,25.0,5.10====μγζHz f ;“人体-座椅”系统参数:25.0,3==s s Hz f ζ;车速s m u /20=,路面不平度系数()3801056.2m n G q -⨯=,参考空间频率n 0=;计算时频率步长Hz f 2.0=∆,计算频率点数180=N ;1) 计算并画出幅频特性q z /1、12/z z 、2/z q 和均方根值谱()f G z 1 、()f G z 2 、()f G a 谱图;进一步计算aw w a zz q L a 、、、、、σσσσ21 值 2) 改变“人体-座椅”系统参数:5.0~125.0,6~5.1==s s Hz f ζ;分析aw w L a 、值随s s f ζ、的变化;3) 分别改变车身-车轮双质量系统参数:5.0~125.0,3~25.00==ζHz f ,20~5,18~5.4==μγ;绘制GFd fd z /2σσσ、、 三个响应量均方根值随以上四个系统参数变化的曲线; 解:Matlab 程序 1问yps=;%阻尼比ζ gama=9;%刚度比γ mu=10;%质量比μfs=3;ypss=;g=;a0=10^-6;f0=; ua=20;Gqn0=10^-8;n0=;detaf=;N=180; f=detaf0:N;lamta=f/f0;lamtas=f/fs;Wf=0f;deta=1-lamta.^2.1+gama-1/mulamta.^2-1.^2+4yps^2lamta.^2.gama-1/mu+1la mta.^2.^2;z1_q=gamasqrt1-lamta.^2.^2+4yps^2lamta.^2./deta;z2_z1=sqrt1+4yps^2lamta.^2./1-lamta.^2.^2+4yps^2lamta.^2; p_z2=sqrt1+2ypsslamtas.^2./1-lamtas.^2.^2+2ypsslamtas.^2; z2_q=gamasqrt1+4yps^2lamta.^2./deta; p_q=p_z2.z2_q;jfg_Gqddf=4pi^2sqrtGqn0n0^2uaf; jfg_Gzdd1f=z1_q.jfg_Gqddf; jfg_Gzdd2f=z2_q.jfg_Gqddf; jfg_Gaf=p_q.jfg_Gqddf;sigmaqdd=sqrttrapzf,jfg_Gqddf.^2;%路面不平度加速度均方根值 sigmazdd1=sqrttrapzf,jfg_Gzdd1f.^2;%车轮加速度均方根值 sigmazdd2=sqrttrapzf,jfg_Gzdd2f.^2;%车身加速度均方根值 sigmaa=sqrttrapzf,jfg_Gaf.^2;%人体加速度均方根值 for i=1:N+1 if fi<=2 Wfi=; elseif fi<=4 Wfi=fi/4; elseif fi<= Wfi=1; elseWfi=fi; end endkk=Wf.^2.jfg_Gaf.^2;aw=sqrttrapzf,kk;%加权加速度均方根值 Law=20log10aw/a0;%加权振级disp'路面不平度加速度均方根值为';dispsigmaqdd; disp'车轮加速度均方根值为';dispsigmazdd1; disp'车身加速度均方根值为';dispsigmazdd2; disp'人体加速度均方根值为';dispsigmaa;disp'加权加速度均方根值为';dispaw;disp'加权振级';dispLaw;figure1plotf,z1_q,title'幅频特性|z1/q|, f=, ζ=,γ=9,μ=10',xlabel'激振频率f/Hz',ylabel'|z1/q|';figure2plotf,z2_z1,title'幅频特性|z2/z1|,f=, ζ=,γ=9,μ=10',xlabel'激振频率f/Hz',ylabel'|z2/z1|';figure3plotf,p_z2,title'幅频特性|p/z2|,fs=, ζs=',xlabel'激振频率f/Hz',ylabel'|p/z2|';figure4plotf,jfg_Gzdd1f,title'车轮加速度均方根值√Gz1f谱图',xlabel'激振频率f/Hz',ylabel'√Gz1f';figure5plotf,jfg_Gzdd2f,title'车身加速度均方根值√Gz2f谱图',xlabel'激振频率f/Hz',ylabel'√Gz2f';figure6plotf,jfg_Gaf,title'人体加速度均方根值√Gaf谱图',xlabel'激振频率f/Hz',ylabel'√Gaf';路面不平度加速度均方根值为车轮加速度均方根值为车身加速度均方根值为人体加速度均方根值为加权加速度均方根值为加权振级2问程序1:cleargama=9;%刚度比γmu=10;%质量比μf0=;g=;a0=10^-6;ua=20;Gqn0=10^-8;n0=;detaf=;N=180;f=detaf0:N;lamta=f/f0;Wf=0f;for i=1:N+1if fi<=2Wfi=;elseif fi<=4Wfi=fi/4;elseif fi<=Wfi=1;elseWfi=fi;endendfs=3;ypss=;ypss0=::;a=0ypss0;La=0ypss0;M=lengthypss0;for i=1:Myps=ypss0i;lamtas=f/fs;deta=1-lamta.^2.1+gama-1/mulamta.^2-1.^2+4yps^2lamta.^2.gama-1/mu+1la mta.^2.^2;p_z2=sqrt1+2ypsslamtas.^2./1-lamtas.^2.^2+2ypsslamtas.^2;z2_q=gamasqrt1+4yps^2lamta.^2./deta;p_q=p_z2.z2_q;jfg_Gqddf=4pi^2sqrtGqn0n0^2uaf;jfg_Gaf=p_q.jfg_Gqddf;kk=Wf.^2.jfg_Gaf.^2;awi=sqrttrapzf,kk;endLaw=20log10aw/a0;figure1plotypss0,aw;title'aw随ζs的变化',xlabel'“人体—座椅”系统的阻尼比ζs',ylabel'aw/ms^-2';figure2plotypss0,Law;title'Law随ζs的变化',xlabel'“人体—座椅”系统的阻尼比ζs',ylabel'Law/dB';程序2:clearyps=;%阻尼比ζgama=9;%刚度比γmu=10;%质量比μf0=;g=;a0=10^-6;ua=20;Gqn0=10^-8;n0=;detaf=;N=180;f=detaf0:N;lamta=f/f0;Wf=0f;for i=1:N+1if fi<=2Wfi=;elseif fi<=4Wfi=fi/4;elseif fi<=Wfi=1;elseWfi=fi;endendypss=;fs=::6;M=lengthfs;for i=1:Mfs0=fsi;lamtas=f/fs0;deta=1-lamta.^2.1+gama-1/mulamta.^2-1.^2+4yps^2lamta.^2.gama-1/mu+1la mta.^2.^2;p_z2=sqrt1+2ypsslamtas.^2./1-lamtas.^2.^2+2ypsslamtas.^2;z2_q=gamasqrt1+4yps^2lamta.^2./deta;p_q=p_z2.z2_q;jfg_Gqddf=4pi^2sqrtGqn0n0^2uaf;jfg_Gaf=p_q.jfg_Gqddf;kk=Wf.^2.jfg_Gaf.^2;awi=sqrttrapzf,kk;endLaw=20log10aw/a0;figure3plotfs,aw;title'aw随fs的变化',xlabel'“人体—座椅”系统的固有频率fs',ylabel'aw/ms^-2';figure4plotfs,Law;title'Law随fs的变化',xlabel'“人体—座椅”系统的固有频率fs',ylabel'Law/dB';3问程序1:clearfigure1fs=3;yps_s=;g=;ua=20;Gqn0=10^-8;n0=;detaf=;N=180;f0=;yps=;gama=9;mu=10;ff0=::3;sigmaz2=0ff0;sigmafd=0ff0;sigmaFd_G=0ff0;M=lengthff0;for i=1:Mf0=ff0i;f=detaf0:N;lamta=f/f0;lamtas=f/fs;deta=1-lamta.^2.1+gama-1/mulamta.^2-1.^2+4yps^2lamta.^2.gama-1/mu+1la mta.^2.^2;z2_qdot=2pifgama.sqrt1+4yps^2lamta.^2./deta;fd_qdot=gamalamta.^2./2pif+eps./sqrtdeta;Fd_Gqdot=2pifgama/g.sqrtlamta.^2/mu+1-1.^2+4yps^2lamta.^2./deta;Gq_dotf=4pi^2Gqn0n0^2ua;Gz2f=z2_qdot.^2Gq_dotf;Gfd_qf=fd_qdot.^2Gq_dotf;GFd_Gf=Fd_Gqdot.^2Gq_dotf;sigmaz2i=sqrttrapzf,Gz2f;sigmafdi=sqrttrapzf,Gfd_qf;sigmaFd_Gi=sqrttrapzf,GFd_Gf;if f0==sgmz2=sigmaz2i;sgmfd=sigmafdi;sgmFd_G=sigmaFd_Gi;endendsz2=20log10sigmaz2/sgmz2;sfd=20log10sigmafd/sgmfd;sFd_G=20log10sigmaFd_G/sgmFd_G;plotff0,sz2,'r-',ff0,sfd,'b-.',ff0,sFd_G,'k--';axis 3 -25 15;title'三个响应量均方根值随f0变化的曲线',xlabel'车身部分固有频率f0/Hz',ylabel'σz2/dB,σfd/dB,σFd/G/dB';程序2:clearfigure2fs=3;yps_s=;g=;ua=20;Gqn0=10^-8;n0=;detaf=;N=180;f0=;yps=;gama=9;mu=10;c= i=1:Myps=yps0i;f=detaf0:N;lamta=f/f0;lamtas=f/fs;deta=1-lamta.^2.1+gama-1/mulamta.^2-1.^2+4yps^2lamta.^2.gama-1/mu+1la mta.^2.^2;z2_qdot=2pifgama.sqrt1+4yps^2lamta.^2./deta;fd_qdot=gamalamta.^2./2pif+eps./sqrtdeta;Fd_Gqdot=2pifgama/g.sqrtlamta.^2/mu+1-1.^2+4yps^2lamta.^2./deta;Gq_dotf=4pi^2Gqn0n0^2ua;Gz2f=z2_qdot.^2Gq_dotf;Gfd_qf=fd_qdot.^2Gq_dotf;GFd_Gf=Fd_Gqdot.^2Gq_dotf;sigmaz2i=sqrttrapzf,Gz2f;sigmafdi=sqrttrapzf,Gfd_qf;sigmaFd_Gi=sqrttrapzf,GFd_Gf;if yps==sgmz2=sigmaz2i;sgmfd=sigmafdi;sgmFd_G=sigmaFd_Gi;endendsz2=20log10sigmaz2/sgmz2;sfd=20log10sigmafd/sgmfd;sFd_G=20log10sigmaFd_G/sgmFd_G;plotyps0,sz2,'r-',yps0,sfd,'b-.',yps0,sFd_G,'k--';axis -4 4;title'三个响应量均方根值随ζ变化的曲线',xlabel'车身部分阻尼比ζ',ylabel'σz2/dB,σfd/dB,σFd/G/dB';程序3:clearfigure3fs=3;yps_s=;g=;ua=20;Gqn0=10^-8;n0=;detaf=;N=180;f0=;yps=;mu=10;gama0=4::19;sigmaz2=0gama0;sigmafd=0gama0;sigmaFd_G=0gama0;M=lengthgama0;for i=1:Mgama=gama0i;f=detaf0:N;lamta=f/f0;lamtas=f/fs;deta=1-lamta.^2.1+gama-1/mulamta.^2-1.^2+4yps^2lamta.^2.gama-1/mu+1la mta.^2.^2;z2_qdot=2pifgama.sqrt1+4yps^2lamta.^2./deta;fd_qdot=gamalamta.^2./2pif+eps./sqrtdeta;Fd_Gqdot=2pifgama/g.sqrtlamta.^2/mu+1-1.^2+4yps^2lamta.^2./deta;Gq_dotf=4pi^2Gqn0n0^2ua;Gz2f=z2_qdot.^2Gq_dotf;Gfd_qf=fd_qdot.^2Gq_dotf;GFd_Gf=Fd_Gqdot.^2Gq_dotf;sigmaz2i=sqrttrapzf,Gz2f;sigmafdi=sqrttrapzf,Gfd_qf;sigmaFd_Gi=sqrttrapzf,GFd_Gf;if gama==9sgmz2=sigmaz2i;sgmfd=sigmafdi;sgmFd_G=sigmaFd_Gi;endendsz2=20log10sigmaz2/sgmz2;sfd=20log10sigmafd/sgmfd;sFd_G=20log10sigmaFd_G/sgmFd_G;plotgama0,sz2,'r-',gama0,sfd,'b-.',gama0,sFd_G,'k--';axis4 18 -5 6;title'三个响应量均方根值随γ变化的曲线',xlabel'悬架与轮胎的刚度比γ',ylabel'σz2/dB,σfd/dB,σFd/G/dB';程序4:clearfigure4fs=3;yps_s=;g=;ua=20;Gqn0=10^-8;n0=;detaf=;N=180;f0=;yps=;gama=9;mu0=5::20;sigmaz2=0mu0;sigmafd=0mu0;sigmaFd_G=0mu0;M=lengthmu0;for i=1:Mmu=mu0i;f=detaf0:N;lamta=f/f0;lamtas=f/fs;deta=1-lamta.^2.1+gama-1/mulamta.^2-1.^2+4yps^2lamta.^2.gama-1/mu+1la mta.^2.^2;z2_qdot=2pifgama.sqrt1+4yps^2lamta.^2./deta;fd_qdot=gamalamta.^2./2pif+eps./sqrtdeta;Fd_Gqdot=2pifgama/g.sqrtlamta.^2/mu+1-1.^2+4yps^2lamta.^2./deta;Gq_dotf=4pi^2Gqn0n0^2ua;Gz2f=z2_qdot.^2Gq_dotf;Gfd_qf=fd_qdot.^2Gq_dotf;GFd_Gf=Fd_Gqdot.^2Gq_dotf;sigmaz2i=sqrttrapzf,Gz2f;sigmafdi=sqrttrapzf,Gfd_qf;sigmaFd_Gi=sqrttrapzf,GFd_Gf;if mu==10sgmz2=sigmaz2i;sgmfd=sigmafdi;sgmFd_G=sigmaFd_Gi;endendsz2=20log10sigmaz2/sgmz2;sfd=20log10sigmafd/sgmfd;sFd_G=20log10sigmaFd_G/sgmFd_G;plotmu0,sz2,'r-',mu0,sfd,'b-.',mu0,sFd_G,'k--';axis5 20 -2 2;title'三个响应量均方根值随μ变化的曲线',xlabel'车身与车轮部分质量比μ',ylabel'σz2/dB,σfd/dB,σFd/G/dB';。
001双峰曲线图:z=peaks(40);mesh(z);surf(z)002解方程:A=[3,4,-2;6,2,-3;45,5,4];>> B=[14;4;23];>> root=inv(A)*B003傅里叶变换load mtlb ;subplot(2,1,1);plot(mtlb);>> title('原始语音信息');>> y=fft(mtlb);>> subplot(2,1,2);>> yy=abs(y);>> plot(yy);>> title('傅里叶变换')004输入函数:a=input('How many apples\n','s')005输出函数a=[1 2 3 4 ;5 6 7 8;12 23 34 45;34 435 23 34]a =1 2 3 45 6 7 812 23 34 4534 435 23 34disp(a)a =1 2 3 45 6 7 812 23 34 4534 435 23 34b=input('how many people\n' ,'s')how many peopletwo peopleb =two people>> disp(b)two people>>006求一元二次方程的根a=1;b=2;c=3;d=sqrt(b^2-4*a*c);x1=(-b+d)/(2*a)x1 =-1.0000 + 1.4142i>> x2=(-b-d)/(2*a)x2 =-1.0000 - 1.4142i007求矩阵的相乘、转置、存盘、读入数据A=[1 3 5 ;2 4 6;-1 0 -2;-3 0 0];>> B=[-1 3;-2 2;2 1];>> C=A*BC =3 142 20-3 -53 -9>> C=C'C =3 2 -3 314 20 -5 -9>> save mydat C>> clear>> load mydat C008编写数学计算公式:A=2.1;B=-4.5;C=6;D=3.5;E=-5;K=atan(((2*pi*A)+E/(2*pi*B*C))/D) K =1.3121009A=[1 0 -1;2 4 1;-2 0 5];>> B=[0 -1 0;2 1 3;1 1 2];>> H=2*A+BH =2 -1 -26 9 5-3 1 12>> M=A^2-3*BM =3 3 -62 13 -2-15 -3 21>> Y=A*BY =-1 -2 -29 3 145 7 10>> R=B*AR =-2 -4 -1-2 4 14-1 4 10>> E=A.*BE =0 0 04 4 3-2 0 10>> W=A\BW =0.3333 -1.3333 0.66670.2500 1.0000 0.25000.3333 -0.3333 0.6667 >> P=A/BP =-2.0000 3.0000 -5.0000-5.0000 3.0000 -4.00007.0000 -9.0000 16.0000>> Z=A.\BWarning: Divide by zero.Z =0 -Inf 01.0000 0.2500 3.0000-0.5000 Inf 0.4000>> D=A./BWarning: Divide by zero.D =Inf 0 -Inf1.0000 4.0000 0.3333-2.0000 0 2.5000010a=4.96;b=8.11;>> M=exp(a+b)/log10(a+b)M =4.2507e+005011求三角形面积:a=9.6;b=13.7;c=19.4;>> s=(a+b+c)/2;>> area=sqrt(s*(s-a)*(s-b)*(s-c))area =61.1739012逻辑运算A=[-1 0 -6 8;-9 4 0 12.3;0 0 -5.1 -2;0 -23 0 -7]; >> B=A(:,1:2)B =-1 0-9 40 00 -23>> C=A(1:2,:)C =-1.0000 0 -6.0000 8.0000 -9.0000 4.0000 0 12.3000>> D=B'D =-1 -9 0 00 4 0 -23>> A*Bans =1.0000 -184.0000-27.0000 -266.90000 46.0000 207.0000 69.0000>> C<Dans =0 0 1 01 0 0 0>> C&Dans =1 0 0 00 1 0 1>> C|Dans =1 1 1 11 1 0 1>> ~C|~Dans =0 1 1 11 0 1 0013矩阵运算练习:A=[8 9 5;36 -7 11;21 -8 5]A =8 9 536 -7 1121 -8 5>> BB =-1 3 -22 0 3-3 1 9>> RT=A*BRT =-5 29 56-83 119 6-52 68 -21>> QW=A.*BQW =-8 27 -1072 0 33-63 -8 45>> ER=A^3ER =6272 3342 294415714 -856 52608142 -1906 2390 >> BF=A.^3BF =512 729 12546656 -343 13319261 -512 125 >> A/Bans =3.13414.9634 -0.4024-1.2561 12.5244 -3.2317-1.9878 6.4512 -2.0366>> EKV=B\AEKV =10.7195 -1.2683 3.52449.4756 1.5854 3.71954.8537 -1.4878 1.3171>> KDK=[A,B]KDK =8 9 5 -1 3 -236 -7 11 2 0 321 -8 5 -3 1 9 >> ERI=[A;B]ERI =8 9 536 -7 1121 -8 5-1 3 -22 0 3-3 1 9014一般函数的调用:A=[2 34 88 390 848 939];>> S=sum(A)S =2301>> min(A)ans =2>> EE=mean(A)EE =383.5000>> QQ=std(A)QQ =419.3794>> AO=sort(A)AO =2 34 88 390 848 939 >> yr=norm(A)yr =1.3273e+003>> RT=prod(A)RT =1.8583e+012>> gradient(A)ans =32.0000 43.0000 178.0000 380.0000 274.5000 91.0000 >> max(A)ans =939>> median(A)ans =239>> diff(A)ans =32 54 302 458 91>> length(A)ans =6>> sum(A)ans =2301>> cov(A)ans =1.7588e+005>>015矩阵变换:A=[34 44 23;8 34 23;34 55 2]A =34 44 238 34 2334 55 2>> tril(A)ans =34 0 08 34 034 55 2>> triu(A)ans =34 44 230 34 230 0 2>> diag(A)ans =34342norm(A)ans =94.5106>> rank(A)ans =3>> det(A)ans =-23462>> trace(A)ans =70>> null(A)ans =Empty matrix: 3-by-0>> eig(A)ans =80.158712.7671-22.9257>> poly(A)ans =1.0e+004 *0.0001 -0.0070 -0.1107 2.3462>> logm(A)Warning: Principal matrix logarithm is not defined for A with nonpositive real eigenvalues. A non-principal matrixlogarithm is returned.> In funm at 153In logm at 27ans =3.1909 + 0.1314i 1.2707 + 0.1437i 0.5011 - 0.2538i0.4648 + 0.4974i 3.3955 + 0.5438i 0.1504 - 0.9608i0.2935 - 1.2769i 0.8069 - 1.3960i 3.4768 + 2.4663i>> fumn(A)Undefined command/function 'fumn'.>> inv(A)ans =0.0510 -0.0502 -0.0098-0.0326 0.0304 0.02550.0305 0.0159 -0.0343>> cond(A)ans =8.5072>> chol(A)Error using ==> cholMatrix must be positive definite.>> lu(A)ans =34.0000 44.0000 23.00000.2353 23.6471 17.58821.0000 0.4652 -29.1816>> pinv(A)ans =0.0510 -0.0502 -0.0098-0.0326 0.0304 0.02550.0305 0.0159 -0.0343>> svd(A)ans =94.510622.345611.1095>> expm(A)ans =1.0e+034 *2.1897 4.3968 1.93821.31542.6412 1.16431.8782 3.7712 1.6625>> sqrtm(A)ans =5.2379 + 0.2003i 3.4795 + 0.2190i 1.8946 - 0.3869i0.5241 + 0.7581i 5.1429 + 0.8288i 2.0575 - 1.4644i3.0084 - 1.9461i4.7123 - 2.1276i 2.1454 + 3.7589i >>016多项式的计算:A=[34 44 23;8 34 23;34 55 2]A =34 44 238 34 2334 55 2>> P=poly(A)P =1.0e+004 *0.0001 -0.0070 -0.1107 2.3462>> PPA=poly2str(P,'X')PPA =X^3 - 70 X^2 - 1107 X + 23462017多项式的运算:p=[2 6 8 3];w=[32 56 0 2];>> m=conv(p,w)m =64 304 592 548 180 16 6 >> [q,r]=deconv(w,p)q =16r =0 -40 -128 -46>> dp=polyder(w)dp =96 112 0>> [num,den]=polyder(w,p)num =80 512 724 312 -16den =4 24 68 108 100 48 9>> b=polyfit(p,w,4)Warning: Polynomial is not unique; degree >= number of data points. > In polyfit at 74b =-0.6704 9.2037 -32.2593 0 98.1333>> r=roots(p)r =-1.2119 + 1.0652i-1.2119 - 1.0652i-0.5761018求多项式的商和余p=conv([1 0 2],conv([1 4],[1 1]))p =1 5 6 10 8>> q=[1 0 1 1]q =1 0 1 1>> [w,m]=deconv(p,q)w =1 5m =0 0 5 4 3>> cq=w;cr=m;>> disp([cr,poly2str(m,'x')])5 x^2 + 4 x + 3>> disp([cq,poly2str(w,'x')])x + 5019将分式分解a=[1 5 6];b=[1];>> [r,p,k]=residue(b,a)r =-1.00001.0000p =-3.0000-2.0000k =[]020计算多项式:a=[1 2 3;4 5 6;7 8 9];>> p=[3 0 2 3];>> q=[2 3];>> x=2;>> r=roots(p)r =0.3911 + 1.0609i0.3911 - 1.0609i-0.7822>> p1=conv(p,q)p1 =6 9 4 12 9>> p2=poly(a)p2 =1.0000 -15.0000 -18.0000 -0.0000 >> p3=polyder(p)p3 =9 0 2>> p4=polyval(p,x)p4 =31021求除式和余项:[q,r]=deconv(conv([1 0 2],[1 4]),[1 1 1])022字符串的书写格式:s='student's =student>> name='mary';>> s1=[name s]s1 =marystudent>> s3=[name blanks(3);s]s3 =marystudent>>023交换两个数:clearclca=[1 2 3 4 5];b=[6 7 8 9 10];c=a;a=b;b=c;ab24If语句n=input('enter a number,n=');if n<10nend025 if 双分支结构a=input('enter a number ,a=');b=input('enter a number ,b=');if a>bmax=a;elsemax=b;endmax026三个数按照由大到小的顺序排列:A=15;B=24;C=45;if A<BT=A;A=B;B=T;elseif A<CT=A;A=C;C=T;elseif B<CT=B;B=C;C=T;endABC027建立一个收费优惠系统:price=input('please jinput the price : price=') switch fix(price/100)case[0,1]rate =0;case[2,3,4]rate =3/100;case num2cell(5:9)rate=5/100;case num2cell(10:24)rate=8/100;case num2cell(25:49)rate=10/100;otherwiserate=14/100;endprice=price*(1-rate)028:while循环语句i=0;s=0;while i<=1212s=s+i;i=i+1;ends029,用for循环体语句:sum=0;for i=1:1.5:100;sum=sum+i;endsum030循环的嵌套s=0;for i=1:1:6;for j=1:1:8;s=s+i^j;end;end;s031continue 语句的使用:for i=100:120;if rem(i,7)~=0;continue;end;iend032x=input ('输入X的值x=')if x<1y=x^2;elseif x>1&x<2y=x^2-1;elsey=x^2-2*x+1;endy033求阶乘的累加和sum=0;temp=1;for n=1:10;temp=temp*n;sum=sum+temp;endsum034对角线元素之和sum=0;a=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]; for i=1:4;sum=sum+a(i,i);endsum035用拟合点绘图A=[12 15.3 16 18 25];B=[50 80 118 125 150.8];plot(A,B)036绘制正玄曲线:x=0:0.05:4*pi;y=sin(x);plot(x,y)037绘制向量x=[1 2 3 4 5 6;7 8 9 10 11 12;13 14 15 16 17 18] plot(x)x=[0 0.2 0.5 0.7 0.6 0.7 1.2 1.5 1.6 1.9 2.3]plot(x)x=0:0.2:2*piy=sin(x)plot(x,y,'m:p')038在正弦函数上加标注:t=0:0.05:2*pi;plot(t,sin(t))set(gca,'xtick',[0 1.4 3.14 56.28])xlabel('t(deg)')ylabel('magnitude(v)')title('this is a example ()\rightarrow 2\pi')text(3.14,sin(3.14),'\leftarrow this zero for\pi')039添加线条标注x=0:0.2:12;plot(x,sin(x),'-',x,1.5*cos(x),':');legend('First','Second',1)040使用hold on 函数x=0:0.2:12;plot(x,sin(x),'-');hold onplot(x,1.5*cos(x),':');041一界面多幅图x=0:0.05:7;y1=sin(x);y2=1.5*cos(x);y3=sin(2*x);y4=5*cos(2*x);subplot(221);plot(x,y1);title('sin(x)')subplot(222);plot(x,y2);title('cos(x)')subplot(223);plot(x,y3);title('sin(2x)')subplot(224);plot(x,y4);title('cos(2x)')042染色效果图x=0:0.05:7;y1=sin(x);y2=1.5*cos(x);y3=sin(2*x);y4=5*cos(2*x);subplot(221);plot(x,y1);title('sin(x)');fill(x,y1,'r') subplot(222);plot(x,y2);title('cos(x)');fill(x,y2,'b') subplot(223);plot(x,y3);title('sin(2x)');fill(x,y3,'k') subplot(224);plot(x,y4);title('cos(2x)');fill(x,y4,'g')043特殊坐标图clcy=[0,0.55,2.5,6.1,8.5,12.1,14.6,17,20,22,22.1] subplot(221);plot(y);title('线性坐标图');subplot(222);semilogx(y);title('x轴对数坐标图');subplot(223);semilogx(y);title('y轴对数坐标图');subplot(224);loglog(y);title('双对数坐标图')t=0:0.01:2*pi;r=2*cos(2*(t-pi/8));polar(t,r)044特殊函数绘图:fplot('cos(tan(pi*x))',[-0.4,1.4])fplot('sin(exp(pi*x))',[-0.4,1.4])045饼形图与条形图:x=[8 20 36 24 12];subplot(221);pie(x,[1 0 0 0 1]);title('饼图');subplot(222);bar(x,'group');title('垂直条形图');subplot(223);bar(x,'stack');title('累加值为纵坐标的垂直条形图'); subplot(224);barh(x,'group');title('水平条形图');046梯形图与正弦函数x=0:0.1:10;y=sin(x);subplot(121);stairs(x);subplot(122);stairs(x,y);047概率图x=randn(1,1000);y=-2:0.1:2;hist(x,y)048向量图:x=[-2+3j,3+4j,1-7j];subplot(121);compass(x);rea=[-2 3 1];imag=[3 4 -7];subplot(122);feather(rea,imag);049绘制三维曲线图:z=0:pi/50:10*pi;x=sin(z);y=cos(z);plot3(x,y,z)x=-10:0.5:10;y=-8:0.5:8;[x,y]=meshgrid(x,y);z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); subplot(221);mesh(x,y,z);title('普通一维网格曲面');subplot(222);meshc(x,y,z);title('带等高线的三维网格曲面'); subplot(223);meshz(x,y,z);title('带底座的三维网格曲面'); subplot(224);surf(x,y,z);title('充填颜色的三维网格面')050 带网格二维图x=0:pi/10:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,'r+-',x,y2,'k*:')grid onxlabel('Independent Variable x') ylabel('Dependent Variable y1&y2') text(1.5,0.5,'cos(x)')051各种统计图y=[18 5 28 17;24 12 36 14;15 6 30 9]; subplot(221);bar(y)x=[4,6,8];subplot(222);bar3(x,y)subplot(223);bar(x,y,'grouped') subplot(224);bar(x,y,'stack')052曲面图x=-2:0.4:2;y=-1:0.2:1;[x,y]=meshgrid(x,y);z=sqrt(4-x.^2/9-y.^2/4); surf(x,y,z)grid on053创建符号矩阵e=[1 3 5;2 4 6;7 9 11];m=sym(e)符号表达式的计算问题因式分解:syms xf=factor(x^3-1)s=sym('sin(a+b)'); expand(s)syms x tf=x*(x*(x-8)+6)*t; collect(f)syms xf=sin(x)^2+cos(x)^2; simplify(f)syms xs=(4*x^2+8*x+3)/(2*x+1); simplify(s)通分syms x yf=x/y-y/x;[m,n]=numden(f)嵌套重写syms xf=x^4+3*x^3-7*x^2+12; horner(f)054求极限syms x a;limit(exp(-x),x,0,'left')求导数syms xdiff(x^9+x^6)diff(x^9+x^6,4)055求不定积分与定积分syms x ys=(4-3*x^2)^2;int(s)int(x/(x+y),x)int(x^2/(x+2),x,1,3) double(ans)056函数的变换:syms x ty=exp(-x^2);Ft=fourier(y,x,t)fx=ifourier(Ft,t,x)057求解方程syms a b c xs=a*x^2+b*x+c;solve(s)syms x y zs1=2*x^2+y^2-3*z-4;s2=y+z-3;s3=x-2*y-3*z;[x,y,z]=solve(s1,s2,s3)058求微分方程:y=dsolve('Dy-(t^2+y^2)/t^2/2','t')059求级数和syms x ksymsum(k)symsum(k^2-3,0,10)symsum(x^k/k,k,1,inf)060泰勒展开式syms xs=(1-x+x^2)/(1+x+x^2);taylor(s)taylor(s,9)taylor(s,x,12)taylor(s,x,12,5)061练习syms x a;s1=sin(2*x)/sin(5*x);limit(s1,x,0)s2=(1+1/x)^(2*x);limit(s2,x,inf)syms xs=x*cos(x);diff(s)diff(s,2)diff(s,12)syms xs1=x^4/(1+x^2);int(s1)s2=3*x^2-x+1int(s2,0,2)syms x y zs1=5*x+6*y+7*z-16;s2=4*x-5*y+z-7;s3=x+y+2*z-2;[x,y,z]=solve(s1,s2,s3)syms x yy=dsolve('Dy=exp(2*x-y)','x')y=dsolve('Dy=exp(2*x-y)','y(0)=0','x')n=sym('n');s=symsum(1/n^2,n,1,inf)x=sym('x');f=sqrt(1-2*x+x^3)-(1-3*x+x^2)^(1/3);taylor(f,6)062求于矩阵相关的值a=[2 2 -1 1;4 3 -1 2;8 5 -3 4;3 3 -2 2]adet=det(a)atrace=trace(a)anorm=norm(a)acond=cond(a)arank=rank(a)eiga=eig(a)063矩阵计算A=[0.1389 0.6038 0.0153 0.9318;0.2028 0.2772 0.7468 0.4660;0.1987 0.1988 0.4451 0.4186]B=var(A)C=std(A)D=range(A)E=cov(A)F=corrcoef(A)064求根及求代数式的值P=[4 -3 2 5];x=roots(P)x=[3 3.6];F=polyval(P,x)065多项式的和差积商运算:f=[1 2 -4 3 -1]g=[1 0 1]g1=[0 0 1 0 1]f+g1f-g1conv(f,g)[q,r]=deconv(f,g)polyder(f)066各种插值运算:X=0:0.1:pi/2;Y=sin(X);interp1(X,Y,pi/4)interp1(X,Y,pi/4,'nearest')interp1(X,Y,pi/4,'spline')interp1(X,Y,pi/4,'cubic')067曲线的拟合:X=0:0.1:2*pi;Y=cos(X);[p,s]=polyfit(X,Y,4)plot(X,Y,'K*',X,polyval(p,X),'r-')068求函数的最值与0点x=2:0.1:2;[x,y]=fminbnd('x.^3-2*x+1',-1,1) [x,y]=fzero('x.^3-2*x+1',1)069求多项式的表达式、值、及图像y=[1 3 5 7 19]t=poly(y)x=-4:0.5:8yx=polyval(t,x)plot(x,yx)070数据的拟合与绘图x=0:0.1:2*pi;y=sin(x);p=polyfit(x,y,5);y1=polyval(p,x)plot(x,y,'b',x,y1,'r')071求代数式的极限:syms xf=sym('log(1+2*x)/sin(3*x)');b=limit(f,x,0)072求导数与微分syms xf=sym('x/(cos(x))^2');y1=diff(f)y2=int(f,0,1)078划分网格函数[x,y]=meshgrid(-2:0.01:2,-3:0.01:5); t=x.*exp(-x.^2-y.^2);[px,py]=gradient(t,0.05,0.1);td=sqrt(px.^2+py.^2);subplot(221)imagesc(t)subplot(222)imagesc(td)colormap('gray')079求多次多项方程组的解:syms x1 x2 a ;eq1=sym('x1^2+x2=a')eq2=sym('x1-a*x2=0')[x1 x2]=solve(eq1,eq2,x1,x2)v=solve(eq1,eq2)v.x1v.x2an1=x1(1),an2=x1(2)an3=x2(1),an4=x2(2)080求解微分方程:[y]=dsolve('Dy=-y^2+6*y','y(0)=1','x')s=dsolve('Dy=-y^2+6*y','y(0)=1','x')[u]=dsolve('Du=-u^2+6*u','u(0)=1')w=dsolve('Du=-u^2+6*u','z')[u,w]=dsolve('Du=-w^2+6*w,Dw=sin(z)','u(0)=1,w(0)=0','z') v=dsolve('Du=-w^2+6*w,Dw=sin(z)','u(0)=1,w(0)=0','z')081各种显现隐含函数绘图:f=sym('x^2+1')subplot(221)ezplot(f,[-2,2])subplot(222)ezplot('y^2-x^6-1',[-2,2],[0,10])x=sym('cos(t)')y=sym('sin(t)')subplot(223)ezplot(x,y)z=sym('t^2')subplot(224)ezplot3(x,y,z,[0,8*pi])082极坐标图:r=sym('4*sin(3*x)')ezpolar(r,[0,6*pi])083多函数在一个坐标系内:x=0:0.1:8;y1=sin(x);subplot(221)plot(x,y1)subplot(222)plot(x,y1,x,y2)w=[2 3;3 1;4 6]subplot(223)plot(w)q=[4 6:3 5:1 2]subplot(224)plot(w,q)084调整刻度图像:x=0:0.1:10;y1=sin(x);y2=exp(x);y3=exp(x).*sin(x);subplot(221)plot(x,y2)subplot(222)loglog(x,y2)subplot(223)plotyy(x,y1,x,y2)085等高线等图形,三维图:t=0:pi/50:10*pi;subplot(2,3,1)plot3(t.*sin(t),t.*cos(t),t.^2) grid on[x,y]=meshgrid([-2:0.1:2])z=x.*exp(-x.^2-y.^2)subplot(2,3,2)plot3(x,y,z)box offsubplot(2,3,3)meshz(x,y,z)subplot(2,3,4)surf(x,y,z)contour(x,y,z)subplot(2,3,6)surf(x,y,z)subplot(2,3,5)contour(x,y,z)box offsubplot(2,3,6)contour3(x,y,z)axis off086统计图Y=[5 2 1;8 7 3;9 8 6;5 5 5;4 3 2]subplot(221)bar(Y)box offsubplot(222)bar3(Y)subplot(223)barh(Y)subplot(224)bar3h(Y)087面积图Y=[5 1 2;8 3 7;9 6 8;5 5 5;4 2 3];subplot(221)area(Y)grid onset(gca,'Layer','top','XTick',1:5)sales=[51.6 82.4 90.8 59.1 47.0];x=90:94;profits=[19.3 34.2 61.4 50.5 29.4];subplot(222)area(x,sales,'facecolor',[0.5 0.9 0.6], 'edgecolor','b','linewidth',2) hold onarea(x,profits,'facecolor',[0.9 0.85 0.7], 'edgecolor','y','linewidth',2) hold offset(gca,'Xtick',[90:94])set(gca,'layer','top')gtext('\leftarrow 销售量') gtext('利润')gtext('费用')xlabel('年','fontsize',14)088函数的插值:x=0:2*pi;y=sin(x);xi=0:0.1:8;yi1=interp1(x,y,xi,'linear')yi2=interp1(x,y,xi,'nearest') yi3=interp1(x,y,xi,'spline')yi4=interp1(x,y,xi,'cublic')p=polyfit(x,y,3)yy=polyval(p,xi)subplot(3,2,1)plot(x,y,'o')subplot(3,2,2)plot(x,y,'o',xi,yy)subplot(3,2,3)plot(x,y,'o',xi,yi1)subplot(3,2,4)plot(x,y,'o',xi,yi2)subplot(3,2,5)plot(x,y,'o',xi,yi3)subplot(3,2,6)plot(x,y,'o',xi,yi4)089二维插值计算:[x,y]=meshgrid(-3:0.5:3);z=peaks(x,y);[xi,yi]=meshgrid(-3:0.1:3); zi=interp2(x,y,z,xi,yi,'spline') plot3(x,y,z)hold onmesh(xi,yi,zi+15)hold offaxis tight090函数表达式;function f=exlin(x)if x<0f=-1;elseif x<1f=x;elseif x<2f=2-x;elsef=0;end091:硬循环语句:n=5;for i=1:nfor j=1:nif i==ja(i,j)=2;elsea(i,j)=0;endendendwhile 循环语句:n=1;while prod(1:n)<99^99;n=n+1endn:092 switch开关语句a=input('a=?')switch acase 1disp('It is raning') case 0disp('It do not know')case -1disp('It is not ranging')otherwisedisp('It is raning ?')end093画曲面函数:x1=linspace(-3,3,30)y1=linspace(-3,13,34)[x,y]=meshgrid(x1,y1);z=x.^4+3*x.^2-2*x+6-2*y.*x.^2+y.^2-2*y; surf(x,y,z)。
matlab数学建模程序代码【实用版】目录1.MATLAB 数学建模概述2.MATLAB 数学建模程序代码的基本结构3.常用的 MATLAB 数学建模函数和命令4.MATLAB 数学建模程序代码的编写流程5.MATLAB 数学建模程序代码的示例正文一、MATLAB 数学建模概述MATLAB(Matrix Laboratory)是一款强大的数学软件,广泛应用于数学建模、数据分析、可视化等领域。
通过 MATLAB,用户可以方便地进行数学计算、编写程序以及绘制图表等。
在数学建模领域,MATLAB 为研究人员和工程师提供了丰富的工具箱和函数,使得数学模型的构建、求解和分析变得更加简单高效。
二、MATLAB 数学建模程序代码的基本结构MATLAB 数学建模程序代码通常分为以下几个部分:1.导入 MATLAB 库:在建模过程中,可能需要使用 MATLAB 提供的某些库或工具箱,需要在代码开头进行导入。
2.定义变量和参数:在建模过程中,需要定义一些变量和参数,用于表示模型中的各个要素。
3.建立数学模型:根据实际问题,编写相应的数学表达式或方程,构建数学模型。
4.求解模型:通过调用 MATLAB 内置函数或使用自定义函数,对数学模型进行求解。
5.分析结果:对求解结果进行分析,提取所需的信息,例如计算均值、方差等统计量。
6.可视化结果:使用 MATLAB 绘制图表,将结果以直观的形式展示出来。
三、常用的 MATLAB 数学建模函数和命令MATLAB 提供了丰富的数学建模函数和命令,例如:1.线性规划:使用`linprog`函数求解线性规划问题。
2.非线性规划:使用`fmincon`或`fsolve`函数求解非线性规划问题。
3.优化问题:使用`optimize`函数求解优化问题。
4.数据处理:使用`mean`、`std`等函数对数据进行统计分析。
5.图表绘制:使用`plot`、`scatter`等函数绘制各种图表。
工程构件受力和刚度计算的MATLAB分析法工程构件受力和刚度计算是结构设计和分析中非常重要的一部分,它涉及到对构件受力和刚度进行计算的理论基础和方法。
而MATLAB作为一种广泛应用于科学计算和工程领域的软件工具,其强大的数学和算法功能使得其成为进行工程构件受力和刚度计算的理想选择。
在进行工程构件的受力和刚度计算时,首先需要建立合适的受力与形变模型。
其次,需要根据受到的外力和形变条件,建立构件的力平衡方程和形变方程。
最后,利用MATLAB的数值计算功能,对这些方程进行求解,以获得构件的受力和刚度。
在进行受力计算时,常用的方法包括静力方法、动力方法和有限元方法等。
其中,静力方法基于构件的受力平衡条件,通过求解受力方程组得到构件的受力分布。
动力方法则基于构件的振动特性,利用动力学方程求解得到构件的受力状态。
而有限元方法则是将结构离散为有限数量的单元,通过求解单元的刚度矩阵和载荷矩阵得到整个结构的受力情况。
在进行刚度计算时,常用的方法包括弹性刚度法和刚度矩阵法等。
其中,弹性刚度法是基于构件材料的弹性行为,通过求解弹性力学方程得到构件的刚度。
刚度矩阵法则是将结构离散为有限数量的节点,通过求解节点的刚度矩阵和载荷矩阵得到整个结构的刚度。
利用MATLAB进行工程构件受力和刚度计算时,用户可以编写自定义的函数和脚本来实现对受力和刚度方程的求解。
MATLAB提供了丰富的数学函数和工具箱,包括线性方程组的求解、特征值和特征向量的计算、矩阵运算等功能,这些功能可以大大简化受力和刚度计算的过程。
用户可以使用MATLAB的函数库来进行构件的受力和刚度计算,也可以根据实际需要进行函数的编写和修改。
总之,MATLAB分析法在工程构件受力和刚度计算中具有广泛的应用前景。
它通过提供强大的数学和算法功能,简化了受力和刚度计算的过程,并且可以根据实际需要进行函数的编写和修改。
工程师和科研人员可以利用MATLAB进行受力和刚度计算,以实现对工程构件的准确设计和分析。
实验项目1 MATLAB熟悉使用及编程基础MATLAB是美国Mathworks公司推出的一套高件能的数值分析和计算软件,它将矩阵运算、数值分析、图形处理、编程处术结合在一起,为用户提供了一个强有力的科学及工程问题分析计算和程序设计的工具。
MATLAB本身也在不断改进和创新,特别是2000年以出的版本6,无论在界面设计、计算方法、编程阶段和工具等方面都有了巨大的突破,全面引入了面向对象编程的概念和方法,使MATLAB真正成为了具有全部高级语言功能和特征的新一代软件开发平台。
MATLAB开发环境是一组工具和组件的集成,这些工具是图形化的用户接口,它们包括 MATLAB桌面、命令窗口、命令历史窗口、编辑调试窗口以及帮助信信息、工作空间、文件和搜索路径等浏览器。
MATLAB集成了丰富的数学函数库,其强大的计算能力覆盖了从基本函数(如求和、正弦、余弦和复数运算等)到特殊函数(如矩阵求逆、矩阵特征值、贝塞尔函数和快速傅里叶变换等)的范围。
MATLAB语言是一种高级编程语言,包括控制流的描述、函数、数据结构、输入输出及面对对象编程,既可以编制适用于快速使用的小程序,也可以编制大型复杂的应用程序。
MATLAB提供了功能强大的图形系统,既可以完成二维和三维数据的可视化、图像处理、动画和图形表达等功能,也可以定制图形的外观,如建立一个完整的图形用户界由的应用程序。
1.实验目的:掌握MA TLAB编程语言和偏微分方程PDE工具箱对电磁场的基本问题进行仿真;2 实验内容:1、MATLAB启动MA TLAB安装到硬盘后,启动方法有:(1)点击Windows桌面上自动生成的快捷方式图标;(2)点击matlab 6\文件夹下快捷方式图标令MATLAB(3)点击matlab/bin/win32文件夹中的Matlab.exe2、m文件编写熟悉基本指令、基本数学运算,借助help、lookfor等命令实现在线帮助。
建立M文件的一般步骤如下:(1)打开文件编辑器:指的是MA TLAB内部编辑/调试器,可以有几种不同的方法打开文件编辑器,最简单的方法是在操作桌面助工具栏上选择蹦(建立新文件)或选择瞪(打开已有的文件),也可以在命令窗口输入命令edit建立新文件或输入命令edit filename,打开名为fi1ename的M文件。
【最新整理,下载后即可编辑】1-32是:图形应用篇33-66是:界面设计篇67-84是:图形处理篇85-100是:数值分析篇实例1:三角函数曲线(1)function shili01h0=figure('toolbar','none',...'position',[198****0300],...'name','实例01');h1=axes('parent',h0,...'visible','off');x=-pi:0.05:pi;y=sin(x);plot(x,y);xlabel('自变量X');ylabel('函数值Y');title('SIN( )函数曲线');grid on实例2:三角函数曲线(2)function shili02h0=figure('toolbar','none',...'position',[200 150 450 350],...'name','实例02');x=-pi:0.05:pi;y=sin(x)+cos(x);plot(x,y,'-*r','linewidth',1);grid onxlabel('自变量X');ylabel('函数值Y');title('三角函数');实例3:图形的叠加function shili03h0=figure('toolbar','none',...'position',[200 150 450 350],...'name','实例03');x=-pi:0.05:pi;y1=sin(x);y2=cos(x);plot(x,y1,...'-*r',...x,y2,...'--og');grid onxlabel('自变量X');ylabel('函数值Y');title('三角函数');实例4:双y轴图形的绘制function shili04h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例04');x=0:900;a=1000;b=0.005;y1=2*x;y2=cos(b*x);[haxes,hline1,hline2]=plotyy(x,y1,x,y2,'semilogy','plot'); axes(haxes(1))ylabel('semilog plot');axes(haxes(2))ylabel('linear plot');实例5:单个轴窗口显示多个图形function shili05h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例05');t=0:pi/10:2*pi;[x,y]=meshgrid(t);subplot(2,2,1)plot(sin(t),cos(t))axis equalsubplot(2,2,2)z=sin(x)-cos(y);plot(t,z)axis([0 2*pi -2 2])subplot(2,2,3)h=sin(x)+cos(y);plot(t,h)axis([0 2*pi -2 2])subplot(2,2,4)g=(sin(x).^2)-(cos(y).^2);plot(t,g)axis([0 2*pi -1 1])实例6:图形标注function shili06h0=figure('toolbar','none',...'position',[200 150 450 400],...'name','实例06');t=0:pi/10:2*pi;h=plot(t,sin(t));xlabel('t=0到2\pi','fontsize',16);ylabel('sin(t)','fontsize',16);title('\it{从0to2\pi 的正弦曲线}','fontsize',16) x=get(h,'xdata');y=get(h,'ydata');imin=find(min(y)==y);imax=find(max(y)==y);text(x(imin),y(imin),...['\leftarrow最小值=',num2str(y(imin))],...'fontsize',16)text(x(imax),y(imax),...['\leftarrow最大值=',num2str(y(imax))],...'fontsize',16)实例7:条形图形function shili07h0=figure('toolbar','none',...'position',[200 150 450 350],...'name','实例07');tiao1=[562 548 224 545 41 445 745 512];tiao2=[47 48 57 58 54 52 65 48];t=0:7;bar(t,tiao1)xlabel('X轴');ylabel('TIAO1值');h1=gca;h2=axes('position',get(h1,'position'));plot(t,tiao2,'linewidth',3)set(h2,'yaxislocation','right','color','none','xticklabel',[]) 实例8:区域图形function shili08h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例08');x=91:95;profits1=[88 75 84 93 77];profits2=[51 64 54 56 68];profits3=[42 54 34 25 24];profits4=[26 38 18 15 4];area(x,profits1,'facecolor',[0.5 0.9 0.6],...'edgecolor','b',...'linewidth',3)hold onarea(x,profits2,'facecolor',[0.9 0.85 0.7],...'edgecolor','y',...'linewidth',3)hold onarea(x,profits3,'facecolor',[0.3 0.6 0.7],...'edgecolor','r',...'linewidth',3)hold onarea(x,profits4,'facecolor',[0.6 0.5 0.9],...'edgecolor','m',...'linewidth',3)hold offset(gca,'xtick',[91:95])set(gca,'layer','top')gtext('\leftarrow第一季度销量') gtext('\leftarrow第二季度销量') gtext('\leftarrow第三季度销量') gtext('\leftarrow第四季度销量') xlabel('年','fontsize',16);ylabel('销售量','fontsize',16);实例9:饼图的绘制function shili09h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例09');t=[54 21 35;68 54 35;45 25 12;48 68 45;68 54 69];x=sum(t);h=pie(x);textobjs=findobj(h,'type','text');str1=get(textobjs,{'string'});val1=get(textobjs,{'extent'});oldext=cat(1,val1{:});names={'商品一:';'商品二:';'商品三:'};str2=strcat(names,str1);set(textobjs,{'string'},str2)val2=get(textobjs,{'extent'});newext=cat(1,val2{:});offset=sign(oldext(:,1)).*(newext(:,3)-oldext(:,3))/2; pos=get(textobjs,{'position'});textpos=cat(1,pos{:});textpos(:,1)=textpos(:,1)+offset;set(textobjs,{'position'},num2cell(textpos,[3,2]))实例10:阶梯图function shili10h0=figure('toolbar','none',...'position',[200 150 450 400],...'name','实例10');a=0.01;b=0.5;t=0:10;f=exp(-a*t).*sin(b*t);stairs(t,f)hold onplot(t,f,':*')hold offglabel='函数e^{-(\alpha*t)}sin\beta*t的阶梯图'; gtext(glabel,'fontsize',16)xlabel('t=0:10','fontsize',16)axis([0 10 -1.2 1.2])实例11:枝干图function shili11h0=figure('toolbar','none',...'position',[200 150 450 350],...'name','实例11');x=0:pi/20:2*pi;y1=sin(x);y2=cos(x);h1=stem(x,y1+y2);hold onh2=plot(x,y1,'^r',x,y2,'*g');hold offh3=[h1(1);h2];legend(h3,'y1+y2','y1=sin(x)','y2=cos(x)') xlabel('自变量X');ylabel('函数值Y');title('正弦函数与余弦函数的线性组合'); 实例12:罗盘图function shili12h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例12');winddirection=[54 24 65 84256 12 235 62125 324 34 254];windpower=[2 5 5 36 8 12 76 14 10 8];rdirection=winddirection*pi/180;[x,y]=pol2cart(rdirection,windpower); compass(x,y);desc={'风向和风力','北京气象台','10月1日0:00到','10月1日12:00'};gtext(desc)实例13:轮廓图function shili13h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例13');[th,r]=meshgrid((0:10:360)*pi/180,0:0.05:1); [x,y]=pol2cart(th,r);z=x+i*y;f=(z.^4-1).^(0.25);contour(x,y,abs(f),20)axis equalxlabel('实部','fontsize',16);ylabel('虚部','fontsize',16);h=polar([0 2*pi],[0 1]);delete(h)hold oncontour(x,y,abs(f),20)实例14:交互式图形function shili14h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例14');axis([0 10 0 10]);hold onx=[];y=[];n=0;disp('单击鼠标左键点取需要的点'); disp('单击鼠标右键点取最后一个点'); but=1;while but==1[xi,yi,but]=ginput(1);plot(xi,yi,'bo')n=n+1;disp('单击鼠标左键点取下一个点');x(n,1)=xi;y(n,1)=yi;endt=1:n;ts=1:0.1:n;xs=spline(t,x,ts);ys=spline(t,y,ts);plot(xs,ys,'r-');hold off实例14:交互式图形function shili14h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例14');axis([0 10 0 10]);hold onx=[];y=[];n=0;disp('单击鼠标左键点取需要的点'); disp('单击鼠标右键点取最后一个点'); but=1;while but==1[xi,yi,but]=ginput(1);plot(xi,yi,'bo')n=n+1;disp('单击鼠标左键点取下一个点');x(n,1)=xi;y(n,1)=yi;endt=1:n;ts=1:0.1:n;xs=spline(t,x,ts);ys=spline(t,y,ts);plot(xs,ys,'r-');hold off实例15:变换的傅立叶函数曲线function shili15h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例15');axis equalm=moviein(20,gcf);set(gca,'nextplot','replacechildren')h=uicontrol('style','slider','position',...[100 10 500 20],'min',1,'max',20)for j=1:20plot(fft(eye(j+16)))set(h,'value',j)m(:,j)=getframe(gcf);endclf;axes('position',[0 0 1 1]);movie(m,30)实例16:劳伦兹非线形方程的无序活动function shili15h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例15');axis equalm=moviein(20,gcf);set(gca,'nextplot','replacechildren')h=uicontrol('style','slider','position',...[100 10 500 20],'min',1,'max',20)for j=1:20plot(fft(eye(j+16)))set(h,'value',j)m(:,j)=getframe(gcf);endclf;axes('position',[0 0 1 1]);movie(m,30)实例17:填充图function shili17h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例17');t=(1:2:15)*pi/8;x=sin(t);y=cos(t);fill(x,y,'r')axis square offtext(0,0,'STOP',...'color',[1 1 1],...'fontsize',50,...'horizontalalignment','center') 例18:条形图和阶梯形图function shili18h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例18');subplot(2,2,1)x=-3:0.2:3;y=exp(-x.*x);bar(x,y)title('2-D Bar Chart')subplot(2,2,2)x=-3:0.2:3;y=exp(-x.*x);bar3(x,y,'r')title('3-D Bar Chart')subplot(2,2,3)x=-3:0.2:3;y=exp(-x.*x);stairs(x,y)title('Stair Chart')subplot(2,2,4)x=-3:0.2:3;y=exp(-x.*x);barh(x,y)title('Horizontal Bar Chart')实例19:三维曲线图function shili19h0=figure('toolbar','none',...'position',[200 150 450 400],...'name','实例19');subplot(2,1,1)x=linspace(0,2*pi);y1=sin(x);y2=cos(x);y3=sin(x)+cos(x);z1=zeros(size(x));z2=0.5*z1;z3=z1;plot3(x,y1,z1,x,y2,z2,x,y3,z3)grid onxlabel('X轴');ylabel('Y轴');zlabel('Z轴');title('Figure1:3-D Plot')subplot(2,1,2)x=linspace(0,2*pi);y1=sin(x);y2=cos(x);y3=sin(x)+cos(x);z1=zeros(size(x));z2=0.5*z1;z3=z1;plot3(x,z1,y1,x,z2,y2,x,z3,y3)grid onxlabel('X轴');ylabel('Y轴');zlabel('Z轴');title('Figure2:3-D Plot')实例20:图形的隐藏属性function shili20h0=figure('toolbar','none',...'position',[200 150 450 300],...'name','实例20');subplot(1,2,1)[x,y,z]=sphere(10);mesh(x,y,z)axis offtitle('Figure1:Opaque')hidden onsubplot(1,2,2)[x,y,z]=sphere(10);mesh(x,y,z)axis offtitle('Figure2:Transparent') hidden off实例21PEAKS函数曲线function shili21h0=figure('toolbar','none',...'position',[200 100 450 450],...'name','实例21');[x,y,z]=peaks(30);subplot(2,1,1)x=x(1,:);y=y(:,1);i=find(y>0.8&y<1.2);j=find(x>-0.6&x<0.5);z(i,j)=nan*z(i,j);surfc(x,y,z)xlabel('X轴');ylabel('Y轴');zlabel('Z轴');title('Figure1:surfc函数形成的曲面') subplot(2,1,2)x=x(1,:);y=y(:,1);i=find(y>0.8&y<1.2);j=find(x>-0.6&x<0.5);z(i,j)=nan*z(i,j);surfl(x,y,z)xlabel('X轴');ylabel('Y轴');zlabel('Z轴');title('Figure2:surfl函数形成的曲面') 实例22:片状图function shili22h0=figure('toolbar','none',...'position',[200 150 550 350],...'name','实例22');subplot(1,2,1)x=rand(1,20);y=rand(1,20);z=peaks(x,y*pi);t=delaunay(x,y);trimesh(t,x,y,z)hidden offtitle('Figure1:Triangular Surface Plot'); subplot(1,2,2)x=rand(1,20);y=rand(1,20);z=peaks(x,y*pi);t=delaunay(x,y);trisurf(t,x,y,z)title('Figure1:Triangular Surface Plot'); 实例23:视角的调整function shili23h0=figure('toolbar','none',...'position',[200 150 450 350],...'name','实例23');x=-5:0.5:5;[x,y]=meshgrid(x);r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;subplot(2,2,1)surf(x,y,z)xlabel('X-axis')ylabel('Y-axis')zlabel('Z-axis')title('Figure1')view(-37.5,30)subplot(2,2,2)surf(x,y,z)xlabel('X-axis')ylabel('Y-axis')zlabel('Z-axis')title('Figure2')view(-37.5+90,30) subplot(2,2,3)surf(x,y,z)xlabel('X-axis')ylabel('Y-axis')zlabel('Z-axis')title('Figure3')view(-37.5,60)subplot(2,2,4)surf(x,y,z)xlabel('X-axis')ylabel('Y-axis')zlabel('Z-axis')title('Figure4')view(180,0)实例24:向量场的绘制function shili24h0=figure('toolbar','none',...'position',[200 150 450 350],...'name','实例24');subplot(2,2,1)z=peaks;ribbon(z)title('Figure1')subplot(2,2,2)[x,y,z]=peaks(15);[dx,dy]=gradient(z,0.5,0.5); contour(x,y,z,10)hold onquiver(x,y,dx,dy)hold offtitle('Figure2')subplot(2,2,3)[x,y,z]=peaks(15);[nx,ny,nz]=surfnorm(x,y,z);surf(x,y,z)hold onquiver3(x,y,z,nx,ny,nz)hold offtitle('Figure3')subplot(2,2,4)x=rand(3,5);y=rand(3,5);z=rand(3,5);c=rand(3,5);fill3(x,y,z,c)grid ontitle('Figure4')实例25:灯光定位function shili25h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例25');vert=[1 1 1;1 2 1;2 2 1;2 1 1;1 1 2;12 2;2 2 2;2 1 2];fac=[1 2 3 4;2 6 7 3;4 3 7 8;15 8 4;1 2 6 5;5 6 7 8];grid offsphere(36)h=findobj('type','surface');set(h,'facelighting','phong',...'facecolor',...'interp',...'edgecolor',[0.4 0.4 0.4],...'backfacelighting',...'lit')hold onpatch('faces',fac,'vertices',vert,...'facecolor','y');light('position',[1 3 2]);light('position',[-3 -1 3]);material shinyaxis vis3d offhold off实例26:柱状图function shili26h0=figure('toolbar','none',...'position',[200 50 450 450],...'name','实例26'); subplot(2,1,1)x=[5 2 18 7 39 8 65 5 54 3 2];bar(x)xlabel('X轴');ylabel('Y轴');title('第一子图');subplot(2,1,2)y=[5 2 18 7 39 8 65 5 54 3 2];barh(y)xlabel('X轴');ylabel('Y轴');title('第二子图');实例27:设置照明方式function shili27h0=figure('toolbar','none',...'position',[200 150 450 350],...'name','实例27');subplot(2,2,1)sphereshading flatcamlight leftcamlight rightlighting flatcolorbaraxis offtitle('Figure1')subplot(2,2,2)sphereshading flatcamlight leftcamlight rightlighting gouraudcolorbaraxis offtitle('Figure2')subplot(2,2,3)sphereshading interpcamlight rightcamlight leftlighting phongaxis offtitle('Figure3')subplot(2,2,4)sphereshading flatcamlight leftcamlight rightlighting nonecolorbaraxis offtitle('Figure4')实例28:羽状图function shili28h0=figure('toolbar','none',...'position',[200 150 450 350],...'name','实例28');subplot(2,1,1)alpha=90:-10:0;r=ones(size(alpha));m=alpha*pi/180;n=r*10;[u,v]=pol2cart(m,n);feather(u,v)title('羽状图')axis([0 20 0 10])subplot(2,1,2)t=0:0.5:10;y=exp(-x*t);feather(y)title('复数矩阵的羽状图')实例29:立体透视(1)function shili29h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例29');[x,y,z]=meshgrid(-2:0.1:2,...-2:0.1:2,...-2:0.1:2);v=x.*exp(-x.^2-y.^2-z.^2);grid onfor i=-2:0.5:2;h1=surf(linspace(-2,2,20),...linspace(-2,2,20),...zeros(20)+i);rotate(h1,[1 -1 1],30)dx=get(h1,'xdata');dy=get(h1,'ydata');dz=get(h1,'zdata');delete(h1)slice(x,y,z,v,[-2 2],2,-2)hold onslice(x,y,z,v,dx,dy,dz)hold offaxis tightview(-5,10)drawnowend实例30:立体透视(2)function shili30h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例30');[x,y,z]=meshgrid(-2:0.1:2,...-2:0.1:2,...-2:0.1:2);v=x.*exp(-x.^2-y.^2-z.^2); [dx,dy,dz]=cylinder;slice(x,y,z,v,[-2 2],2,-2)for i=-2:0.2:2h=surface(dx+i,dy,dz);rotate(h,[1 0 0],90)xp=get(h,'xdata');yp=get(h,'ydata');zp=get(h,'zdata');delete(h)hold onhs=slice(x,y,z,v,xp,yp,zp);axis tightxlim([-3 3])view(-10,35)drawnowdelete(hs)hold offend实例31:表面图形function shili31h0=figure('toolbar','none',...'position',[200 150 550 250],...'name','实例31');subplot(1,2,1)x=rand(100,1)*16-8;y=rand(100,1)*16-8;r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;xlin=linspace(min(x),max(x),33); ylin=linspace(min(y),max(y),33); [X,Y]=meshgrid(xlin,ylin);Z=griddata(x,y,z,X,Y,'cubic'); mesh(X,Y,Z)axis tighthold onplot3(x,y,z,'.','Markersize',20) subplot(1,2,2)k=5;n=2^k-1;theta=pi*(-n:2:n)/n;phi=(pi/2)*(-n:2:n)'/n;X=cos(phi)*cos(theta);Y=cos(phi)*sin(theta);Z=sin(phi)*ones(size(theta)); colormap([0 0 0;1 1 1])C=hadamard(2^k);surf(X,Y,Z,C)axis square实例32:沿曲线移动的小球h0=figure('toolbar','none',...'position',[198****8468],...'name','实例32');h1=axes('parent',h0,...'position',[0.15 0.45 0.7 0.5],...'visible','on');t=0:pi/24:4*pi;y=sin(t);plot(t,y,'b')n=length(t);h=line('color',[0 0.5 0.5],...'linestyle','.',...'markersize',25,...'erasemode','xor');k1=uicontrol('parent',h0,...'style','pushbutton',...'position',[80 100 50 30],...'string','开始',...'callback',[...'i=1;',...'k=1;,',...'m=0;,',...'while 1,',...'if k==0,',...'break,',...'end,',...'if k~=0,',...'set(h,''xdata'',t(i),''ydata'',y(i)),',...'drawnow;,',...'i=i+1;,',...'if i>n,',...'m=m+1;,',...'i=1;,',...'end,',...'end,',...'end']);k2=uicontrol('parent',h0,...'style','pushbutton',...'position',[180 100 50 30],...'string','停止',...'callback',[...'k=0;,',...'set(e1,''string'',m),',...'p=get(h,''xdata'');,',...'q=get(h,''ydata'');,',...'set(e2,''string'',p);,',...'set(e3,''string'',q)']); k3=uicontrol('parent',h0,...'style','pushbutton',...'position',[280 100 50 30],...'string','关闭',...'callback','close');e1=uicontrol('parent',h0,...'style','edit',...'position',[60 30 60 20]);t1=uicontrol('parent',h0,...'style','text',...'string','循环次数',...'position',[60 50 60 20]);e2=uicontrol('parent',h0,...'style','edit',...'position',[180 30 50 20]);t2=uicontrol('parent',h0,...'style','text',...'string','终点的X坐标值',...'position',[155 50 100 20]);e3=uicontrol('parent',h0,...'style','edit',...'position',[300 30 50 20]);t3=uicontrol('parent',h0,...'style','text',...'string','终点的Y坐标值',...'position',[275 50 100 20]);实例33:曲线转换按钮h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例33');x=0:0.5:2*pi;y=sin(x);h=plot(x,y);grid onhuidiao=[...'if i==1,',...'i=0;,',...'y=cos(x);,',...'delete(h),',...'set(hm,''string'',''正弦函数''),',...'h=plot(x,y);,',...'grid on,',...'else if i==0,',...'i=1;,',...'y=sin(x);,',...'set(hm,''string'',''余弦函数''),',...'delete(h),',...'h=plot(x,y);,',...'grid on,',...'end,',...'end'];hm=uicontrol(gcf,'style','pushbutton',...'string','余弦函数',...'callback',huidiao);i=1;set(hm,'position',[250 20 60 20]);set(gca,'position',[0.2 0.2 0.6 0.6])title('按钮的使用')hold on实例34:栅格控制按钮h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例34');x=0:0.5:2*pi;y=sin(x);plot(x,y)huidiao1=[...'set(h_toggle2,''value'',0),',...'grid on,',...];huidiao2=[...'set(h_toggle1,''value'',0),',...'grid off,',...];h_toggle1=uicontrol(gcf,'style','togglebutton',...'string','grid on',...'value',0,...'position',[20 45 50 20],...'callback',huidiao1);h_toggle2=uicontrol(gcf,'style','togglebutton',...'string','grid off',...'value',0,...'position',[20 20 50 20],...'callback',huidiao2);set(gca,'position',[0.2 0.2 0.6 0.6])title('开关按钮的使用')实例35:编辑框的使用h0=figure('toolbar','none',...'position',[200 150 350 250],...'name','实例35');f='Please input the letter';huidiao1=[...'g=upper(f);,',...'set(h2_edit,''string'',g),',...];huidiao2=[...'g=lower(f);,',...'set(h2_edit,''string'',g),',...];h1_edit=uicontrol(gcf,'style','edit',...'position',[100 200 100 50],...'HorizontalAlignment','left',...'string','Please input the letter',...'callback','f=get(h1_edit,''string'');',...'background','w',...'max',5,...'min',1);h2_edit=uicontrol(gcf,'style','edit',...'HorizontalAlignment','left',...'position',[100 100 100 50],...'background','w',...'max',5,...'min',1);h1_button=uicontrol(gcf,'style','pushbutton',...'string','小写变大写',...'position',[100 45 100 20],...'callback',huidiao1);h2_button=uicontrol(gcf,'style','pushbutton',...'string','大写变小写',...'position',[100 20 100 20],...'callback',huidiao2);实例36:弹出式菜单h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例36');x=0:0.5:2*pi;y=sin(x);h=plot(x,y);grid onhm=uicontrol(gcf,'style','popupmenu',...'string',...'sin(x)|cos(x)|sin(x)+cos(x)|exp(-sin(x))',...'position',[250 20 50 20]);set(hm,'value',1)huidiao=[...'v=get(hm,''value'');,',...'switch v,',...'case 1,',...'delete(h),',...'y=sin(x);,',...'h=plot(x,y);,',...'grid on,',...'case 2,',...'delete(h),',...'y=cos(x);,',...'h=plot(x,y);,',...'grid on,',...'case 3,',...'delete(h),',...'y=sin(x)+cos(x);,',...'h=plot(x,y);,',...'grid on,',...'case 4,',...'delete(h),',...'y=exp(-sin(x));,',...'h=plot(x,y);,',...'grid on,',...'end'];set(hm,'callback',huidiao)set(gca,'position',[0.2 0.2 0.6 0.6]) title('弹出式菜单的使用')实例37:滑标的使用h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例37');[x,y]=meshgrid(-8:0.5:8);r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;h0=mesh(x,y,z);h1=axes('position',...[0.2 0.2 0.5 0.5],...'visible','off');htext=uicontrol(gcf,...'units','points',...'position',[20 30 45 15],...'string','brightness',...'style','text');hslider=uicontrol(gcf,...'units','points',...'position',[10 10 300 15],...'min',-1,...'max',1,...'style','slider',...'callback',...'brighten(get(hslider,''value''))'); 实例38:多选菜单h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例38');[x,y]=meshgrid(-8:0.5:8);r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;h0=mesh(x,y,z);hlist=uicontrol(gcf,'style','listbox',...'string','default|spring|summer|autumn|winter',...'max',5,...'min',1,...'position',[20 20 80 100],...'callback',[...'k=get(hlist,''value'');,',...'switch k,',...'case 1,',...'colormap default,',...'case 2,',...'colormap spring,',...'case 3,',...'colormap summer,',...'case 4,',...'colormap autumn,',...'case 5,',...'colormap winter,',...'end']);实例39:菜单控制的使用h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例39');x=0:0.5:2*pi;y=cos(x);h=plot(x,y);grid onset(gcf,'toolbar','none')hm=uimenu('label','example');huidiao1=[...'set(hm_gridon,''checked'',''on''),',...'set(hm_gridoff,''checked'',''off''),',...'grid on'];huidiao2=[...'set(hm_gridoff,''checked'',''on''),',...'set(hm_gridon,''checked'',''off''),',...'grid off'];hm_gridon=uimenu(hm,'label','grid on',...'checked','on',...'callback',huidiao1);hm_gridoff=uimenu(hm,'label','grid off',...'checked','off',...'callback',huidiao2);实例40:UIMENU菜单的应用h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例40');h1=uimenu(gcf,'label','函数');h11=uimenu(h1,'label','轮廓图',...'callback',[...'set(h31,''checked'',''on''),',...'set(h32,''checked'',''off''),',...'[x,y,z]=peaks;,',...'contour3(x,y,z,30)']);h12=uimenu(h1,'label','高斯分布',...'callback',[...'set(h31,''checked'',''on''),',...'set(h32,''checked'',''off''),',...'mesh(peaks);,',...'axis tight']);。
matlab使用拉格朗日法计算动力学方程参数标题:用MATLAB使用拉格朗日法计算动力学方程参数导言:在工程和科学领域中,我们经常需要对系统进行动力学建模和分析。
动力学方程是描述系统运动的数学表达式,它们可以帮助我们理解和预测系统的行为。
而计算动力学方程的参数对于系统的设计、优化和控制具有重要意义。
本文将介绍如何使用MATLAB编程语言和拉格朗日法来计算动力学方程参数,通过数值求解和优化方法,为工程师和科学家提供一个有力的工具。
1. 动力学方程与参数计算在动力学中,系统可以通过一组微分方程来描述。
这些方程表示系统的行为和演变,通常包括质量、速度、加速度和其他相关因素。
对于复杂系统,计算动力学参数可能是一项繁琐且复杂的任务。
幸运的是,拉格朗日法可以简化这一过程,通过定义能量或运动方程来推导系统动力学方程。
2. 拉格朗日法介绍拉格朗日法是一种基于能量和运动方程的变分法。
通过将系统的动能和势能组合成拉格朗日函数,并使用欧拉-拉格朗日方程,可以得到系统的运动方程。
拉格朗日法不仅适用于具有广义坐标的连续系统,还适用于离散系统和有束缚条件的系统。
3. MATLAB编程实现在MATLAB中,我们可以使用符号计算工具包来处理复杂的数学表达式和符号计算。
我们需要定义系统的广义坐标、广义速度和拉格朗日函数。
通过欧拉-拉格朗日方程生成系统的运动方程。
我们可以使用数值求解和优化方法来计算动力学参数。
4. 示例:双摆系统为了更好地理解如何使用MATLAB实现拉格朗日法,我们将以一个双摆系统为例。
双摆系统由两个连杆组成,每个连杆上挂有一个质点。
我们需要计算系统的动力学参数,包括质点的位置、速度和加速度。
通过拉格朗日法,我们可以推导出系统的运动方程,并使用MATLAB 进行求解和优化。
5. 讨论与总结本文介绍了使用MATLAB编程语言和拉格朗日法计算动力学方程参数的方法。
通过拉格朗日法,我们可以简化动力学参数的计算,并为系统的设计和优化提供可行性的解决方案。
汽车理论课后习题MATLAB编程1.3 确定一轻型货车的动力性能(货车可装用4挡或5挡变速器,任选其中的一种进行整车性能计算):1)绘制汽车驱动力与行驶阻力平衡图。
2)求汽车最高车速,最大爬坡度及克服该坡度时相应的附着率。
3)绘制汽车行驶加速度倒数曲线,用图解积分法求汽车用2档起步加速行驶至70km/h的车速-时间曲线,或者用计算机求汽车用2档起步加速行驶至70km/h的加速时间。
解:(1) 求汽车驱动力与行驶阻力平衡图和汽车最高车速:n=[600:10:4000];Tq=-19.313+295.27*(n/1000)-165.44*(n/1000).^2+40.874*(n/1000).^3-3.8445*(n/10 00).^4;m=3880;g=9.8;nmin=600;nmax=4000;G=m*g;ig=[5.56 2.769 1.644 1.00 0.793];nT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83;L=3.2;a=1.947;hg=0.9;If=0.218;Iw1=1.798;Iw2=3.598;Ft1=Tq*ig(1)*i0*nT/r;Ft2=Tq*ig(2)*i0*nT/r;Ft3=Tq*ig(3)*i0*nT/r;Ft4=Tq*ig(4)*i0*nT/r;Ft5=Tq*ig(5)*i0*nT/r;ua1=0.377*r*n/ig(1)/i0;ua2=0.377*r*n/ig(2)/i0;ua3=0.377*r*n/ig(3)/i0;ua4=0.377*r*n/ig(4)/i0;ua5=0.377*r*n/ig(5)/i0;ua=[0:5:120];Ff=G*f;Fw=CDA*ua.^2/21.15;Fz=Ff+Fw;plot(ua1,Ft1,ua2,Ft2,ua3,Ft3,ua4,Ft4,ua5,Ft5,ua,Fz);title('驱动力-行驶阻力平衡图');xlabel('ua(km/s)');ylabel('Ft(N)');gtext('Ft1'),gtext('Ft2'),gtext('Ft3'),gtext('Ft4'),gtext('Ft5'),gtext('Ff+Fw');zoom on;[x,y]=ginput(1);zoom off;disp('汽车最高车速=');disp(x);disp('km/h');汽车最高车速=99.3006km/h(2)求汽车最大爬坡度程序:n=[600:10:4000];Tq=-19.313+295.27*(n/1000)-165.44*(n/1000).^2+40.874*(n/1000).^3-3.8445*(n/10 00).^4;m=3880;g=9.8;nmin=600;nmax=4000;G=m*g;ig=[5.56 2.769 1.644 1.00 0.793];nT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83;L=3.2;a=1.947;hg=0.9;If=0.218;Iw1=1.798;Iw2=3.598;Ft1=Tq*ig(1)*i0*nT/r;ua1=0.377*r*n/ig(1)/i0;Ff=G*f;Fw1=CDA*ua1.^2/21.15;Fz1=Ff+Fw1;Fi1=Ft1-Fz1;Zoom on;imax=100*tan(asin(max(Fi1/G)));disp('汽车最大爬坡度=');disp(imax);disp('%');汽车最大爬坡度=35.2197%(3)求最大爬坡度相应的附着率和求汽车行驶加速度倒数曲线程序:clearn=[600:10:4000];Tq=-19.313+295.27*(n/1000)-165.44*(n/1000).^2+40.874*(n/1000).^3-3.8445*(n/10 00).^4;m=3880;g=9.8;nmin=600;nmax=4000;G=m*g;ig=[5.56 2.769 1.644 1.00 0.793];nT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83;L=3.2;a=1.947;hg=0.9;If=0.218;Iw1=1.798;Iw2=3.598;Ft1=Tq*ig(1)*i0*nT/r;Ft2=Tq*ig(2)*i0*nT/r;Ft3=Tq*ig(3)*i0*nT/r;Ft4=Tq*ig(4)*i0*nT/r;Ft5=Tq*ig(5)*i0*nT/r;ua1=0.377*r*n/ig(1)/i0;ua2=0.377*r*n/ig(2)/i0;ua3=0.377*r*n/ig(3)/i0;ua4=0.377*r*n/ig(4)/i0;ua5=0.377*r*n/ig(5)/i0;Fw1=CDA*ua1.^2/21.15;Fw2=CDA*ua2.^2/21.15;Fw3=CDA*ua3.^2/21.15;Fw4=CDA*ua4.^2/21.15;Fw5=CDA*ua5.^2/21.15;Ff=G*f;deta1=1+(Iw1+Iw2)/(m*r^2)+(If*ig(1)^2*i0^2*nT)/(m*r^2);deta2=1+(Iw1+Iw2)/(m*r^2)+(If*ig(2)^2*i0^2*nT)/(m*r^2);deta3=1+(Iw1+Iw2)/(m*r^2)+(If*ig(3)^2*i0^2*nT)/(m*r^2);deta4=1+(Iw1+Iw2)/(m*r^2)+(If*ig(4)^2*i0^2*nT)/(m*r^2);deta5=1+(Iw1+Iw2)/(m*r^2)+(If*ig(5)^2*i0^2*nT)/(m*r^2);a1=(Ft1-Ff-Fw1)/(deta1*m);ad1=1./a1;a2=(Ft2-Ff-Fw2)/(deta2*m);ad2=1./a2;a3=(Ft3-Ff-Fw3)/(deta3*m);ad3=1./a3;a4=(Ft4-Ff-Fw4)/(deta4*m);ad4=1./a4;a5=(Ft5-Ff-Fw5)/(deta5*m);ad5=1./a5;plot(ua1,ad1,ua2,ad2,ua3,ad3,ua4,ad4,ua5,ad5);axis([0 99 0 10]);title('汽车的加速度倒数曲线');xlabel('ua(km/h)');ylabel('1/a');gtext('1/a1');gtext('1/a2');gtext('1/a3');gtext('1/a4');gtext('1/a5');a=max(a1);af=asin(max(Ft1-Ff-Fw1)/G);C=tan(af)/(a/L+hg*tan(af)/L);disp('假设后轮驱动,最大爬坡度相应的附着率=');disp(C);假设后轮驱动,最大爬坡度相应的附着率=0.4219(4) >>clearnT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83;If=0.218;Iw1=1.798;Iw2=3.598;L=3.2;a=1.947;hg=0.9;m=3880;g=9.8;G=m*g; ig=[5.56 2.769 1.644 1.00 0.793];nmin=600;nmax=4000;u1=0.377*r*nmin./ig/i0;u2=0.377*r*nmax./ig/i0;deta=0*ig;for i=1:5deta(i)=1+(Iw1+Iw2)/(m*r^2)+(If*(ig(i))^2*i0^2*nT)/(m*r^2);endua=[6:0.01:99];N=length(ua);n=0;Tq=0;Ft=0;inv_a=0*ua;delta=0*ua;Ff=G*f;Fw=CDA*ua.^2/21.15;for i=1:Nk=i;if ua(i)<=u2(2)n=ua(i)*(ig(2)*i0/r)/0.377;Tq=-19.313+295.27*(n/1000)-165.44*(n/1000)^2+40.874*(n/1000)^3-3.8445*(n/100 0)^4;Ft=Tq*ig(2)*i0*nT/r;inv_a(i)=(deta(2)*m)/(Ft-Ff-Fw(i));delta(i)=0.01*inv_a(i)/3.6;elseif ua(i)<=u2(3)n=ua(i)*(ig(3)*i0/r)/0.377;Tq=-19.313+295.27*(n/1000)-165.44*(n/1000)^2+40.874*(n/1000)^3-3.8445*(n/100 0)^4;Ft=Tq*ig(3)*i0*nT/r;inv_a(i)=(deta(3)*m)/(Ft-Ff-Fw(i));delta(i)=0.01*inv_a(i)/3.6;elseif ua(i)<=u2(4)n=ua(i)*(ig(4)*i0/r)/0.377;Tq=-19.313+295.27*(n/1000)-165.44*(n/1000)^2+40.874*(n/1000)^3-3.8445*(n/100 0)^4;Ft=Tq*ig(4)*i0*nT/r;inv_a(i)=(deta(4)*m)/(Ft-Ff-Fw(i));delta(i)=0.01*inv_a(i)/3.6;elsen=ua(i)*(ig(5)*i0/r)/0.377;Tq=-19.313+295.27*(n/1000)-165.44*(n/1000)^2+40.874*(n/1000)^3-3.8445*(n/100 0)^4;Ft=Tq*ig(5)*i0*nT/r;inv_a(i)=(deta(5)*m)/(Ft-Ff-Fw(i));delta(i)=0.01*inv_a(i)/3.6;enda=delta(1:k);t(i)=sum(a);endplot(t,ua);axis([0 80 0 100]);title('汽车2档原地起步换挡加速时间曲线');xlabel('时间t(s)');ylabel('速度ua(km/h)');>> ginputans =25.8223 70.073725.7467 70.0737所以汽车2档原地起步换挡加速行驶至70km/h的加速时间约为25.8s2.7已知货车装用汽油发动机的负荷特性与万有特性。
《有限元法》实验报告专业班级力学(实验)1601 姓名田诗豪学号 1603020210 提交日期 2019.4.24实验一(30分)一、实验内容编写一个计算平面3结点三角形单元的应变矩阵、应力矩阵和单元刚度矩阵的MATLAB 函数文件[B3,S3,K3] = ele_mat_tri3(xy3,mat),其中:输入变量xy3为结点坐标数组,mat为材料参数矩阵;输出变量B3为应变矩阵,S3为应力矩阵,K3为单元刚度矩阵。
(要求给出3个不同算例进行验证,并绘制出单元形状和结点号)二、程序代码通用函数function [B3,S3,K3] = ele_mat_tri3(xy3,mat)%生成平面3结点三角形单元的应变矩阵、应力矩阵和单元刚度矩阵的功能函数%*********变量说明****************%xy3------------------结点坐标数组%mat------------------材料参数矩阵(弹性模量,泊松比,壁厚)%B3-------------------应变矩阵%S3-------------------应力矩阵%K3-------------------单元刚度矩阵%*********************************xyh=[1,xy3(1,1),xy3(1,2);1,xy3(2,1),xy3(2,2);1,xy3(3,1),xy3(3,2)];A=0.5*det(xyh);A=abs(A);D=mat(1)/(1-mat(2)^2)*[1,mat(2),0;mat(2),1,0;0,0,(1-mat(2))/2];b=zeros(1,3);c=zeros(1,3);%*********************************for i=1:3if i==1j=2;m=3;elseif i==2j=3;m=1;elsej=1;m=2;endb(i)=xy3(j,2)-xy3(m,2);c(i)=xy3(m,1)-xy3(j,1);end%*********************************B31=1/(2*A)*[b(1),0;0,c(1);c(1),b(1)];B32=1/(2*A)*[b(2),0;0,c(2);c(2),b(2)];B33=1/(2*A)*[b(3),0;0,c(3);c(3),b(3)];B3=[B31,B32,B33];%*********************************S3=D*B3;%*********************************K3=A*mat(3)*B3'*D*B3;●主程序clear;clc;%*********输入结点坐标数组********xy3=[0,0;5,1;1,4];mat=[3e6,0.5,1.0];%****输入材料参数矩阵(弹性模量,泊松比,壁厚)****[B3,S3,K3]=ele_mat_tri3(xy3,mat)三、算例分析●算例1:如图1所示三角形单元,结点坐标为1(0,0),2(5,2),3(1,4),弹性模量为200GPa,泊松比为0.35、厚度为0.5m。
MATLAB解力的平衡引言力的平衡是物理学中一个重要的概念。
在静力学中,当物体处于静止状态或匀速直线运动时,所有作用在物体上的力之和为零。
利用MATLAB可以轻松地解决力的平衡问题,计算出未知力的大小和方向。
本文将介绍如何使用MATLAB解决力的平衡问题,并通过实例演示其应用。
力的平衡在静力学中,力的平衡是指物体所受外力之和为零。
当一个物体处于静止状态或匀速直线运动时,可以利用以下条件来判断是否达到了力的平衡:1.所有作用在物体上的外力之和为零。
2.所有作用在物体上的外力对称。
根据这些条件,可以得到一个方程组来解决未知力。
使用MATLAB解决力的平衡问题MATLAB是一种功能强大且广泛使用的数值计算软件。
它提供了许多有用的函数和工具箱,可用于解决各种数学和科学问题。
下面将介绍如何使用MATLAB解决力的平衡问题。
步骤1:确定已知条件首先要确定已知条件,包括物体的质量、已知力的大小和方向等。
这些条件将用于建立方程组。
步骤2:建立方程组根据已知条件,可以建立一个包含未知力的方程组。
根据力的平衡原理,所有作用在物体上的外力之和应为零。
根据牛顿第二定律,可以得到以下方程:∑F x=0∑F y=0其中,∑F x和∑F y分别表示物体在x和y方向上的合力。
步骤3:解方程组利用MATLAB可以轻松地解决线性方程组。
可以使用MATLAB中的线性代数函数linsolve来求解未知力。
syms F1 F2; % 定义未知数F1和F2eqn1 = -F1 + F2*cos(theta) + F3*cos(alpha) == 0; % x方向上的力平衡eqn2 = -F2*sin(theta) - F3*sin(alpha) == 0; % y方向上的力平衡sol = linsolve([eqn1, eqn2], [F1, F2]); % 解线性方程组步骤4:计算未知力的大小和方向通过解得的未知数值,可以计算出未知力的大小和方向。
MATLAB的基本操作与编程基础实验⼀MATLAB的基本操作、编程基础姓名:学号:⽹选班级:1.简述实验⽬的及实验原理答:本次实验的⽬的是为了了解matlab软件和matlab语⾔的⽤法。
简要介绍了⼀些常⽤的运算符和函数,还有⼀些信号系统在matlab软件⾥怎样实现的。
实验原理是通过matlab软件实现信号系统的⼀些计算。
2.记录实验内容3、4的命令或程序及图形内容3.画出以下各序列在给定区间的图形。
1) x(n)=2δ(n+2)-δ(n-4)+δ(n) ,-5≤n≤52) x(n)=n[u(n)-u(n-10)]+10e-0.3(n-10)[u(n-10)-u(n-20)],0≤n≤203) x(n)=2-cos(0.4πn)- cos(0.8πn),0≤n≤50答:(1)程序为:n=-5:5;x1=[(n+2)==0];x2=[(n-4)==0];x3=[(n+0)==0];x=2.*x1-x2+x3;stem(n,x);xlabel('n');ylabel('x');(2)程序为:%x(n)=n[u(n)-u(n-10)]+10e-0.3(n-10)[u(n-10)-u(n-20)],n=0:20;x1=[n>=0];x2=[n>=10];x3=[n>=20];x4=exp(-0.3).^(n-10);x=x1-x2+10.*x4.*(x2-x3);stem(n,x);xlabel('n 作者:陈哲');ylabel('x');(3)程序为:%x(n)=2-cos(0.4|Dn)- cos(0.8|Dn£? ,0?ün?ü50%x(n)=2-cos(0.4|Dn)- cos(0.8|Dn£? ,0?ün?ü50n=0:50;x1=cos(0.4*n.*pi);x2=cos(0.8*n.*pi);x=2-x1-x2;subplot(211);stem(n,x);xlabel('n 作者:陈哲');ylabel('x');title('采样点很少的情况');n1=0:0.01:50;x11=cos(0.4*n1.*pi);x21=cos(0.8*n1.*pi);x0=2-x11-x21;subplot(212);stem(n1,x0);xlabel('n 作者:陈哲');ylabel('x');title('采样点很多的情况');4.令x(n)={1,2,3,4,5,6,7,6,5,4,3,2,1},画出下列序列的图形1) x1(n)=2x(n-5)-3x(n-4)2) x2(n)=x(3-n)-x(n)x(n-2)3) x e(n)和x o(n) ---通过编写求x e(n)、x o(n)的M-file来实现(需要给出测试函数) x e(n) 和x o(n)分别为x(n)的偶部和奇部解:(1)程序为:%x1(n)=2x(n-5)-3x(n-4),x(n)={1,2,3,4,5,6,7,6,5,4,3,2,1}%x1=x(n-5) x2=x(n-4)x=[1,2,3,4,5,6,7,6,5,4,3,2,1];n=0:12;[x1,n1]=sigshift(x,n,5);[x2,n2]=sigshift(x,n,4);[y,n3] = sigadd((2.*x1),n1,(-3.*x2),n2)subplot(211);stem(n,x);xlabel('n');ylabel('x(n)');subplot(212);stem(n3,y);xlabel('n');ylabel('x1(n)=2x(n-5)-3x(n-4)');⾃定义函数有:%实现信号加的M-file :y(n)=x1(n)+x2(n)function [y,n] = sigadd(x1,n1,x2,n2)n = min(min(n1),min(n2)):max(max(n1),max(n2));y1 = zeros(1,length(n)); y2 = y1;y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;y = y1+y2;%移位的M-file :y(n)=x(n-n0)function [y,n] = sigshift(x,m,n0)n = m+n0; y = x;(2)程序为:%x2(n)=x(3-n)-x(n)x(n-2)%x0=x(3-n);x1=x(n)x(n-2);x=[1,2,3,4,5,6,7,6,5,4,3,2,1];n0=0:12;[x00,n10] = sigshift(x,3,n0);[x0,n1] = sigfold(x00,n10);[x11,n11] = sigshift(x,2,n0);[x1,n2] = sigmult(x,n0,x11,n11);[x2,n] = sigadd(x0,n1,-x1,n2);stem(n,x2);xlabel('n');ylabel('x2(n)');title('x2(n)=x(3-n)-x(n)x(n-2)');⾃定义函数有:%实现信号乘的M-file : y(n)=x1(n) x2(n)function [y,n] = sigmult(x1,n1,x2,n2)n = min(min(n1),min(n2)):max(max(n1),max(n2));y1 = zeros(1,length(n)); y2 = y1;y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; y = y1 .* y2;%折叠的M-file :y(n)=x(-n)function [y,n] = sigfold(x,n)y = fliplr(x); n = -fliplr(n);(3)程序为:奇部函数:function [y1,m1 ] =jishu( x,n )for i=1:2:nif i<=nm1((i+1)/2)=(i+1)/2;y1((i+1)/2)=x(i);endend偶部函数:function [y1,m1 ] =oushu( x,n )for i=2:2:nif i<=nm1((i)/2)=(i)/2;y1((i)/2)=x(i);endend测试程序:x=[1,2,3,4,5,6,7,6,5,4,3,2,1];n0=1:13;n=13;[y1,m1]=jishu(x,n);[y2,m2]=oushu(x,n);subplot(311);stem(n0,x);xlabel('n');ylabel('x(n)');title('x(n)');subplot(312);stem(m1,y1);xlabel('n');ylabel('x(n)??2?');title('x(n)??2?'); subplot(313);stem(m2,y2);xlabel('n');ylabel('x(n)??2?');title('x(n)??2?');。
matlab有限状态机编程Matlab有限状态机编程是一种常用的编程技术,用于描述和实现系统的状态转换和行为。
有限状态机(Finite State Machine,FSM)是一种数学模型,表示系统的一组状态以及在不同输入下如何从一个状态转换到另一个状态。
在Matlab中,可以利用FSM工具箱来设计和模拟有限状态机。
有限状态机由一组状态、输入和转换规则组成。
状态表示系统的某种特定情况或条件,输入是触发状态转换的外部事件或条件,转换规则定义了在给定输入下从一个状态转换到另一个状态的条件和动作。
有限状态机可以用图形方式表示,其中状态用圆圈表示,转换用箭头表示。
在Matlab中,可以使用FSM工具箱来创建有限状态机。
首先,需要定义系统的状态集合和输入集合。
然后,可以通过创建状态转换矩阵来定义状态之间的转换规则。
状态转换矩阵是一个二维数组,其中每一行代表一个状态,每一列代表一个输入,矩阵元素表示在给定输入下从一个状态转换到另一个状态的条件和动作。
在有限状态机编程中,常用的操作包括状态转换、状态更新和事件处理。
状态转换是根据输入和当前状态确定下一个状态的过程,状态更新是根据当前状态和输入更新系统的状态信息,事件处理是根据当前状态和输入执行相应的动作或操作。
有限状态机编程在实际应用中非常广泛。
例如,它可以用于控制系统、自动化系统、通信协议等领域。
通过使用有限状态机编程,可以简化复杂系统的设计和实现过程,提高系统的可靠性和性能。
在Matlab中,有限状态机编程可以通过编写脚本或函数来实现。
可以使用状态和输入变量来表示系统的状态和输入,使用条件语句和循环语句来实现状态转换和事件处理。
此外,还可以使用Matlab提供的其他功能和工具来增强有限状态机的功能和性能。
Matlab有限状态机编程是一种强大而灵活的编程技术,用于描述和实现系统的状态转换和行为。
通过使用FSM工具箱和Matlab的其他功能,可以简化复杂系统的设计和实现过程,提高系统的可靠性和性能。
Matlab 编程必备手册编程格式规范这儿把编程格式规范放在最前面希望大家在学习之前认真阅读该部分,对后面的 matlab编程大有裨益。
一.编程原则1.正确:能准确实现原仿真目的;2.高效:循环向量化,少用或不用循环,尽量调用 MATLAB 自带函数;3.清晰:养成良好的编程习惯,程序具有良好的可读性;4.通用:程序具高度的可移植性,同时易于扩展,避免同学之间重复工作。
二. 编程规则1.定义变量,以英文单词小写缩写开头表示类别名,再接具体变量的英文名称英文单词,具体变量首字母大写。
教研室常用类别缩写:最大值 max,最小值 min例如:定义变量存贮临时数组 TempArray 的最大值 maxTempArray依照工程大小确定变量名长短,小范围应用的变量应该用短的变量名。
定义务必清晰,避免混淆。
2.循环变量使用常用变量 i,j,k;程序中使用复数时,采用 i,j 以外的循环变量以避免和虚数单位冲突,同时要在注释部分说明变量意义。
3.程序应高内聚、低耦合、模块函数化,便于移植、重复使用。
4.使用 if 语句判断变量是否等于某一常数时,将常变量数写在等号之前,常数写在等号之后。
例如判断变量 a 是否等于 100 写作 if a ==100。
5.用常数代替数字,少用或不用数字。
例如上一条:写作 if a = =100 就不标准。
应先定义 meanConst=100;为期望常量。
同时在注释中说明,然后在程序部分写作:if a = =const;如果要修改期望常量的话,只要在程序定义部分修改就可以,不必再逐行修改,此外还易于在该程序的基础上增加其他功能。
三. 注释规则1.注释要用汉语,且用一个“%”连接文字作为注释开始标志。
程序的起始要注明作者、时间、程序功能、复杂的算法需要加上流程说明。
对于比较复杂的程序,由几个人协作完成,要在每一个模块的起始分别注明作者、时间、程序功能。
注释采用 matlab 的注释符号。
光束法matlab程序标题:光束法在MATLAB环境中的实现与应用光束法是一种广泛应用于结构力学、地震工程、地质力学等领域中的数值计算方法,主要用于求解复杂结构的静力和动力问题。
在MATLAB环境中,我们可以编写程序来实现光束法的计算过程。
以下将详细阐述如何在MATLAB中实现光束法,并通过步骤解析其工作原理。
一、光束法的基本原理光束法的基本思想是将连续的结构离散化为一系列的单元,每个单元视为一个具有特定刚度和质量特性的光束。
通过求解这些单元的平衡方程,可以得到整个结构的位移和应力分布。
二、光束法在MATLAB中的实现步骤1. 结构模型的建立:首先,我们需要在MATLAB中建立结构的几何模型,包括定义单元的数量、长度、截面形状和尺寸等参数。
这通常通过编写MATLAB代码来实现。
2. 刚度矩阵和质量矩阵的计算:对于每个单元,我们需要计算其刚度矩阵和质量矩阵。
这两个矩阵反映了单元对位移和载荷的响应特性。
在MATLAB中,我们可以使用内置的矩阵运算功能来实现这些计算。
3. 装配全局刚度矩阵和质量矩阵:将所有单元的刚度矩阵和质量矩阵组装成全局的刚度矩阵和质量矩阵。
这个过程可以通过循环和矩阵加法操作在MATLAB中实现。
4. 应用边界条件:根据实际问题的边界条件,对全局刚度矩阵进行修改。
例如,如果某个节点的位置或位移已知,那么相应的行或列可以在刚度矩阵中删除。
5. 求解未知节点的位移:通过求解修正后的全局刚度矩阵和外力向量的线性方程组,可以得到所有未知节点的位移。
在MATLAB中,我们可以使用内置的求解器函数(如\或mldivide)来实现这个步骤。
6. 计算结构的应力和应变:根据每个单元的位移和刚度特性,可以计算出单元的应力和应变。
在MATLAB中,我们可以编写相应的函数来实现这些计算。
三、光束法MATLAB程序实例以下是一个简单的光束法MATLAB程序示例,用于计算一个由两个光束单元组成的简支梁的位移和应力:matlab定义单元参数E = 200e9; 弹性模量I = 100; 面积矩L = 1; 单元长度n = 2; 单元数量计算单元的刚度矩阵和质量矩阵k = E*I/L; m = 0.5*I*L;初始化全局刚度矩阵和质量矩阵K = zeros(2*n,2*n);M = zeros(2*n,2*n);装配全局矩阵for i = 1:nK(i,i) = k;K(i,i+n) = -k;K(i+n,i) = -k;K(i+n,i+n) = k;M(i,i) = m;M(i+n,i+n) = m;end应用边界条件K(1,1) = 1;K(end,end) = 1;定义外力向量F = [0; -100];求解未知节点的位移U = K\F;计算单元的应力和应变sigma = k*U(2:2:end);epsilon = sigma/E;以上程序首先定义了单元的参数和数量,然后计算了单元的刚度矩阵和质量矩阵。
一维正激波问题是流体力学中的一个经典问题,研究正激波的性质及其在不同工程领域中的应用具有重要的理论和实际意义。
在本文中,我们将重点讨论一维正激波问题的数学模型、解析解和数值模拟方法,并借助MATLAB编程对其进行实现和分析。
1. 一维正激波问题的数学模型正激波是一种由于流体流速超过声速而形成的激波现象,其数学描述可由欧拉方程组表示。
在一维情况下,欧拉方程组可以简化为如下形式的非线性偏微分方程组:\[ \frac{\partial \rho}{\partial t} + \frac{\partial(\rho u)}{\partial x} = 0 \]\[ \frac{\partial (\rho u)}{\partial t} + \frac{\partial (\rho u^2 + p)}{\partial x} = 0 \]\[ \frac{\partial (\rho E)}{\partial t} + \frac{\partial (u(\rho E + p))}{\partial x} = 0 \]其中,\( \rho \) 为流体密度,\( u \) 为流体速度,\( p \) 为压力,\( E \) 为总能量。
在一维正激波问题中,通常需要给定适当的初边值条件和外部环境参数,并通过求解以上偏微分方程组得到正激波的演变规律。
2. 一维正激波问题的解析解由于一维正激波问题的复杂性,其解析解往往较为罕见。
在一些简化的情况下,可以通过特征线方法、相似解方法等手段获得一维正激波问题的解析解。
然而,针对一般的一维正激波问题,往往需要借助数值模拟方法求解。
3. 一维正激波问题的数值模拟方法数值模拟是研究一维正激波问题的有效手段之一,其主要思想是将偏微分方程组离散化为差分方程组,并通过迭代求解得到一维正激波的数值解。
常见的数值模拟方法包括有限差分法、有限体积法、间断Galerkin法等。
这些方法可以在MATLAB等软件评台上进行编程实现,为研究人员和工程师提供了便利的工具和技术支持。
MATLAB 是一种高级编程语言和交互式环境,常用于数值计算、数据分析、算法开发、数据可视化以及应用开发等。
在有限元分析(FEA)中,MATLAB 可以用来编写和运行有限元程序。
以下是一个简单的 MATLAB 有限元分析编程示例:这个例子假设你正在解决一个一维拉普拉斯方程,其形式为 -d^2u/dx^2 = f,在区间 [0, 1] 上。
```matlab% 参数定义L = 1; % 长度h = 0.01; % 步长N = L/h; % 元素数量x = linspace(0, L, N+1); % x 向量% 创建有限元网格nodes = x(1:N+1);elements = [nodes(2:end-1) nodes(1:end-1) nodes(2:end)]; % 定义载荷向量 ff = sin(pi*x);% 定义刚度矩阵 A 和载荷向量 FA = zeros(N, N);F = zeros(N, 1);for i = 1:Nfor j = 1:i-1A(i, j) = A(j, i) = h^2/(6*(x(i)-x(j))^2);endF(i) = -f(i)*h/2;end% 使用 MATLAB 的线性方程求解器u = A\F;% 绘制结果plot(x, u);xlabel('x');ylabel('u');title('有限元解');```这个代码首先定义了问题的参数,然后创建了一个有限元网格。
然后,它定义了刚度矩阵 A 和载荷向量 F。
最后,它使用 MATLAB 的线性方程求解器来求解方程,并绘制结果。
请注意,这只是一个非常简单的例子。
在实际的有限元分析中,问题可能会更复杂,并且需要更多的编程工作。
matlab牛顿法程序牛顿法是一种常用的优化算法,主要用于求解非线性方程或最优化问题。
它基于一阶导数和二阶导数的信息,通过不断迭代逼近目标函数的零点或最小值。
在Matlab中,我们可以利用该语言的强大功能和简洁的语法编写牛顿法程序。
牛顿法的核心思想是利用二阶导数逼近目标函数,然后通过迭代来逼近方程的解。
设目标函数为f(x),则牛顿法的迭代公式为:x_{n+1} = x_n - f'(x_n) / f''(x_n)其中,x_n是当前的迭代点,f'(x_n)和f''(x_n)分别是目标函数在x_n处的一阶导数和二阶导数。
为了编写一个通用的牛顿法程序,我们需要先定义目标函数及其导数求解的函数。
以求解方程f(x) = 0为例,我们将定义一个函数newton_method(f, f_prime, x0, tol),其中f是目标函数,f_prime是一阶导数函数,x0是初始点,tol是迭代精度。
首先,我们需要定义目标函数和一阶导数函数:```matlabfunction y = f(x)y = x^2 - 2;endfunction y = f_prime(x)y = 2*x;end```接下来,我们可以定义牛顿法的主函数newton_method:```matlabfunction root = newton_method(f, f_prime, x0, tol)x = x0;while abs(f(x)) > tolx = x - f(x) / f_prime(x);endroot = x;end```在主函数中,我们使用一个while循环不断迭代,直到满足迭代精度tol。
每次迭代,我们更新x的值,逼近方程的解。
现在,我们可以调用newton_method函数来求解具体的方程。
假设我们要求解方程x^2 - 2 = 0,初始点x0取1,迭代精度tol取0.0001。
力系平衡问题
一、实验目的
1、进一步掌握力系平衡知识;
2、掌握利用理论力学知识解决复杂力系平衡问题的能力;
3、提高利用计算机进行辅助分析的能力。
二、实验内容
利用Matlab求解刚体系平衡问题。
三、实验原理
1、力系平衡方程;
2、代数方程求解命令solve。
四、实验工具
计算机以及Matlab软件
五、实验过程
1、力学模型建立、描述
组合梁由AC和CD铰接而成。已知:q=5KN/m,力偶矩M=,不计梁重。试求支座A,B,
C,D处的约束力。
2、数学模型的建立
-Fay-FCy+FBy-q*4=0
Fax-FCx=0
FBy*2-FCy*4-q*4*2=0
-FD*cos(pi/6)+FCx=0
FD*sin(pi/6)+FCy=0
-M+FD*4*sin(pi/6)=0
3、数学模型求解仿真
编写Matlab命令文件如下:
clear
eq1='-q*4-FAy-FCy+FBy=0';
eq2='FAx-FCx=0';
eq3='FBy*2-FCy*4-q*4*2=0';
eq4='FCy+FD*sin(pi/6)=0';
eq5='FCx-FD*cos(pi/6)=0';
eq6='FD*4*sin(pi/6)-M=0';
s=solve(eq1,eq2,eq3,eq4,eq5,eq6,'FAx','FAy','FBy','FCx','FCy','FD');
q=5;M=20;
%单位为KN
FAx=subs
FAy=subs
FBy=subs
FCx=subs
FCy=subs
FD=subs
六、实验结果
FAx =
FAy =-5
FBy =10
FCx =
FCy =-5
FD =10
复摆运动分析研究
一、试验目的
1、进一步掌握动力学基本理论,掌握复摆运动的规律;
2、掌握利用理论力学知识解决复杂力学问题的能力;
3、提高利用计算机进行辅助分析的能力。
二、实验内容
本试验对复摆的运动规律进行详细的分析研究:建立复摆的运动微分方程,利用matlab
对复摆进行仿真计算,研究复摆的摆角对运动周期的影响。
三、实验原理
1、动量矩定理或刚体定轴转动微分方程;
2、运动微分方程的数值求解。
matlab中的常用微分方程的数值求解命令直接求解的是一阶常微分方程。而动力学微
分方程一般是两阶的。利用数值方程求解动力学微分方程需要首先对其进行降阶增维处理。
四.实验过程
1、力学模型建立,描述
建立复摆的运动微分方程,其中复摆的质量为m,质心为C,质心到悬挂点的距离为a
2、数学模型的建立
J*( theta0)’’=-m*g*a*sin(theta0)
3.数学模型求解仿真
对上述方程进行降阶增维,令Y=[theta0,theta0’]=[y1,y2]
可得方程组:
Y1’=y2;
Y2’=-m*g*sin(y1)/J
编写Matlab命令文件如下
主程序:
global J g m a
J=10,g=10,m=5,a=;
tmax=30;step=;
theta0=pi/8;
[t,y]=ode45('fubai',[0:step:tmax],[theta0,0]);
subplot(2,1,1);
plot(t,y(:,1));
subplot(2,1,2);
plot(t,y(:,2));
子程序:
function ydot=fbai(t,y)
global J g m a
ydot=[y(2)
-m*g*a*sin(y(1))/J];
五、实验结果分析讨论
由图观察可知:
当theta0较小时,theta0的逐渐变
大,对周期的影响不明显。当theta0增大至一定角度 时,随着theta0值的增大,周期明
显逐渐变大。
精心搜集整理,只为你的需要