基于Matlab的材料力学电算法

  • 格式:pdf
  • 大小:110.87 KB
  • 文档页数:3

文章编号:1009-671X(2002)05-0037-03基于Matlab的材料力学电算法周 博1,李喜斌2(1.哈尔滨工程大学建筑工程学院,黑龙江哈尔滨 150001;2.哈尔滨工程大学船舶工程学院,黑龙江哈尔滨 150001)摘 要:应用科学计算语言Matlab,对材料力学的某些问题提出了电算法,并编制了一些通用程序,可供工程技术人员和高校师生参考利用。①关 键 词:Matlab;材料力学;电算法中图分类号:O316 文献标识码:AComputatorMethodsforMechanicsofMaterialswithMatlabZHOUBo1,LIXi_bin2(1.CollegeofCivilEng.,HarbinEngineeringUniversity,Harbin150001,China;2.CollegeofShipbuildingEng.,HarbinEngineeringUniversity,Harbin150001,China)Abstract:Thepapergavethecomputatormethodsforsomeproblemsofmechanicsofmaterialsandcompiledsomecommonlyusedprogramsforengineersandtechniciansandstudentsandteachersforreferenceanduse.Keywords:matlab;materialsmechanics;computatormethods0 引 言材料力学作为一门与工程设计和计算有关的技术科学,其中很大一部分内容可以采用计算机分析,但是应用科学计算常用的高级算法语言,如Fortran、Basic等进行编程计算,受这些语言特性的局限,程序实现过程往往过于烦琐,且很难实现计算结果的可视化。近些年,出现了科学计算语言,也称为数学软件。因其高效、可视化和推理能力等特点,在科学计算中,正迅速取代Fortran、Basic。目前在工程界流行最广的科学计算语言是Matlab。本文应用Matlab语言对材料力学中的某些问题,提出了计算机的分析方法,并编制了某些常用程序,可供工程技术人员参考应用。1 复杂载荷作用下梁内弯矩的计算1.1 基本方法和模型的建立在小变形条件下,根据力的独立作用原理,无论载荷多么复杂,都可以将其分解为若干简单载荷,先分别计算出各简单载荷作用下梁内的弯矩,图1 复杂载荷作用下的简支梁然后应用叠加法得到复杂载荷下梁内的弯矩。如图1所示为受任意载荷的简支梁。在集中力偶、集中力和分布载荷单独作用下的弯矩方程分别为MM(x)=RMAx+M(x-a)0+RMA=-ML(1)MP(x)=RPAx-P(x-b)1+RPA=-L-bLP(2)Mq(x)=RqAx-12q(x-c)2+①收稿日期:2002-01-05作者简介:周博(1972-),男,哈尔滨工程大学建筑工程学院讲师,主要研究方向:计算力学。第29卷第5期 应 用 科 技 Vol.29,№.52002年5月 Applied Science and Technology May.,2002RqA=-L-0.5(c+d)Lq(d-c)(3)则在集中力偶M、集中力P和分布载荷q共同作用下的弯矩方程为M(x)=MM(x)+MP(x)+Mq(x)(4) 以上各式中应用了跳跃函数,其意义如下y=(x-xm)n+=0(x≤xm)(x-xm)n(x>xm)1.2 计算机分析的实现过程根据上面介绍的计算模型可应用Matlab编制如下的计算程序clear;L=input(′L(m)=′);M=input(′M(KNm)=′);a=input(′a(m)=′);P=input(′P(KNm)=′);b=input(′b(m)=′);q=input(′q(KN/m)=′);c=input(′c(m)=′);d=input(′d(m)=′);nd=3000;nf=nd+1;x=linspace(0,L,nf);dx=L/nd;%*****************RMA=-M/L;n1=a/dx+1;MM1=RMA*x(1:n1);MM2=RMA*x(n1+1:nf)+M;MM=[MM1,MM2];%******************n1=b/dx+1;bb=L-b;RPA=bb/L*P;MP1=RPA*x(1:n1);MP2=RPA*x(n1+1:nf)-P*(x(n1+1:nf)-b);MP=[MP1,MP2];%******************n1=c/dx+1;n2=d/dx+1;RqA=(L-0.5*(c+d))/L*q*(d-c);Mq1=RqA*x(1:n1);Mq2=RqA*x(n1+1:n2)-0.5*q*(x(n1+1:n2)-c). 2;Mq3=RqA*x(n2+1:nf)-0.5*q*(x(n2+1:nf)-c). 2+0.5*q*(x(n2+1:nf)-d). 2;Mq=[Mq1,Mq2,Mq3];%*****************M=MM+MP+Mq;subplot(2,1,1);Mmax=max(M),Mmin=min(M)plot(x,M),title('复杂载荷作用下的弯矩图')grid当L=3m、M=15kNm、q=30kN/m、a=0.5m、b=1m、c=1.5m、d=2.5m时,运行程序时,得到如图2所示的弯矩图,最大和最小弯矩分别为Mmax=33.333kN、Mmin=0。图2 弯矩图2 拉弯组合变形构件的截面设计如图3所示结构,立柱AB为一拉弯组合杆件。已知L、外力P和许用正应力[σ],设计其圆截面直径d.图3 拉弯组合构件根据强度条件,该问题最终归结为求解一元三次方程,其力学模型如下[σ]π32d3-P8d-PL≥0(5) 根据以上的力学模型可应用Matlab编制如下的计算程序。当P=2kN、L=0.35m、[σ]=200MPa运行程序时,得到d=0.0330m。·38· 应 用 科 技 第29卷3 复杂应力状态的分析构件内某点的应力状态如图4所示,求其任一斜截面上的正应力和剪应力。图4 平面应力状态该问题的理论解为σa=σx+σy2+σx-σy2cos2a-τxysin2aτa=σx-σy2sin2a+τxycos2a(6) 根据理论解可编制如下的计算程序Ax=input(′请输入x方向的正应力′);Ay=input(′请输入y方向的正应力′);Txy=input(′请输入剪应力′);af=linspace(0,pi,37);a1=(Ax+Ay)/2;a2=(Ax-Ay)/2;a=a1+a2*cos(2*af)- Txy*sin(2*af);t=a2*sin(2*af)+Txy*cos(2*af);plot(a,t,Ax,Txy,′*′);line([Ax,a1],[Txy,0]);xlabel(′正应力′,′FontSize′,15)ylabel(′剪应力′,′FontSize′,15)axisequal;holdon;plot(a1,0,′x′);Amax=max(a),Amin=min(a),Tmax=max(t),h=1;whileh=0 yn=input(′是(1)否(0)求任一截面上的应力′) ifyn==0 return endaf=input(′请输入截面的角度′)、a=a1+a2*cos(2*af)-Txy*sin(2*af)t=a2*sin(2*af)+Txy*cos(2*af)plot(a,t,′or′)endholdoff当σx=30,σy=40,τxy=20,应用程序求得Amax=55.564,Amin=14.435,Tmax=20.564。和应力圆如图5所示。如计算任一截面上的正应力按以下提示输入数据是(1)否(0)求任一截面上的应力1。请输入截面的角度pi/6。得到与x轴夹角为斜截面上的正应力和剪应力a=15.179,t=5.669是(1)否(0)求任一截面上的应力0并在应力圆上标出进一步进行直观处理。得到的应力圆如图5所示。图5 应力圆4 结 论本文应用科学计算语言Matlab,对材料力学的某些问题提出了电算法,并编制了一些通用程序,可供工程技术人员和高校师生参考利用。当然材料力学中还有很多问题可以采用电算法,仿照上述编程思想应用Matlab是不难实现的,篇幅所限本文不能逐一详细介绍。参 考 文 献[1] 刘洪文.材料力学[M].北京:高等教育出版社,1985.[2] 铁摩辛柯S,胡人礼.材料力学[M].北京:科学出版社,1978.[3] 王沫然.MATLAB5.x与科学计算[M].北京:清华大学出版社,2000.·39·第5期 周 博,等:基于Matlab的材料力学电算法