- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
机械优化设计的综述机械优化设计的综述
关于MATLAB的机械优化设计综述
摘要:机械优化设计是以数学规划理论为基础,以计算机为工具,一种自动寻优、先进的、现代的设计方法。MATLAB作为一种集计算功能、符号运算功能和图形处理功能于一身的科学计算语言,其中的优化工具箱,可为线性、非线性最小化、非线性最小二乘、二次规划、方程求解、多目标优化等问题提供求解方法。运用MATLAB解决机械设计的优化问题不仅方便实用,且编程简单,效率高。
关键词:机械优化,MATLAB
正文:线性规划在机械设计中应用非常少,主要是因其要求目标函数、约束条件都是线性的,而机械设计问题一般都是非线性的。目前,线性规划在一维下料问题中应用比较多。求解线性规划问题常用的方法有单纯形法、大M法等。在MATLAB中由linprog函数来求解线性规划问题。
二次规划在机械设计中的应用比较少,在 MATLAB中求解二次规划问题可用quadprog函数。
无约束优化有很多种算法,如最速下降法、Newton法、拟Newton法、共轭梯度法、信赖域法等。其中,拟Newton法利用了Newton法的二次收敛性使得可靠性更高,同时这种算法收敛速度也很快,所以在目前应用得相当广泛。而拟Newton法中应用比较多的主要有BFGS算法和DFP变尺度法。在 MATLAB优化工具箱中求解无约束优化问题采用fminbnd函数、fminunc函数和fminsearch函数,其
中默认的算法就是BFGS算法。fminunc函数和fminbnd函数要求目标函数必须连续,而函数fminsearch常用来处理不连续的函数。fminbnd函数可以求解区间[*1,*2]内单变量非线性函数的最小值。
在机械优化设计中大多数问题是有约束优化问题。为了保证设计的机械零件安全可靠,设计时必须确定相应的设计准则,而这些设计准则就成了目标函数的约束条件。这些设计准则包括强度准则、刚度准则、寿命准则、振动稳定性准则和可靠性准则,大多数是非线性的。对于非线性约束优化问题有很多解法,早期都是通过构造惩罚函数将有约束优化转换为无约束优化问题求解,而现在已经被更为有效的基于K-T方程解的方法所取代。在MATLAB优化工具箱中采用序列二 次规划法(SQP)求解约束优化问题,采用的函数为fmincom函数。
对于大量的工程设计方案要评价其优劣,往往需要同时考虑多个目标。如在机械加工中,往往要求机械加工成本最低、生产率最高和刀具寿命最长。显然,这样的问题就属于多目标优化问题。多目标优化问题的求解方法很多,其中一种常用的方法就是将多目标优化问题新构造一个函数,即评价函数,从而将多目标优化问题转化为求评价函数的单目标优化问题。这类方法主要有:主要目标法、线性加权和法、理想点法和极大极小法等。另一种是将多目标优化问题转化为一
系列单目标优化问题来求解,这一类主要有分层序列法。在MATLAB
中常用fminimax函数求解最大最小化问题,用fgoalat-tain函数求解
多目标达到问题。
实例:通过课本上人字架的优化设计例子,参考一些论文,运用MATLAB软件对这个二维非线性优化问题进行求解:
选择设计变量:以人字架高度h和钢管平均直径D作为设计变量;
确定目标函数:使人字架结构的质量m最小,确定目标函数;
确定约束条件:通过强度条件和稳定约束条件建立;
建立数学模型:
用MATLAB进行优化求解:
用MATLAB求解步骤如下:
(1)目标函数分析:
[x,y]=meshgrid(linspace(0,17,19),linspace(0,11,19));
B=76;T=0.25;rou=7.8e-3;
m=2*pi*rou*T*x*sqrt(B^2+y^2);
mesh(x,y,m);
hold on;
xlabel(D(cm));ylabel(h(cm));zlabel(m(kg));
title(目标函数图像分析)
目标函数是人字架的高h和钢管平均直径D 的函数,并且目标函数图像规则。
(2)约束函数分析:
ezplot(((1.5e4*sqrt(76^2+y^2))/(pi*0.25*x*y))-4200,[0,12,0,120])
hold on;
y=0:0.01:120; x=2;
plot(x,y,k-)
hold on
y=0:0.01:120;x=10;
hold on
ezplot(((1.5e4*sqrt(76^2+y^2))/(pi*0.25*x*y))-((pi^2*2.1e6*(0.25^2+x^2))/(8*(76^2+y^2))),[0,12,0,120])
hold on
x=0:0.01:15;y=30;
plot(x,y,k-)
hold on
x=0:0.01:15;y=100;
plo
文档评论(0)