5、)dxK=TAdx显然需要做积分。我们使川MATLAB屮的cumtrapz函数做积分。首先来简单介绍一下cumtrapz函数。我们在命令区里输入:Y=[012;345Ja=cumtrapz(Y,l)b=cumtrapz(Y,2)得到的结果如图45-2所示。从运彳亍结果我们可以看出,cumtrapz(Y,l)与cumtnxpz(Y,2)的计算结果不同,请注意各自的用法。下而我们就用cumtrapz函数來解上而的问题。取L=2m,P=1500N,Li=lm,在命令区里输入:L=2;P=1500;Ll=
6、l;E=150e9;I=1.5e-5;x=linspace(O,LJ0l);dx=L/100nl=Ll/dx+I;Ml=-P*(Ll-x(l:nl));M2=zeros(l,101-nl);M=[M1,M2];A=cumtrapz(M)*dx/(E*I);Y=cumtrapz(A)*dx;subplot(3,1,l),plot(x,M),gridsubplot(3,l,2),plot(x,A),gridsubplot(3,1,3),plot(x,Y),gridgtextCM1)gtext('A')
7、gtextCY1)得到图45-3o-500——彳——:…■士〜——「…■:::M:\\\・1CO3「X!7——I:丰——V、——-!:-1500从图中口J以明显地看出悬肾梁弯矩、转角、挠度沿梁分布关系。在工程上,经常要绘制这样的关系图。(2)绘制莫尔图己知两正交截而上的正应力6、6•和剪应力&,求其它斜截而的应力值。设斜截血与牛上的正应力b和剪应力的r计算公式是:+bv-crv<7V-<7Vt=—sin2^+rvvcos23我们在命令区里输入程序:Sx=20;Sy=0;Txy=10;a=li
8、nspace(0,pi,36);Sa=(Sx+Sy)/2;Sd=(Sx・Sy)/2;s=Sa+Sd*cos(2*a)-Txy*sin(2*a);t=Sd*sin(2*a)+Txy*cos(2*a);plot(s,t,Sx,Txy);axisequalv=axis;line([v⑴,v(2)],[0,0])line([0,0],[(3),v⑷])hold,plot(Sa,0,'x')Smax=max(s),Smin=min(s),Tmax=max(t)用gtext命令标注后,得到图45-4所示的莫尔
9、图o运算结果为:Smax=24.1101Smin=—4.1386Tmax=14.I101若取Sx=20,Sy=20,Txy=10,运行上而的程序,得到图45-5-得到的结果是:Smax=26.1753Smin=3.8396Txy=ll」490改变参数后得到正应力都为正值。有了这个程序,输入任意参数,我们都可以求出正应力和剪应力,以后遇到这类问题,就可以MATLAB轻松求解。【练习小结】本练习中我们遇到了材料力学中常见的问题:求悬臂梁转角和挠度;绘制莫尔图。通过联系我们知道了contrapz函数的用
10、法。Contrapz主要用来做较为精确的积分运算。在积分吋,要注意灵活应用。将数据可视化始终是解决工程实际问题的目标Z—,比如绘制莫尔图。就是工程中常见任务。希望读者对照例题,仔细体会程序的意义。材料力学中的问题常常要涉及绘图,希望读者建立起以图形方法解决问题的思想,灵活运用学过的知识,以最优方法解决疑难问题,【思考题】1.在求解悬膺梁的程序中,如果不用contrapz函数进行积分,我们还可以用什么函数完成计算?2.冋忆consum函数的用法,与contrapz函数进行比较,有•什