优化设计实验何胜.docx

上传人:b****5 文档编号:30719081 上传时间:2023-08-19 格式:DOCX 页数:15 大小:71.80KB
下载 相关 举报
优化设计实验何胜.docx_第1页
第1页 / 共15页
优化设计实验何胜.docx_第2页
第2页 / 共15页
优化设计实验何胜.docx_第3页
第3页 / 共15页
优化设计实验何胜.docx_第4页
第4页 / 共15页
优化设计实验何胜.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

优化设计实验何胜.docx

《优化设计实验何胜.docx》由会员分享,可在线阅读,更多相关《优化设计实验何胜.docx(15页珍藏版)》请在冰豆网上搜索。

优化设计实验何胜.docx

优化设计实验何胜

湖北工业大学

机械工程学院

 

工程优化设计与MATLAB实验报告

 

学院:

机械工程学院

专业:

机自

班级:

09创新班

姓名:

何胜

学号:

0910100121

指导老师:

李克勤

MATLAB优化设计实验报告

实验题目一:

进退法确定初始区间

用进退法计算函数

f(x)=2+x^2

的单峰区间,初始点X0=2。

MATLAB程序

该程序是按照寻找最优步长编写的,其数学模型为式(4-2)。

其中,xk0为初始点;dir0为给定的搜索方向;th为步长增量。

程序清单如下:

%opt_range_serach1.m

function[opt_step,f0,xx]=opt_range_serach1(f,xk0,dir0,th)

%用进退法搜索3个点,使中点函数值最小;输出步长、函数值、设计变量值

%xk0:

初始点

%th:

步长

t1=0;t2=th;

xk1=xk0;xk2=xk1+t2*dir0;

x0=xk1;

f1=feval(f,x0);

x0=xk2;

f2=feval(f,x0);

iff2

t3=t2+th;

xk3=xk1+t3*dir0;

x0=xk3;

f3=feval(f,x0);

else

th=-2*th;

t3=t1;

f3=f1;

t1=t2;

f1=f2;

t2=t3;

f2=f3;

t3=th;

xk3=xk1+t3*dir0;

x0=xk3;

f3=feval(f,x0);

end

ii=0;

whilef2>f3

t1=t2;

f1=f2;

t2=t3;

f2=f3;

t3=t2+th;

xk3=xk1+t3*dir0;

x0=xk3;

f3=feval(f,x0);

end

xx1=xk1+t1*dir0;

xx2=xk1+t2*dir0;

xx3=xk1+t3*dir0;

ifth<0

opt_step=[t3t2t1];

xx=[xx3xx2xx1];

fo=[f3f2f1];

else

opt_step=[t1t2t3];

xx=[xx1xx2xx3];

fo=[f1f2f3]

end

end

用户程序为:

%rang_search_testl

clc;

f=inline('2+x^2','x');

xk0=2;th=0.5;dir0=1;

[opt_step,fo,xx]=opt_rang_serach1(f,xk0,dir0,th)

opt_step

计算结果为

opt_step=

-3-2-1

 

fo=

323

 

xx=

-101

实验题目二:

黄金分割法

计算目标函数

f(x)=2+x^2

在区间[-2,2]内的极小点。

MATLAB程序

其中,ε1,ε2为给定的任意小的精度,k为区间缩短的次数。

%golden_search

function[x0,f0]=golden_search(f,a,b,r,Tolx,TolFun,k)

kk=1;

whilekk>0

h=b-a;

rh=r*h;

c=b-rh;

d=a+rh;

fc=feval(f,c);

fd=feval(f,d);

ifk<=0||abs(h)

iffc<=fd

x0=c,f0=fc;

kk=0;

else

x0=d;

f0=fd;

kk=0;

end

ifk==0;

fprintf('达到计算次数');

kk=0;

end

else

iffc

b=d;

k=k-1;

else

a=c;

k=k-1;

end

end

end

用户程序为:

%golden_s_test1.m

functiongolden_s_test1

clc;

clearall;

gs_fun=inline('2+x^2','x');

a=-2;b=2;r=(sqrt(5)-1)/2;TolX=1e-7;TolFun=1e-7;MaxIter=50;

[xo,fo]=fminbnd(gs_fun,a,b)

[xo,fo]=golden_search(gs_fun,a,b,r,TolX,TolFun,MaxIter)

计算结果为

x0=

-5.5511e-017

 

f0=

2

 

实验题目三:

二次插值法

用二次插值法计算目标函数

f(x)=2+x^2

在区间[-2,2]内的极小点及最优步长

MATLAB程序

Function[opt_step,fo,xo]=opt_step_quad2(f,xk0,dir0,th,TolX,TolFun,MaxIter)

%opt_step_quad.m

[t012,fo,xx]=opt_range_serach1(f,xk0,dir0,th);

%searchfortheoptimumstepcorrespondingtominimumf(x)byquadraticapproximationmethod

k=MaxIter;

whilek>0

k=k-1;

t0=t012

(1);t1=t012

(2);t2=t012(3);

x0=xk0+t012

(1)*dir0;x1=xk0+t012

(2)*dir0;x2=xk0+t012(3)*dir0;

f0=feval(f,x0);f1=feval(f,x1);f2=feval(f,x2);

nd=[f0-f2f1-f0f2-f1]*[t1*t1t2*t2t0*t0;t1t2t0]';

t3=nd

(1)/2/nd

(2);x3=xk0+t3*dir0;f3=feval(f,x3);

ifk<=0|abs(t3-t1)

opt_step=t3;

xo=xk0+opt_step*dir0;

fo=f3;

return

else

ift3

iff3

elset012=[t3t1t2];f012=[f3f1f2];

end

else

iff3<=f1,t012=[t1t3t2];f012=[f1f3f2];

elset012=[t0t1t3];f012=[f0f1f3];

end

end

end

end

opt_step=t3;

xo=xk0+opt_step*dir0;

fo=f3;

end

用户程序为:

%opt_step_quad_test1

clc;

f=inline('2+x^2','x');

xk0=2;th=0.5;dir0=1;TolX=1e-4;TolFun=1e-4;MaxIter=50;

[opt_step,fo,xx]=opt_step_quad2(f,xk0,dir0,th,TolX,TolFun,MaxIter)

计算结果为:

opt_step=

-2

 

fo=

2

 

xx=

0

实验题目四:

平面连杆机构优化

曲柄连杆机构设计的数学模型属于非线性规划问题,应用MATlAB优化工具箱中的函数fmincon来进行优化计算。

程序如下:

%连杆优化设计link_main

functionlink_main

clc;

clearall;

globalL1;

L1=1;

x0=[4;4;3];%优化变量赋初值

ub=[8,8,7];

options=optimset('LargeScale','off','TolFun',1e-12);

[x,feval,exitflag,output]=fmincon(@link_objfun,x0,[],[],[],[],[],ub,@link_confun,options)

functionf=link_objfun(x)

globalL1;

f=0;%给f赋初值

fai0=acos(((L1+x

(1))^2+x(3)^2-x

(2)^2)/(2*x(3)*(L1+x

(1))));

psai0=pi-acos((x(3)^2+x

(2)^2-(L1+x

(1))^2)/(2*x(3)*x

(2)));

fori=0:

50%将phi划分50等分

fai=fai0+pi/2*i/50;%曲柄转角各等分点的值

psai=psai0+(fai-fai0)^2/6;%摇杆转角各等分点的值

r=sqrt(L1^2+x(3)^2-2*x(3)*L1*cos(fai));

alpha=acos((r^2+x

(2)^2-x

(1)^2)/(2*x

(2)*r));

bta=acos((r^2+x(3)^2-L1^2)/(2*x(3)*r));

iffai<=pi

psais=pi-alpha-bta;

elseiffai<=2*pi

psais=pi-alpha-bta;

end

end

f=f+(psai-psais)^2;%计算目标函数

end%for循环体结束

fi0=fai0*180/pi,ppsai=psai0*180/pi;

function[cceq]=link_confun(x)

globalL1;

c=[x

(1)^2+x

(2)^2-(x(3)-L1)^2-1.414*x

(1)*x

(2)

(L1+x(3))^2-x

(1)^2-x

(2)^2-1.414*x

(1)*x

(2)

L1-x

(1)

L1-x

(2)

L1-x(3)

L1+x(3)-x

(1)-x

(2)

L1+x

(1)-x

(2)-x(3)

L1+x

(2)-x

(1)-x(3)];

ceq=[];

计算结果为

x=

5.6695

2.9143

7.0000

feval=

0.0051

exitflag=

4

实验题目五:

圆柱齿轮传动的优化设计

齿轮优化设计目标函数一般有两种:

一种是使齿轮传动中心距为最小;另一种是使齿轮体积为最小。

这里选取的目标函数为使两齿轮在分度圆柱体积之和为最小。

则目标函数为

从目标函数可以看出,当传动比u一定时,模数、小齿轮齿数、齿宽系数可以作为设计变量。

设计变量约束

模数的限制:

根据实际情况

小齿轮齿数限制:

齿宽系数限制:

性能约束

齿面接触疲劳的限制:

应使接触应力不大于许用接触应力,即

式中,

为弹性系数;

为节点区域系数;

为传动比系数。

根据题目条件,各参数取值如下:

载荷系数K=1.3;

弹性系数

节点区域系数

传动比系数

因为小齿轮扭矩为:

所以齿根弯曲疲劳强度约束为:

其中,齿形系数

和应力修正系数

MATLAB程序

%直齿圆柱齿轮普通优化设计程序

functiongear_opt1

clc;

clearall;

closeall;

P=400;

n1=550;

u=3.43;

x0=[623.8];

[x,fval]=fmincon(@gearoptfun2,x0,[],[],[],[],[],[],@gearoptcons2,[],P,n1,u)

functionf=gearoptfun2(x,P,n1,u)

f=1/4*pi*(1+u^2)*(x

(1)*x

(2))^3*x(3);

function[c,ceq]=gearoptcons2(x,P,n1,u)

c

(1)=8-x

(1);

c

(2)=x

(1)-15;

c(3)=20-x

(2);

c(4)=x

(2)-32;

c(5)=0.5-x(3);

c(6)=x(3)-1.2;

K=1.35;

Z=189.8^(1/2)*2.5*sqrt((1+u)/u);

T1=9550*1000*P/n1;

c(7)=Z*sqrt(2*K*T1/(x

(1)*x

(2))^3*x(3))-1400;

[YFa1,Ysa1]=yfasa(x

(2));

[YFa2,Ysa2]=yfasa(u*x

(2));

c(8)=2*K*T1/(x

(1)^3*x

(2)^2*x(3))*YFa1*Ysa1-410;

c(9)=2*K*T1/(x

(1)^3*x

(2)^2*x(3))*YFa2*Ysa2-410;

ceq=[];

function[yfa,ysa]=yfasa(z)

x=[17181920212223242526272829303540455060708090100150];

y1=[2.972.912.852.82.762.722.692.652.622.602.572.552.532.522.452.42.352.322.282.242.222.22.182.14];

y2=[1.521.531.541.551.561.571.5751.581.591.5951.601.611.621.6251.651.671.681.71.731.751.771.781.791.83];

yfa=interp1(x,y1,z);

ysa=interp1(x,y2,z);

%直齿圆柱齿轮模糊优化设计程序

functiongear_opt3

clc;

clearall;

closeall;

P=400;

n1=550;

u=3.43;

x0=[6230.8];

lamda=0.5632;

[x,fval]=fmincon(@gearoptfun2,x0,[],[],[],[],[],[],@gearoptcons2,[],P,n1,u,lamda)

functionf=gearoptfun2(x,P,n1,u,lamda)

f=1/4*pi*(1+u^2)*(x

(1)*x

(2)^3*x(3));

function[c,ceq]=gearoptfun2(x,P,n1,u,lamda);

c

(1)=5+lamda*3-x

(1);

c

(2)=x

(1)-(16-lamda*4);

c(3)=18+lamda*4-x

(2);

c(4)=x

(2)-(35-lamda*7);

c(5)=0.45+lamda*0.1-x(3);

c(6)=x(3)-(1.32-lamda*0.22);

K=1.35;

Z=189.8^(1/2)*2.5*sqrt((1+u)/u);

T1=9550*1000*P/n1;

c(7)=Z*sqrt(2*K*T1/(x

(1)*x

(2)^3*x(3))-(1400-lamda*(1400-1260)));

[YFal,Ysa1]=yfasa(x

(2));

[YFa2,Ysa2]=yfasa(u*x

(2));

c(8)=2*K*T1/(x

(1)^3*x

(2)^2*x(3))*YFa1*Ysa1-(410-lamda*(410-369));

c(9)=2*K*T1/(x

(1)^3*x

(2)^2*x(3))*YFa2*Ysa2-(350-lamda*(350-315));

ceq=[];

优化结果

按两种优化方法所得结果如下表所示。

优化方法

m/mm

Z1

目标函数值/mm^3

计算

圆整

计算

圆整

普通优化

9.4

10

20

20

0.63

4.2151*10^7

模糊优化

7.54

8

20.25

21

1.196

4.2626*10^7

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 交规考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1