现代设计方法及其应用第一次作业(遗传算法)讲解 下载本文

内容发布更新时间 : 2024/12/22 15:48:18星期一 下面是文章的全部内容请认真阅读。

i 1 2 30 3 60 4 920 5 150 6 180 7 110 8 240 9 0 270 11 200 12 330 1?i???? 0 0 53xmimm 0 443233445558.5 2 4 9 0 4 2 8 5 6 1 111 07 10 97 65 48 27 12 14 14 22 5ymimm 1 91、传统优化设计方法

平面连杆机构的优化设计: 1确定设计变量

TT

X=[x1,x2,x3,x4,x5,x6,x7,x8,x9]=[l1,l2,l3,l4,l5,xA,yA,θ,α]2建立目标函数

f(x)??[(xMi?xi)?(yMi?yi)]

2i?012122连杆上的点M的坐标为:

xM?xA?l1cos(???)?l5cos(???) yM?yA?l1sin(???)?l5sin(???)

设B、D两点的距离为d 则d?l1?l4?2l1l4cos?

22??arctanl1sin? d2l2?d2?l32??arccos????

2l2d令变量的上下限为:

T

Xu=[xu1,xu2,xu3,xu4,xu5,xu6,xu7,xu8,xu9]

T

Xl=[xl1,xl2,xl3,xl4,xl5,xl6,xl7,xl8,xl9] 约束条件为:

g(2i?1)?xi?xui?0g(2i)?xli?xi?0i?1,2,3?,9 i?1,2,3?,9

由曲柄摇杆运行中三角形的约束条件为:

g(19)?x1?x2?0g(20)?x1?x3?0g(21)?x1?x4?0g(22)?x1?x4?x2?x3?0g(23)?x1?x2?x3?x4?0g(24)?x1?x3?x2?x4?0考虑最小传动角条件,约束条件为:

22x2?x3?(x4?x1)2g(25)?arccos?02x2x3

g(26)?arccosx?x?(x4?x1)?150??02x2x322232

1、遗传算法

利用matlab中遗传算法模块进行解题

本题中共有五个杆x1,x2,x3,x4,x5,变量角α,θ,ψ等 将杆长x1,x2,x3,x4作为自变量进行优化,若ψ角确定后则四个杆的位置就相应的确定了。对x1,x2,x3,x4,x5,α,θ进行优化,使MM的运动轨迹和mm的运动轨迹进行拟合。

经分析本题中均为线性约束,无非线性约束。

令ψ角和M的X轴坐标与mm曲线的x轴坐标相重合,然后求Y轴坐标相差的平方和最小为所求目标函数。

第一步打开optimtool 选择ge遗传算法工具箱

第二步输入参数

1.建立目标函数文件fmin.m function [ fout ] = fmin(x)

xA=67;yA=10;

xm=[50 48.5 42 34 29 30 34 42 48 55 56 51];

ym=[91 111 107 90 67 45 28 17 12 14 24 52]; F=0;

for i=1:1:12;

wm=30*(i-1)*pi/180;

tm=acos((x(2)^2+((x(1))^2+(x(4))^2-2*x(1)*x(4)*cos(wm))-x(3)^2)/(2*x(2)*(sqrt((x(1))^2+(x(4))^2-2*x(1)*x(4)*cos(wm)))))-(atan(x(1)*sin(wm)/(sqrt((x(1))^2+(x(4))^2-2*x(1)*x(4)*cos(wm)))))+x(9)*pi/180);

xM=xA+x(1)*cos(x(9)*pi/180+wm)+x(5)*cos(x(8)*pi/180+tm); yM=yA+x(1)*sin(x(9)*pi/180+wm)+x(5)*sin(x(8)*pi/180+tm); G=(xM-xm(i))^2+(yM-ym(i))^2; F=F+G; fout=F/12; %fout=-fout; end

2.设置变量数为9

3.变量不等式为(声明)

A=[1 -1 0 0 0 0 0 0 0;1 0 -1 0 0 0 0 0 0;1 0 0 -1 0 0 0 0 0;1 -1 -1 1 0 0 0 0 0;1 1 -1 -1 0 0 0 0 0;1 -1 1 -1 0 0 0 0 0];b=[0;0;0;0;0;0];

边界vlb=[0; 0; 0; 0; 0;0; 0;0;0];vub=[200; 200; 200; 200; 200;200; 200;200;200];

4.建立feixianxing.m定义非线性约束: function [g,ceq]=mycon(x)

g(1)=30-acos((x(2)^2+(x(3)^2-(x(4)-x(1))^2)/2*x(2)*x(3))*180/pi; g(2)=acos((x(2)^2+(x(3)^2-(x(4)+x(1))^2)/2*x(2)*x(3))*180/pi-150; ceq=[]; end

由图可以看到 优化后杆长 l1=44.3 l2=70.5 l3=140.1 l4=134.2 l5=50.2 , α=7.3° θ=24.8° 遗传算法概念过程 (1)编码

采用遗传算法一维染色体中最常用的符号集{1,0}编码,即 f(x)??[(xi?012Mi?xi)?(yMi?yi)]

2122求解的坐标值转换为遗传空间中的1,0表示的按一定结构组成的染色体或个体。 (2)初始群体的建立

遗传算法是对群体进行的进化操作,需要给其准备一些表示起始搜索点的初始群体数据。群体的规模大小取为12,每个个体通过随机的方法产生。

(3)适应度计算 目标函数总取非负值,并且以求函数最小值为优化目标,故可直接利用目标函数作为个体的适应度。

(4)选择运算

采用适应度比例方法,即赌轮选择机制,在这种选择机制中,个体每次被选中的概率与其在群体环境中的相对适应度成正比

(5)交叉运算

交叉运算是遗传算法中产生新个体的主要操作过程,它以某一概率相互交换某两个个体之间的部分染色体。可以采用单点交叉的方法运算。

(6)变异运算

变异运算是对个体的某一个或某一些基因上的基因值按某一较小的概率进行改变,它也是产生新个体的一种操作方法。可采用基本位变异的方法来进行变异运算。

(7)确定遗传算法的运行参数:群体大小M=12,终止进化代数G=300,交叉概率Pc=0.6,变异概率Pm=0.1

三、但愿有一天你会记起,我曾默默地,毫无希望地爱过你。我这扇门曾为你打开,只为你一人打开,现在,我要把它关上了。 四、你看我的时候我装做在看别处,你在看别处的时候我在看你。 五、陆上的人喜欢寻根究底,虚度很多的光阴。冬天担忧夏天的迟来,夏天担心冬天的将至。所以你们不停到处去追求一个遥不可及,四季如夏的地方,我并不羡慕。 六、没想到的是,一别竟是一辈子了。 七、朋友们都羡慕我,其实羡慕他们的人是我。爱你,很久了,等你,也很久了,现在,我要离开你了,比很久很久还要久…… 八、Do something today that your future self will thank you for. 从现在开始,做一些让未来的你感谢现在的自己的事。