您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页推荐-机械优化设计作业 精品

推荐-机械优化设计作业 精品

来源:抵帆知识网


合肥工业大学

《机械优化设计》课程实践

研究报告

班 级: 机设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(ba)、a(ba)、其中为待定常数。

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

a,长度为,区间缩短率为。为了保持想相同的比例分布,新插入点223应该在

(1)位置上,1在原区间的1-位置应该相当于在保留区间的位置。故有

1

2取方程正数解,得

210

510.618 2二、一维搜索程序作业

例1、a=0,b=2,f(x)=cosx (1)例1程序文本

#include include 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 #include void main()

{ 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 void main (void) #define m 500 {

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,

是参数,

它们可由下式求出:

1l2)2l3225(0=arccos

10(1l)2(1l2)2l32250=arccos

10l3所以还问题只有两个参数l2和l3,因此设计变量为

TX=[x1,x2]=[l2,l3]T

(1)目标函数

将输入角分成30等分,并用近似公式计算,可得目标函数的表达式 f(x)=[(ii)(ii)]

i1302式中i——当i时的机构实际输出角,其计算公式为i=ii 式中

22ri2l32l2ri2x2x12=arccosi=arccos2ril32rix22ri2l4ri224l12=arccos i= arccos2ril410ri ri=

l21l2l1l4cosi24=2610cosi1212

Ei为当i时的理想输出角,其值由下式计算 Ei=0+

2(i0)2 3(2)约束条件

平面铰链四杆机构常用的约束条件有曲柄存在条件和传动角条件。由此得约束条件为

g1(x)x10、g2(x)x20、g3(x)6x1x20 g4(x)x1x240、g5(x)x2x140

22g6(x)x12x21.414x1x2160、g6(x)36x12x21.414x1x20

(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+120x2max 所以目标函数的表达式为minf(x)= -60x1-120x2 (3)约束条件

依题意得约束条件为:

x10、x20、

9x1+4x2-3600(材料约束) 3x1+10x2-3000(工时约束) 4x1+5x2-2000(电力约束) (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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务