基于遗传算法的四杆机构可视化优化设计论文本科论文.docx
《基于遗传算法的四杆机构可视化优化设计论文本科论文.docx》由会员分享,可在线阅读,更多相关《基于遗传算法的四杆机构可视化优化设计论文本科论文.docx(11页珍藏版)》请在冰豆网上搜索。
基于遗传算法的四杆机构可视化优化设计论文本科论文
1前言
本次毕业设计是在学完大学四年的基础知识和专业知识,进行了一系列的生产实习和以前各次课程设计的基础上进行的一次综合性的大总结。
旨在培养我们综合运用所学的基础知识、专业知识去分析和解决生产实际问题的能力及培养正确的设计思想,并通过运用设计软件、计算软件、和查阅有关技术资料去进行理论结构思考、编写软件、写相关说明性材料,培养我们机械设计的基本技能和工程设计工作者的基本素质,为我们走上工作岗位打下坚实的基础。
1.12四杆机构概述
连杆机构构件运动形式多样,如可实现转动、摆动、移动和平面或空间复杂运动,从而可用于实现已知运动规律和已知轨迹。
此外,低副面接触的结构使连杆机构具有以下一些优点:
运动副单位面积所受压力较小,且面接触便于润滑,故磨损减小;制造方便,易获得较高的精度;两构件之间的接触是靠本身的几何封闭来维系的,它不象凸轮机构有时需利用弹簧等力封闭来保持接触。
因此,平面连杆机构广泛应用于各种机械、仪表和机电产品中。
平面连杆机构的缺点是:
一般情况下,只能近似实现给定的运动规律或运动轨迹,且设计较为复杂;当给定的运动要求较多或较复杂时,需要的构件数和运动副数往往较多,这样就使机构结构复杂,工作效率降低,不仅发生自锁的可能性增加,而且机构运动规律对制造、安装误差的敏感性增加;机构中作复杂运动和作往复运动的构件所产生的惯性力难以平衡,在高速时将引起较大的振动和动载荷,故连杆机构常用于速度较低的场合。
近年来,随着连杆机构设计方法的发展,电子计算机的普及应用以及有关设计软件的开发,连杆机构的设计速度和设计精度有了较大的提高,而且在满足运动学要求的同时,还可考虑到动力学特性。
尤其是微电子技术及自动控制技术的引入,多自由度连杆机构的采用,使连杆机构的结构和设计大为简化,使用范围更为广泛。
2.1连杆机构的组成和分类
连杆机构是用转动副和移动副将构件相互连接而成的机构,以实现运动变换和动力传递。
按构件间相对运动的性质不同可分为:
空间连杆机构----各构件间的相对运动不在同一平面
平面连杆机构----各构件间的相对运动均在同一平面或相互平行的平面内
2.2铰链四杆机构
如图所示
AD----机架(固定不动)
AB、CD----连架杆(与机架相连的杆件)
BC----连杆(机架相对的杆件)
1.24.1遗传算法
遗传算法(geneticalgorithm)是模拟生物自然进化过程的进化算法(evolutionaryalgorithm)中一个重要的领域,它已经被广泛地应用于自动控制,机器学习,模式识别,图形处理,人工神经网络,优化调度,经济预测,通信网络和函数优化等各个领域。
遗传优化算法作为一种新的全局优化搜索算法,以其简单方便,高效实用,鲁棒性强,适用于并行处理的特点在求解复杂的工程优化问题中取得了良好的效果。
利用matlab系统中的遗传算法工具箱(gatoolbox)可以实现遗传算法的许多基本运算。
4.1.1遗传算法的基本思想
遗传算法最早是由美国Michigen大学的JohnHolland于1975年提出的,它基于达尔文的进化论,使用计算机技术模拟遗传选择和适者生存的生物进化机制而发展起来的一门新的学科,具有“生存+检测”的迭代过程的全局搜索算法。
遗传算法从一个代表优化问题解的一组初值进行搜索,这组解称为一个种群,它们是由一定数量的通过基因编码的个体组成。
种群中的每个个体称为染色体,它用一串代码来标识。
不同的个体通过染色体的复制、交叉或变异生成新的后代。
后代也在一代一代地进化,在每一代中使用“适应度"评估来检验染色体的优劣,根据适应度的大小淘汰劣质后代,选择部分优良品质(特征)后代得以保留和组合,使整个种群向优化的方向发展,经过若干代进化后最终得出武汉理jr大学硕士学位论文条件最优的个体作为算法的收敛条件。
因此,遗传算法是以一种群体中的所有个体作为对象,并且利用随机化技术指导对一个被编码的参数空间进行高效搜索。
其中,交叉或变异构成了遗传算法的遗传运算,它模拟了基因在每一代中创造新一代的繁殖过程;选择是遗传算法的进化运算,反映了种群逐代更新的过程;而参数编码、初始种群的设定、适应度函数的设计、遗传操作设计和参数控制的设定等五个要素组成了遗
传算法的核心内容。
4.1.2遗传算法的基本内容和步骤
(1)编码
遗传算法先将解空间的解数据表示成遗传空间的基因型串结构数据,它们的不同组合就构成了不同的点。
编码采用二进制向量形式,也可以根据具体优化问题选择浮点向量编码,编码的长度由优化计算所要求的精度来确定。
(2)生成初始种群
它的原理是采用随机方法产生若干个初始串结构数据,每个串结构数据代表一个个体,全体初始串结构数据构成了初始种群。
初始种群的大小一般是20~100,这样既可以提高遗传算法的稳定性,又能够保证种群的多样性,容易
(3)适应度评估
对于不同的优化问题,采用不同的适应度函数来评价个体的优劣性。
(4)选择
按照适者生存的目的,从当前的种群中选择出适应度强的优良个体,使它们有机会作为父代繁殖下一代,为下一代贡献一个或多个后代的概率大。
(5)交叉
交叉算子根据交叉率将种群中两个个体随机地交换某些基因,从而产生新一代个体。
新个体组合了父辈个体的特性,交叉体现了信息交换的思想。
交叉率的选择是根据具体问题确定的,一般取0.25~0.75,这样既可以得到高适应度的结构,又可以保证搜索效率。
(6)变异
变异算子根据变异率随机地在当前种群中选择一个个体,对其以一定的概率随机地改变串结构数据中某个串的数值,从而产生新一代个体。
由于生物界产生变异的概率很低,因此变异率一般取0.01~0.20。
交叉和变异是遗传运算的重要内容。
交叉是最主要的遗传运算,它在很大程度上决定了遗传算法的性能。
交叉是同时对两个染色体进行操作,组合两者的特性产生新的后代。
对于采用二进制向量形式编码的种群,交叉运算的最简单方法是在双亲的染色体上随机地选择一个断点,将断点处的右段互相交换,从而产生两个新的后代。
变异是基本的遗传运算,它在染色体上自发地产生随机变化。
一种简单的变异方法是替换一个或多个基因,从而产生一个新的后代。
图4.1.1遗传算法的基本流程图
遗传算法的基本流程如4.1.1图所示。
从图4.1.1可见,遗传算法的基本步骤是:
首先对可行域中的点进行编码,然后从中随机选择一些编码组作为进化起点的第一代编码组,并计算每一个解(编码)的目标函数值(编码的适应度)。
按照选择机制(能够较多地保留适应度较高的编码,较少地保留或淘汰适应度较低的编码),从编码组中挑选一些编码作为繁殖过程前的编码样本。
使用遗传算法提供的交叉和变异算子对挑选出的样本进行运算,交叉算子随机交换两个编码的某些位,变异算子则对某个编码的某一位进行反转,因而,产生新一代编码组。
重复上述选择和繁殖过程,直至进化的代数超过预先的给定值(一般是100—600),输出最后一代的编码组作为问题的最优解。
2.铰链四杆机构的可视化
二.本次设计vb的主要作用是实现可视化,也即四杆机构的运动,实现此功能可以使用timer控件,也可采用for语句循环的方法,本次采用了for语句循环的方法。
将各杆各端点的坐标,用数学表达式的方式写出来,如下图左下方的A点:
其坐标值为(0,0),AB为摇杆,则B点可如下方式表示Picture1.Line(0,0)-(l1*Cos(fi1(i)*3.1415926/180),l1*Sin(fi1(i)*3.1415926/180)),Cos(fi1(i)即为前述输入角的数组,其中i即为循环变量,按照设计方法B点运动了360次,四杆机构每个运动的点,以及需要表达的点都可按此方式给出,相应的对应角可按照数学公式给出。
二.如下语句
lmax=l2
Iflmaxlmax=l3
ElseIflmaxlmax=l4
EndIf
Picture1.Scale(-lmax*2,-lmax*2)-(lmax*2,lmax*2)
上述语句找到了L1.L2.L3.L4.中的最长杆,并以此重新定义了坐标系,左上方为负,右下方为正,则x轴水平向右,y轴竖直向下,原点在屏幕中央,切坐标轴长短是动态的,总是最长杆的四倍,picture控件总能装下整个图形。
3.5vb工作的总流程
如上图所示,为最终界面雏形,由20个对应的text控件输入对应角的信息,当点击计算时,vb按照文件操作的方法,修改m文件中的对应角信息,然后把matlab作为一个自动化服务器端使用,调用遗传算法函数,得出各杆相对长度以及初始角信息,并传递给vb,vb计算出各杆长度,待用。
当点击画图时,vb根据各杆长度以及初始角信息,按照循环方法,使各杆按一定规律运动起来。
可简单提炼为以下过程:
点击计算→修改m文件→在matlab中执行命令→计算得出结果→返回给vb→计算出结果待定。
点击画图→运用结果画图。
3.铰链四杆机构的优化建模及设计
3.1数学模型的建立
如何建立数学模型?
目标函数、设计变量、约束条件哪?
3.2优化求解
具体求解的步骤哪?
3.3基于Matlab的优化计算
MATLAB(MatrixLaboratory)为美国Mathworks公司1983年首次推出的一套高性能的数值分析和计算软件,其功能不断扩充,版本不断升级,1992年推出划时代的4.0版,1993年推出了可以配合MicrosoftWindous使用的微机版,95年4.2版,97年5.0版,99年5.3版,5.X版无论是界面还是内容都有长足的进展,其帮助信息采用超文本格式和PDF格式,可以方便的浏览。
至2001年6月推出6.1版,2002年6月推出6.5版,继而推出6.5.1版,2004年7月MATLAB7和Simulink6.0被推出。
MATLAB将矩阵运算、数值分析、图形处理、编程技术结合在一起,为用户提供了一个强有力的科学及工程问题的分析计算和程序设计工具,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能,是具有全部语言功能和特征的新一代软件开发平台。
MATLAB已发展成为适合众多学科,多种工作平台、功能强大的大型软件。
在欧美等国家的高校,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具。
成为攻读学位的本科、硕士、博士生必须掌握的基本技能。
在设计研究单位和工业开发部门,MATLAB被广泛的应用于研究和解决各种具体问题。
在中国,MATLAB也已日益受到重视,短时间内就将盛行起来,因为无论哪个学科或工程领域都可以从MATLAB中找到合适的功能。
4.2.1搜索函数ga,以及本次编程的应用。
一.遗传优化算法工具箱中搜索函数ga的调用格式为:
[xf,endPop,bPop,trace]=ga(bounds,evalFN,evalOps,startPop,opts,termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps)
输出参数:
xf:
优化解;
endPop:
最终种群;
bPop:
最终种群的一个轨迹;
trace:
每一代种群中的最好个体和平均结果矩阵.
输入参数:
bounds:
变量上下限矩阵;
evalFN:
适应度函数;
evalOps:
适应度函数的输入选项,默认为[];
startPop:
初始种群;
opts:
向量[epsilonprob_opsdisplay],其中epsilon表示两代之间的差
距,prob_ops取0时为二进制编码,取1时为浮点编码(计算精度较高),display
表示运行时是否显示当前个体和最好结果.默认值为[1e-610];
termFN:
终止函数,默认值为['maxGenterm'];
termOps:
向终止函数输入的参数,默认值为[100];
selectFN:
选择函数;
selectOps:
选择参数;
xOverFNs:
一个包含空格字符串的xOver.m文件;
xOverOps:
xOver.m文件的输入参数矩阵;
mutFNs:
一个包含空格字符串的mutation.m文件;
mutOps:
mutation.m文件的输入参数矩阵.
应当指出,遗传算法搜索函数ga求的是函数的极大值,因此,在求函数的极小值问题时需要将极大值问题转换为极小值问题。
二.如下所示为本次搜索函数的定义:
[xf,endpop,beestsols,trace]=ga(bounds,'ga_siganjigou',[],startpop,[1e-611],'maxgenterm',200,'normgeomselect',[0.08],['arithxover'],[2],'nonunifmutation',[21003]);
适应度函数名为ga_siganjigou,变异率为0.08,其它为默认。
M函数定义如下:
%定义适应度函数文件第一行
function[sol,y]=ga_siganjigou(sol,options)
%设计变量:
比例:
x1,x2,x3。
初始角:
x4
x
(1)=sol
(1);x
(2)=sol
(2);x(3)=sol(3);x(4)=sol(4);
phib1=[0,30,60,90,120,150,180,210,240,270,300,330];%第五行
psib1=[0,7.22,21.45,37.48,51.49,60.80,64,60.80,51.49,37.48,21.45,7.22];%第六行
forj=1:
12
phij=(x(4)+phib1(j))/180*pi;
e=1-x
(1)*cos(phij);f=-x
(1)*sin(phij);
g=(e*e+f*f+x(3)*x(3)-x
(2)*x
(2))/(2*x(3));
psi(j)=2*atan((f+sqrt(e*e+f*f-g*g))/(e-g))*180/pi;
psi1(j)=psi(j)-psi
(1);
end
f=(psi1-psib1)*(psi1-psib1)';%第14行
r1=0.1;r2=0.1;r3=0.1;r4=0.1;r5=0.8;r6=0.8;%第15行
g1=x
(1);
g2=x
(2)+x(3)-x
(1)-1;
g3=1+x(3)-x
(1)-x
(2);
g4=1+x
(2)-x
(1)-x(3);
g5=-x
(1).^2-x
(2).^2+1.414*x
(1)*x
(2)+(x(3)-x
(1)).^2;
g6=x
(1).^2+x
(2).^2+1.414*x
(1)*x
(2)-(x(3)+x
(1)).^2;
p=r1*g1.^2+r2*g2.^2+r3*g3.^2+r4*g4.^2+r5*g5.^2+r6*g6.^2;
if(g1>0)&(g2>=0)&(g3>=0)&(g4>=0)&(g5>=0)&(g6>=0)
y=-f;
else
y=-(f+p);
end
程序第5,6行即为对应角信息,需要用vb文件控制改变,第一行到第14行为目标函数,第15行到最后为约束函数的实现,运用了惩罚函数的方法。
4.2.2编码和种群生成函数initializega以及本论文中的应用。
遗传算法工具箱中编码和种群生成函数initializega的调用格式为:
Function[Pop]=initializega(num,bounds,eevalFN,eevalOps,opts)
输出参数:
Pop:
初始种群
输入参数:
num:
种群中的个体数目;
bounds:
变量上下限矩阵;
eevalFN:
适应度函数;
eevalOps:
传递给适应度函数的参数,默认值为[];
opts:
选择编码形式的参数,即浮点编码(默认值为[])或是二进制编码.
bounds=[01;01;01;040];
startpop=initializega(30,bounds,'ga_siganjigou',[]);
取初始种群为30个,适应度函数为ga_siganjigou
4.VB与MatLab的集成
5结论
本次的设计,为vb与matlab混合编程,充分发挥了vb控件友好界面的优势,以及matlab强大计算功能的优势,所设计的程序能够高效的完成设计任务,界面的可视化,使设计成果一目了然,为工程设计提供了很好的方法。
参考文献
[1]曾日波.Matlab遗传算法工具箱的应用[J].兵工自动化,2005,(06).
[2]蓝发超,王洪.基于Matlab的遗传算法程序设计[J].广西物理,2008,(01).
[3]喻寿益;邝溯琼.Fuzzyadaptivegeneticalgorithmbasedonauto-regulatingfuzzyrules[J].中南大学学报(英文版)2010,(01)
[4]李明.遗传算法的改进及其在优化问题中的应用研究[D].吉林大学,2004,(04).
[5]曹道友.基于改进遗传算法的应用研究[D].安徽大学,2010,(10).
[6]汪松泉.遗传算法在组合优化中的应用研究[D].安徽大学,2010,(10).
[7]刘昊旸.遗传算法研究及遗传算法工具箱开发[D].天津大学,2006,(07).
[8]金芬.遗传算法在函数优化中的应用研究[D].苏州大学,2009,(04).
[9]崔珊珊.遗传算法的一些改进及其应用[D].中国科学技术大学,2011,(01).
[10]宋晓亮.基于量子遗传算法和改进的免疫遗传算法的多序列比对算法研究[D].吉林大学,2007,(04).
[11]邝溯琼.遗传算法参数自适应控制及收敛性研究[D].中南大学,2010,(04).
[12]于惠.遗传算法的改进研究及在背包问题中的应用[D].山东师范大学,2009,(10).
[13]田延硕.遗传算法的研究与应用[D].电子科技大学,2005,(01).
[14]ZhuoShi;LiuChao.ASoftwarePatternoftheGeneticAlgorithm——aStudyonReusableObjectModelofGeneticAlgorithm[J].武汉大学,2001,(z1)。
[15]李坤,李军华,杨小芹.遗传参数协同进化的自适应遗传算法[J].计算机仿真,2010,(11).
致谢
感谢我的指导老师王桂从,这篇论文是在王老师的的悉心指导与鼓励下完成的。
王老师为我提供了良好的实验条件,在申请和开展项目、撰写论文等方面提供了很多专业性的指导。
王老师渊博的学识、严谨的治学态度、精益求精的工作作风和诲人不倦的高尚师德,都将深深地感染和激励着我。