机械优化设计作业

合集下载

合工大机械优化设计-作业2

合工大机械优化设计-作业2

1.线性规划实例—生产规划(课本P95):步骤一:建立模型:每天生产甲乙两种产品分别为X1和X2,数学模型为:目标函数:minf(X1,X2)=60*X1+120*X2约束条件:9*X1+4*X2<=3603*X1+4*X2<=3004*X1+5*X2<=200-X1<=0-X2<=0用EXCEL建立模型如下:步骤二:规划求解参数确定:步骤三:选项参数确定:步骤四:求解:由上面求解过程可知:X1=20,X2=24时,可使目标函数值最小,即f(X1,X2)=4080. 2.工程下料问题规划求解:由题意可列出下列方案:步骤一:设使用8种方案的次数分别为X1,X2,X3,X4,X5,X6,X7和X8,且均为正整数,建立数学模型如下:目标函数:f(X)=(5*X1+6*X2+23*X3+5*X4+20*X5+6*X6+23*X7+5*X8)/((X1+X2+X3+X4+X5+X6+X7+X8)*180)约束条件:gX1=2*X1+X2+X3+X4=100gX1=2*X2+X3 +3*X5+2*X6+X7gX1=X1+X3+3*X4 +2*X6+3*X7+5*X8用EXCEL建立模型如下:步骤二:规划求解参数确定:步骤三:选项参数确定:步骤四:求解:由上面求解过程可知:X1=23,X2=50,X3=0,X4=4,X5=0,X6=0,X7=0和X8=3时,可使目标函数值最小,即f(X)=0.045139.3.自选规划求解题目(来源:百度):某厂生产A B C三种产品,净利润分别为90元,75元,50元;使用的机时数分别为3h,手工时数分别为4h,3h,2h,由于数量和品种受到制约,机工最多为400h,手工为280h,数量最多不能超过50件,C至少要生产32件。

求:如何安排A B C的数量以获得最大利润?解:建立数学模型:A、B、C三种产品的数量分别为X1,X2和X3,其利润为f(X):目标函数:maxf(X)=90*X1+75*X2+50*X3 约束条件:3*X1+4*X2+5*X3<=4004*X1+3*X2+2*X3<=280X1<=50X2>=32用EXCEL建立模型如下:步骤一:建立模型:步骤二:规划求解参数确定:步骤三:选项参数确定:步骤四:求解:由上面求解过程可知:X1=0,X2=93,X3=0时,可使目标函数值最大,即f(X)=11160.4.FORTRAN语言解读:C 连杆机构问题函数子程序C 目标函数==============SUBROUTINE FFX(N,X,FX) ;(目标函数定义)C ======================DIMENSION X(N)COMMON /ONE/ I1,I2,I3,I4,NFX,I6NFX=NFX+1P0=ACOS(((1.0+X(1))**2-X(2)**2+25.0)/(10.0*(1.0+X(1))));(输入角初始值)Q0=ACOS(((1.0+X(1))**2-X(2)**2-25.0)/(10.0*X(2)));(输出角初始值)T=90.0*3.1415926/(180.0*30.0) ;(将输入角30等分后每一份值)FX=0.0 ;(目标函数初始值)DO 10 K=0,30 ;(循环程序入口,循环次数30次)PI=P0+K*T ;(计算每一次循环后的输入角)QE=Q0+2.0*(PI-P0)**2/(3.0*3.1415926);(计算每一次循环后的理想输出角)D=SQRT(26.0-10.0*COS(PI)) ;(与L1和L4相邻的连杆四边形对角线长度r)AL=ACOS((D*D+X(2)*X(2)-X(1)*X(1))/(2.0*D*X(2)));(L3和r的夹角)BT=ACOS((D*D+24.0)/(10.0*D)) ;(L4和r的夹角)IF (PI.GE.0.0 .AND. PI.LT.3.1415926) THEN;(判断输入角是否在0到pi之间,计算实际输出角)QI=3.1415926-AL-BTELSEQI=3.1415926-AL+BTENDIFIF(K.NE.0 .OR. k.NE.30) THEN ;(判断循环次数是否在30次内,计算目标函数)FX=FX+(QI-QE)**2*T;ELSEFX=FX+(QI-QE)**2*T/2.0ENDIF10 CONTINUE ;(继续循环)END ;(程序段结束)C 不等约束=================SUBROUTINE GGX(N,KG,X,GX) ;(约束条件函数子程序)C =========================DIMENSION X(N),GX(KG) ;(定义GX<=0的约束条件函数)GX(1)=-X(1) ;(杆长L2>=0)GX(2)=-X(2) ;(杆长L1>=0)GX(3)=-(X(1)+X(2))+6.0 ;(最短杆L1和杆L4之和小于另两杆之和)GX(4)=-(X(2)+4.0)+X(1) ;(最短L1和杆L2之和小于另两杆之和条件)GX(5)=-(4.0+X(1))+X(2) ;(最短L1和杆L3之和小于另两杆之和条件)GX(6)=-(1.4142*X(1)*X(2)-X(1)**2-X(2)**2)-16.0 ;(传动角大于45度)GX(7)=-(X(1)**2+X(2)**2+1.4142*X(1)*X(2))+36.0;(传动角小于135度)ENDC 等式约束=================SUBROUTINE HHX(N,KH,X,HX) ;(约束条件函数子程序)C =========================DIMENSION X(N),HX(KH) ;(定义HX=0的约束条件函数)X(1)=X(1)END5.学习心得:通过完成这次老师布置的课后作业,我对《机械优化设计》这门课有了新的更加深刻的认识。

《机械优化设计》大作业

《机械优化设计》大作业
二、研究报告要求
1、报告命名规则:学号-姓名-《机械优化设计》课程实践报告.doc
2、报告提交邮址:weirongw@(收到回复,可视为提交成功)。
追 求:问题的工程性,格式的完美性,报告的完整性。
不 追 求:问题的复杂性,方法的惟一性。
评判准则:独一是好,先交为好;切勿拷贝。
printf(“区间为(%lf,%lf),精度为%lf\n”,a,b,size);
printf(“序号\t a1\t\t a2\t\t f(a1)\t\t f(a2)\n”);
for(i=0;i<64;i++)
printf(“-“);
printf(“\n”);
i=0;
while((b-a)>size)/*****用精度控制循环次数*****/
如果要计算y=cosx;黄金分割法,则需要将图所示的f脚本中的函数写成如②所示
fun函数表示对matlab的主程序语言。
函数NO.2运算结果:
函数NO.1运算结果:
(2)采用C语言进行编程
#include<stdio.h>
#defineK 0.618
doublef(double);/*****函数值计算函数声明*****/
c1=b-r*(b-a);c2=a+r*(b-a);
y1=f(c1);y2=f(c2);
while (abs((b-a)/b)>e)&&(abs((y2-y1)/y2)>e)
if y1>=y2
a=c1;c1=c2;y1=y2;
c2=a+r*(b-a);y2=f(c2);
else
b=c2;c2=c1;y2=y1;

《机械优化设计》大作业

《机械优化设计》大作业
printf(“序号\t a1\t\t a2\t\t f(a1)\t\t f(a2)\n”);
for(i=0;i<64;i++)
printf(“-“);
printf(“\n”);
i=0;
while((b-a)>size)/*****用精度控制循环次数*****/
{
i++;
a1=b-K*(b-a);/*****按0.618法插入两点*****/
a2=a+K*(b-a);
printf(“%2d:\t%f\ta%f\t%f\t%f\n”,I,a1,a2,f(a1),f(a2));
/*****输出每次计算后a1,a2,f(a1),f(a2)的值*****/
if(f(a1)>=f(a2))
a=a1;
else
b=a2;
}
printf(“所求极小值点为:x=%lf\t极小值f(x)=%f\n”,a,f(b));
(2)选择适当的优化方法,简述方法原理,进行优化计算;
(3)进行结果分析,并加以说明。
4、写出课程实践心得体会,附列程序文本。
5、为响应学校2014年度教学工作会议的改革要求,探索新的课程考核评价方法,特探索性设立一开放式考核项目,占总成绩的5%。
试用您自己认为合适的方式(书面)表达您在本门课程学习方面的努力、进步与收获。(考评将重点关注您的独创性、简洁性与可验证性)。
end
end
x=0.5*(a+b);
end
对f函数的确立
10function y=f(x)
y=(x-2)^2+3;
end
11function y=f(x)
y=cosx

机械优化设计作业

机械优化设计作业

一、题目现要制造一个容积为 立方米的无盖圆筒水箱,问这个水箱底面半径、高各为多少米时,用料最省?二、分析变量:半径r,高度h目标函数:约束条件:采用方法模型:拉格朗日乘子法三、框图四、程序设计(maple)> (重置maple)> (目标函数)> (作拉格朗日函数)>(条件极值存在的一阶条件)>> (解方程组)(舍去虚数根)> (由于问题必存在最小值,因此,无需考虑其二阶条件便知其该极小值也是最小值)> (带回目标函数)>参考文献:孙靖民、梁迎春. 机械优化设计机械工业出版社,2006.12心得体会在学习《机械优化设计》过程中,我们受到了巨大的启迪:而在设计的过程中,我们也受益匪浅。

在学习上,我们认识到,设计出来的机械,并非成品,只有优化之后的机械才可以算是合格,而非完美,因为机械优化也只能让机械趋近,最优而已。

在生活上,我们对待做事的观点,有了一个新的想法——怎么去进行优化,取得最优途径,最省时省事。

而在做人上,我们学到了,做人也应该尽可能完美。

这应该也是人性之一吧。

但追求完美的路,并不是一帆风顺的。

就比如这次的优化设计作业。

在设计过程中,我们磕磕绊绊,一开始,连个题目都无从下手。

后来,也只能就地取材,定了一个类似,初中数学应用题的题目。

有了题目之后,一切就顺风顺水了。

翻翻书,开网页,谷歌一下,百度知道。

无数次实践证明:其实大学的机动能力是很强的。

虽然以前没接触过maple,但在同学的指导下,也有了一定的了解。

非要说句鼓励自己的什么的话,那就是皇天不负苦心人。

意思就是我的机械优化设计作业做好了。

这就是最大的感受了。

PS在设计过程中,我不禁想到一个想说,“你找到你的最优解了么”,对另一半的说法很多,“最优解”这应该是一个相当书呆子的、缺乏浪费的人说的吧。

你找到你的最优解了吗?宁波工程学院,我的选择。

⊙﹏⊙b汗。

机械优化设计作业

机械优化设计作业

合肥工业大学《机械优化设计》课程实践研究报告班级:机设12-6班学号: 2012216281姓名:丁雷鸣授课老师:王卫荣日期: 2015年 11月 10 日目录一、 =0.618的证明 (1)二、一维搜索程序作业 (1)(1)例1程序文本 (1)(2)例1输出结果截图 (2)(1)例2程序文本 (2)(2)例2输出结果截图 (3)三、单位矩阵程序作业 (4)(1)程序文本 (4)(2)输出结果截图 (4)四、连杆机构问题 (6)(1)目标函数 (6)(2)约束条件 (7)(3)选择方法 (7)(4)程序文本 (7)(5)数据输入截图 (8)(6)输出结果 (9)五、自行选择小型机械设计问题或其他工程优化问题 (10)(1)设计变量 (10)(2)目标函数 (10)(3)约束条件 (10)(4)程序文本 (10)(5)数据输入截图 (11)(6)输出数据 (11)六、机械优化设计课程实践心得体会 (13)一、λ=0.618的证明在实际计算中,最常用的一维搜索方法是黄金分割法。

黄金分割法是建立在区间消去法原理基础上的试探方法,即在搜索区间[]b a ,内适当插入两点α1,α2。

并且计算其函数值。

黄金分割法要求插入点α1,α2的位置相对于区间[]b a ,两端点具有对称性,即)(1a b b --=λα、)(2a b a -+=λα、其中λ为待定常数。

除对称要求外,黄金分割法还要求保留下来的区间内再再插入一点,所形成的区间新三段与原来的区间三段具有相同的比例分布。

设原区间[]b a ,长度为1,保留下来的区间[]α2,a 长度为λ,区间缩短率为λ。

为了保持想相同的比例分布,新插入点α3应该在)1(λλ-位置上,α1在原区间的1-λ位置应该相当于在保留区间的λ2位置。

故有λλ21=-012=-+λλ取方程正数解,得618.0215≈-=λ 二、一维搜索程序作业例1、a=0,b=π2,f(x)=cosx (1)例1程序文本#include<stdio.h> include<math.h> void main (){float A,B,C=0.618,aa[3],y[3],D; scanf(“%f,%f,%f ”,&A,&B,&D): aa[1]=B-C*(B-A); aa[2]=A+C*(B-A); y[1]=cos(aa[1]); y[2]=cos(aa[2]); do{if (y[1]>y[2]){A=aa[1];aa[1]=aa[2];y[1]=y[2]; aa[2]=A+C*(B-A); }Else{B=aa[2];aa[2]=aa[1];y[2]=y[1];aa[1]=B-C*(B-A);y[1]=cos(aa[1]);}}While(fabs(B-A)/B>D);aa[0]=(A+B)/2;y[0]=cos(aa[0]);printf(“A=%f\n”,aa[0]);printf(“y=%f\n”,y[0]);}(2)例1输出结果截图:输入a=0,b=2 ,精度d=0.000001,输出极小值点和函数极小值如下:例2、a=0,b=10,f(x)=(x-2)2+3(3)例2、程序文本#include<stdio.h>#include<math.h>void main(){ float a,b,c=0.618,aa[3],y[3],d;scanf("%f,%f,%f",&a,&b,&d);aa[1]=b-c*(b-a);aa[2]=a+c*(b-a);y[1]=(aa[1]-2)*(aa[1]-2)+3;y[2]=(aa[2]-2)*(aa[2]-2)+3;do{ if(y[1]>y[2]){ a=aa[1];aa[1]=aa[2];y[1]=y[2];aa[2]=a+c*(b-a);y[2]=(aa[2]-2)*(aa[2]-2)+3;}else{ b=aa[2];aa[2]=aa[1];y[2]=y[1];aa[1]=b-c*(b-a);y[1]=(aa[1]-2)*(aa[1]-2)+3;}}while(fabs((b-a)/b)>d);aa[0]=(a+b)/2;y[0]=(aa[0]-2)*(aa[0]-2)+3;printf("a*=%f\n",aa[0]);printf("y=%f\n",y[0]);}(4)例2输出结果截图:输入a=0,b=10,精度d=0.000001,输入极小值点和函数极小值如下:三、单位矩阵程序作业作业:编写生成单位矩阵的程序。

昆明理工大学机械优化设计作业

昆明理工大学机械优化设计作业

1. 二力杆的受力分析钢管所受的压力:F1=压杆失稳的临界力:F e =22L EI π其中:I 为钢管截面惯性矩:I=)(822D T A + 其中:A 为钢管截面面积:A=TD π钢管所受的压应力: σ=钢管的临界应力: = =有题目中给出数据:2F=300000N 即 F=150000N2B=1520mm 即 B=760mm T=2.5mm3/8300m kg =ρMpa s 700=σ E=2.1211/10m N ⨯解:1.建立数学模型 设计变量:⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡=H D x x x 21目标函数:221422577600101.2252)(x x HBD T x f +⨯=+=πρ 约束条件:1)圆管杆件中的压应力σ应小于或等于 ,即y TDHH B F σπσ≤+=22于是得2122157760019098.59)(x x x x g +=2)圆管杆件中的压应力σ应小于或等于压杆稳定的临界应力 ,由欧拉公式得钢管的压杆温度应力222152222225776006.25102.6)8()(x x H B T D E AL EIC ++⨯=++==ππσ2式中 A ――圆管的截面积;L ――圆管的长度。

于是得0)6006.25)/(577(102.657760019098.59)(2221521222≤++⨯-+=-=x x x x x x g c σσ3) 设计变量的值不得小于或等于0于是得)(0)(2213≤-=≤-=x x g x x g2.从以上分析可知,该优化设计问题具有2个设计变量,4个约束条件,按优化方法程序的规定编写数学模型的程序如下:/*用来解n 维具有不等式约束优化问题,文件名funct.c*/ /*下列子程序用来构造惩罚函数*/#include “stdio.h ” #include “stdlib.h ” #include “math.h ”const int kkg=4; /*常量,定义约束条件个数*/ double r0; /*全局变量,惩罚因子*/ double f(double x[]) /*目标函数子程序*/ {double ff;ff=1.225e4*x[0]*sqrt(577600.0+x[1]*x[1]); return(ff); }void strain(double x[],double g[]) /*约束条件子程序*/ {g[0]= 19098.59*sqrt(577600.0+x[1]*x[1])/(x[0]*x[1])-700.0; g[1]= 19098.59*sqrt(577600.0+x[1]*x[1)]/(x[0]*x[1]))- 2.6e5*(x[0]*x[0]+6.25)/(577600.0+x[1]*x[1]) ; g[2]= -x[0]; gx(3)=-x[1]; }double objf(double p[]) /*惩罚函数子程序*/ {int i;double ff,sg,*g;g=(double *)malloc(kkg *sizeof(double)); sg=0;strain(p,g);for(i=0;i<kkg;i++) {if(*(g+1)<0) sg=sg+r0/(*(g+i));elsesg=sg+r0*(1e+10);}free(g);ff=f(p)+sg;return(ff);}/*内点惩罚函数主程序,文件名mldfhs.c*/#include ”powell.c”/*调用powell法函数*/ void main(){int i;double p[]={72,700};double fom,fxo,c,x[2];c=0.4;ro=1;fom=100;do{fxo=powell(p,0.4,0.000001,0.000001,2,x);if(fabs(fom-fxo)>0.000001){fom=fxo;r0=c*r0;for(i=0;i<2;i++)*(p+i)=x[i];}else{printf(“输出最优点及其目标函数值:\n”); printf(“x[0]=%f,x[1]=%f,ff=%f \n”,x[0],x[1],fxo ); return;}}while(1);}。

机械优化设计作业

机械优化设计作业

机械优化设计作业在MATLAB下编程如下:在MATLAB下编程如下:先编写M文件,建立目标函数function f=zuoye2(x)f=-x(1)*x(2)*x(3);主程序如下:>> x0=[1;1;1];A=[-1,-2 ,-2;1,2,2];b=[0;72];lb=zeros(3,1);[x,fval,exitflag,output]=fmincon('zuoye2',x0,A,b,[],[],lb)Warning: Trust-region-reflective algorithm does not solve this type of problem, using active-setalgorithm. You could also try the interior-point or sqp algorithms: set the Algorithm option to'interior-point' or 'sqp' and rerun. For more help, see Choosing the Algorithm in the documentation.> In fmincon at 472Local minimum possible. Constraints satisfied.fmincon stopped because the predicted change in the objective functionis less than the default value of the function tolerance and constraintswere satisfied to within the default value of the constraint tolerance.<stopping criteria details>Active inequalities (to within options.TolCon = 1e-006):lower upper ineqlin ineqnonlin2x =23.999712.000112.0001fval =-3.4560e+003exitflag =5output =iterations: 9funcCount: 42lssteplength: 1stepsize: 3.3708e-004algorithm: 'medium-scale: SQP, Quasi-Newton, line-search' firstorderopt: 0.0025constrviolation: 0message: [1x777 char]由题,先选取设计变量。

机械优化设计研究生大作业

机械优化设计研究生大作业

第一题1。

1 题目求函数f(X)=x14—2x12x2—2x1x2+3x12+4x22+4.5x1—4x2+5的极小值,初始点为X(0)=[—2,2]T,误差ε不大于0.001.注:此问题为无约束非线性规划问题的求解。

1。

2 建立数学模型Find x1 , x2min f(X)=x14-2x12x2-2x1x2+3x12+4x22+4。

5x1—4x2+5初始点 X(0)=[-2,2]T, ε≤0。

0011.3 运行结果通过牛顿法迭代5次可得出结果,当x1=—0。

65083910731569,x2=0.40135662524523时,目标函数最优值fmin=2。

97849714338108,且满足0.01ξ≤.1.4 迭代曲线1.5 检验结果用Matlab自带优化程序检验程序为:〉〉 x0=[-2,2];[x,fval]=fminsearch(’x(1)^4—5*x(1)^2*x(2)—2*x(1)*x(2)+4*x (1)^2+6*x(2)^2+4.5*x(1)-4*x(2)+5’,x0)x =—0。

65086658687466 0.40137142333985fval =2.97849714628600经检验用牛顿法进行迭代优化结果是正确的,优化结果达到精度要求,ε≤0.001.1。

6 讨论(1)由以上迭代曲线可知,牛顿法迭代收敛速度很快,本优化经过迭代3次后目标函数值趋于平稳。

也可采用黄金分割法,变尺度法等其他方法优化.由于本题比较简单,不必采用变尺度法来优化。

(2)采用Matlab编程解决了求导和计算海森阵比较复杂的难题,编程简单方便。

1。

7 Matlab源程序function ZY32format longsyms x1 x2 %定义符号变量x1,x2f=x1^4—2*x1^2*x2—5*x1*x2+6*x1^2+7*x2^2+4。

5*x1-4*x2+5 %定义函数fdf=[diff(f,x1);diff(f,x2)]%diff(f,x1)用于对函数f中变量x1求偏导%diff(f,x2)用于对函数f中变量x2求偏导f1=diff(f,x1,2); %diff(f,x1,2)用于对函数f中变量x1求而二次偏导f2=diff(diff(f,x1),x2);%diff(diff(f,x1),x2)用于对函数f中变量下x1,x2求偏导f3=diff(diff(f,x2),x1);f4=diff(f,x2,2); %diff(f,x2,2)用于对函数f中变量x2求而二次偏导ddf=[f1,f2;f3,f4];%求函数f的海森阵x1=—2;x2=2;td=eval(df); %计算梯度初值hs=eval(ddf); %计算海森阵初值%eval命令用于将符号变量转化为数值变量i=0;eps=0.1while eps〉0.01;i=i+1;eps=sqrt(td(1)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

机械优化设计作业—工]+ 2 兀2 —4 * 2x}+3X2< 121 > min f= -4x1-x^x{ -x2 <3x^x2>0在MATLAB下编程如下:* m 肝w|厂1 iLb h鼻「* j-f C L Q rrat VM电+ g ge? thi p irie-f v«irti»mu :»4 l-L 212 3.1 -I]>> b= K. I2;3j ;»= L>:>> [-Kj fv3e 11 £laifj cmtptrl 1 - Lirt t Pg: Cfj Aj bj []>【1, Lbi Opt iviii «Lori 1 a ranijn al Q dL3E =4・ 2Q0D1・ 3000f val ■・oonoex it-"fl a.z ―Iou t put =i■卷e-r -al i ons r 5■^1 g a r 11 t l-|JL £*L N E恵Q—NUEd 口!:X nt iiT L.口If pQHEt"c £it er al 1 atri ■; i: 0" ' C^p't Ji H.L £at 1 □ A t wt BLilialt^idca nc 1 rui a 1 at ion E0<iTiterderapl,: 4.5137e-口Dfln J :0 W Jr〕+ 2X2+ 2乂§ < 722“ min f ——x{x2x3在MATLAB下编程如下:先编写M文件,建立目标函数fun cti on f=zuoye2(x)f=-x(1)*x(2)*x(3);主程序如下:>> x0=[1;1;1];A=[-1,-2 ,-2;1,2,2];b=[0;72];lb=zeros(3,1);[x,fval,exitflag,output]=fmincon('zuoye2',x0,A,b,[],[],lb)Warning: Trust-region-reflective algorithm does not solve this type of problem, using active-setalgorithm. You could also try the interior-point or sqp algorithms: set the Algorithm option to'interior-point' or 'sqp' and rerun. For more help, see Choosing the Algorithm in the documentation.> In fmincon at 472Local minimum possible. Constraints satisfied.fmincon stopped because the predicted change in the objective function is less than the default value of the function tolerance and constraints were satisfied to within the default value of the constraint tolerance.<stopping criteria details>Active inequalities (to within options.TolCon = 1e-006):lower upper ineqlin ineqnonlin2x =23.999712.000112.0001fval =-3.4560e+003exitflag =5output =iterations: 9funcCount: 42Issteple ngth: 1stepsize: 3.3708e-004algorithm: 'medium-scale: SQP, Quasi-Newt on, li ne-search' firstorderopt: 0.0025 con strviolati on: 0message: [1x777 char]3、机床主轴是机床中重要零件之一,一般为多支承空心阶梯轴。

为了便于使用材料力学公式进行结构分析,常将阶梯轴简化成以当量直径表示的尊截面轴。

图1所示的为一根简化的机床主轴芬要求以主轴的自重为目标,对该主轴进行优化设计。

已知条件:主轴材料为45#, 内径d^30mm,外力F=15000I\i许用挠度yo^O.OSmm,材料的弹性模量E=2lOGPa t许用应力[o |=180MPao 30(IW 60W DW110,I、d.氐的量纲均为毫米。

E-EI由题,先选取设计变量。

一、设计变量由于材料已经给定,其质量只是内径d、外径D跨距L及外伸端a的函数。

因此设计变量为(1)二、目标函数依据题意,以主轴自身质量最小为设计目标,即- ⑵P为材料密度。

三、约束条件1) 挠度要求-------- ⑶上式中惯性矩,E为主轴弹性模量。

将I、E代入得:------------- ⑷2) 强度要求------- (5)------------- (6)由(5)(6)式可得:------------ (7)3) 边界约束条件(8)四、将物理模型转化为数学模型(9) S.t.诡3")一心°32F X2X2x t > 300x2 > 60x2 < 110x3 > 90< x3 < 150(10)在MATLAB中先建立目标函数M文件fun cti on f=myfun(x) f=6.16225*(x(1)+x(3))*(x (2) 9-900)/1000000;因为约束为非线性,所以同样建立非线性约束M文件fun cti on [c,ceq]=myc on(x)F=15000;y0=0.05;c(1)=9.71*x(3)A2*(x(1)+x(3))/(x (2)A4-30A4)-1;c(2)=32*F*x (2) *x(3)/(3.14*(x (2)八4-30八4)*180)-1;ceq=[];在MATLAB命令窗口给出初始搜索值和线性约束,并调用优化程序:a=[-1/300 0 00 -1/60 00 1/110 00 0 -1/90]; 注:相比较式( 10 )的约束作了一个变形b=[-1;-1;1;-1];x0=[300;100;100];lb=zeros(3,1); [x,fval,exitflag,output]=fmincon(@myfun,x0,a,b,[],[],lb,[],@mycon) Warning: Trust-region-reflective algorithm does not solve this type of problem, using active-setalgorithm. You could also try the interior-point or sqp algorithms: set the Algorithm option to'interior-point' or 'sqp' and rerun. For more help, see Choosing the Algorithm in the documentation.> In fmincon at 472Local minimum found that satisfies the constraints.Optimization completed because the objective function is non-decreasing in feasible directions, to within the default value of the function tolerance, and constraints were satisfied to within the default value of the constraint tolerance.<stopping criteria details>Active inequalities (to within options.TolCon = 1e-006):lower upper ineqlin ineqnonlin1 1300.000074.906990.0000 fval =11.3220exitflag = output =iterations: 7 funcCount: 33 Issteple ngth: 1stepsize: 2.9587e-005algorithm: 'medium-scale: SQP, Quasi-Newt on, li ne-search'firstorderopt: 1.1603e-009 co nstrviolatio n: 1.6105e-012message: [1x788 char]经比较可发现和此前的结果一致。

同上,先建立目标函数M 文件fun cti on f=fun(x) f=(x(1)-3F2+x (2)A 2;再建立非线性约束M 文件fun cti on [c,ceq]=f uncon(x)c(1)=x(1)A2+x (2)-4; ceq=[];在MATLAB 命令窗口给出初始搜索值和线性约束,并调用优化程序:>> x0=[1,1];>> a=[-1 0;0 -1] >> b=[-0.5;0] >> lb=zeros(2,1)>> [x,fval,exitflag,output]=fmincon(@fun,x0,a,b,[],[],lb,[],@funcon) <stopping criteria details>Active inequalities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin 2 2 1 x =2.0000 0 fval = 1.0000 exitflag =4smin f = (x t - 3)2 + xj4 一 jtp _ 兀2 — ° st x 2 > 0旺 一 0.5 > 01 output =iterations: 4 funcCount: 16 lssteplength: 1 stepsize: 7.9012e-005 algorithm: 'medium-scale: SQP, Quasi-Newton, line-search' firstorderopt: 7.5958e-007 constrviolation: 6.2446e-009 message: [1x788 char]。

相关文档
最新文档