沈婷婷
(山東科技大學(xué),山東 青島 266590)
機(jī)械手主要由執(zhí)行機(jī)構(gòu)、驅(qū)動(dòng)機(jī)構(gòu)和控制系統(tǒng)三大部分組成。
利用現(xiàn)有數(shù)據(jù)建立機(jī)械手運(yùn)動(dòng)模型:
式(1)為模型的目標(biāo)函數(shù)。
(1)初始化群體。每個(gè)機(jī)械手運(yùn)動(dòng)的逆解采用如下方式計(jì)算和生成:
式中[ ]為取整函數(shù);R為[0,1]內(nèi)的隨機(jī)數(shù)。
設(shè)置初始化進(jìn)化代數(shù)為Gen=10。根據(jù)式(9)及式(10)生成一個(gè)初始種群作為第一代解。
(2)評價(jià)群體。
在本文中,適應(yīng)度按如下公式計(jì)算:
(3)進(jìn)行遺傳操作。①選擇。每次隨機(jī)選取兩個(gè)個(gè)體,分別計(jì)算其適應(yīng)度,比較兩個(gè)個(gè)體適應(yīng)度大小,從中選出適應(yīng)度大的那個(gè)作為新個(gè)體,重復(fù)操作,直到選出的個(gè)體等于種群大小為止;②交叉。在文中采用單點(diǎn)交叉來計(jì)算新個(gè)體的基因。如不滿足,則重新選擇個(gè)體進(jìn)行交叉操作;
③變異。根據(jù)模型約束條件,把突變點(diǎn)的位置限制在第1位到第n-1位之間。
對完成交叉操作的個(gè)體,還需根據(jù)式(13)再進(jìn)行變異操作,從而得到最新一代種群。
(4)終止。當(dāng)Gen=Maxgen時(shí),遺傳算法終止;否則,Gen=Gen+1,轉(zhuǎn)到第3步,繼續(xù)循環(huán)。
圖1 MATLAB仿真結(jié)果
由仿真結(jié)果可以看到,改進(jìn)后的遺傳算法在進(jìn)化到20代之前就已經(jīng)基本上達(dá)到了最優(yōu)解。
針對平面關(guān)節(jié)型機(jī)器人的運(yùn)動(dòng)學(xué)進(jìn)行建模分析,為了避免傳統(tǒng)機(jī)器人求逆解方法的多解性、解的不存在性以及需多解的選取的缺點(diǎn),本文采用了改進(jìn)的遺傳算法,算法的收斂速度更快,求解精度更高,穩(wěn)定性更好。