合肥工业大学《机械优化设计》课程实践研究报告班级:学号:姓名:授课老师:王卫荣日期: 2014年 4 月 19 日目录1、λ=0.618的证明、一维搜索程序作业;2、单位矩阵程序作业;3、连杆机构问题+自行选择小型机械设计问题或其他工程优化问题;(1)分析优化对象,根据设计问题的要求,选择设计变量,确立约束条件,建立目标函数,建立优化设计的数学模型并编制问题程序;(2)选择适当的优化方法,简述方法原理,进行优化计算;(3)进行结果分析,并加以说明。
4、写出课程实践心得体会,附列程序文本。
5、为响应学校2014年度教学工作会议的改革要求,探索新的课程考核评价方法,特探索性设立一开放式考核项目,占总成绩的5%。
试用您自己认为合适的方式(书面)表达您在本门课程学习方面的努力、进步与收获。
(考评将重点关注您的独创性、简洁性与可验证性.1.λ=0.618的证明、一维搜索程序作业;证明:0.618法要求插入点α1、α2 的位置相对于区间 [a,b] 两端点具有对称性,即已知a1=a2 , 要求α11=α22由于α1=b-λ(b-a)α2=a+λ(b-a)若使α11=α22则有:b1-λ(b1-a1)=a2+λ(b2-a2)= a1+λ2(b1-a1)因此: b1- a1=(λ2+λ)( b1- a1)( b1- a1)( λ2+λ-1)=0因为: b1!=a1所以: λ2+λ-1=0则有: 取方程正数解得若保留下来的区间为 [α1,b] ,根据插入点的对称性,也能推得同样的λ的值。
其0.618法的程序框图如下:编写用0.618法求函数极小值的程序例:(1)a=0 ,b=2π,f(x)=cox(x)(2)a=0 ,b=10, f(x)=(x-2)2+3 (1)#include <stdio.h>#include <math.h>float m=0.618;float fun(float t){float y;y=cos(t);return y;}main(){ float a,b,eps;printf("请输入上限:");scanf("%f",&a);printf("请输入下限:");scanf("%f",&b);float a1,a2,t,f1,f2,min;printf("请输入精度:");scanf("%f",&eps);while((b-a)/b>=eps){ a1=a+(1-m)*(b-a);a2=a+m*(b-a);f1=fun(a1);f2=fun(a2);if(f1>=f2){ a=a1;a1=a2;f1=f2;a2=a+m*(b-a);f2=fun(a2); }else{ b=a2;a2=a1;f2=f1;a1=a+(1-m)*(b-a);f1=fun(a1);}}t=(a+b)/2;min=fun(t);printf("t=%f\n",t);printf("min= %f\n",min); }(2)#include <stdio.h>#include <math.h>float m=0.618;float fun(float t){float y;y=(t-2)*(t-2)+3;return y;}main(){ float a,b,eps;printf("请输入上限:");scanf("%f",&a);printf("请输入下限:");scanf("%f",&b);float a1,a2,t,f1,f2,min;printf("请输入精度:");scanf("%f",&eps);while((b-a)/b>=eps){ a1=a+(1-m)*(b-a);a2=a+m*(b-a);f1=fun(a1);f2=fun(a2);if(f1>=f2){ a=a1;a1=a2;f1=f2;a2=a+m*(b-a);f2=fun(a2); }else{ b=a2;a2=a1;f2=f1;a1=a+(1-m)*(b-a);f1=fun(a1);}}t=(a+b)/2;min=fun(t);printf("t=%f\n",t);printf("min= %f\n",min); }2.单位矩阵程序作业编写生成单位矩阵的程序#include <stdio.h>void main(void){int a[100][100];int N,i,j;printf("请输入所要输出矩阵的阶数:");scanf("%d",&N);printf("输出的矩阵阶数为%d\n",N);printf(" N ");for(i=0;i<N;i++)printf("%3d",i+1);printf("\n");for(i=0;i<N+1;i++)printf("---");printf("\n");for(i=0;i<100;i++)for(j=0;j<100;j++){if(i==j)a[i][j]=1;elsea[i][j]=0;}for(i=0;i<N;i++){printf("%2d:",i+1);for(j=0;j<N;j++){ printf("%3d",a[i][j]);}printf("\n");}}3.连杆机构问题+自行选择小型机械设计问题或其他工程优化问题;(1)分析优化对象,根据设计问题的要求,选择设计变量,确立约束条件,建立目标函数,建立优化设计的数学模型并编制问题程序;(2)选择适当的优化方法,简述方法原理,进行优化计算;(3)进行结果分析,并加以说明。
3.1连杆机构问题:问题描述:图1现优化一曲柄连杆机构,如图1所示,已知曲柄长度L1为44mm,机架长度L4为220mm,,要求当曲柄的转角在[φ0,φ0+π/2]时,对应的摇杆的输出角为Ψi,且两者满足对应函数关系Ψi=Ψ0+( φ0 - φi )2,φ0和Ψ0分别对应于四连杆在初始位置时曲柄和摇杆的位置角。
要求机构传动角的范围是[π/4,3π/4],优化该问题使得从动件的一系列实际输出角与期望实现函数Ψ=f(φ)的值的平方偏差之和最小。
模型建立1、设计变量曲柄摇杆机构按照原动件和从动件的对应关系可知其有5个独立参数,对于图1分别为曲柄长度L1,连杆长度L2,摇杆长度L3,机架长度L4,曲柄初始角φ0和摇杆的初始角Ψ0,由于L1和L4已知,且由图1的几何关系知:所以φ0和Ψ0已不再是独立参数,而是杆长的函数。
经上分析独立变量只有L2和L3。
因此,选择连杆长度L2和摇杆长度L3作为设计变量。
即:X = [L2 L3]T = [X1 X2]T2、目标函数图2图3由上面图2和图3中机构的几何关系可得如下的运动规律:S为角度区间的分段数;Ψsi为机构的实际输出角,计算式为:Ψsi =根据图中的角度关系求得:所以根据本机构设计问题,以机构实际输出角Ψsi与理论输出角Ψi的平方偏差最小原则来建立目标函数。
优化目标函数表达式:3、约束条件根据已知条件,该机构的约束条件有两方面:一是传动运动过程中的传动角应大于45度且小于135度;二是保证四杆机构满足曲柄存在条件。
(1)保证传动角约束图4图5根据图4和图5中机构处于最大传动角和最小传动角时的连杆几何关系,由余弦定理知将L2=X1,L3=X2,L1=44,L4=220代入上面两式得(2)、曲柄存在条件由机械原理的知识可知,曲柄存在的条件为:将已知的杆长和设计变量代入上述条件得:由上图可以看出杆长条件不起约束作用,实际起作用的约束只g1(X)和g2(X),所以最终的数学模型为:程序编写:%优化设计主程序X0=[4.5;4];qb=1;jj=5;lb=[1;1];ub=[10;10];A=[];b=[];Aeq=[];beq=[];[x,fn]=fmincon(@jfg_f,x0,A,b,Aeq,beq,lb,ub,@cdj_g);disp'******连杆实现函数最优化设计最优解***** ’fprintf(‘连杆相对长a=3.4f\n’,x(1))fprintf(‘摇杆相对长度b=%3.4f\m',x(2))fprintf(‘输出角平方偏差之和f*=%3.4f\n',fn)g=cdj_g(x);disp' ************最优点的性能约束函数*********** ' fprintf(' 最小传动角约束函数值g1*=%3.4f\n',g(1)) fprintf(' 最大传动角约束函数值g2*=%3.4f\n',g(2))%约束function [g,ceq]=cdj_g(x);qb=1;jj=5;gamn=45*pi/180;g(1)=x(1)^2+x(2)^2-(jj-qb)^2-2*x(1)*x(2)*cos(gamn);g(2)=-x(1)^2-x(2)^2+(jj+qb)^2-2*x(1)*x(2)*cos(gamn);ceq=[];%目标函数function f=jfg_f(x);s=50;qb=1;jj=5;fx=0;fa0=acos(((qb+x(1))^2-x(2)^2+jj^2)/(2*(qb+x(1))*jj));pu0=acos(((qb+x(1))^2-x(2)^2-jj^2)/(2*x(2)*jj));for i=1:sfai=fa0+0.5*pi*i/s;pui=pu0+2*(fai-fa0)^2/(3*pi);ri=sqrt(qb^2+jj^2-2*qb*jj*cos(fai));alfi=acos((ri^2+x(2)^2-x(1)^2)/(2*ri*x(2)));bati=acos((ri^2+jj^2-qb^2)/(2*ri*jj));if fai>0&fai<=pipsi=pi-alfi-bati;elseiffai>pi&fai<=2*pipsi=pi-alfi+bati;endfx=fx+(pui-psi)^2;endf=fx;运行结果:优化结果分析:连杆相对长度L2=4.1236和摇杆相对长度L3=2.3280,在曲柄在[φ0,φ+π/2 ]内转动时,摇杆输出角与期望实现函数Ψ=f(φ)的平方偏差之和施f(x*)=0.0120,最优点位于约束边界g2(x)上。