《机械优化设计》大作业Word文件下载.doc
《《机械优化设计》大作业Word文件下载.doc》由会员分享,可在线阅读,更多相关《《机械优化设计》大作业Word文件下载.doc(26页珍藏版)》请在冰点文库上搜索。
机械优化工程实例
①连杆机构…………………………………………………………………11
②自选机构…………………………………………………………………16
课程实践心得……………………………………………………………………20
附列程序文本……………………………………………………………………21
进步,努力,建议………………………………………………………………25
一、λ=0.618的证明、一维搜索程序作业
①关于的证明
黄金分割法要求插入点,的位置相对于区间两端具有对称性,即
其中为待定常数。
此外,黄金分割法还要求在保留下来的区间内再插入一点所形成的区间新三段,与原来的区间三段具有相同的比例分布。
黄金分割法还要求在保留下来的区间内再插一点所形成的区间新三段,与原来的区间三段有相同的比例分布。
b
α1
α2
1
1-λ
λ
图一
设原区间的长度为1,如图一所示,保留下来的区间长度为,区间缩短率为。
为了保持相同的分别比例。
插入新点应在位置上,在原区间的1位置应相当于在保留区间的位置。
故有:
a
2
α3
λ(1-λ)
λ2
图二
解得
编写0.618的程序,并计算下列问题
程序框图
(1)采用MATLAB进行编程
%%
%fun.m:
黄金分割法求极值点
%输入数据
%a–搜索区间下限
%b–搜索区间上限
%e–精度
%输出数据:
%x–极小值点
%其他常量:
%c1,c2,c3–区间
%r–黄金分割比例0.618
%定义函数
functionx=fun(a,b,e)
r=0.618;
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)
ify1>
=y2
a=c1;
c1=c2;
y1=y2;
c2=a+r*(b-a);
else
b=c2;
c2=c1;
y2=y1;
c1=b-r*(b-a);
y1=f(c1);
end
end
x=0.5*(a+b);
end
对f函数的确立
10functiony=f(x)
y=(x-2)^2+3;
11functiony=f(x)
y=cosx
如果要计算y=(x-2)^2+3;
的黄金分割法,则需要将图所示的f脚本中的函数写成如①所示
如果要计算y=cosx;
黄金分割法,则需要将图所示的f脚本中的函数写成如②所示
fun函数表示对matlab的主程序语言。
26
函数NO.2运算结果:
函数NO.1运算结果:
(2)采用C语言进行编程
#include<
stdio.h>
#defineK0.618
doublef(double);
/*****函数值计算函数声明*****/
voidmain(void)
{
doublea,b,size;
doublea1,a2;
intI;
printf(“请输入区间两端点(端点值应大于0):
”);
scanf(“%lf,%lf”,&
a,&
b);
/*****输入端点值*****/
printf(“请输入精度:
scanf(“%lf”,&
size);
/*****输入精度*****/
printf(“区间为(%lf,%lf),精度为%lf\n”,a,b,size);
printf(“序号\ta1\t\ta2\t\tf(a1)\t\tf(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));
}
doublef(doublex)/*****函数值计算函数*****/
doublef;
f=(x-2)*(x-2)+3;
return(f);
对于y=cosx,须在程序中加一个#include(math.h)头程序,以示我要调用函数语句。
再将倒数第三行函数改为y=cos(x),再次编译运算即可。
运行如图所示
我们可以看出,大约在x=2处取到极值。
与理论相符。
我们可以看出,大约在π处取到极值。
二、用简单的语句写一个单位矩阵
①采用matlab构造:
Matlab构造的矩阵最是简便,因为本身就有一个单位矩阵的函数。
由于matlab是基于C语言而设立的一个数学运用软件,所以他的集成度非常高,而且具有很好的开放性,于是我们得知eye函数,将其构造。
Eg:
若要构造一个3维的单位矩阵,则输入eye(3)
若要构造一个n为的单位矩阵,这输入eye(n)
②用C语言构造
程序如图所示:
intmain(){
intI,j,n;
while(scanf(“%d”,&
n)==1){
for(I=0;
I<
n;
++i){
for(j=0;
j<
++j)
printf(“%d“,I==j);
printf(“\n”);
}
}
return0;
三、机械优化设计工程实例
①连杆机构问题
(1)连杆机构问题描述
图1机构简图
设计一曲柄连杆摇杆机构,要求曲柄从时,摇杆的转角最佳再现已知的运动规律:
且=1,=5,为极位角,其传动角允许在范围内变化。
(2)数学模型的建立
设计变量:
这里有两个独立参数和。
因此设计变量为
目标函数:
将输入角分成30等分,并用近似公式计算,可得目标函数的表达式
约束条件:
GX
(1)=-X
(1)0
GX
(2)=-X
(2)0
GX(3)=-(X
(1)+X
(2))+6.00
GX(4)=-(X
(2)+4.0)+X
(1)0
GX(5)=-(4.0+X
(1))+X
(2)0
GX(6)=-(1.4142*X
(1)*X
(2)-X
(1)**2-X
(2)**2)-16.00
GX(7)=-(X
(1)**2+X
(2)**2+1.4142*X
(1)*X
(2))+36.00
(3)程序编制
C ======================
SUBROUTINEFFX(N,X,FX)
DIMENSIONX(N)
COMMON/ONE/I1,I2,I3,I4,NFX,I6
NFX=NFX+1
P0=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)
FX=0.0
DO10K=0,30
PI=P0+K*T
QE=Q0+2.0*(PI-P0)**2/(3.0*3.1415926)
D=SQRT(26.0-10.0*COS(PI))
AL=ACOS((D*D+X
(2)*X
(2)-X
(1)*X
(1))/(2.0*D*X
(2)))
BT=ACOS((D*D+24.0)/(10.0*D))
IF(PI.GE.0.0.AND.PI.LT.3.1415926)THEN
QI=3.1415926-AL-BT
ELSE
QI=3.1415926-AL+BT
ENDIF
IF(K.NE.0.OR.K.NE.30)THEN
FX=FX+(QI-QE)**2*T
FX=FX+(QI-QE)**2*T/2.0
12CONTINUE
RETURN
END
C =========================
SUBROUTINEGGX(N,KG,X,GX)
DIMENSIONX(N),GX(KG)
GX
(1)=-X
(1)
GX
(2)=-X
(2)
GX(3)=-(X
(1)+X
(2))+6.0
GX(4)=-(X
(2)+4.0)+X
(1)
GX(5)=-(4.0+X
(1))+X
(2)
GX(6)=-(1.4142*X
(1)*X
(2)-X
(1)**2-X
(2)**2)-16.0
GX(7)=-(X
(1)**2+X
(2)**2+1.4142*X
(1)*X
(2))+36.0
SUBROUTINEHHX(N,KH,X,HX)
DIMENSIONX(N),HX(KH)
X
(1)=X
(1)
输入数据如下:
2,7,0
4.3,3.2
2.,0.2,0.01,0.00001,0.00001
0,1,0
3.5,2.8,5.5,4.5
(4)可执行程序的生成
13将程序文本保存成文件t001.txt,存放在OPT_EXAM\FORTRAN\0-fortran目录下。
14使用DOS操作界面,OPT_EXAM\FORTRAN\0-fortran目录下,输入命令
asumt.for+t001.txtt001.for回车。
生成t001.for文件。
15for1t001;
回车;
④for2回车;
⑤linkt001;
回车,即生成可执行程序t001.exe。
⑥从t001.dat文件中加载数据,运行t001.exe。
t001<
t001.dat>
t001.rtf回车得到结果。
操作过程如图:
操作步骤
(5)结果与分析
结果显示如下:
==============PRIMARYDATA==============
N=2KG=7KH=0
X:
.4300000E+01.3200000E+01
FX:
.7847605E-02
GX:
-.4300000E+01-.3200000E+01-.1500000E+01-.2900000E+01-.5100000E+01
-.6729390E+01-.1218939E+02
HX:
PEN=.3974390E+01
R=.2000000E+01C=.2000000E+00T0=.1000000E-01
EPS1=.1000000E-04EPS2=.1000000E-04
==============ITERATIONCOMPUTE==============
*****IRC=1R=.2000000E+01PEN=.3974390E+01
*****IRC=2R=.4000000E+00PEN=.3119361E+01
*****IRC=3R=.8000001E-01PEN=.6407908E+00
*****IRC=4R=.1600000E-01PEN=.1439420E+00
*****IRC=5R=.3200000E-02PEN=.3733451E-01
*****IRC=6R=.6400000E-03PEN=.8986510E-02
*****IRC=7R=.1280000E-03PEN=.2346609E-02
*****IRC=8R=.2560000E-04PEN=.9042178E-03
*****IRC=9R=.5120001E-05PEN=.5396702E-03
*****IRC=10R=.1024000E-05PEN=.4410887E-03
*****IRC=11R=.2048000E-06PEN=.4128061E-03
*****IRC=12R=.4096001E-07PEN=.4071001E-03
*****IRC=13R=.8192003E-08PEN=.4014154E-03
*****IRC=14R=.1638401E-08PEN=.3992769E-03
*****IRC=15R=.3276801E-09PEN=.3987240E-03
*****IRC=16R=.6553602E-10PEN=.3984505E-03
*****IRC=17R=.1310720E-10PEN=.3983411E-03
*****IRC=18R=.2621441E-11PEN=.3982889E-03
===============OPTIMUMSOLUTION==============
IRC=18ITE=35ILI=94NPE=447NFX=482NGR=0
R=.2621441E-11PEN=.3982696E-03
.4135127E+01.2315381E+01
.3982623E-03
-.4135127E+01-.2315381E+01-.4505072E+00-.2180254E+01-.5819746E+01
-.7079845E+01-.3633157E-03
Stop-Programterminated.
从结果中得知当X1=4.135127,X2=2.315381时,目标函数取得最小值,摇杆的转角最佳再现已知的运动规律:
。
②自选结构模型
设计某带式输送机减速器的高速级齿轮传动。
已知高速级输入功率P1=10kW,小齿轮转速n1=960r/min,传动比i=3.2。
齿轮材料和热处理:
大齿轮45号钢(调质)硬度为217~255HBS,小齿轮40Cr(调质)硬度为241~286HBS,工作寿命15年,假设每年工作300天,两班制,带式输送机工作平稳,转向不变。
常规设计方案采用直齿圆柱齿轮:
m=2.5,z1=30,Φd=1。
解:
(1)设计变量,
单级直齿圆柱齿轮传动的中心距:
齿宽:
将m,,作为设计变量,即:
=
2)目标函数
根据多目标优化的线性加权法建立体积最小的目标函数:
f(x)=ω1·
f1(x)+ω2·
f2(x)=ω1·
+ω2·
其中:
ω1,ω2是加权系数,且ω1+ω2=1,分别根据设计时径向和轴向安装位置的要求设定;
取ω1=1表示要求中心距最小,取ω2=1则表示要求齿宽最小。
3)约束条件
模数的限制:
对于传递动力的齿轮,通常要求模数不少于1.5-2,得约束条件:
>
(2)小齿轮齿数的限制:
小齿轮齿数应不大于产生根切的最小齿数17,得约束条件:
(3)齿宽系数的限制:
由于min≤≤max,约束条件为:
(4)齿面接触强度的限制,根据公式并查表得约束条件:
(5)齿根弯曲强度的限制,根据公式查表得约束条件:
4建立数学优化模型
高速级齿轮传动多目标优化设计的数学模型为:
(ω1取0.6,ω2取0.4)
Fun(x)=min[ω1+ω2]
=
5 编写程序并运行结果
目标函数M文件:
functionf=zhwm(x)
f=0.6*2.1*x
(1)*x
(2)+0.4*x
(1)*x
(2)*x(3);
约束函数M文件:
function[cceq]=zhwy(x)
c
(1)=1.04*10^7-2.916*10^5*(x
(1)*x
(2))^3*x(3);
c
(2)=1.04*10^7-8.95*10^6*(x
(1)*x
(2))^3*x(3);
c(3)=1.51*10^6-303.57*x
(1)^3*x
(2)^2*x(3);
c(4)=1.42*10^6-2445.92*x
(1)^3*x
(2)^2*x(3);
ceq=[];
优化函数M文件:
x0=[2321];
lb=[1.5170.7];
ub=[2inf1.15];
u=[];
[x,fval]=fmincon(@zhwm,x0,[],[],[],[],lb,ub,@zhwy)
约束函数
目标函数
经过Matlab优化并圆整后的齿轮参数如下:
设计参数
模数
m/mm
齿数
齿宽系数
中心距
/mm
普通设计
2.5
30
157.5
MATLAB优化
1.7911
27.4377
1.1499
84.5254
圆整后参数
1.75
117.6
经过计算,最小体积为87.15。
四、课程学习心得
从懒懒散散的寒假到匆匆忙忙的考试周,仿佛只是在弹指一挥间。
然而我们就在这段时间内,又学了几门课程,而这些课程中,最有趣,最好玩的当然就是《机械优化设计了》
《机械优化设计》是一门理论性非常强的一门课,刚开始的时候不得要领,但是在王卫荣老师的带领下,逐渐登堂入室,渐渐有所了解。
首先,这门课所依托的最强武器便是数学。
数学即是方法,思维,和逻辑。
其次所依托的便是算法程序语言。
归根结底的还是数学,因为数学赋予了算法以逻辑的力量,分析的过程,以及所能解决的一切问题。
还好我的数学基础还算可以,逻辑思维还算通顺,再加上老师所给予的方法