您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > MATLAB在实际问题中的分析与应用
MATLAB在实际问题中的分析与应用班级姓名号次目录1.实验目的2.叙述问题3.分析问题4.模型建立及求解4.1塑性区(RirRc)4.2弹性区(coRrR)4.2.1应力分析4.2.2计算流程4.2.3程序编写4.2.4求解结果.4.2.5计算验证4.2.6应力求解4.3应力分布曲线的绘制4.3.1程序编写4.3.2图形输出5.结果分析6.实验总结摘要:Matlab因其强大的功能而在世界范围内得以流行,特别在工程领域的应用甚为广泛。本文从弹性力学中的一个问题出发,先简要叙述并分析了目前厚壁筒弹塑性应力分析中所遇到的问题及其Matlab在其中应用的思考;后建立了厚壁筒弹塑性区的模型,进行了各应力分析,用Matlab中介绍的相关方法求解了弹塑性分界面半径并绘制了各应力关于半径的变化曲线,最后根据模型求解的结果进行了简要的分析。关键词:Matlab弹塑性应力厚壁筒前言自20世纪80年代以来,出现了多种科学计算语言,亦称数学软件,比较流行的有MATLAB、Mathematica、Maple等。因为他们具有功能强、效率高、简单易学等特点,在在许多领域等到广泛应用。MATLAB便是一种影响大、流行广的科学计算语言。MATLAB的语法规则简单,更加贴近人的思维方式。MATLAB是英文MATrixLABoratory(矩阵实验室)的缩写。自1984年由美国MathWorks公司推向市场以来,得到了广泛的应用和发展。在欧美各高等院校MATLAB已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等诸多课程的基本教学工具,成为大学生、硕士生以及博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB已被广泛的应用于研究和解决各种具体的工程问题。近年来,MATLAB在我国也开始流行,应用MATLAB的单位和个人急剧增加。可以预见,MATLAB将在我国科学研究和工程应用中发挥越来越大的作用。Matlab是当前数值计算方面应用地非常广泛的一种计算机软件,特别是在工程应用求解中发挥了重要作用。其所具有的浅显易懂的编程语言、强大的绘图功能、大量的内部函数等都深深地吸引了我认真地去学习它。同时在上《过程装备力学基础》时,其中涉及有很多的问题是超越方程、微积分的问题,难以用普通的线性方法求解,而Matlab在此方面有强大的功能,特别是超越方程的精确求解以及图形的绘制方面。数学当中的绘制函数图象、绘制立体图形的交线(如绘制两个等直径圆柱体的交线)、求多项式的根等问题,这些问题如果依靠我们人工进行操作,则需要很多的时间和精力,当我们掌握了基本原理后,借助于MATLAB进行解决则会大大提高效率和精确度。1.实验目的1结合实际问题展现MATLAB在生活和学习方面的广泛应用2学会利用MATLAB编程并求解实际问题3学会并运用for循环和switch结构,以及MATLAB中已有函数如sum4了解单元数组cell和结构数组struct的作用,学会创建这些数组.2、叙述问题厚壁筒在承受内压载荷的作用下,随着压力的增加,筒壁应力不断增加。厚壁筒在承受逐渐增加压力的过程中,会经历弹性阶段、筒体部分屈服阶段、整体屈服阶段、材料硬化、筒体过度变形、直至爆破失效阶段。而在分析厚壁筒的弹塑性应力分布时,遇到两个问题:【1】弹塑性区分界面的半径的精确确定较为困难,因此半径是一个非线性方程;【2】弹塑性应力的分布曲线绘制难以精确,不能真实反映不同半径处的应力状况。3、分析问题针对厚壁筒弹塑性应力分析时遇到的两个问题,可利用Matlab软件中的相关知识解决。对于弹塑性区分界面半径的确定,可利用方程求根的相关方法,从二分法、开方法、Newton法、Newton下山法以及弦截法中选取精度和收敛速度均较佳的方程求根数值方法进行求解;同时还可以利用Matlab中的Solve函数求其精确解。对于弹塑性应力分布曲线的绘制,可以根据求出的各应力分布的具体方程,用Plot函数进行绘制,同时要注意曲线后期的处理工作,以便更好地从图中得到各应力随半径分布的情况。4、模型建立及求解图2受内压厚壁圆筒图3弹性区图4塑性区为简化分析,假设厚壁圆筒为理想弹塑性体,不考虑材料在塑性变形过程中塑性强化,筒体仅受内压pi作用,筒体的内半径为Ri,外半径为Ro。初始假设厚壁圆筒的内半径为Ri152.5mm,外半径为Ro254mm,内壁所受的压力为piMPa,取其屈服极限为MPa先分析筒体仅受内压Pi作用的情形。当内压pi大于弹性极限压力pe时,圆筒内壁的屈服区向外扩展,筒体沿壁可以分成塑性区和弹性区两个区域,其中内侧为塑性区,外侧为弹性区。假想两区域的交界圆面的半径为Rc,则塑性区的内外半径分别为Ri和Rc,承受的内外压力分别为Pi和Pc,见图4;弹性区的内外半径分别为Rc和Ro,承受内压力为Pc,见图3。4.1塑性区(RirRc)4.2弹性区(coRrR)4.2.1应力分析弹性区内壁面即为弹塑性区交界面,即弹性区内壁面呈塑性状态。由式[7]、[8]、[9]可知在r=Rc有弹性区内壁面处各应力表达式为:4.2.2计算流程其中为下山因子,为精度指标,0x为迭代初值,N为预设迭代次数。01的选择是个逐步探索的过程,从1开始反复将因子的值减半进行计算,一旦单调性条件式[22]成立,则下山成功。在此可取为10^(3)即可达到要求。4.2.3程序编写(1)编写文件名为Mendnewton.m的Matlab文件function[x,k]=Mendnewton(f,x0,emg)[f1,d1]=feval(f,x0);k=1;x(1)=x0;x(2)=x(1)-f1/d1;whileabs(f1)emgu=1;k=k+1;[f1,d1]=feval(f,x(k));x(k+1)=x(k)-u*f1/d1;[f2,d2]=feval(f,x(k+1));whileabs(f2)abs(f1)u=u/2;x(k+1)=x(k)-u*f1/d1;[f2,d2]=feval(f,x(k+1));endend(2)编写文件名为func1.m的函数文件function[f,d]=func1(x)f=(254^2-x^2)/(254^2)+2*log(x/152.5)-0.9067;d1=’(254^2-x^2)/(254^2)+2*log(x/152.5)-0.9067’;d=subs(diff(d1));(3)在命令窗口输入f=@func1;[x,k]=Mendnewton(f,180,0.001)4.2.4求解结果迭代次数kx值1196.05592196.05923196.0594可知当迭代次数为3次时,有196.0594196.05920.00020.001成立,故x的取值已符合要求,迭代成功。4.2.5计算验证运用matlab系统中的求解各类代数方程精确公式解的函数Solve求解此方程的精确解。Solve函数的调用格式为Solve(‘方程或方程组’,未知量)。编写程序如下:symsxsolve('-2*log(x/152.5)+0.9067=(254^2-x^2)/(254^2)',x)执行后屏幕显示:ans=196.060371可以看出由Newton下山法求解所得的值与精确解的差值为:196.0594196.060370.000970.001,可知Newton下山法所求的解的精度已足够高。取196cRmm。4.2.6应力求解利用与塑性区各应力分析相同的方法,可求出弹性区各应力分量表达式:至此弹性区和塑性区各应力的表达式已全部求出。4.3应力分布曲线的绘制从上述的各应力关于半径r的表达式中可以看出,此六个方程皆具有一般的显式方程yfx的形式,可以利用曲线绘制法中的plot函数绘制。plot函数的调用格式为(,,'')plotxy,其中x为曲线上点的横坐标,y为纵坐标,’’中可包含确定曲线颜色、线形、两坐标轴上的比例等参数。4.3.1程序编写x1=152.5:0.1:196;x2=196:0.1:254;y1=750*log(x1)-4110.37;y2=750*log(x1)-3360.37;y3=750*log(x1)-3735.37;y4=223.29-1.44*10.^7./(x2.^2);y5=223.29+1.44*10.^7./(x2.^2);y6=223.29;plot(x1,y1,'r+',x1,y2,'b+',x1,y3,'c+',x2,y4,'r+',x2,y5,'b+',x2,y6,'c+')gridonaxis([0,260,-400,600])xlabel('半径');ylabel('应力');title('厚壁筒弹塑性区应力分布曲线')gtext('轴向应力');gtext('周向应力');gtext('径向应力')boxon说明:gridon表示在图形窗口中画上网格线,以便更清楚分析各量的具体数值。gtext(‘字符串’)表示将字符串放在鼠标所指定的位置。xlabel(‘字符串’)和ylabel(‘字符串’)分别表示在x轴下方中部位置和y轴左边中部位置输出字符串作为标题。Plot括号后的r+,b+,c+分别表示红色,蓝色和青色。4.3.2图形输出在Matlab软件中将图形画好后,在将其导入到Visio软件中进行优化处理后可得此图。图6厚壁筒弹塑性区应力分布图5、.结果分析从应力分析图我们可以得出如下结论:6、实验总结通过用Matlab的相关数值求解方法及曲线绘制函数去系统地解决弹性力学中或者说是工程实际中的一个问题,这是一个理论与实践有机结合的过程,也是一个理论在实践中运用并不断检验的过程,一方面自己通过求解弹性力学中的厚壁筒弹塑性应力问题,加深了对厚壁筒相关知识的了解,特别是利用Matlab软件绘制了各应力关于半径的分布曲线图,自己对厚壁筒的认识也更趋理性;同时,通过对Matlab相关知识的运用,加强了Matlab软件的应用能力,加深了方程求根方法的理解,特别是对Matlab软件编程中的一些细节的把握中有了较大的提高。无疑这次论文的写作过程是一个不断学习、不断提高的过程,如果Matlab的考核只是一次简单的考试,可能我只学会了如何去解题,而对Matlab的理解还只是停留于表面,但是一次真正的实践,通过用Matlab中所学的去解决一个实际问题,这个锻炼无疑是更大的,其意义也更大。对于这次编程任务的完成,我想一方面靠自己的努力,一方面依靠科技的对我们的帮助。同时我也意识到自己对MATLAB还不够了解,今后需要花更多时间在这门课上,以求更好的掌握MATLAB。
本文标题:MATLAB在实际问题中的分析与应用
链接地址:https://www.777doc.com/doc-2881965 .html