优化设计实验何胜.docx
- 文档编号:30719081
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:15
- 大小:71.80KB
优化设计实验何胜.docx
《优化设计实验何胜.docx》由会员分享,可在线阅读,更多相关《优化设计实验何胜.docx(15页珍藏版)》请在冰豆网上搜索。
优化设计实验何胜
湖北工业大学
机械工程学院
工程优化设计与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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优化 设计 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)