《机械优化设计》课程实践报告
2011-陈飞-《机械优化设计》课程实践报告
合肥工业大学《机械优化设计》课程实践研究报告班级:机械设计制造及其自动化11-5班学号: 20110538 姓名:陈飞授课老师:王卫荣日期: 2014年 4月18日研究报告目录机械优化设计研究报告概述 (3)1、λ=0.618的证明、一维搜索程序 (3)1.1 证明0.618法 (3)1.2 用0.618法求函数最小值 (4)1.2.1 求f(x)=cosx最小值 (4)1.2.2 求f(x)=(x-2)2+3最小值 (6)2、单位矩阵程序 (8)3、连杆机构问题 (9)3.1 问题描述 (9)3.2 编写程序 (10)3.3利用Fortran编译器生成可执行程序 (11)3.4 输出结果及分析 (13)4、工程问题实例 (16)4.1工程问题描述 (16)4.2 数学模型的建立 (16)4.3 程序编制 (18)4.4 优化结果和最终设计参数 (19)5、课程实践心得体会 (21)机械优化设计研究报告概述优化设计是20世纪60年代初发展起来的一门新学科,它是将最优化原理和计算技术应用与设计领域,为工程设计提供一种重要的科学设计方法。
利用这种新的设计方法,人们就可以从众多的设计方案中找出最佳设计方案,从而大大提高设计质量和效率。
因此优化设计是现代设计理论和方法的一个重要领域,它已广泛应用于各个工业部门。
优化方法的应用领域很多,发展也很迅速。
近几年来发展起来的计算机辅助设计(CAD),在引入优化设计方法后,使得在设计过程中既能够不断选择设计参数并评选出最优设计方案,又可以加快设计速度,缩短设计周期。
在科学技术发展要求机械产品更新周期日益缩短的今天,把优化设计方法与计算机辅助设计结合起来,使设计过程完全自动化,已成为设计方法的一个重要发展趋势。
通过本学期的课程学习,我们已经掌握了一些常用的优化方法的原理和计算过程的理论知识。
本次实践是巩固学到的理论知识的绝佳方法,通过实践,学生可以将理论知识运用到具体问题当中,培养分析问题和解决问题的能力。
机械优化设计实验报告
《机械优化设计》课程实验报告M a t l a b优化工具箱一、实验目的和要求熟悉Matlab7.0软件的界面和基本功能,了解Matlab优化工具箱的常用算法;使用Matlab优化工具箱的f m i n u n c/f m i n s e a r c h函数求解多变量非线性无约束优化问题;使用Matlab优化工具箱的f m i n c o n函数求解多变量非线性约束优化问题。
二、实验设备和软件台式计算机,Matlab7.0软件。
三、实验内容求解下列优化问题的最优解。
要求:(1)编写求解优化问题的M文件,(2)在命令窗口输入求解优化问题的命令,并得出计算结果。
1、标量优化问题1) f=x2-10x+362) f=x4-5x3+4x2-6x+603) f=(x+1)(x-2)22、多变量非线性无约束优化问题1) f=4(x1-5) 2+( x2-6) 2初始点:x0=[8,9]T;2) f=(x12+x2-11)2+( x1+ x22-7)2初始点:x0=[1,1]T;3) f=[1.5- x1(1- x2)]2+[2.25- x1(1- x22)]2+[2.625- x1(1- x23)]2初始点:x0=[2,0.2]T;4) f=( x12+12 x2-1)2+(49 x1+49 x2+84 x1+2324 x2-681)2初始点:x0=[1,1]T;5) f=( x1+10 x2)2+5(x3- x4)2+( x2-2 x3)4+10(x1- x4)4初始点:x0=[3,-1,0,1]T;3、多变量非线性约束优化问题1) f=( x1-2)2+( x2-1)2g1= x12-x2≤0g2= x1+x2-2≤0初始点:x0=[3,3]T;2) f= x23[( x1-3)2-9]/273≤0g1=x2-x1/3≤0g2=-x1+x2/3≤0g3=x1+x2/3-6≤0g4=-x1≤0g5=-x2≤0初始点:x0=[1,5]T;3) f=1000- x12-2x2 2-x32-x1x2-x1x3g1=-x1≤0g2=-x2≤0g3=-x3≤0g4=x12+x22+x3 2-25=0g5=8x1+14x2+7x3-56=0初始点:x0=[2,2,2]T4)f=100(x2-x12)2+(1-x1)2+90(x4-x32)2+(1-x3)2+10[(x2-1)2+(x4-1)2]+19.8(x2-1)(x4-1)-10≤x1≤10-10≤x2≤10-10≤x3≤10-10≤0x4≤10初始点:x0=[-3,-1,-3,-1]T;四、M文件、在命令窗口输入的求解命令清单及计算结果记录>>1、(1)目标函数的M文件function f=fun1(x)f=x^2-10*x+36调用求解命令x0=0;options=optimset('LargeScale','off');lb=-10;ub=10;[x,fval]=fminbnd(@fun1,lb,ub,options)或{ x0=0; [x,fval]=fminbnd(@fun1,-10,10)} x =5.0000fval =11.00002、(2)目标函数的M文件function f=fun2(x)f=x^4-5*x^3+4*x^2-6*x+60调用求解命令x0=0;options=optimset('LargeScale','off');lb=0;ub=10;[x,fval]=fminbnd(@fun2,lb,ub,options)x =3.2796fval =22.65902、(3)目标函数的M文件function f=fun3(x)f=(x+1)*(x-2)^2调用求解命令> x0=0;options=optimset('LargeScale','off');lb=0;ub=10;[x,fval]=fminbnd(@fun3,lb,ub,options)x =2.0000fval =1.9953e-0113(1)目标函数的M文件function f=fun4(x)f=4*(x(1)-5)^2+(x(2)-6)^2调用求解命令x0=[8,9];options=optimset('LargeScale','off');[x,fval]=fminunc(@fun4,x0,options)Optimization terminated: relative infinity-norm of gradient less than options.TolFun. x =5.00006.0000fval =1.7876e-0123(2)目标函数的M文件function f=fun5(x)f=(x(1)^2+x(2)-11)^2+(x(1)+x(2)^2-7)^2调用求解命令>> x0=[1,1];options=optimset('LargeScale','off');[x,fval]=fminunc(@fun5,x0,options)Optimization terminated: relative infinity-norm of gradient less than options.TolFun. x =3.0000 2.0000fval =5.2125e-0123(3)目标函数的M文件function f=fun6(x)f=[1.5-x(1)*(1-x(2))]^2+[2.25-x(1)*(1-x(2)^2)]^2+[2.625-x(1)*(1-x(2)^3)]^2调用求解命令x0=[2,0.2];options=optimset('LargeScale','off');[x,fval]=fminunc(@fun6,x0,options)Optimization terminated: relative infinity-norm of gradient less than options.TolFun. x =3.0000 0.5000fval =3.9195e-0143(4)目标函数的M文件function f=fun7(x)f=(x(1)^2+12*x(2)-1)^2+(49*x(1)+49*x(2)+84*x(1)+2324*x(2)-681)^2调用求解命令x0=[1,1];options=optimset('LargeScale','off');[x,fval]=fminunc(@fun7,x0,options)Optimization terminated: relative infinity-norm of gradient less than options.TolFun. x =0.9570 0.2333fval =7.37643(5)目标函数的M文件function f=fun8(x)f=(x(1)+10*x(2))^2+5*(x(3)-x(4))^2+(x(2)-2*x(3))^4+10*(x(1)-x(4))^4调用求解命令>> x0=[3,-1,0,1];options=optimset('LargeScale','off');[x,fval]=fminunc(@fun8,x0,options)Optimization terminated: relative infinity-norm of gradient less than options.TolFun.x =0.0015 -0.0002 -0.0031 -0.0031fval =6.3890e-009三、3、(1)目标函数的M文件function f=fun9(x)f=(x(1)-2)^2+(x(2)-1)^2约束函数的M文件function [c,cep]=con1(x)c=[x(1)^2-x(2);x(1)+x(2)-2];cep=[]当前窗口条用求解命令x0=[3,3];options=optimset('LargeScale','off');[x,fval]=fmincon(@fun9,x0,[],[],[],[],[],[],@con1,options)Optimization terminated: first-order optimality measure less than options.TolFun and maximum constraint violation is less than options.TolCon.Active inequalities (to within options.TolCon = 1e-006):lower upper ineqlin ineqnonlin12x =1.0000 1.0000fval =1.00003、(2)目标函数的M文件function f=fun10(x)f=x(2)^3*[(x(1)-3)^2-9]/27*3^(1/2)约束函数的M文件function [c,cep]=con2(x)c=[x(2)-x(1)/3^(1/2);-x(1)+x(2)/3^(1/2);x(1)+x(2)/3^(1/2)-6];cep=[]当前窗口条用求解命令x0=[1,5];lb=[0,0];options=optimset('LargeScale','off');[x,fval]=fmincon(@fun10,x0,[],[],[],[],lb,ub,@con2,options)Optimization terminated: first-order optimality measure lessthan options.TolFun and maximum constraint violation is lessthan options.TolCon.Active inequalities (to within options.TolCon = 1e-006):lower upper ineqlin ineqnonlin13x =4.5000 2.5981fval =-7.59383、(3)目标函数的M文件function f=fun11(x)f=1000-x(1)^2-2*x(2)^2-x(3)^2-x(1)*x(2)-x(1)*x(3)约束函数的M文件function [c,cep]=con3(x)c=[];cep=[x(1)^2+x(2)^2+x(3)^2-25;8*x(1)+14*x(2)+7*x(3)-56];当前窗口条用求解命令x0=[2,2,2];lb=[0,0,0];ub=[];options=optimset('LargeScale','off');[x,fval]=fmincon(@fun11,x0,[],[],[],[],lb,ub,@con3,options)Optimization terminated: first-order optimality measure lessthan options.TolFun and maximum constraint violation is lessthan options.TolCon.No active inequalitiesx =3.5121 0.2170 3.5522fval =961.71523、(4)目标函数的M文件function f=fun12(x)f=100*(x(2)-x(1)^2)^2+(1-x(1))^2+90*(x(4)-x(3)^2)^2+(1-x(3))^2+10*[(x(2)-1) ^2+(x(4)-1)^2]+19.8*(x(2)-1)*(x(4)-1)约束函数的M文件function [c,cep]=con4(x)cep=[];当前窗口条用求解命令x0=[-3,-1,-3,-1,];lb=[-10,-10,-10,-10];ub=[10,10,10,10];options=optimset('LargeScale','off');[x,fval]=fmincon(@fun12,x0,[],[],[],[],lb,ub,@con4,options)Optimization terminated: Magnitude of directional derivative in searchdirection less than 2*options.TolFun and maximum constraint violationis less than options.TolCon.No active inequalitiesx =1.0001 1.0002 0.9999 0.9997fval =2.3989e-007五、质疑和建议对于一维标量优化问题搜索,在当前窗口中调用求解命令时,[x,fval]=fminbnd(@fun1,lb,ub,options)可以改成[x,fval]=fminbnd(@fun1,-10,10)如下:function f=fun1(x)f=x^2-10*x+36调用求解命令x0=0;options=optimset('LargeScale','off');lb=-10;ub=10;[x,fval]=fminbnd(@fun1,lb,ub,options)或{ x0=0; [x,fval]=fminbnd(@fun1,-10,10)}x =5.0000fval =11.0000。
《机械优化设计》课程实践报告
合肥工业大学《机械优化设计》课程实践研究报告班级:学号:姓名:授课教师:日期: 2016年 11月 12 日目录1。
λ=0。
618的证明、一维搜索程序作业2。
单位矩阵程序作业3. 注释最佳再现给定运动规律连杆机构优化设计问题模型子程序4. 连杆机构问题+自行选择小型机械设计问题或其他工程优化问题(1)分析优化对象,根据设计问题的要求,选择设计变量,确立约束条件,建立目标函数,建立优化设计的数学模型并编制问题程序;(2)选择适当的优化方法,简述方法原理,进行优化计算;(3)进行结果分析,并加以说明。
5。
课程实践心得体会1。
λ=0.618的证明、一维搜索程序作业1.1证明:a α1 α2 ba α3 α1 α2黄金分割法要求插入点α1,α2的位置相对于区间[a,b]两端点具有对称性,即α1=b-λ(b-a)α2=b+λ(b-a)其中λ为待定常数.除了对称要求外,黄金分割法还要求在保留下来的区间内再插入一点,所形成的新三段与原来区间的三段具有相同的比例分布,故有1-λ=λ2取方程正数解,得≈0.618λ=√5−121.2一维搜索C语言程序:(以正弦函数y=sinx为例)#include〈stdio.h>#include<math.h>int main(){double a,b,c=0。
618,x[3],y[3],d;printf(”请输入区间[a,b]的值以及精度:\n”);scanf(”%lf,%lf,%lf”,&a,&b,&d);x[1]=b—c*(b—a);x[2]=a+c*(b—a);y[1]=sin(x[1]);y[2]=sin(x[2]);do{ if(y[1]>y[2]){ a=x[1];x[1]=x[2];y[1]=y[2];x[2]=a+c*(b—a);y[2]=sin(x[2]);}else{ b=x[2];x[2]=x[1];y[2]=y[1];x[1]=b—c*(b—a);y[1]=sin(x[1]);}}while(fabs((b-a)/b)>d);x[0]=(a+b)/2;y[0]=sin(x[0]);printf("极小点x*=%lf\n”,x[0]);printf("极小值y=%lf\n”,y[0]);}C语言程序运行结果:2. 单位矩阵程序作业2。
机械优化设计上机实践报告【精编版】
机械优化设计上机实践报告【精编版】机械优化设计上机实践报告班级:机械(茅以升)101姓名:学号: 1004010510成绩:指导教师: 张迎辉日期: 2013.11.201 《一维搜索方法》上机实践报告1、写出所选择的一维搜索算法的基本过程、原理(可附流程图说明)。
(一)进退法1. 算法原理进退法是用来确定搜索区间(包含极小值点的区间)的算法,其理论依据是:()f x 为单谷函数(只有一个极值点),且[,]a b 为其极小值点的一个搜索区间,对于任意12,[,]x x a b ∈,如果()()12f x f x <,则2[,]a x 为极小值的搜索区间,如果()()12f x f x >,则1[,]x b 为极小值的搜索区间。
因此,在给定初始点0x ,及初始搜索步长h 的情况下,首先以初始步长向前搜索一步,计算()0f x h +。
(1) 如果()()00f x f x h <+则可知搜索区间为0[,]xx h +%,其中x %待求,为确定x %,后退一步计算0()f x h λ-,λ为缩小系数,且01λ<<,直接找到合适的*λ,使得()*00()f x h f x λ->,从而确定搜索区间*00[,]x h x h λ-+。
(2) 如果()()00f x f x h >+则可知搜索区间为0[,]x x %,其中x %待求,为确定x %,前进一步计算0()f x h λ+,λ为放大系数,且1λ>,知道找到合适的*λ,使得()*00()f x h f x h λ+<+,从而确定搜索区间*00[,]x x h λ+。
2. 算法步骤用进退法求一维无约束问题min (),f x x R ∈的搜索区间(包含极小值点的区间)的基本算法步骤如下:(1) 给定初始点(0)x ,初始步长0h ,令0h h =,(1)(0)x x =,0k =;(2) 令(4)(1)x x h =+,置1k k =+;(3) 若()()(4)(1)f x f x <,则转步骤(4),否则转步骤(5);(4) 令(2)(1)(1)(4),x x x x ==,()()(2)(1)f x f x =,()()(1)(4)f x f x =,令2h h =,转步骤(2);(5) 若1k =,则转步骤(6)否则转步骤(7);(6) 令h h =-,(2)(4)x x =,()()(2)(4)f x f x =,转步骤(2);(7) 令(3)(2)(2)(1)(1)(4),,x x x x x x ===,停止计算,极小值点包含于区间(1)(3)(3)(1)[,][,]x x x x 或(二)黄金分割法1、黄金分割法基本思路:黄金分割法适用于[a ,b]区间上的任何单股函数求极小值问题,对函数除要求“单谷”外不做其他要求,甚至可以不连续。
机械优化设计实验报告
机械优化设计实验报告机械优化设计实验报告引言机械优化设计是一门重要的工程学科,旨在通过优化设计方法,提高机械系统的性能和效率。
本实验旨在通过对某一机械系统的优化设计,探索并验证优化设计的有效性和可行性。
实验目的本实验的主要目的是通过对某一机械系统进行优化设计,提高其性能和效率。
具体而言,我们将通过改变材料、几何形状等参数,寻找最佳设计方案,并通过实验验证其优化效果。
实验方法1. 确定优化目标:首先,我们需要明确机械系统的优化目标,例如提高系统的强度、降低系统的重量等。
2. 确定设计变量:根据机械系统的特点,确定需要进行优化的设计变量,例如材料的选择、零件的几何形状等。
3. 建立数学模型:根据机械系统的结构和运行原理,建立数学模型,用于优化设计的计算和分析。
4. 优化设计:使用优化算法,例如遗传算法、粒子群算法等,对机械系统进行优化设计,得到最佳设计方案。
5. 实验验证:根据最佳设计方案,制作实际样品,并进行实验验证,比较实验结果与模型计算结果的一致性。
实验结果经过优化设计和实验验证,我们得到了以下结果:1. 材料优化:通过对不同材料的比较,我们发现材料A具有更好的强度和耐久性,因此在最佳设计方案中选择了材料A。
2. 几何形状优化:通过对不同几何形状的比较,我们发现几何形状B具有更好的流体动力学性能,因此在最佳设计方案中采用了几何形状B。
3. 性能提升:通过与原设计方案进行对比,我们发现最佳设计方案在强度和效率方面都有显著提升,验证了优化设计的有效性。
讨论与分析通过本实验,我们可以得出以下结论:1. 机械优化设计可以显著提高机械系统的性能和效率,为工程设计提供了有力的支持。
2. 优化设计需要综合考虑多个因素,如材料、几何形状等,以达到最佳设计效果。
3. 优化设计的结果需要通过实验验证,以确保其可行性和有效性。
结论本实验通过对某一机械系统的优化设计,验证了机械优化设计的有效性和可行性。
通过改变材料、几何形状等参数,我们成功提高了机械系统的性能和效率。
机械优化设计实验报告
一、实验目的本次实验旨在通过计算机编程,加深对机械优化设计方法的理解,掌握常用的优化算法,并能够利用计算机解决实际问题。
二、实验内容1. 黄金分割法(1)实验原理黄金分割法是一种常用的优化算法,适用于一元函数的极值求解。
其基本原理是:在给定初始区间内,通过迭代计算,逐步缩小搜索区间,直到满足收敛条件。
(2)实验步骤① 设计实验程序,实现黄金分割法的基本算法。
② 编写函数,用于计算一元函数的值。
③ 设置初始区间和收敛精度。
④ 迭代计算,更新搜索区间。
⑤ 判断是否满足收敛条件,若满足则输出结果,否则继续迭代。
(3)实验结果通过编程实现黄金分割法,求解函数f(x) = x^3 - 6x^2 + 9x + 1在区间[0, 10]内的极小值。
实验结果显示,该函数在区间[0, 10]内的极小值为1,且收敛精度达到0.001。
2. 牛顿法(1)实验原理牛顿法是一种求解非线性方程组的优化算法,其基本原理是:利用函数的导数信息,逐步逼近函数的极值点。
(2)实验步骤① 设计实验程序,实现牛顿法的基本算法。
② 编写函数,用于计算一元函数及其导数。
③ 设置初始值和收敛精度。
④ 迭代计算,更新函数的近似值。
⑤ 判断是否满足收敛条件,若满足则输出结果,否则继续迭代。
(3)实验结果通过编程实现牛顿法,求解函数f(x) = x^3 - 6x^2 + 9x + 1在区间[0, 10]内的极小值。
实验结果显示,该函数在区间[0, 10]内的极小值为1,且收敛精度达到0.001。
3. 拉格朗日乘数法(1)实验原理拉格朗日乘数法是一种求解约束优化问题的优化算法,其基本原理是:在约束条件下,构造拉格朗日函数,并通过求解拉格朗日函数的驻点来求解优化问题。
(2)实验步骤① 设计实验程序,实现拉格朗日乘数法的基本算法。
② 编写函数,用于计算目标函数、约束函数及其导数。
③ 设置初始值和收敛精度。
④ 迭代计算,更新拉格朗日乘数和约束变量的近似值。
机械优化设计上机实践报告
机械优化设计上机实践报告本次机械优化设计上机实践报告是由学生在机械专业课程的学习中所完成的一项任务,旨在通过实践操作提高学生的机械设计和优化能力。
本次实践任务分为两个部分,第一部分是机械零件的设计,第二部分是该零件的优化设计。
一、机械零件设计在机械零件设计的部分,我们需要使用软件来实现。
首先,我们需要通过建立一个零部件的三维模型,然后通过在模型上进行绘制,来完成机械零件的设计。
在实践过程中,我们学习了许多机械零件设计的基本操作。
比如,怎样用不同的工具来创建不同的几何形状的零件。
同时我们还学习了常用的切削工具和块状建模工具。
这些工具让我们能够在短时间内完成复杂的机械零件的建模操作。
我们也学会了如何使用装配工具,通过将不同的零部件组合成装配体,从而使业主更直观地看到最终的产品形态。
二、机械优化设计经过机械零件设计的部分后,我们就开始了机械零件的优化设计。
因为在设计过程中,我们不仅需要考虑性能问题,还要考虑到材料成本和制造工艺等实际因素。
机械优化设计就是在保证零部件符合需要的功能的前提下,通过对材料和几何形状的优化,提高了零部件的机械性能和制造效率。
在实践过程中,我们首先需要了解机械零件的功能和作用,然后参考相关的设计标准和规范,确定重点优化对象。
我们还需要收集和分析机械零件在使用中的各种受力情况,然后确定机械零件的性能参数和指标,然后对机械零件的机械性能和材料利用率进行计算和分析。
经过机械优化设计的部分后,我们已经对完成的机械零件进行了大量的优化操作。
我们优化了零部件的材料选取、几何形状、工艺流程等方面,使机械零件的机械性能得到进一步提升,同时也降低了制造成本,实现了性价比的优化。
总结通过本次机械优化设计研讨实践,我们更好地理解和掌握了机械零件的设计和优化方法。
我们学会了如何使用专业设计软件,更好地了解了机械零件的实际构造和特性。
我们也学会了机械优化设计的思维方式,明确了优化设计需要考虑的各方面因素,能够更好地满足机械零件使用的实际要求。
(完整word版)机械优化设计实验报告(word文档良心出品)
《机械优化设计》实验报告目录1.进退法确定初始区间 (3)1.1 进退法基本思路 (3)1.2 进退法程序框图 (3)1.3 题目 (3)1.4 源程序代码及运行结果 (3)2.黄金分割法 (4)2.2黄金分割法流程图 (4)2.3 题目 (5)2.4 源程序代码及结果 (5)3.牛顿型法 (5)3.1牛顿型法基本思路 (6)3.2 阻尼牛顿法的流程图 (6)3.3 题目 (6)3.4 源程序代码及结果 (6)4.鲍威尔法 (7)4.1 鲍威尔法基本思路 (7)4.2 鲍威尔法流程图 (7)4.3 题目 (8)4.4 源程序代码及结果 (8)5. 复合形法 (15)5.1 复合行法基本思想 (15)5.3 源程序代码及结果 (15)6. 外点惩罚函数法 (23)6.1解题思路: (23)6.2 流程框图 (23)6.3 题目 (23)6.4 源程序代码及结果 (23)7.机械设计实际问题分析 (29)7.2计算过程如下 (29)7.3 源程序编写 (30)8.报告总结 (32)1.进退法确定初始区间1.1 进退法基本思路:按照一定的规则试算若干个点,比较其函数值的大小,直至找到函数值按“高-低-高”变化的单峰区间。
1.2 进退法程序框图1.3 题目:用进退法求解函数()2710=-+的搜索区间f x x x1.4 源程序代码及运行结果#include <stdio.h>#include <math.h>main(){float h,h0,y1,y2,y3,a1=0,a2,a3,fa2,fa3;scanf("h0=%f,y1=%f",&h0,&y1);h=h0;a2=h;y2=a2*a2-7*a2+10;if (y2>y1){h=-h;a3=a1;y3=y1;loop:a1=a2;y1=y2;a2=a3;y2=y3;}a3=a2+2*h;y3=a3*a3-7*a3+10;if (y3<y2){goto loop;}elseprintf("a1=%f,a2=%f,a3=%f,y1=%f,y2=%f,y3=%f\n",a1,a2,a3,y1,y2,y3);} 搜索区间为0 62.黄金分割法2.1黄金分割法基本思路:通过不断的缩短单峰区间的长度来搜索极小点的一种有效方法。
《机械优化设计》课程实践报告
《机械优化设计》课程实践报告(课程实践报告封⾯模版)合肥⼯业⼤学《机械优化设计》课程实践研究报告班级:机设10 -04学号: 20100495姓名:李健授课⽼师:王卫荣⽇期: 2012年⽉⽇⽬录⼀主要内容1、⼀维搜索程序作业A.λ = 0.618的证明 (1)B.编写⽤0.618法求函数极⼩值的程序 (2)2、单位矩阵程序作业 (4)3、其他⼯程优化问题 (9)4连杆机构问题 (12)⼆实践⼼得体会 (15)⼀: 主要内容1. ⼀维搜索程序作业:A.λ = 0.618的证明 (y2 > y1)证明: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法的程序框图如下:B.编写⽤0.618法求函数极⼩值的程序例:(1)a=0 ,b=2π,f(x)=cox(x)(2)a=0 ,b=10, f(x)=(x-2)2+3(1)#include#includevoid main(void){int i;float a1,a2,aa,y1,y2,ymin,e;float a=0,b=2*3.14159,n=0.618;a1=b-n*(b-a);a2=a+n*(b-a);print(“输⼊精度:”);scanf(“%f”,&e);for(i=0;i=10000;i=i++){y1=cos(a1);y2=cos(a2);if(y1{a=a1;a1=a2;a2=a+n*(b-a);}If(y1b=a2;a2=a1;a1=b-n*(b-a);}if(fabs(b-a)/b{aa=(a+b)/2;ymin=cos(aa);printf(“x=%7.4f\tf(x)=%7.4f\n”),aa,ymin); break;}}}运⾏结果:(2)#include#includevoid main(void){int i;float a1,a2,aa,y1,y2,ymin,e; float a=0,b=10,n=0.618;a1=b-n*(b-a);a2=a+n*(b-a);print(“输⼊精度:”);scanf(“%f”,&e);for(i=0;i=10000;i=i++){y1=(a1-2)*(a1-2)+3; y2=(a2-2)*(a2-2)+3; if(y1>=y2){a=a1;a1=a2;a2=a+n*(b-a);}If(y1b=a2;a2=a1;a1=b-n*(b-a);}if(fabs(b-a)/b{aa=(a+b)/2;ymin=(aa-2)*(aa-2)+3;printf(“x=%6.3f\tf(x)=%6.3f\n”),aa,ymin); break;}}}运⾏结果:2.单位矩阵程序作业编写⽣成单位矩阵的程序程序⽂本#includevoid main(void){int a[100][100];int N,i,j;printf("请输⼊所要输出矩阵的阶数(最多100阶):"); scanf("%d",&N);printf("输出的矩阵阶数为%d\n",N);printf(" N "); /*****制作表头*****/ for(i=0;iprintf("%3d",i+1);printf("\n");for(i=0;iprintf("---"); /*****分割线*****/ 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;iprintf("%2d:",i+1); /*****纵列序号*****/for(j=0;j{printf("%3d",a[i][j]);}printf("\n");}}结果显⽰从键盘输⼊9,显⽰9阶单位矩阵,结果如下3. 其他⼯程优化问题有⼀箱形盖板,已知长度L=600mm ,宽度b=60mm ,厚度t s =0.5mm 承受最⼤单位载荷q=60N/cm ,设箱形盖板的材料为铝合⾦,其弹性模量MPa E 4107?=,泊松⽐3.0=µ,许⽤弯曲应⼒[]MPa 70=σ,许⽤剪应⼒[]MPa 45=τ,要求在满⾜强度、刚度和稳定性条件下,设计重量最轻的结构⽅案。
《机械优化设计》课程实践报告 合肥工业大学王卫荣
《机械优化设计》课程实践报告合肥工业大学王卫荣研究报告要求及格式模版合肥工业大学《机械优化设计》课程实践研究报告班级:机械设计制造及其自动化班学号:姓名:授课老师:王卫荣日期:201 年月日一、研究报告内容:1、λ=0.618的证明、一维搜索程序作业;2、单位矩阵程序作业;3、连杆机构问题+自行选择小型机械设计问题或其他工程优化问题;(1)分析优化对象,根据设计问题的要求,选择设计变量,确立约束条件,建立目标函数,建立优化设计的数学模型并编制问题程序;(2)选择适当的优化方法,简述方法原理,进行优化计算;(3)进行结果分析,并加以说明。
4、写出课程实践心得体会,附列程序文本。
5、为响应学校2021年度教学工作会议的改革要求,探索新的课程考核评价方法,特探索性设立一开放式考核项目,占总成绩的5%。
试用您自己认为合适的方式(书面)表达您在本门课程学习方面的努力、进步与收获。
(考评将重点关注您的独创性、简洁性与可验证性)。
二、研究报告要求1、报告命名规则:学号-姓名-《机械优化设计》课程实践报告.doc2、报告提交邮址:weirongw@(收到回复,可视为提交成功)。
追求:问题的工程性,格式的完美性,报告的完整性。
不追求:问题的复杂性,方法的惟一性。
评判准则:独一是好,先交为好;切勿拷贝。
目录第1章一维搜索程序―――― ―― ―― ―― ―― ―― ―― 1第2章单位矩阵程序―― ―― ―― ―― ―― ―― ―― ―― 8第3章机械优化设计工程实例―― ―― ―― ―― ―― ―― 103.1 连杆机构―― ―― ―― ―― ―― ―― ―― ―― ―― ―― 103.2 自选工程―― ―― ―― ―― ―― ―― ―― ―― ―― ―― 15第4章心得体会―― ―― ―― ―― ―― ―― ―― ―― ―― 19第五章开放式考核―― ―― ―― ―― ―― ―― ―― ―― ――20第 1 章一维搜索1.1一维搜索程序作业描述本章节主要内容为一维搜索方法,主要完成以下两个问题:① 证明0.618法;② 编制用0.618法求函数极小值的程序。
机械设计实践报告(2篇)
第1篇一、引言机械设计是工程技术领域的重要组成部分,它涉及到对机械设备进行创新、优化和改进,以满足生产和生活的需求。
为了提高自己的机械设计能力,我参加了本次机械设计实践课程。
通过实际操作和理论学习,我对机械设计有了更深入的了解,现将实践过程及心得体会总结如下。
二、实践内容本次实践课程主要分为以下几个部分:1. 机械设计原理与基础通过学习机械设计原理与基础,我了解了机械设计的概念、发展历程、设计方法以及机械设计的基本要求。
同时,学习了机械运动学、动力学、材料力学等基础知识,为后续的实践奠定了理论基础。
2. 机械制图与CAD软件应用机械制图是机械设计的重要环节,通过学习机械制图的基本知识和技能,我能够熟练地绘制出机械设备的结构图、装配图等。
此外,还学习了CAD软件(如AutoCAD、SolidWorks等)的应用,提高了绘图效率。
3. 机械设计实例分析通过对实际机械设备的分析,了解其结构、工作原理和性能特点。
例如,分析汽车发动机、机床、机器人等设备,学习其设计方法和设计理念。
4. 机械设计实践在实践环节,我选择了设计一个简易的机械臂。
首先,根据设计要求,进行需求分析,确定机械臂的结构和功能。
然后,进行运动学、动力学分析,确定各部件的尺寸和参数。
最后,运用CAD软件绘制出机械臂的装配图和零件图。
三、实践过程及心得体会1. 理论与实践相结合本次实践课程使我深刻体会到理论与实践相结合的重要性。
在学习机械设计原理与基础时,通过实际操作和案例分析,使我对理论知识有了更深入的理解。
2. 沟通与协作在实践过程中,我意识到团队协作和沟通的重要性。
在设计简易机械臂的过程中,我与团队成员密切配合,共同解决问题,最终完成了设计任务。
3. 创新意识机械设计是一个不断发展的领域,创新是推动其发展的关键。
在实践过程中,我努力发挥自己的创新意识,对设计方案进行优化,提高机械臂的性能。
4. 实践经验积累通过本次实践,我积累了丰富的机械设计经验。
机械优化设计上机实践报告
机械优化设计上机实践报告1. 引言机械优化设计是利用计算机辅助设计与优化方法,对机械结构进行改进和优化,以提高机械设计的性能和效率。
本实践报告基于团队在机械优化设计课程中的上机实践,探讨了机械优化设计的基本原理、方法和实践过程,并对优化后的设计进行了验证和评估。
2. 方法与流程2.1 问题定义本实践中,我们选择了一个简化的机械结构问题:求解一根长度为L的钢杆在两个支点上的最大挠度。
这个问题可以抽象为一个优化问题:寻找一个合适的杆件横截面形状,使得钢杆的挠度最小。
2.2 初始设计我们首先需要设计一个初始杆件形状作为优化的起点。
根据经验和初步分析,我们选择了一个圆形横截面作为初始设计。
通过计算机辅助设计软件绘制出了该初始设计的三维模型,并进行了有限元分析,得到了初始设计的挠度。
2.3 优化算法为了寻找更优的杆件形状,我们采用了一种遗传算法作为优化方法。
遗传算法模拟了自然界中的进化过程,通过选择、交叉和变异等操作对初始设计进行优化。
具体的算法流程如下:1.初始化种群:随机生成一定数量的个体作为种群。
2.评估适应度:利用有限元分析对每个个体进行挠度计算,并评估其适应度。
3.选择操作:根据适应度选择一部分个体作为父代,用于繁殖下一代。
4.交叉操作:对选中的父代进行交叉操作,产生新的个体。
5.变异操作:对新产生的个体进行变异操作,引入新的基因。
6.更新种群:用新产生的个体替换原有种群中的部分个体。
7.终止条件判断:如果满足终止条件,则结束优化过程;否则返回第2步。
2.4 优化结果与分析经过多轮迭代,我们得到了优化后的设计结果。
通过有限元分析对优化后的设计进行挠度计算,发现挠度明显减小。
此外,我们还对优化前后的设计进行了对比测试,结果显示优化后的设计在挠度方面有明显的改进。
3. 结果与讨论本次机械优化设计实践取得了良好的效果。
通过遗传算法优化,我们成功改进了钢杆的横截面形状,使得其挠度显著减小。
这表明机械优化设计在提高机械结构性能方面具有很大的潜力。
机械优化实验报告
一、实验目的本次实验旨在加深对机械优化设计方法的基本理论和算法步骤的理解,培养学生独立编制、调试计算机程序的能力,并掌握常用优化方法程序的使用方法。
通过实验,学生能够灵活运用优化设计方法解决工程实际问题。
二、实验内容本次实验主要涉及以下内容:1. 优化方法的基本原理2. 编程实现优化方法3. 优化方法的实际应用三、实验步骤1. 黄金分割法(1)基本原理黄金分割法是一种在给定初始区间内搜索极小点的一维搜索方法。
其基本原理是:在区间内取两个点,根据函数值的比较,将区间分为三段,保留包含极小值的段,再进行相同的操作,逐步缩小搜索区间。
(2)编程实现根据黄金分割法的基本原理,编写相应的C语言程序,实现一维搜索。
```c#include <stdio.h>#include <math.h>double f(double x) {// 定义目标函数return x x - 4 x + 4;}double golden_section_search(double a, double b, double tol) {double r = 0.618;double a1 = a + r (b - a); double a2 = b - r (b - a); double fa1 = f(a1);double fa2 = f(a2);while (fabs(b - a) > tol) { if (fa1 > fa2) {a = a1;a1 = a2;a2 = b - r (b - a); fa1 = fa2;fa2 = f(a2);} else {b = a2;a2 = a1;a1 = a + r (b - a); fa2 = fa1;fa1 = f(a1);}}return (a + b) / 2;}int main() {double x_min = golden_section_search(a, b, tol);printf("Optimal solution: x = %f\n", x_min);return 0;}```(3)结果分析通过运行程序,可以得到最优解 x = 2.000000,目标函数值为 f(x) = 0。
机械优化设计报告
机械优化设计上机实验报告班级:05021004人员:马春曹旭南咪咪吕进龙李鸿飞王建华日期:2013年5月一 进退法1.1算法的原理进退法是用来确定搜索区间(包含极小值点的区间)的算法,其理论依据是:()f x 为单谷函数(只有一个极值点),且[,]a b 为其极小值点的一个搜索区间,对于任意12,[,]x x a b ∈,如果()()12f x f x <,则2[,]a x 为极小值的搜索区间,如果()()12f x f x >,则1[,]x b 为极小值的搜索区间。
因此,在给定初始点0x ,及初始搜索步长h 的情况下,首先以初始步长向前搜索一步,计算()0f x h +。
(1) 如果()()00f x f x h <+则可知搜索区间为0[,]x x h +,其中x 待求,为确定x ,后退一步计算0()f x h λ-,λ为缩小系数,且01λ<<,直接找到合适的*λ,使得()*00()f x h f x λ->,从而确定搜索区间*00[,]x h x h λ-+。
(2) 如果()()00f x f x h >+则可知搜索区间为0[,]x x ,其中x 待求,为确定x ,前进一步计算0()f x h λ+,λ为放大系数,且1λ>,知道找到合适的*λ,使得()*00()f x h f x h λ+<+,从而确定搜索区间*00[,]x x h λ+。
进退法流程图:1.2算法特点从初始点开始一出事步长向前试探,如果函数值上升,则步长变号,机改变试探方向。
如果函数值下降,则维持原来的试探方向,并将步长加倍。
区间的始点、中间点一次沿试探方向移动一步。
此过程以自己进行到函数值再次上升位置,既可找到搜索区间的终点。
最后大额到的三个点纪委搜索区间的始点、中间点和终点,形成函数值得“高-低-高”趋势,1.3算法的改进及建议由于解析过程中没有精度的要求,所以解析的精度比较差,只能确定一个比较理想的最优解区间,仅仅能够作为求职最优解的参考,所以希望通过进一步的完善来实现精度的提高并且能够求得较为满意的最优解。
机械优化设计实验报告
机械优化设计实验报告文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)《机械优化设计》实验报告目录1.进退法确定初始区间进退法基本思路:按照一定的规则试算若干个点,比较其函数值的大小,直至找到函数值按“高-低-高”变化的单峰区间。
进退法程序框图题目:用进退法求解函数()2710=-+的搜索区间f x x x源程序代码及运行结果#include <>#include <>main(){float h,h0,y1,y2,y3,a1=0,a2,a3,fa2,fa3;scanf("h0=%f,y1=%f",&h0,&y1);h=h0;a2=h;y2=a2*a2-7*a2+10;if (y2>y1){h=-h;a3=a1;y3=y1;loop:a1=a2;y1=y2;a2=a3;y2=y3;}a3=a2+2*h;y3=a3*a3-7*a3+10;if (y3<y2){goto loop;}elseprintf("a1=%f,a2=%f,a3=%f,y1=%f,y2=%f,y3=%f\n",a1,a2,a3,y1,y2,y3);} 搜索区间为0 62.黄金分割法黄金分割法基本思路:通过不断的缩短单峰区间的长度来搜索极小点的一种有效方法。
按λ(618.0=λ) 缩小 比较)(x f 大小 确定取舍区间。
黄金分割法流程图题目:对函数()279f x x x =-+,给定搜索区间08x ≤≤时,试用黄金分割法求极小点源程序代码及结果:f=inline('x^2-7*x+9')a=0;b=8;eps=;a1=*(b-a);y1=f(a1);a2=a+*(b-a);y2=f(a2);while (abs(b-a)>eps)if(y1>=y2)a=a1;a1=a2;y1=y2;a2=a+*(b-a);y2=f(a2);elseb=a2;a2=a1;y2=y1; a1=*(b-a);y1=f(a1);endendxxx=*(a+b)f =Inline function:f(x) = x^2-7*x+9xxx =3.牛顿型法牛顿型法基本思路:在k x邻域内用一个二次函数()xφ来近似代替原目标函数,并将()xφ的极小点作为对目标函数()f x求优的下一个迭代点1k x+。
合工大机械优化设计课程实践报告
合肥工业大学《机械优化设计》课程实践研究报告班级:机械设计制造及其自动化12-3班学号:姓名:授课教师:***日期: 2015年 11 月 14 日目录一、一维搜索程序作业 (3)1.λ=0.618的证明 (3)2.编写0.618法程序并计算 (4)二、单位矩阵程序作业 (6)三、连杆机构问题和自选工程优化问题 (7)1.连杆机构问题 (7)2.自选工程优化问题 (14)四、课程实践心得体会 (18)一、一维搜索程序作业1.λ=0.618的证明黄金分割法,又称作0.618法,适用于 [a,b] 区间上的任何单谷函数求极小值问题。
黄金分割法是建立在区间消去法原理基础上的试探方法,即在搜索区间 [a,b] 内适当插入两点α1、α2,并计算其函数值。
α1、α2 将区间分成三段。
应用函数的单谷性质,通过函数值大小的比较,删去其中一段,使搜索区间得以缩短。
然后再在保留下来的区间上做同样的位置,如此迭代下去,使搜索区间无限缩小,从而得到极小点的数值近似值。
黄金分割法要求插入点α1、α2 的位置相对于区间 [a,b] 两端点具有对称性,即图 1-1 黄金分割法α1 = b –λ ( b – a )α2 = a + λ( b – a ) (3-1)其中,λ为待定常数。
下面证明λ = 0.618。
除对称性要求外,黄金分割法还要求保留下来的区间内再插入一点所形成的区间新三段,与原来区间的三段具有相同的比例分布。
设原有区间 [a,b] 长度为1如图1-1 所示,保留下来的区间 [a,b] 长度为λ,区间缩短率为λ。
为了保持相同的比例分布,新插入点α3应在λ( 1 –λ) 位置上,α1在元区间的1 –λ位置应相当于在保留区间的λ²位置。
故有1 –λ = λ²即λ² + λ– 1 = 0取方程正数解得若保留下来的区间为 [α1,b] ,根据插入点的对称性,也能推得同样的λ的值。
2.编写0.618法程序并计算(1)0.618法程序:#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("\min=");scanf("%f",&a); %输入函数下限% printf("\max=");scanf("%f",&b); %输入函数上限% float t1,t2,t,f1,f2,min;printf("eps=");scanf("%f",&eps); %输入精度%while((b-a)/b>=eps){ t1=a+(1-m)*(b-a);t2=a+m*(b-a);f1=fun(t1);f2=fun(t2);if(f1>=f2){ a=t1;t1=t2;f1=f2;t2=a+m*(b-a);f2=fun(t2); }else{ b=t2;t2=t1;f2=f1;t1=a+(1-m)*(b-a);f1=fun(t1);}}t=(a+b)/2;min=fun(t);printf("最优点t=%f\n",t); %输出最优点t% printf("最优值f= %f\n",min);} %输出最优值f%(2)计算:1.a=0,b=2π,Y= cos(t)2.a=0,b=10,y=(t-2)*(t-2)+3二、单位矩阵程序作业编写生成单位矩阵的程序:程序文本#include <stdio.h>void main(void){int a[100][100];int N,i,j;printf("请输入所要输出矩阵的阶数(最多100阶):");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");}}结果显示从键盘输入9,显示9阶单位矩阵,结果如下三、连杆机构问题和自选工程优化问题1.连杆机构问题:问题描述:图1现优化一曲柄连杆机构,如图1所示,已知曲柄长度L1为44mm,机架长度L4为220mm,,要求当曲柄的转角在[φ0,φ0+π/2 ]时,对应的摇杆的输出角为Ψi,且两者满足对应函数关系Ψi=Ψ0+ ( φ0 - φi )2,φ0和Ψ0分别对应于四连杆在初始位置时曲柄和摇杆的位置角。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
合肥工业大学《机械优化设计》课程实践研究报告班级:学号:姓名:授课教师:日期: 2016年 11月 12日目录1. λ=0.618的证明、一维搜索程序作业2. 单位矩阵程序作业3. 注释最佳再现给定运动规律连杆机构优化设计问题模型子程序4. 连杆机构问题+自行选择小型机械设计问题或其他工程优化问题(1)分析优化对象,根据设计问题的要求,选择设计变量,确立约束条件,建立目标函数,建立优化设计的数学模型并编制问题程序;(2)选择适当的优化方法,简述方法原理,进行优化计算;(3)进行结果分析,并加以说明。
5. 课程实践心得体会1. λ=0.618的证明、一维搜索程序作业1.1证明:a α1 α2 baα3 α1 α2黄金分割法要求插入点α1,α2的位置相对于区间[a,b]两端点具有对称性,即α1=b-λ(b-a)α2=b+λ(b-a)其中λ为待定常数。
除了对称要求外,黄金分割法还要求在保留下来的区间内再插入一点,所形成的新三段与原来区间的三段具有相同的比例分布,故有1-λ=λ2取方程正数解,得λ=5−12≈0.6181.2一维搜索C语言程序:(以正弦函数y=sinx为例)#include<stdio.h>#include<math.h>int main(){doublea,b,c=0.618,x[3],y[3],d;printf("请输入区间[a,b]的值以及精度:\n");scanf("%lf,%lf,%lf",&a,&b,&d);x[1]=b-c*(b-a);x[2]=a+c*(b-a);y[1]=sin(x[1]);y[2]=sin(x[2]);do{ if(y[1]>y[2]){ a=x[1];x[1]=x[2];y[1]=y[2];x[2]=a+c*(b-a);y[2]=sin(x[2]);}else{ b=x[2];x[2]=x[1];y[2]=y[1];x[1]=b-c*(b-a);y[1]=sin(x[1]);}}while(fabs((b-a)/b)>d);x[0]=(a+b)/2;y[0]=sin(x[0]);printf("极小点x*=%lf\n",x[0]);printf("极小值y=%lf\n",y[0]);}C语言程序运行结果:2. 单位矩阵程序作业2.1C语言程序:#include<stdio.h>int main(){inti,j,N,y;printf("请输入单位矩阵阶数 N: ");scanf("%d",&N);for (i=1;i<=N;i++)for (j=1;j<=N;j++){if (i==j)y=1;elsey=0;printf("%d ",y);if (j==N)printf("\n");}}C语言程序运行结果:2.2matlab程序:clc;clear all;N=input('请输入单位矩阵阶数 N:');eye(N)matlab程序运行结果:3.请解读注释以下最佳再现给定运动规律连杆机构优化设计问题模型子程序(FORTRAN语言)C 连杆机构问题函数子程序C 目标函数==============SUBROUTINE FFX(N,X,FX);计算X点的目标函数值的子程序C ======================DIMENSION X(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);将考察范围输入角30等分后每一份的值FX=0.0;连加先置0DO 10 K=0,30;循环程序入口,循环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) THENQI=3.1415926-AL-BT ;输入角在0到pi 的实际输出角 ELSEQI=3.1415926-AL+BT ;输入角在大于pi 的实际输出角 ENDIFIF(K.NE.0 .OR. k.NE.30) THENFX=FX+(QI-QE)**2*T ;数值积分的非首点,非末点 ELSEFX=FX+(QI-QE)**2*T/2.0;数值积分的首端点,末端点 ENDIF 10 CONTINUE ENDC 不等约束================= SUBROUTINE GGX(N,KG,X,GX);计算X 点的KG 个GX 的值的子程序 C ========================= DIMENSION X(N),GX(KG) GX(1)=1.0-X(1);L1<=L2 GX(2)=1.0-X(2);L1<=L3 GX(3)=1.0-5.0;L1<=L4 GX(4)=(1.0+X(1))-(X(2)+5.0);(L1+L2)<=(L3+L4) GX(5)=(1.0+X(2))-(X(1)+5.0);(L1+L3)<=(L2+L4) GX(6)=(1.0+5.0)-(X(1)+X(2));(L1+L4)<=(L3+L2) GX(7)=-(1.4142*X(1)*X(2)-X(1)**2-X(2)**2)-16.0;大于最小传动角 GX(8)=-(X(1)**2+X(2)**2+1.4142*X(1)*X(2))+36.0;小于最大传动角 ENDC 等式约束================= SUBROUTINE HHX(N,KH,X,HX);计算X 点的KH 个HX 的值的子程序 C ========================= DIMENSION X(N),HX(KH) X(1)=X(1);虚写一句 END4. 连杆机构问题+自选问题4.1连杆机构问题设计一曲柄摇杆机构,要求曲柄1l 从0ϕ转到m ϕ=0ϕ+090时,摇杆3l 的转角最佳再现已知的运动规律:E ψ=0ψ+π2320)(ϕϕ-且已知1l =1,4l =5,0ϕ为极位角,其传动角允许在50°≤γ≤120°范围内变化。
图.曲柄摇杆机构(1)设计变量已知1l =1,4l =5且0ϕ和0ψ不是独立参数,0ϕ=arccos ⎥⎦⎤⎢⎣⎡++-+)1(1025)122322l l l (0ψ=arccos ⎥⎦⎤⎢⎣⎡--+323221025)1(l l l所以还问题只有两个独立参数2l 和3l ,因此设计变量为X=Tx x ],[21=T 32],[l l(2)目标函数将输入角分成30等分,得目标函数的表达式()()()[]∑=---=30112i i i Ei i x f ϕϕψψ式中i ψ——当i ϕϕ=时的机构实际输出角,其计算公式为i ψ=i i βαπ-- 式中:i α=arccos ⎪⎪⎭⎫ ⎝⎛-+3222322l r l l r i i =arccos ⎪⎪⎭⎫⎝⎛-+2212222x r x x r i i i β= arccos ⎪⎪⎭⎫ ⎝⎛-+4212422l r l l r i i =arccos ⎪⎪⎭⎫⎝⎛+i i r r 10242i r =()21412421cos 2i l l l lϕ-+=()21cos 1026i ϕ-Ei ψ为当i ϕϕ=时的理想输出角,其值由下式计算Ei ψ=0ψ+20)(32ϕϕπ-i(3)约束条件由曲柄存在条件和传动角条件可得约束条件为:0)(11≤-=x x g 0)(22≤-=x x g06)(213≤--=x x x g 04)(214≤--=x x x g04)(125≤--=x x x g016414.1)(2122216≤--+=x x x x x g()0414.1362122217≤---=x x x x x g(4)数据输入(5)结果4.2自选问题要制作500套钢筋,每套钢筋由3.5m,3.0 m和1.6m三种不同长度的钢筋各一根组成,它们的材质和直径均相同。
目前在市场上采购到的同类钢筋的长度每根均为8.0 m,问应购进多少根才能满足需要?下料方案:方式一方式二方式三方式四方式五方式六3.5m 2 1 1 0 0 03.0m 0 1 0 2 1 01.6m 0 0 2 1 3 5设方式1-6次数分别采用了x1,x2,x3,x4,x5,x6次,则min(x1+x2+x3+x4+x5+x6 )s.t. g1(x)=500-2x1-x2-x3<=0g2(x)=500-x2-2x4-x5<=0g3(x)=500-2x3-x4-3x5-5x6<=0g4(x)=-x1<=0g5(x)=-x2<=0g6(x)=-x3<=0g7(x)=-x4<=0g8(x)=-x5<=0g9(x)=-x6<=0matlab整数线性规划程序:clcclear allf=[1,1,1,1,1,1]; %目标函数系数A=[-2 -1 -1 0 0 0;0 -1 0 -2 -1 0;0 0 -2 -1 -3 -5];%约束不等式系数b=[-500;-500;-500];lb=zeros(6,1); %变量下限为0intcon = 6;[x,fval]=intlinprog(f,intcon,A,b,[],[],lb)结果:因此,至少需要550根才能满足需要,切割方案为250次方式一,250次方式四,50次方式六。
5. 课程实践心得体会机械优化设计是适应生产现代化要求发展起来的,是一门崭新的学科。
它是在现代机械设计理论的基础上提出的一种更科学的设计方法,它可使机械产品的设计质量达到更高的要求。
因此,在加强现代机械设计理论研究的同时,还要进一步加强最优设计数学模型的研究,以便在近代数学、力学和物理学的新成就基础上,使其更能反映客观实际。