您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > MATLAB在机械优化设计中的应用
MATLAB在机械优化设计中的应用刘玉美,刘昆磊(平顶山工业职业技术学院,河南平顶山467000)摘要:MATLAB是目前国际上最流行的科学与工程计算的软件工具,它具有强大的数值分析、矩阵运算、信号处理、图形显示、模拟仿真和最优化设计等功能。本文用机械设计中的几个常见的问题为例,来介绍MATLA的几点应用。关键词:MATLAB;数表公式化;机械优化设计引言MATLAB是MathWorks公司推出的一套高效率的数值计算和可视化软件,它一面世,就以强大的数值分析、矩阵运算、信号处理、图形显示、动态系统仿真和最优化设计等功能及交互性强的特点,受到了广大工程技术人员的青睐,并风靡于欧美高等院校。。本文用机械设计中的几个常见的问题为例,来介绍MATLA的几点应用。1.数表线图公式化在机械设计手册中有大量的数表和线图,它们无法直接编程输入计算机。其实,这些数表或线图主要有两个来源:一是来源于某些理论公式,此时只需找到原始公式就可以了;二是来源于实验或统计的离散数据,这需要我们运用数学的方法将这些数表或线图公式化,而后再按这些公式编程输入计算机,MATLAB就可以完成这一工作。1.1.数表公式化—曲线拟合法数表公式化就是运用数学的方法找出数表中所列的离散数据之间的函数关系,通常采用曲线拟合法。试举一例:表1是滚动轴承选择计算时常用的温度系数ft表,试用MATLAB求出滚动轴承工作温度-温度系数的拟合曲线及关系式。在MATLAB命令窗口输入:c=[125150175200225250300350];ft=[0.950.900.850.800.750.700.600.50];f=polyfit(c,ft,1)%调用曲线拟合函数t=120:1:360;u=polyval(f,t);plot(t,u,c,ft,'o');%调用绘图函数运行结果如下:f=-0.00201.2000即:ft=-0.002t+1.2000(2-1)图中曲线是用MATLAB的绘图函数自动绘出的,离散点是表1中的数值。1.2线图公式化关于线图的公式化,通常的步骤是:首先从给定的线图上读取一些离散数据,作出数表;然后再根据设计精度的要求,采用前面所述的“曲线拟合法”将线图公式化。例如:如图2所示,是进行轴的疲劳强度设计时所使用的线图:轴上有通孔时,在受剪工作状态下的应力集中系数线图,试把它公式化。首先,在所给的图2的线图上读取一些离散数据,做出数表,记录如表2所示。然后,在MATLAB命令窗口输入:dD=0:0.05:0.30;at=[2.01.781.661.571.51.461.42];A=polyfit(dD,at,3)运行结果如下:A=-22.222216.3810-4.83971.9957即得图2所示线图的拟合公式为:=-22.22223)(Dd+16.38102)(Dd-4.8397)(Dd+1.9957(2—2)有了这些公式,设计中就可以把它们编入程序,利用公式(2—1)可以求任意温度对应的温度系数,而无需再去查表输值;利用公式(2—2)可以求任意(d/D)值所对应的应力集中系数,而无需再去查图输值。例如:要求d/D=022时的=?只需在MATLAB命令窗口输入:at=polyval(A,0.22)%at为前面所求的系数矩阵运行结果如下:at=1.48722、机械优化设计应用实例机械优化设计把数学规划理论与数值方法应用于设计中,用计算机从大量可行方案中找出最优化设计方案,从而大大提高设计质量和设计效率。MATLAB具有解决线表1:滚动轴承温度系数ft轴承工作温度温度系数(℃)ft1250.951500.901750.852000.802250.752500.703000.603500.50表2:轴上横向孔处应力集中系数孔径/轴径应力集中系数d/Dατ0.002.000.051.780.101.660.151.570.201.500.251.460.301.42性规划和非线性规划、约束优化和无约束优化问题的内部函数,因而可以完成这一功能。现举一例:螺栓组联结的优化设计如图4所示的压力容器螺栓组联接中,已知D1=400mm,D2=250mm,缸内工作压力为p=1.5MPa,螺栓材料为35号钢,σs=320Mpa,安全系数S=3,取残余预紧力Q’p=1.6F,采用铜皮石棉密封垫片。现从安全、可靠、经济的角度来选择螺栓的个数n和螺栓的直径d。2.1设计问题分析若从经济性考虑,螺栓数量尽量少些、尺寸小些,但这会使降低联结的强度和密封性,不能保证安全可靠的工作;若从安全、可靠度考虑,螺栓数量应多一些、尺寸大一些为好,显然经济性差,甚至造成安装扳手空间过小,操作困难。为此,该问题的设计思想是:在追求螺栓组联结经济成本最小化的同时,还要保证联结工作安全、可靠。2.2设计变量目标函数约束条件2.2.1设计变量选取螺栓的个数n和直径d(mm)为设计变量:T21T]x[x]d[nX2.2.2目标函数追求螺栓组联结经济成本Cn最小为目标。而当螺栓的长度、材料和加工条件一定时,螺栓的总成本与nd值成正比,所以本问题优化设计的目标函数为minF(X)=Cn=nd=x1x2①强度约束条件为了保证安全可靠地工作,螺栓组联结必须满足强度条件][32.521dQca;其中MpaSs106.3320][;nnpnDFFFFQQp6093742505.16.246.26.26.1222'N;对于粗牙普通螺纹:由文献[3]推荐,小径d1=0.85d所以,强度约束条件为:0106146192106146192106105624)(2212211xxndndXg②密封约束条件为了保证密封安全,螺栓间距应小于10d,所以,密封约束条件为:01040010)(2112xxdnDXg③安装扳手空间约束条件为了保证足够的扳手空间,螺栓间距应大于5d,所以,安装约束条件为:040055)(1213xxnDdXg④边界约束条件0)(14xXg;0)(25xXg1.3.3建立数学模型综上所述,本问题的数学模型可表达为:设计变量:T21]x[xX目标函数:minF(X)=x1x2约束条件:s.t.0)(Xgi(i=1,2,3,4,5,)现运用MATLAB的优化函数进行求解:先编写M文件function[c,ceq]=mynas(x)c(1)=146192/(x(1)*x(2)^2)-106;%非线性不等式约束c(2)=400*pi/x(1)-10*x(2);c(3)=-400*pi/x(1)+5*x(2);ceq=[];%非线性等式约束在MATLAB命令窗口输入:fun='x(1)*x(2)';%目标函数x0=[4,6];%设计变量初始值A=[-1,0;0,-1];%线性不等式约束矩阵b=[0;0];Aeq=[];%线性等式约束矩阵beq=[];lb=[];%边界约束矩阵ub=[];[x,fval]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,@mynlsub)%调用有约束优化函数运行结果如下:x=11.449910.9751fval=125.6637所以,该问题优化结果为:n=11.4499,d=10.9751,目标函数最小值:F(X)=125.6637。根据实际问题的意义取整、标准化:n=12,d=12。由此例可以看出,与其它编程语言相比,MATLAB语言可以简化编程。图5是调用MATLAB绘图函数自动对上例绘制的数学模型要素图(标注数字的曲线为目标函数的等值线),为此在MATLAB命令窗口输入:x1=0.1:20;y1=146192./(106.*x1.^2);y2=400.*pi./(10.*x1);y3=400.*pi./(5.*x1);plot(y1,x1,y2,x1,y3,x1,x(1),x(2),'o')y4=0.1:0.1:20;[y4,x1]=meshgrid(y4,x1);Q=y4.*x1;holdon;[c,h]=contour(y4,x1,Q);holdon;clabel(c,h);参考文献[1]濮良贵.机械零件[M].北京:高等教育出版社,1982.[4]蒲俊,吉家锋.MATLAB数学手册[M].上海:浦东电子出版社,2002.附:作者单位:平顶山工业职业技术学院基础部刘玉美联系方式:0375-3903898(宅),0375-7240356(办);手机13569586927通讯地址:河南省平顶山市水库路3号院Email:lym820@sohu.com
本文标题:MATLAB在机械优化设计中的应用
链接地址:https://www.777doc.com/doc-115452 .html