合肥工业大学
《机械优化设计》课程实践
研究报告
班 级: 机设12-6班 学 号: 20XX216281 姓 名: 丁雷鸣 授课老师: 王卫荣 日 期: 20XX年 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的证明
在实际计算中,最常用的一维搜索方法是黄金分割法。黄金分割法是建立在区间消去法原理基础上的试探方法,即在搜索区间a,b内适当插入两点
黄金分割法要求插入点
,12。并且计算其函数值。
,的位置相对于区间a,b两端点具有对称性,即b(ba)、a(ba)、其中为待定常数。
1212除对称要求外,黄金分割法还要求保留下来的区间内再再插入一点,所形成的区间新三段与原来的区间三段具有相同的比例分布。设原区间a,b长度为1,保留下来的区间
a,长度为,区间缩短率为。为了保持想相同的比例分布,新插入点223应该在
(1)位置上,1在原区间的1-位置应该相当于在保留区间的位置。故有
1
2取方程正数解,得
210
510.618 2二、一维搜索程序作业
例1、a=0,b=2,f(x)=cosx (1)例1程序文本
#include {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 { float a,b,c=0.618,aa[3],y[3],d; scanf(\"%f,%f,%f\ 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\ printf(\"y=%f\\n\ } (4)例2输出结果截图: 输入a=0,b=10,精度d=0.000001,输入极小值点和函数极小值如下: 三、单位矩阵程序作业 作业:编写生成单位矩阵的程序。 要求:通用、输出美观、语言少为佳。 (1)程序文本 #include int i,j,n,a[m][m]; printf(\"please input a number\"); } (2)输出结果截图: 当n=4时,输出结果如下: scanf(\"%d\for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(i==j) a[i][j]=1; else a[i][j]=0; printf(\"%d\ } printf(\"\\n\"); } 当n=12时,输出结果如下: 四、连杆机构问题 设计一曲柄摇杆机构,要求曲柄l1从0转到m=0+900时,摇杆l3的转角最佳再现已知的运动规律:E=0+ 3(0)2且已知l1=1,l4=5,0为极位角, 2其传动角允许在40°1350范围内变化。 设计变量 l4=5且0和0不该机构的运动简图如上图所示。在这个问题中,已知l1=1, 是参数, 它们可由下式求出: 1l2)2l3225(0=arccos 10(1l)2(1l2)2l32250=arccos 10l3所以还问题只有两个参数l2和l3,因此设计变量为 TX=[x1,x2]=[l2,l3]T (1)目标函数 将输入角分成30等分,并用近似公式计算,可得目标函数的表达式 f(x)=[(ii)(ii)] i1302式中i——当i时的机构实际输出角,其计算公式为i=ii 式中 22ri2l32l2ri2x2x12=arccosi=arccos2ril32rix22ri2l4ri224l12=arccos i= arccos2ril410ri ri= l21l2l1l4cosi24=2610cosi1212 Ei为当i时的理想输出角,其值由下式计算 Ei=0+ 2(i0)2 3(2)约束条件 平面铰链四杆机构常用的约束条件有曲柄存在条件和传动角条件。由此得约束条件为 g1(x)x10、g2(x)x20、g3(x)6x1x20 g4(x)x1x240、g5(x)x2x140 22g6(x)x12x21.414x1x2160、g6(x)36x12x21.414x1x20 (3)选择方法 采用惩罚函数法进行计算。 (4)程序文本 procedure ffx; //目标函数 var p0,q0,p,Ri,A,B,Q,Qi,K :real; i:integer ; begin with form1.sumt do begin p0:=ArcCos((sqr(1.0+X[1])-X[2]*x[2]+25.0)/(10.0*(1.0+X[1]))); q0:=ArcCos((sqr(1.0+x[1])-x[2]*x[2]-25.0)/(10.0*x[2])); K:=90.0/30.0*(3.1415926/180.0); fx:=0; for i:=0 to 30 do; begin P:=i*K+p0; Qi:=q0+2.0*sqr(P-p0)/(3.0*3.1415926); Ri:=sqrt(26.0-10.0*cos(P)); A:=ArcCos((Ri*Ri+x[2]*x[2]-x[1]*x[1])/(2.0*Ri*x[2])); B:=ArcCos((Ri*Ri+24.0)/(10.0*Ri)); Q:=3.14159-A-B; fx:=fx+sqr(Q-Qi)*K; end; end; end; procedure ggx; //约束函数 begin with form1.sumt do begin gx[1]:=-x[1]; gx[2]:=-x[2]; gx[3]:=6.0-x[1]-x[2]; gx[4]:=x[1]-x[2]-4.0; gx[5]:=x[2]-x[1]-4.0; gx[6]:=x[1]*x[1]+x[2]*x[2]-1.414*x[1]*x[2]-16; gx[7]:=36-x[1]*x[1]-x[2]*x[2]-1.414*x[1]*x[2]; end; end; procedure hhx; begin with form1.sumt do beging hx[1]:=hx[1]; end; end; End. (5)数据输入截图 输入初始点为(5,5),精度为0.001 (6)输出结果 五、自行选择小型机械设计问题或其他工程优化问题 某车间生产甲、乙两种产品。生产甲种产品每件需要材料9kg、3个工时、4kw电,可获利60元。生产乙种产品每件需材料4kg、10个工时、5kw电,可获利120元。若每天能供应材料360kg,有300个工时,能供200kw电,问每天生产甲、乙两种产品各多少件,才能够获得最大的利润。 (1)设计变量 设每天生产的甲、乙两种产品分别为x1、x2件。 T因此设计变量为X=[x1,x2] (2)目标函数 此问题的数学模型为f(x1,x2)=60x1+120x2max 所以目标函数的表达式为minf(x)= -60x1-120x2 (3)约束条件 依题意得约束条件为: x10、x20、 9x1+4x2-3600(材料约束) 3x1+10x2-3000(工时约束) 4x1+5x2-2000(电力约束) (4)程序文本 procedure ffx; //目标函数 begin with form1.hfgd do begin NFX := NFX+1; fx:=-60*x[1]-120*x[2]; end; end; procedure ggx; //约束函数 begin with form1.hfgd do begin gx[1]:=9*x[1]+4*x[2]-360; gx[2]:=3*x[1]+10*x[2]-300; gx[3]:=4*x[1]+5*x[2]-200; gx[4]:=-x[1]; gx[5]:=-x[2]; end; end; (5)输入数据截图 (6)输出数据 常用优化方法 ——约束随机法 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 一、初始数据 =============================================================================== 设计变量个数 N = 2 不等式约束个数 KG = 5 ----------------------------------------------------------------------------- 随机方向个数 NSR = 6 ----------------------------------------------------------------------------- 初始步长 T0 = 0.001 收敛精度 EPS = 0.0001 ----------------------------------------------------------------------------- 设计变量初始点 X0: X[1]=10 X[2]=10 ----------------------------------------------------------------------------- 设计变量下界 BL: BL[1]=0 BL[2]=0 ----------------------------------------------------------------------------- 设计变量上界 BU: BU[1]=100 BU[2]=100 ----------------------------------------------------------------------------- 初始点目标函数值 F(X0)= -1800 ----------------------------------------------------------------------------- 初始点处的不等约束函数值 G(X0): GX[1]= -2.300000E+02 GX[2]= -1.700000E+02 GX[3]= -1.100000E+02 GX[4]= -1.000000E+01 GX[5]= -1.000000E+01 ------------------------------------------------------------------------------- 二、计算过程__数据 =============================================================================== 设计变量迭代点 X: 迭代次数 ITE = 1 X[1]= 1.000018E+01 X[2]= 1.000088E+01 ----------------------------------------------------------------------------- 目标函数值 F(X)= -3811.30860498082 ----------------------------------------------------------------------------- 三、优化结果__数据 =============================================================================== 迭代次数 ITE = 4 目标函数计算次数 IFX = 125 ----------------------------------------------------------------------------- 设计变量最优点 X*: X[1]= 2.113596E+01 X[2]= 2.309058E+01 ----------------------------------------------------------------------------- 最优值 F(X*)= -4039.055760017 ----------------------------------------------------------------------------- 最优点处的不等约束函数值 G(X*): GX[1]= -7.740408E+01 GX[2]= -5.686514E+00 GX[3]= -1.395986E-04 GX[4]= -2.113725E+01 GX[5]= -2.309017E+01 ------------------------------------------------------------------------------- --- STOP --- 最优点x[1]=21, x[2]=23 最大利润约为4020. 六、机械优化设计课程实践心得体会 通过这堂课的学习,了解了相关的优化方法的优化思路,对计算机解决问题的方法有了初步的了解。从一维搜索解决最优步长到搜索方向的确立,最后从到随机函数法等约束方法的讲解到整体例题的讲解。为了写这个作业,又复习之前学过的MATLAB与C语言,通过运用老师的光盘程序,也知道了优化设计在工程当中的应用,我觉得这就是我的最大收获与进步。 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务