本發(fā)明屬于精密計(jì)量與計(jì)算機(jī)應(yīng)用領(lǐng)域,具有涉及一種基于最大實(shí)體狀態(tài)的同軸度快速評(píng)定方法,可用于被測(cè)圓柱體有尺寸要求、其軸線的同軸度公差有最大實(shí)體要求并且其基準(zhǔn)要素有尺寸要求和最大實(shí)體要求的圓柱形幾何產(chǎn)品的同軸度誤差合格性檢測(cè)和評(píng)定,并為加工工藝的改進(jìn)提供指導(dǎo)。
背景技術(shù):
尺寸誤差、形位誤差(形狀誤差和位置誤差的簡(jiǎn)稱)直接影響產(chǎn)品質(zhì)量、裝配及其使用壽命,快速、準(zhǔn)確地計(jì)算零件誤差,具有重要的意義。尺寸公差(公差即誤差的允許范圍)和形位公差之間的關(guān)系稱為公差原則,其中,最大實(shí)體要求是體現(xiàn)零件可裝配性的一種公差原則。
國(guó)家標(biāo)準(zhǔn)GB/T16671-2009規(guī)定了被測(cè)圓柱體有尺寸要求、其軸線的同軸度公差有最大實(shí)體要求并且其基準(zhǔn)要素有尺寸要求和最大實(shí)體要求的情況,該情況規(guī)定了:1、被測(cè)圓柱體的最大實(shí)體狀態(tài);2、被測(cè)圓柱體的局部尺寸的范圍;3、被測(cè)圓柱體的最大實(shí)體狀態(tài)與基準(zhǔn)圓柱體的最大實(shí)體狀態(tài)之間的方位關(guān)系;4、基準(zhǔn)圓柱體的最大實(shí)體狀態(tài)及其局部尺寸的范圍,補(bǔ)充解釋了最小實(shí)體狀態(tài)下的被測(cè)圓柱體的軸線與最小實(shí)體狀態(tài)下的基準(zhǔn)圓柱體的軸線之間可能的同軸度誤差,但并未給出具體的計(jì)算公式。
因此,為了判斷介于最大實(shí)體尺寸和最小實(shí)體尺寸之間(尺寸誤差的合格性檢測(cè)方法在國(guó)家標(biāo)準(zhǔn)GB/T3177、GB/T1958、GB/T18779.1、GB/T18779.2中有規(guī)定,不屬于本發(fā)明的范疇)的零件的上述同軸度的合格性,國(guó)家標(biāo)準(zhǔn)GB/T1958-2004給出了利用高精度的、尺寸恒定的通規(guī)、止規(guī)來(lái)檢測(cè)圓柱體的上述同軸度是否合格的方法。然而,高精度的、尺寸恒定的通規(guī)、止規(guī)的制造成本較高,并且測(cè)量不同尺寸的圓柱體零件需要使用不同的通規(guī)、止規(guī),進(jìn)一步增加了測(cè)量成本。
被測(cè)圓柱體有尺寸要求、其軸線的同軸度有最大實(shí)體要求并且其基準(zhǔn)要素沒(méi)有最大實(shí)體要求的情況下,在精密計(jì)量與計(jì)算機(jī)應(yīng)用領(lǐng)域可以通過(guò)三坐標(biāo)測(cè)量機(jī)測(cè)量被測(cè)圓柱體和基準(zhǔn)圓柱體上的測(cè)點(diǎn),計(jì)算被測(cè)圓柱體相對(duì)于基準(zhǔn)圓柱體的同軸度,并判斷被測(cè)圓柱體的同軸度是否合格。但是還沒(méi)有數(shù)學(xué)方法來(lái)來(lái)評(píng)定被測(cè)圓柱體有尺寸要求、其軸線的同軸度公差有最大實(shí)體要求并且其基準(zhǔn)要素有尺寸要求和最大實(shí)體要求的零件的合格性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種基于最大實(shí)體狀態(tài)的同軸度快速評(píng)定方法,其不僅實(shí)現(xiàn)了被測(cè)圓柱體有尺寸要求、其軸線的同軸度公差有最大實(shí)體要求并且其基準(zhǔn)要素有尺寸要求和最大實(shí)體要求的零件的合格性檢測(cè)和評(píng)定,而且算法穩(wěn)定性好、計(jì)算效率高,可以推廣應(yīng)用于其它被測(cè)要素有尺寸要求、其定向定位公差有最大實(shí)體要求并且其基準(zhǔn)要素有尺寸要求和最大實(shí)體要求的零件的合格性檢測(cè)和評(píng)定中。
為解決上述問(wèn)題,本發(fā)明是通過(guò)以下方案實(shí)現(xiàn)的:
步驟1:獲取被測(cè)圓柱體C b 、基準(zhǔn)圓柱體C A 的幾何設(shè)計(jì)參數(shù);如果被測(cè)圓柱體C b的同軸度公差及基準(zhǔn)圓柱體C A 都有最大實(shí)體要求,并且基準(zhǔn)圓柱體C A 只有尺寸公差——可以應(yīng)用包容原則,那么跳轉(zhuǎn)到步驟2,否則結(jié)束本快速評(píng)定方法,并給出結(jié)論“被測(cè)圓柱體的同軸度公差不能用本方法評(píng)定”。
所述的被測(cè)圓柱體C b 的幾何設(shè)計(jì)參數(shù)包括:是孔要素還是軸要素、名義直徑Db、名義長(zhǎng)度Lb、軸的上偏差e sb或孔的上偏差E Sb、軸的下偏差e ib或孔的下偏差E Ib、同軸度公差Tb, AM, coa、同軸度公差是否標(biāo)注最大實(shí)體要求、同軸度公差的基準(zhǔn)圓柱體C A 是否標(biāo)注最大實(shí)體狀態(tài)。
所述的基準(zhǔn)圓柱體C A 的幾何設(shè)計(jì)參數(shù)包括:是孔要素還是軸要素、名義直徑DA、名義長(zhǎng)度LA、軸的上偏差e sA或孔的上偏差E SA、軸的下偏差e iA或孔的下偏差E IA、尺寸公差是否應(yīng)用包容原則、其它幾何公差。
步驟2:獲取實(shí)際被測(cè)圓柱體Cb、實(shí)際基準(zhǔn)圓柱體CA的測(cè)量數(shù)據(jù);評(píng)價(jià)實(shí)際基準(zhǔn)圓柱體CA的尺寸誤差和實(shí)際被測(cè)圓柱體Cb的尺寸誤差,如果上述誤差都合格,跳轉(zhuǎn)到步驟3,否則結(jié)束本快速評(píng)定方法,并給出結(jié)論“實(shí)際基準(zhǔn)圓柱體CA和/或?qū)嶋H被測(cè)圓柱體Cb的其它誤差不合格”。
步驟3:將實(shí)際基準(zhǔn)圓柱體CA的測(cè)量數(shù)據(jù)擬合為圓柱體C CA,在被測(cè)圓柱體的擬合圓柱體上建立局部坐標(biāo)系,并計(jì)算實(shí)際被測(cè)圓柱體Cb、實(shí)際基準(zhǔn)圓柱體CA的測(cè)量數(shù)據(jù)在該局部坐標(biāo)系中的坐標(biāo)。
步驟4:以實(shí)際基準(zhǔn)圓柱體CA相對(duì)于圓柱體C CAM的三維空間姿態(tài)vA為變量,以實(shí)際被測(cè)圓柱體Cb相對(duì)于圓柱體C CAM的當(dāng)量直徑db, AM, coa=f (vA)為目標(biāo)函數(shù),進(jìn)行目標(biāo)優(yōu)化,得到實(shí)際被測(cè)圓柱體Cb相對(duì)于圓柱體C CAM的極限當(dāng)量直徑db, AM, coa, mM。
其中,vA受到如下約束:對(duì)于任意不超出基準(zhǔn)圓柱體C A 最大實(shí)體邊界圓柱體C CAM的圓柱體C CA,其相對(duì)于圓柱體C CAM的三維空間姿態(tài)可以表示為vA;對(duì)于任意vA,圓柱體C CA不超出基準(zhǔn)圓柱體C A 最大實(shí)體邊界圓柱體C CA。
步驟5:根據(jù)被測(cè)圓柱體C b 的最大實(shí)體實(shí)效尺寸DbMV和圓柱體C Cb的直徑db、最當(dāng)量直徑db, AM, min,判斷實(shí)際被測(cè)圓柱體Cb的同軸度誤差是否合格。
為了便于將實(shí)際零件與設(shè)計(jì)圖形對(duì)應(yīng)起來(lái),本發(fā)明可以將以下步驟具體化為:
步驟2中所述實(shí)際被測(cè)圓柱體b 、實(shí)際基準(zhǔn)圓柱體A 的測(cè)量數(shù)據(jù)是在測(cè)量空間直角坐標(biāo)系中測(cè)量的,并且包括以下四個(gè)測(cè)點(diǎn)數(shù)據(jù)集:
實(shí)際基準(zhǔn)圓柱體A 的底面上的測(cè)點(diǎn)Pmeasure, A, under, i的測(cè)點(diǎn)數(shù)據(jù)pmeasure, A, under, i(xmeasure, A, under, i, ymeasure, A, under, i, zmeasure, A, under, i),i =1, 2 … I ,I 為測(cè)點(diǎn)數(shù)目且為正整數(shù),所有的測(cè)點(diǎn)數(shù)據(jù)pmeasure, A, under, i(xmeasure, A, under, under, i, ymeasure, A, under, i, zmeasure, A, under, i)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, A, under, i}。
實(shí)際基準(zhǔn)圓柱體A 的側(cè)面上的測(cè)點(diǎn)P measure, A, n的測(cè)點(diǎn)數(shù)據(jù)pmeasure, A, n(xmeasure, A, n, ymeasure, A, n, zmeasure, A, n),n =1, 2 … N ,N 為測(cè)點(diǎn)數(shù)目且為正整數(shù),所有的測(cè)點(diǎn)數(shù)據(jù)pmeasure, A, n(xmeasure, A, n, ymeasure, A, n, zmeasure, A, n)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, A, n}。
實(shí)際被測(cè)圓柱體b 的底面上的測(cè)點(diǎn)Pmeasure, b, under, j的測(cè)點(diǎn)數(shù)據(jù)pmeasure, b, under, j(xmeasure, b, under, j, ymeasure, b, under, j, zmeasure, b, under, j),j =1, 2 … J ,J 為測(cè)點(diǎn)數(shù)目且為正整數(shù),所有的測(cè)點(diǎn)數(shù)據(jù)pmeasure, b, under, j(xmeasure, b, under, under, j, ymeasure, b, under, j, zmeasure, b, under, j)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, b, under, j}。
實(shí)際被測(cè)圓柱體b 的側(cè)面上的測(cè)點(diǎn)Pmeasure, b, m的測(cè)點(diǎn)數(shù)據(jù)pmeasure, b, m(xmeasure, b, m, ymeasure, b, m, zmeasure, b, m),m =1, 2 … M ,M 為測(cè)點(diǎn)數(shù)目且為正整數(shù),所有的測(cè)點(diǎn)數(shù)據(jù)pmeasure, b, m(xmeasure, b,m, ymeasure, b, m, zmeasure, b, m)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, b, m}。
為了簡(jiǎn)化實(shí)際零件與設(shè)計(jì)圖形的對(duì)應(yīng)過(guò)程,可以盡量減少實(shí)際被測(cè)圓柱體和實(shí)際基準(zhǔn)圓柱體的底面測(cè)點(diǎn),此時(shí),本發(fā)明的以下步驟可以具體化為:
步驟2中,實(shí)際基準(zhǔn)圓柱體A 的底面上的測(cè)點(diǎn)數(shù)I =2,并且兩個(gè)測(cè)點(diǎn)Pmeasure, A, under, 1、Pmeasure,A,under,2分別在實(shí)際基準(zhǔn)圓柱體A 的兩個(gè)底面上。
實(shí)際被測(cè)圓柱體b 的底面上的測(cè)點(diǎn)數(shù)J =2,并且兩個(gè)測(cè)點(diǎn)Pmeasure, b, under, 1、Pmeasure,b,under,2分別在實(shí)際被測(cè)圓柱體b 的兩個(gè)底面上。
步驟3中,將實(shí)際基準(zhǔn)圓柱體CA的測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, A, n}擬合為圓柱體C CA的側(cè)面,Pmeasure, A, under, 1、Pmeasure,A,under,2連線的中點(diǎn)Pmeasure, A, under, 1/2在圓柱體C CA的兩個(gè)底面的對(duì)稱平面P LA, 1/2上,圓柱體C CA的長(zhǎng)度等于基準(zhǔn)圓柱體C A 的名義長(zhǎng)度LA。
在圓柱體C CA上建立局部直角坐標(biāo)系Oxyz, A,坐標(biāo)系Oxyz, A的原點(diǎn)與圓柱體C CA的幾何中心OA重合,坐標(biāo)系Oxyz, A的一個(gè)坐標(biāo)軸與圓柱體C CA的軸線重合,該坐標(biāo)軸的正方向向量與向量OAPmeasure, b, under, 1/2的點(diǎn)積不小于零,其中,Pmeasure, b, under, 1/2是Pmeasure, b, under, 1、Pmeasure,b,under,2連線的中點(diǎn);定義圓柱體C CA的單位方向向量nCCA的長(zhǎng)度為1、正方向與該坐標(biāo)軸的正方向向量相同。
將實(shí)際基準(zhǔn)圓柱體CA的測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, A, n}和實(shí)際被測(cè)圓柱體Cb的測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, b, m}進(jìn)行坐標(biāo)轉(zhuǎn)換,得到實(shí)際基準(zhǔn)圓柱體CA和實(shí)際被測(cè)圓柱體Cb的測(cè)點(diǎn)在坐標(biāo)系Oxyz, A中的坐標(biāo)集{pA, n}和{pb, m}。
為了降低本發(fā)明的使用難度,并考慮到形狀誤差在總誤差中的貢獻(xiàn),本發(fā)明可以具體化為:
步驟1:獲取被測(cè)圓柱體C b 、基準(zhǔn)圓柱體C A 的幾何設(shè)計(jì)參數(shù);如果被測(cè)圓柱體C b的同軸度公差及基準(zhǔn)圓柱體C A 都有最大實(shí)體要求,并且基準(zhǔn)圓柱體C A 只有尺寸公差——可以應(yīng)用包容原則,那么跳轉(zhuǎn)到步驟2,否則結(jié)束本快速評(píng)定方法,并給出結(jié)論“被測(cè)圓柱體的同軸度公差不能用本方法評(píng)定”。
所述的被測(cè)圓柱體C b 的幾何設(shè)計(jì)參數(shù)包括是孔要素還是軸要素、名義直徑Db、名義長(zhǎng)度Lb、軸的上偏差e sb或孔的上偏差E Sb、軸的下偏差e ib或孔的下偏差E Ib、同軸度公差Tb, AM, coa、同軸度公差是否標(biāo)注最大實(shí)體要求、同軸度公差的基準(zhǔn)圓柱體C A 是否標(biāo)注最大實(shí)體狀態(tài)。
所述的基準(zhǔn)圓柱體C A 的幾何設(shè)計(jì)參數(shù)包括:是孔要素還是軸要素、名義直徑DA、名義長(zhǎng)度LA、軸的上偏差e sA或孔的上偏差E SA、軸的下偏差e iA或孔的下偏差E IA、尺寸公差是否應(yīng)用包容原則、其它幾何公差。
步驟2:獲取實(shí)際被測(cè)圓柱體Cb、實(shí)際基準(zhǔn)圓柱體CA的測(cè)量數(shù)據(jù),包括以下四個(gè)測(cè)點(diǎn)數(shù)據(jù)集:
實(shí)際基準(zhǔn)圓柱體CA的兩個(gè)測(cè)點(diǎn)Pmeasure, A, under, 1、Pmeasure,A,under,2分別在實(shí)際基準(zhǔn)圓柱體CA的兩個(gè)底面上,兩個(gè)測(cè)點(diǎn)的測(cè)點(diǎn)數(shù)據(jù)pmeasure, A, under, 1 (xmeasure, A, under, 1, ymeasure, A, under, 1, zmeasure, A, under, 1)、pmeasure, A, under, 2 (xmeasure, A, under, 2, ymeasure, A, under, 2, zmeasure, A, under, 2)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, A, under, i},i =1, 2;實(shí)際基準(zhǔn)圓柱體CA的側(cè)面上的測(cè)點(diǎn)P measure, A, n的測(cè)點(diǎn)數(shù)據(jù)pmeasure, A, n(xmeasure, A, n, ymeasure, A, n, zmeasure, A, n),n =1, 2 … N ,N 為測(cè)點(diǎn)數(shù)目且為正整數(shù),所有的測(cè)點(diǎn)數(shù)據(jù)pmeasure, A, n(xmeasure, A, n, ymeasure, A, n, zmeasure, A, n)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, A, n};實(shí)際被測(cè)圓柱體Cb的兩個(gè)測(cè)點(diǎn)Pmeasure, b, under, 1、Pmeasure,b,under,2分別在實(shí)際被測(cè)圓柱體Cb的兩個(gè)底面上,兩個(gè)測(cè)點(diǎn)的測(cè)點(diǎn)數(shù)據(jù)pmeasure, b, under, 1 (xmeasure, b, under, 1, ymeasure, b, under, 1, zmeasure, b, under, 1)、pmeasure, b, under, 2 (xmeasure, b, under, 2, ymeasure, b, under, 2, zmeasure, b, under, 2)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, b, under, j},j =1, 2;實(shí)際被測(cè)圓柱體Cb的側(cè)面上的測(cè)點(diǎn)Pmeasure, b, m的測(cè)點(diǎn)數(shù)據(jù)pmeasure, b, m(xmeasure, b, m, ymeasure, b, m, zmeasure, b, m),m =1, 2 … M ,M 為測(cè)點(diǎn)數(shù)目且為正整數(shù),所有的測(cè)點(diǎn)數(shù)據(jù)pmeasure, b, m(xmeasure, b,m, ymeasure, b, m, zmeasure, b, m)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, b, m}。
評(píng)價(jià)實(shí)際基準(zhǔn)圓柱體CA和實(shí)際被測(cè)圓柱體Cb的尺寸誤差是否合格,如果上述誤差都合格,跳轉(zhuǎn)到步驟3,否則結(jié)束本快速評(píng)定方法,并給出結(jié)論“實(shí)際基準(zhǔn)圓柱體CA和/或?qū)嶋H被測(cè)圓柱體Cb的其它誤差不合格”。
步驟3:計(jì)算pmeasure, A, under, 1/2=(pmeasure, A, under, 1+pmeasure, A, under, 2)/2。
將步驟2中獲取的四個(gè)測(cè)點(diǎn)數(shù)據(jù)集進(jìn)行坐標(biāo)變換,得到四個(gè)粗略平移數(shù)據(jù)集{p0, A, under, i(x0, A, under, i, y0, A, under, i, z0, A, under, i)|p0, A, under, i =pmeasure, A, under, i -pmeasure, A, under, 1/2,i =1, 2}、{p0, A, n(x0, A, n, y0, A, n, z0, A, n)|p0, A, n =pmeasure, A, n -pmeasure, A, under, 1/2,n =1, 2 … N }、{p0, b, under, j(x0, b, under, j, y0, b, under, j, z0, b, under, j)|p0, b, under, j =pmeasure, b, under, j -pmeasure, A, under, 1/2,,j =1, 2}、{p0, b, m(x0, b, m, y0, b, m, z0, b, m)|p0, b, m =pmeasure, b, m -pmeasure, A, under, 1/2,m =1, 2 … M }。
計(jì)算p0, b, under, 1/2(x0, b, under, 1/2, y0, b, under, 1/2, z0, b, under, 1/2)=(p0, b, under, 1+p0, b, under, 2)/2。
解目標(biāo)優(yōu)化問(wèn)題1:
s.t.
解得最優(yōu)解(x0,min, y0,min, α0,min, β0,min),即實(shí)際基準(zhǔn)圓柱體CA的擬合圓柱體C CA對(duì)應(yīng)的(x0, y0, α0, β0)的值。
將粗略平移數(shù)據(jù)集{p0, A, n(x0, A, n, y0, A, n, z0, A, n)}進(jìn)行如下坐標(biāo)變換,n =1, 2 … N :
得到實(shí)際被測(cè)圓柱所有測(cè)點(diǎn)相對(duì)于實(shí)際基準(zhǔn)圓柱體的坐標(biāo)集{pA, n(A, n, yA, n, zA, n)}。
將粗略平移數(shù)據(jù)集{p0, b, m(x0, b, m, y0, b, m, z0, b, m)}進(jìn)行如下坐標(biāo)變換,m =1, 2 … M :
得到實(shí)際被測(cè)圓柱所有測(cè)點(diǎn)相對(duì)于實(shí)際基準(zhǔn)圓柱體的坐標(biāo)集{pb, m(b, m, yb, m, zb, m)}。
步驟4:計(jì)算基準(zhǔn)圓柱體C A 最大實(shí)體邊界圓柱體C CAM的直徑DAM,當(dāng)基準(zhǔn)圓柱體C A 是軸時(shí),DAM = DA +e sA;當(dāng)基準(zhǔn)圓柱體C A 是孔時(shí),DAM = DA +E IA;
解目標(biāo)優(yōu)化問(wèn)題2:
s.t.
解得圓柱體C Cb相對(duì)于圓柱體C CAM的極限當(dāng)量直徑db, AM, coa, mM=|min db, AM, coa|。
步驟5:計(jì)算被測(cè)圓柱體C b 的最大實(shí)體實(shí)效尺寸:當(dāng)被測(cè)圓柱體C b 是軸時(shí),DbMV = Db +e sb +Tb, AM, coa;當(dāng)被測(cè)圓柱體C b 是孔時(shí),DbMV = Db +E Ib -Tb, AM, coa。
當(dāng)被測(cè)圓柱體C b 是軸時(shí),如果極限當(dāng)量直徑db, AM, coa, mM ≤ DbMV,那么給出結(jié)論“實(shí)際被測(cè)圓柱體Cb的同軸度誤差合格”,否則給出結(jié)論“實(shí)際被測(cè)圓柱體Cb的同軸度誤差不合格”。
當(dāng)被測(cè)圓柱體C b 是孔時(shí),如果DbMV≤db, AM, coa, mM,那么給出結(jié)論“實(shí)際被測(cè)圓柱體Cb的同軸度誤差合格”,否則給出結(jié)論“實(shí)際被測(cè)圓柱體Cb的同軸度誤差不合格”。
在零件誤差分析問(wèn)題中,需要求解一些目標(biāo)優(yōu)化問(wèn)題,其特點(diǎn)包括:需要同時(shí)考量誤差值和名義參數(shù),而這兩類數(shù)值的大小通常差別幾個(gè)數(shù)量級(jí);最優(yōu)解的附近的函數(shù)值變化較緩和;等式約束通常有確定的解;通常能給出至少一個(gè)可行的解。針對(duì)這些特點(diǎn),本發(fā)明提供一種多層粒子群算法來(lái)解決前述兩個(gè)目標(biāo)優(yōu)化問(wèn)題,其特征是步驟如下:
步驟01:定義多層粒子群算法的參數(shù)或使用其默認(rèn)值,包括分辨率TPOS、粒子數(shù)NP(NP≥ 2)、內(nèi)層最大迭代次數(shù)Ni,rd(Ni,rd ≥ 1)、外層最大迭代次數(shù)No,rd、外層最小迭代次數(shù)no,rd、質(zhì)量權(quán)因子W 、局部權(quán)因子C1、全局權(quán)因子C2。
步驟02:定義NP個(gè)粒子pPSO,k(pPSO, k,1, p PSO, k,2, …, pPSO, k,Q),其值對(duì)應(yīng)目標(biāo)優(yōu)化問(wèn)題中的自變量(x1, x2, …, xQ),pPSO, k, q的取值區(qū)間分別與xq的取值區(qū)間相同;k =1, 2 … NP;q =1, 2 … Q ;所有粒子組成粒子集{pPSO,k};設(shè)置一個(gè)粒子pPSO,1的初始值或使用其默認(rèn)值。
將外層粒子群算法的迭代次數(shù)設(shè)置為0。
步驟03:分別在pPSO, k, q的取值區(qū)間按平均分布隨機(jī)取(NP -1)個(gè)值,構(gòu)建(NP -1)個(gè)粒子pPSO,k;k =2, 3 … NP;q =1, 2 … Q 。
分別在pPSO, k, q的取值區(qū)間按平均分布隨機(jī)取NP個(gè)值,構(gòu)建NP個(gè)粒子pPSO,k的初始速度vPSO, k (vPSO, k,1, v PSO, k,2, …, vPSO, k,q);所有粒子的速度組成速度集{vPSO,k};k =1, 2 … NP;q =1, 2 … Q 。
定義NP個(gè)粒子pPSO,k的局部最優(yōu)解為pPSO,k,min=pPSO,k;k =1, 2 … NP。
將pPSO, k, q的值分別代入目標(biāo)優(yōu)化問(wèn)題中的變量x q及其等式約束,并計(jì)算相應(yīng)的目標(biāo)優(yōu)化函數(shù)值fk=f (x1,x2, …, xQ);k =1, 2 … NP;q =1, 2 … Q 。
記錄粒子pPSO,k對(duì)應(yīng)的局部最優(yōu)值fk,min=fk,k =1, 2 … NP。
記錄全局最優(yōu)值fmin=min fk,min,并記錄與min fk,min對(duì)應(yīng)的粒子的值為全局最優(yōu)解pPSO,min。
將內(nèi)層粒子群算法的迭代次數(shù)設(shè)置為0。
步驟04:將粒子pPSO,k的值更新為pPSO,k +vPSO, k,k =1, 2 … NP。
令(x1, x2, … , xQ)=pPSO,k,并代入目標(biāo)優(yōu)化問(wèn)題的不等式約束;如果不等式約束成立,那么將(x1, x2, … , xQ)代入目標(biāo)優(yōu)化問(wèn)題中的等式約束,并計(jì)算和更新相應(yīng)的目標(biāo)優(yōu)化函數(shù)值fk;如果fk ≤ fk,min,那么更新粒子pPSO,k的局部最優(yōu)值fk,min=fk,并更新粒子pPSO,k的局部最優(yōu)解為pPSO,k,min=pPSO,k;如果fk ≤ fmin,那么更新全局最優(yōu)值fmin=fk,并更新全局最優(yōu)解為pPSO,min=pPSO,k;k =1, 2 … NP;q =1, 2 … Q 。
如果各粒子的局部最優(yōu)值和局部最優(yōu)解非常接近,即,(|max fk,min– min fk,min| ≤ TPOS)且(|pPSO,k,min, mean – pPSO,k,min| ≤ TPOS),其中,pPSO,k,min, mean為pPSO,k,min的算術(shù)平均值,k =1, 2 … NP;那么,轉(zhuǎn)到步驟07,否則轉(zhuǎn)到步驟05。
步驟05:將粒子pPSO,k的速度vPSO,k的值更新為W vPSO,k +Crand1C1 (pPSO,k,min - pPSO,k) + Crand2C2 (pPSO,min - pPSO,k),其中,Crand1、Crand2是在區(qū)間[0, 1]中相互獨(dú)立地按平均分布隨機(jī)選取的兩個(gè)值;k =1, 2 … NP。
步驟06:累積一次內(nèi)層粒子群算法的迭代次數(shù);如果內(nèi)層粒子群算法的迭代次數(shù)大于Ni,rd,那么跳轉(zhuǎn)到步驟07,否則跳轉(zhuǎn)到步驟04。
步驟07:記錄每次迭代得到的內(nèi)層粒子群算法的全局最優(yōu)值fmin,s=fmin,其中,s是外層粒子群算法的迭代次數(shù)。
將粒子pPSO,1的值設(shè)置為當(dāng)前的全局最優(yōu)解pPSO,min。
當(dāng)外層粒子群算法的迭代次數(shù)s > no,rd時(shí),令g =s -no,rd,判斷多層粒子群算法的收斂性;如果|fmin,s– min fmin, g | ≤ TPOS,那么,結(jié)束多層粒子群算法并輸出目標(biāo)優(yōu)化問(wèn)題的最優(yōu)解pPSO,min和最優(yōu)值fmin,否則,累積一次外層粒子群算法的迭代次數(shù)。
如果外層粒子群算法的迭代次數(shù)大于No,rd,那么停止外層粒子群算法并輸出目標(biāo)優(yōu)化問(wèn)題的最優(yōu)解(x1, x2, … , xQ)=pPSO,min和最優(yōu)值min f =fmin,否則,更新粒子pPSO,1的初始值為pPSO,min跳轉(zhuǎn)到步驟03。
為了便于本方法的使用,前述多層粒子群算法的默認(rèn)參數(shù)可以設(shè)置如下:
分辨率TPOS默認(rèn)值是0.00005、粒子數(shù)NP默認(rèn)值是20、內(nèi)層最大迭代次數(shù)Ni,rd默認(rèn)值是100、外層最大迭代次數(shù)No,rd默認(rèn)值是100、外層最小迭代次數(shù)no,rd默認(rèn)值是50、質(zhì)量權(quán)因子W 默認(rèn)值是0.5、局部權(quán)因子C1默認(rèn)值是2、全局權(quán)因子C2默認(rèn)值是2;pPSO,1的初始值默認(rèn)為零向量。
為了提高本發(fā)明的計(jì)算效率,本發(fā)明中的目標(biāo)優(yōu)化問(wèn)題1可以用下述方法求解:
求解目標(biāo)優(yōu)化問(wèn)題1的多層粒子群算法如下:
步驟11:定義多層粒子群算法的參數(shù)或使用其默認(rèn)值,包括分辨率TPOS、粒子數(shù)NP(NP≥ 2)、內(nèi)層最大迭代次數(shù)Ni,rd(Ni,rd ≥ 1)、外層最大迭代次數(shù)No,rd、外層最小迭代次數(shù)no,rd、質(zhì)量權(quán)因子W 、局部權(quán)因子C1、全局權(quán)因子C2。
步驟12:定義NP個(gè)粒子pPSO,k(pPSO, k,1, pPSO, k,2, pPSO, k,3, pPSO, k,4),其值對(duì)應(yīng)目標(biāo)優(yōu)化問(wèn)題1中的變量(x0, y0, α0, β0),pPSO, k,1、pPSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間分別與x0、y0、α0、β0的取值區(qū)間相同,即:pPSO, k,1、p PSO, k,2∈[-DA, DA],pPSO, k,3、pPSO, k,4∈[-π , π ];k =1, 2 … NP;所有粒子組成粒子集{pPSO,k};設(shè)置一個(gè)粒子pPSO,1(p PSO,1,1, p PSO,1,2, pPSO,1,3, pPSO,1,4)的初始值為(0, 0, 0, 0)。
將外層粒子群算法的迭代次數(shù)設(shè)置為0。
步驟13:分別在pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間按平均分布隨機(jī)取(NP -1)個(gè)值,構(gòu)建(NP -1)個(gè)粒子pPSO,k;k =2, 3 … NP。
分別在pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間按平均分布隨機(jī)取NP個(gè)值,構(gòu)建NP個(gè)粒子pPSO,k的初始速度vPSO, k (vPSO, k,1, v PSO, k,2, vPSO, k,3, vPSO, k,4);所有粒子的速度組成速度集{vPSO,k};k =1, 2 … NP。
定義NP個(gè)粒子pPSO,k的局部最優(yōu)解為pPSO,k,min=pPSO,k;k =1, 2 … NP。
將pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的值分別代入目標(biāo)優(yōu)化問(wèn)題1中的變量x0、y0、α0、β0及其等式約束,并計(jì)算相應(yīng)的目標(biāo)優(yōu)化函數(shù)值d1,A,k,k =1, 2 … NP;即,
where
記錄粒子pPSO,k對(duì)應(yīng)的局部最優(yōu)值d1,A,k,min=d1,A,k,k =1, 2 … NP。
記錄全局最優(yōu)值d1,A,min=min d1,A,k,min,并記錄與min d1,A,k,min對(duì)應(yīng)的粒子的值為全局最優(yōu)解pPSO,min。
將內(nèi)層粒子群算法的迭代次數(shù)設(shè)置為0。
步驟14:將粒子pPSO,k的值更新為pPSO,k +vPSO, k,k =1, 2 … NP。
令(x0, y0, α0, β0)=pPSO,k,并代入目標(biāo)優(yōu)化問(wèn)題1的不等式約束,即0≤-x0,b,under,1/2cosα0sinβ0+y0,b,under,1/2sinα0+z0,b,under,1/2cosα0cosβ0,x0、y0∈[-DA, DA],α0、β0∈[-π , π ];如果不等式約束成立,那么將(x0, y0, α0, β0)代入目標(biāo)優(yōu)化問(wèn)題1中的等式約束,計(jì)算并更新相應(yīng)的目標(biāo)優(yōu)化函數(shù)值d1,A,k;如果d1,A,k ≤ d1,A,k,min,那么更新粒子pPSO,k的局部最優(yōu)值d1,A,k,min=d1,A,k,并更新粒子pPSO,k的局部最優(yōu)解為pPSO,k,min=pPSO,k;如果d1,A,k ≤ d1,A,min,那么更新全局最優(yōu)值d1,A,min=d1,A,k,并更新全局最優(yōu)解為pPSO,min=pPSO,k;k =1, 2 … NP。
如果各粒子的局部最優(yōu)值和局部最優(yōu)解非常接近,即,(|max d1,A,k,min– min d1,A,k,min| ≤ TPOS)且(|pPSO,k,min, mean – pPSO,k,min| ≤ TPOS),其中,pPSO,k,min, mean為pPSO,k,min的算術(shù)平均值,k =1, 2 … NP;那么,轉(zhuǎn)到步驟17,否則轉(zhuǎn)到步驟15。
步驟15:將粒子pPSO,k的速度vPSO,k的值更新為W vPSO,k +Crand1C1 (pPSO,k,min - pPSO,k) + Crand2C2 (pPSO,min - pPSO,k),其中,Crand1、Crand2是在區(qū)間[0, 1]中相互獨(dú)立地按平均分布隨機(jī)選取的兩個(gè)值;k =1, 2 … NP;
步驟16:累積一次內(nèi)層粒子群算法的迭代次數(shù);如果內(nèi)層粒子群算法的迭代次數(shù)大于Ni,rd,那么跳轉(zhuǎn)到步驟17,否則跳轉(zhuǎn)到步驟14。
步驟17:記錄每次迭代得到的內(nèi)層粒子群算法的全局最優(yōu)值d1,A,min,s=d1,A,min,其中,s 是外層粒子群算法的迭代次數(shù)。
將粒子pPSO,1的值設(shè)置為當(dāng)前的全局最優(yōu)解pPSO,min。
當(dāng)外層粒子群算法的迭代次數(shù)s > no,rd時(shí),令g =s -no,rd,判斷多層粒子群算法的收斂性;如果|d1,A,min,s– min d1,A,min, g | ≤ TPOS,那么,結(jié)束多層粒子群算法并輸出目標(biāo)優(yōu)化問(wèn)題1的最優(yōu)解pPSO,min和最優(yōu)值d1,A,min,否則,累積一次外層粒子群算法的迭代次數(shù)。
如果外層粒子群算法的迭代次數(shù)大于No,rd,那么停止外層粒子群算法并輸出目標(biāo)優(yōu)化問(wèn)題1的最優(yōu)解(x0, y0, α0, β0)=pPSO,min和最優(yōu)值min d1, A=d1,A,min,否則,更新粒子pPSO,1的初始值為pPSO,min跳轉(zhuǎn)到步驟13。
為了提高本發(fā)明的計(jì)算效率,本發(fā)明中的目標(biāo)優(yōu)化問(wèn)題2可以用下述方法求解:
求解目標(biāo)優(yōu)化問(wèn)題2的多層粒子群算法如下:
步驟21:定義多層粒子群算法的參數(shù)或使用其默認(rèn)值,包括分辨率TPOS、粒子數(shù)NP(NP≥ 2)、內(nèi)層最大迭代次數(shù)Ni,rd(Ni,rd ≥ 1)、外層最大迭代次數(shù)No,rd、外層最小迭代次數(shù)no,rd、質(zhì)量權(quán)因子W 、局部權(quán)因子C1、全局權(quán)因子C2。
步驟22:定義粒子pPSO,k(pPSO, k,1, p PSO, k,2, pPSO, k,3, pPSO, k,4)的值對(duì)應(yīng)目標(biāo)優(yōu)化問(wèn)題2中的變量(d xA, d yA, d r xA, d r yA),pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間分別與d xA、d yA、d r xA、d r yA的取值區(qū)間相同,k =1, 2 … NP;所有粒子組成粒子集{pPSO,k};設(shè)置一個(gè)粒子pPSO,1(p PSO,1,1, p PSO,1,2, pPSO,1,3, pPSO,1,4)的初始值為(0, 0, 0, 0)。
將外層粒子群算法的迭代次數(shù)設(shè)置為0。
步驟23:分別在pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間中按平均分布隨機(jī)取(NP -1)個(gè)值,構(gòu)建(NP -1)個(gè)粒子pPSO,k;k =2, 3 … NP。
分別在pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間中按平均分布隨機(jī)取NP個(gè)值,構(gòu)建NP個(gè)粒子pPSO,k的初始速度vPSO, k (vPSO, k,1, v PSO, k,2, vPSO, k,3, vPSO, k,4);所有粒子的速度組成速度集{vPSO,k};k =1, 2 … NP。
定義NP個(gè)粒子pPSO,k的局部最優(yōu)解為pPSO,k,min=pPSO,k;k =1, 2 … NP。
將pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的值代入目標(biāo)優(yōu)化問(wèn)題2中的變量d xA、d yA、d r xA、d r yA及其等式約束,并計(jì)算相應(yīng)的目標(biāo)優(yōu)化函數(shù)值db,AM,coa,k,k =1, 2 … NP。
記錄粒子pPSO,k的局部最優(yōu)值db,AM,coa,k,min=db,AM,coa,k,k =1, 2 … NP。
記錄全局最優(yōu)值db,AM,coa,min=min db,AM,coa,k,min,并記錄與min db,AM,coa,k,min對(duì)應(yīng)的粒子的值為全局最優(yōu)解pPSO,min。
將內(nèi)層粒子群算法的迭代次數(shù)設(shè)置為0。
步驟24:將粒子pPSO,k的值更新為pPSO,k +vPSO, k,k =1, 2 … NP。
令(d xA, d yA, d r xA, d r yA)=pPSO,k,并代入目標(biāo)優(yōu)化問(wèn)題2的不等式約束,如果不等式約束成立,那么將(d xA, d yA, d r xA, d r yA)代入目標(biāo)優(yōu)化問(wèn)題2的等式約束,計(jì)算并更新相應(yīng)的目標(biāo)優(yōu)化函數(shù)值db,AM,coa,k;如果db,AM,coa,k ≤ db,AM,coa,k,min,那么更新粒子pPSO,k的局部最優(yōu)值db,AM,coa,k,min=db,AM,coa,k,并更新粒子pPSO,k的局部最優(yōu)解為pPSO,k,min=pPSO,k;如果db,AM,coa,k ≤ db,AM,coa,min,那么更新全局最優(yōu)值db,AM,coa,min=db,AM,coa,k,并更新全局最優(yōu)解為pPSO,min=pPSO,k;k =1, 2 … NP。
如果各粒子的局部最優(yōu)值和局部最優(yōu)解非常接近,即,(|max db,AM,coa,k,min– min db,AM,coa,k,min| ≤ TPOS)且(|pPSO,k,min, mean – pPSO,k,min| ≤ TPOS),其中,pPSO,k,min, mean為pPSO,k,min的算術(shù)平均值,k =1, 2 … NP;那么,轉(zhuǎn)到步驟27,否則轉(zhuǎn)到步驟25。
步驟25:將粒子pPSO,k的速度vPSO,k的值更新為W vPSO,k +Crand1C1 (pPSO,k,min - pPSO,k) + Crand2C2 (pPSO,min - pPSO,k),其中,Crand1、Crand2是在區(qū)間[0, 1]中相互獨(dú)立地按平均分布隨機(jī)選取的兩個(gè)值;k =1, 2 … NP。
步驟26:累積一次內(nèi)層粒子群算法的迭代次數(shù);如果內(nèi)層粒子群算法的迭代次數(shù)大于Ni,rd,那么停止內(nèi)層粒子群算法并跳轉(zhuǎn)到步驟27,否則跳轉(zhuǎn)到步驟24。
步驟27:記錄每次迭代得到的外層粒子群算法的全局最優(yōu)值db,AM,coa,min,s=db,AM,coa,min,其中,s 是外層粒子群算法的迭代次數(shù)。
將粒子pPSO,1的值設(shè)置為當(dāng)前的全局最優(yōu)解pPSO,min。
當(dāng)外層粒子群算法的迭代次數(shù)s > no,rd時(shí),令g =s -no,rd,判斷多層粒子群算法的收斂性;如果|db,AM,coa,min,s– min db,AM,coa,min, g | ≤ TPOS,那么,結(jié)束多層粒子群算法并輸出目標(biāo)優(yōu)化問(wèn)題2的最優(yōu)解pPSO,min和最優(yōu)值db,AM,coa,min,否則,累積一次外層粒子群算法的迭代次數(shù)。
如果外層粒子群算法的迭代次數(shù)大于No,rd,那么停止外層粒子群算法并輸出目標(biāo)優(yōu)化問(wèn)題2的最優(yōu)解(d xA, d yA, d r xA, d r yA) =pPSO,min和最優(yōu)值min db,AM,coa=db,AM,coa,min,否則,更新粒子pPSO,1的初始值為pPSO,min并跳轉(zhuǎn)到步驟23。
附圖說(shuō)明
圖1,本發(fā)明的基本方法的流程圖。
圖2,本發(fā)明中求解目標(biāo)優(yōu)化問(wèn)題的多層粒子群算法的基本方法的流程圖。
圖3,步驟4中軸類零件相對(duì)于最大實(shí)體邊界的運(yùn)動(dòng)。
圖4,實(shí)驗(yàn)對(duì)象的幾何設(shè)計(jì)圖。
具體實(shí)施方式
實(shí)驗(yàn)實(shí)施例:
步驟1:獲取被測(cè)圓柱體b 、基準(zhǔn)圓柱體A 的幾何設(shè)計(jì)參數(shù);判斷被測(cè)圓柱體b 的同軸度公差是否能用本方法評(píng)定,如果被測(cè)圓柱體b 的同軸度公差及基準(zhǔn)圓柱體A 都有最大實(shí)體要求,并且基準(zhǔn)圓柱體A 只有尺寸公差要求——該尺寸公差要求可以應(yīng)用包容原則,那么跳轉(zhuǎn)到步驟2,否則結(jié)束本快速評(píng)定方法,并給出結(jié)論“被測(cè)圓柱體的同軸度公差不能用本方法評(píng)定”。
所述的被測(cè)圓柱體b 的幾何設(shè)計(jì)參數(shù)包括:是孔要素還是軸要素、名義直徑Db、名義長(zhǎng)度Lb、軸的上偏差e sb或孔的上偏差E Sb、軸的下偏差e ib或孔的下偏差E Ib、同軸度公差Tb, AM, coa、同軸度公差是否標(biāo)注最大實(shí)體要求、同軸度公差的基準(zhǔn)圓柱體A 是否標(biāo)注最大實(shí)體狀態(tài)。
所述的基準(zhǔn)圓柱體A 的幾何設(shè)計(jì)參數(shù)包括:是孔要素還是軸要素、名義直徑DA、名義長(zhǎng)度LA、軸的上偏差e sA或孔的上偏差E SA、軸的下偏差e iA或孔的下偏差E IA、尺寸公差是否應(yīng)用包容原則、其它幾何公差。
步驟2:獲取實(shí)際被測(cè)圓柱體b 、實(shí)際基準(zhǔn)圓柱體A 的測(cè)量數(shù)據(jù),包括以下四個(gè)測(cè)點(diǎn)數(shù)據(jù)集:
實(shí)際基準(zhǔn)圓柱體A 的兩個(gè)測(cè)點(diǎn)Pmeasure, A, under, 1、Pmeasure,A,under,2分別在實(shí)際基準(zhǔn)圓柱體A 的兩個(gè)底面上,兩個(gè)測(cè)點(diǎn)的測(cè)點(diǎn)數(shù)據(jù)pmeasure, A, under, 1 (xmeasure, A, under, 1, ymeasure, A, under, 1, zmeasure, A, under, 1)、pmeasure, A, under, 2 (xmeasure, A, under, 2, ymeasure, A, under, 2, zmeasure, A, under, 2)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, A, under, i},i =1, 2;實(shí)際基準(zhǔn)圓柱體A 的側(cè)面上的測(cè)點(diǎn)Pmeasure, A, n的測(cè)點(diǎn)數(shù)據(jù)pmeasure, A, n(xmeasure, A, n, ymeasure, A, n, zmeasure, A, n),n =1, 2 … N ,N 為測(cè)點(diǎn)數(shù)目且為正整數(shù),所有的測(cè)點(diǎn)數(shù)據(jù)pmeasure, A, n(xmeasure, A, n, ymeasure, A, n, zmeasure, A, n)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, A, n};實(shí)際被測(cè)圓柱體b 的兩個(gè)測(cè)點(diǎn)Pmeasure, b, under, 1、Pmeasure,b,under,2分別在實(shí)際被測(cè)圓柱體b 的兩個(gè)底面上,兩個(gè)測(cè)點(diǎn)的測(cè)點(diǎn)數(shù)據(jù)pmeasure, b, under, 1 (xmeasure, b, under, 1, ymeasure, b, under, 1, zmeasure, b, under, 1)、pmeasure, b, under, 2 (xmeasure, b, under, 2, ymeasure, b, under, 2, zmeasure, b, under, 2)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, b, under, j},j =1, 2;實(shí)際被測(cè)圓柱體b 的側(cè)面上的測(cè)點(diǎn)Pmeasure, b, m的測(cè)點(diǎn)數(shù)據(jù)pmeasure, b, m(xmeasure, b, m, ymeasure, b, m, zmeasure, b, m),m =1, 2 … M ,M 為測(cè)點(diǎn)數(shù)目且為正整數(shù),所有的測(cè)點(diǎn)數(shù)據(jù)pmeasure, b, m(xmeasure, b,m, ymeasure, b, m, zmeasure, b, m)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, b, m}。
評(píng)價(jià)實(shí)際基準(zhǔn)圓柱體A 和實(shí)際被測(cè)圓柱體b 的尺寸誤差是否合格,如果上述誤差都合格,跳轉(zhuǎn)到步驟3,否則結(jié)束本快速評(píng)定方法,并給出結(jié)論“實(shí)際基準(zhǔn)圓柱體A 和/或?qū)嶋H被測(cè)圓柱體b 的其它誤差不合格”。
步驟3:計(jì)算pmeasure, A, under, 1/2=(pmeasure, A, under, 1+pmeasure, A, under, 2)/2。
將步驟2中獲取的四個(gè)測(cè)點(diǎn)數(shù)據(jù)集進(jìn)行坐標(biāo)變換,得到四個(gè)粗略平移數(shù)據(jù)集{p0, A, under, i(x0, A, under, i, y0, A, under, i, z0, A, under, i)|p0, A, under, i =pmeasure, A, under, i -pmeasure, A, under, 1/2,i =1, 2}、{p0, A, n(x0, A, n, y0, A, n, z0, A, n)|p0, A, n =pmeasure, A, n -pmeasure, A, under, 1/2,n =1, 2 … N }、{p0, b, under, j(x0, b, under, j, y0, b, under, j, z0, b, under, j)|p0, b, under, j =pmeasure, b, under, j -pmeasure, A, under, 1/2,,j =1, 2}、{p0, b, m(x0, b, m, y0, b, m, z0, b, m)|p0, b, m =pmeasure, b, m -pmeasure, A, under, 1/2,m =1, 2 … M }。
計(jì)算p0, b, under, 1/2(x0, b, under, 1/2, y0, b, under, 1/2, z0, b, under, 1/2)=(p0, b, under, 1+p0, b, under, 2)/2。
解目標(biāo)優(yōu)化問(wèn)題1:
s.t.
步驟11:使用多層粒子群算法的默認(rèn)參數(shù),包括分辨率TPOS=0.00005、粒子數(shù)NP=20、內(nèi)層最大迭代次數(shù)Ni,rd=100、外層最大迭代次數(shù)No,rd =100、外層最小迭代次數(shù)no,rd=50、質(zhì)量權(quán)因子W =0.5、局部權(quán)因子C1=2、全局權(quán)因子C2=2。
步驟12:定義20個(gè)粒子pPSO,k(pPSO, k,1, p PSO, k,2, pPSO, k,3, pPSO, k,4),其值對(duì)應(yīng)目標(biāo)優(yōu)化問(wèn)題1中的變量(x0, y0, α0, β0),pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間分別與x0、y0、α0、β0的取值區(qū)間相同,即:pPSO, k,1、p PSO, k,2∈[-DA, DA],pPSO, k,3、pPSO, k,4∈[-π , π ];k =1, 2 … 2 0 ;所有粒子組成粒子集{pPSO,k};設(shè)置一個(gè)粒子pPSO,1(p PSO,1,1, p PSO,1,2, pPSO,1,3, pPSO,1,4)的初始值為(0, 0, 0, 0)。
將外層粒子群算法的迭代次數(shù)設(shè)置為0。
步驟13:分別在pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間按平均分布隨機(jī)取19個(gè)值,構(gòu)建19個(gè)粒子pPSO,k;k =2, 3 … 20。
分別在pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間按平均分布隨機(jī)取20個(gè)值,構(gòu)建20個(gè)粒子pPSO,k的初始速度vPSO, k (vPSO, k,1, v PSO, k,2, vPSO, k,3, vPSO, k,4);所有粒子的速度組成速度集{vPSO,k};k =1, 2 … 20。
定義20個(gè)粒子pPSO,k的局部最優(yōu)解為pPSO,k,min=pPSO,k;k =1, 2 … 20。
將pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的值分別代入目標(biāo)優(yōu)化問(wèn)題1中的變量x0、y0、α0、β0及其等式約束,并計(jì)算相應(yīng)的目標(biāo)優(yōu)化函數(shù)值d1,A,k,k =1, 2 … 20;即,
where
記錄粒子pPSO,k對(duì)應(yīng)的局部最優(yōu)值d1,A,k,min=d1,A,k,k =1, 2 … 20。
記錄全局最優(yōu)值d1,A,min=min d1,A,k,min,并記錄與min d1,A,k,min對(duì)應(yīng)的粒子的值為全局最優(yōu)解pPSO,min。
將內(nèi)層粒子群算法的迭代次數(shù)設(shè)置為0。
步驟14:將粒子pPSO,k的值更新為pPSO,k +vPSO, k,k =1, 2 … 20。
令(x0, y0, α0, β0)=pPSO,k,并代入目標(biāo)優(yōu)化問(wèn)題1的不等式約束,即0≤-x0,b,under,1/2cosα0sinβ0+y0,b,under,1/2sinα0+z0,b,under,1/2cosα0cosβ0,x0、y0∈[-DA, DA],α0、β0∈[-π , π ];如果不等式約束成立,那么將(x0, y0, α0, β0)代入目標(biāo)優(yōu)化問(wèn)題1中的等式約束,計(jì)算并更新相應(yīng)的目標(biāo)優(yōu)化函數(shù)值d1,A,k;如果d1,A,k ≤ d1,A,k,min,那么更新粒子pPSO,k的局部最優(yōu)值d1,A,k,min=d1,A,k,并更新粒子pPSO,k的局部最優(yōu)解為pPSO,k,min=pPSO,k;如果d1,A,k ≤ d1,A,min,那么更新全局最優(yōu)值d1,A,min=d1,A,k,并更新全局最優(yōu)解為pPSO,min=pPSO,k;k =1, 2 … 20。
如果各粒子的局部最優(yōu)值和局部最優(yōu)解非常接近,即,(|max d1,A,k,min– min d1,A,k,min| ≤ 0.00005)且(|pPSO,k,min, mean – pPSO,k,min| ≤ 0.00005),那么,轉(zhuǎn)到步驟17,否則轉(zhuǎn)到步驟15;其中,pPSO,k,min, mean為pPSO,k,min的算術(shù)平均值,k =1, 2 … 20。
步驟15:將粒子pPSO,k的速度vPSO,k的值更新為0.5vPSO,k +2Crand1 (pPSO,k,min - pPSO,k) + 2Crand2 (pPSO,min - pPSO,k),其中,Crand1、Crand2是在區(qū)間[0, 1]中相互獨(dú)立地按平均分布隨機(jī)選取的兩個(gè)值;k =1, 2 … 20;
步驟16:累積一次內(nèi)層粒子群算法的迭代次數(shù);如果內(nèi)層粒子群算法的迭代次數(shù)大于100,那么跳轉(zhuǎn)到步驟17,否則跳轉(zhuǎn)到步驟14。
步驟17:記錄每次迭代得到的內(nèi)層粒子群算法的全局最優(yōu)值d1,A,min,s=d1,A,min,其中,s 是外層粒子群算法的迭代次數(shù)。
將粒子pPSO,1的值設(shè)置為當(dāng)前的全局最優(yōu)解pPSO,min。
當(dāng)外層粒子群算法的迭代次數(shù)s > 50時(shí),令g =s -50,判斷多層粒子群算法的收斂性;如果|d1,A,min,s– min d1,A,min, g | ≤ 0.00005,那么,結(jié)束多層粒子群算法并輸出目標(biāo)優(yōu)化問(wèn)題1的最優(yōu)解pPSO,min和最優(yōu)值d1,A,min,否則,累積一次外層粒子群算法的迭代次數(shù)。
如果外層粒子群算法的迭代次數(shù)大于100,那么停止外層粒子群算法并輸出目標(biāo)優(yōu)化問(wèn)題1的最優(yōu)解(x0, y0, α0, β0)=pPSO,min和最優(yōu)值min d1, A=d1,A,min,否則,更新粒子pPSO,1的初始值為pPSO,min跳轉(zhuǎn)到步驟13。
解得實(shí)際基準(zhǔn)圓柱體A 的擬合圓柱體C CA的直徑dA=|min d1, A|和對(duì)應(yīng)的pPSO,min的值(x0,min, y0,min, α0,min, β0,min)。
將粗略平移數(shù)據(jù)集{p0, A, n(x0, A, n, y0, A, n, z0, A, n)}進(jìn)行如下坐標(biāo)變換,n =1, 2 … N :
得到實(shí)際被測(cè)圓柱所有測(cè)點(diǎn)相對(duì)于實(shí)際基準(zhǔn)圓柱體的坐標(biāo)集{pA, n(xA, n, yA, n, zA, n)}。
將粗略平移數(shù)據(jù)集{p0, b, m(x0, b, m, y0, b, m, z0, b, m)}進(jìn)行如下坐標(biāo)變換,m =1, 2 … M :
得到實(shí)際被測(cè)圓柱所有測(cè)點(diǎn)相對(duì)于實(shí)際基準(zhǔn)圓柱體的坐標(biāo)集{pb, m(xb, m, yb, m, zb, m)}。
步驟4:計(jì)算基準(zhǔn)圓柱體A 最大實(shí)體邊界圓柱體C CAM的直徑DAM,當(dāng)基準(zhǔn)圓柱體A是軸時(shí),DAM = DA +e sA;當(dāng)基準(zhǔn)圓柱體A 是孔時(shí),DAM = DA +E IA。
解目標(biāo)優(yōu)化問(wèn)題2:
s.t.
步驟21:定義多層粒子群算法的參數(shù)或使用其默認(rèn)值,包括分辨率TPOS、粒子數(shù)NP(NP≥ 2)、內(nèi)層最大迭代次數(shù)Ni,rd(Ni,rd ≥ 1)、外層最大迭代次數(shù)No,rd、外層最小迭代次數(shù)no,rd、質(zhì)量權(quán)因子W 、局部權(quán)因子C1、全局權(quán)因子C2。
步驟22:定義粒子pPSO,k(pPSO, k,1, p PSO, k,2, pPSO, k,3, pPSO, k,4)的值對(duì)應(yīng)目標(biāo)優(yōu)化問(wèn)題2中的變量(d xA, d yA, d r xA, d r yA),pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間分別與d xA、d yA、d r xA、d r yA的取值區(qū)間相同,k =1, 2 … NP;所有粒子組成粒子集{pPSO,k};設(shè)置一個(gè)粒子pPSO,1(p PSO,1,1, p PSO,1,2, pPSO,1,3, pPSO,1,4)的初始值為(0, 0, 0, 0)。
將外層粒子群算法的迭代次數(shù)設(shè)置為0。
步驟23:分別在pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間中按平均分布隨機(jī)取(NP -1)個(gè)值,構(gòu)建(NP -1)個(gè)粒子pPSO,k;k =2, 3 … NP。
分別在pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間中按平均分布隨機(jī)取NP個(gè)值,構(gòu)建NP個(gè)粒子pPSO,k的初始速度vPSO, k (vPSO, k,1, v PSO, k,2, vPSO, k,3, vPSO, k,4);所有粒子的速度組成速度集{vPSO,k};k =1, 2 … NP。
定義NP個(gè)粒子pPSO,k的局部最優(yōu)解為pPSO,k,min=pPSO,k;k =1, 2 … NP。
將pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的值代入目標(biāo)優(yōu)化問(wèn)題2中的變量d xA、d yA、d r xA、d r yA及其等式約束,并計(jì)算相應(yīng)的目標(biāo)優(yōu)化函數(shù)值db,AM,coa,k,k =1, 2 … NP。
記錄粒子pPSO,k的局部最優(yōu)值db,AM,coa,k,min=db,AM,coa,k,k =1, 2 … NP。
記錄全局最優(yōu)值db,AM,coa,min=min db,AM,coa,k,min,并記錄與min db,AM,coa,k,min對(duì)應(yīng)的粒子的值為全局最優(yōu)解pPSO,min。
將內(nèi)層粒子群算法的迭代次數(shù)設(shè)置為0。
步驟24:將粒子pPSO,k的值更新為pPSO,k +vPSO, k,k =1, 2 … NP。
令(d xA, d yA, d r xA, d r yA)=pPSO,k,并代入目標(biāo)優(yōu)化問(wèn)題2的不等式約束,如果不等式約束成立,那么將(d xA, d yA, d r xA, d r yA)代入目標(biāo)優(yōu)化問(wèn)題2的等式約束,計(jì)算并更新相應(yīng)的目標(biāo)優(yōu)化函數(shù)值db,AM,coa,k;如果db,AM,coa,k ≤ db,AM,coa,k,min,那么更新粒子pPSO,k的局部最優(yōu)值db,AM,coa,k,min=db,AM,coa,k,并更新粒子pPSO,k的局部最優(yōu)解為pPSO,k,min=pPSO,k;如果db,AM,coa,k ≤ db,AM,coa,min,那么更新全局最優(yōu)值db,AM,coa,min=db,AM,coa,k,并更新全局最優(yōu)解為pPSO,min=pPSO,k;k =1, 2 … NP。
如果各粒子的局部最優(yōu)值和局部最優(yōu)解非常接近,即,(|max db,AM,coa,k,min– min db,AM,coa,k,min| ≤ TPOS)且(|pPSO,k,min, mean – pPSO,k,min| ≤ TPOS),其中,pPSO,k,min, mean為pPSO,k,min的算術(shù)平均值,k =1, 2 … NP;那么,轉(zhuǎn)到步驟27,否則轉(zhuǎn)到步驟25。
步驟25:將粒子pPSO,k的速度vPSO,k的值更新為W vPSO,k +Crand1C1 (pPSO,k,min - pPSO,k) + Crand2C2 (pPSO,min - pPSO,k),其中,Crand1、Crand2是在區(qū)間[0, 1]中相互獨(dú)立地按平均分布隨機(jī)選取的兩個(gè)值;k =1, 2 … NP。
步驟26:累積一次內(nèi)層粒子群算法的迭代次數(shù);如果內(nèi)層粒子群算法的迭代次數(shù)大于Ni,rd,那么停止內(nèi)層粒子群算法并跳轉(zhuǎn)到步驟27,否則跳轉(zhuǎn)到步驟24。
步驟27:記錄每次迭代得到的外層粒子群算法的全局最優(yōu)值db,AM,coa,min,s=db,AM,coa,min,其中,s 是外層粒子群算法的迭代次數(shù)。
將粒子pPSO,1的值設(shè)置為當(dāng)前的全局最優(yōu)解pPSO,min。
當(dāng)外層粒子群算法的迭代次數(shù)s > no,rd時(shí),令g =s -no,rd,判斷多層粒子群算法的收斂性;如果|db,AM,coa,min,s– min db,AM,coa,min, g | ≤ TPOS,那么,結(jié)束多層粒子群算法并輸出目標(biāo)優(yōu)化問(wèn)題2的最優(yōu)解pPSO,min和最優(yōu)值db,AM,coa,min,否則,累積一次外層粒子群算法的迭代次數(shù)。
如果外層粒子群算法的迭代次數(shù)大于No,rd,那么停止外層粒子群算法并輸出目標(biāo)優(yōu)化問(wèn)題2的最優(yōu)解(d xA, d yA, d r xA, d r yA) =pPSO,min和最優(yōu)值min db,AM,coa=db,AM,coa,min,否則,更新粒子pPSO,1的初始值為pPSO,min并跳轉(zhuǎn)到步驟23。
解得圓柱體C Cb相對(duì)于圓柱體C CAM的極限當(dāng)量直徑db, AM, coa, mM=|min db, AM, coa|。
步驟5:計(jì)算被測(cè)圓柱體b 的最大實(shí)體實(shí)效尺寸:當(dāng)被測(cè)圓柱體b 是軸時(shí),DbMV = Db +e sb +Tb, AM, coa;當(dāng)被測(cè)圓柱體b 是孔時(shí),DbMV = Db +E Ib -Tb, AM, coa。
當(dāng)被測(cè)圓柱體C b 是軸時(shí),如果極限當(dāng)量直徑db, AM, coa, mM≤ DbMV,那么給出結(jié)論“實(shí)際被測(cè)圓柱體Cb的同軸度誤差合格”,否則給出結(jié)論“實(shí)際被測(cè)圓柱體Cb的同軸度誤差不合格”。
當(dāng)被測(cè)圓柱體C b 是孔時(shí),如果DbMV≤db, AM, coa, mM,那么給出結(jié)論“實(shí)際被測(cè)圓柱體Cb的同軸度誤差合格”,否則給出結(jié)論“實(shí)際被測(cè)圓柱體Cb的同軸度誤差不合格”。
實(shí)驗(yàn)對(duì)象:
被測(cè)孔有尺寸要求、其孔線的同孔度公差有最大實(shí)體要求并且其基準(zhǔn)孔有尺寸要求和最大實(shí)體要求的階梯孔零件的同孔度誤差合格性檢測(cè)和評(píng)定:
步驟1:獲取如圖4所示的被測(cè)圓柱體b 、基準(zhǔn)圓柱體A 的幾何設(shè)計(jì)參數(shù)(長(zhǎng)度單位為毫米,角度單位為度,弧度單位為1)。
所述的被測(cè)圓柱體b 的幾何設(shè)計(jì)參數(shù)包括:是孔要素、名義直徑Db=24、名義長(zhǎng)度Lb=15、孔的上偏差E Sb=0.4、孔的下偏差E Ib=0、同孔度公差Tb, AM, coa=0.2、同孔度公差標(biāo)注最大實(shí)體要求、同孔度公差的基準(zhǔn)圓柱體A 標(biāo)注最大實(shí)體狀態(tài)。
所述的基準(zhǔn)圓柱體A 的幾何設(shè)計(jì)參數(shù)包括:是孔要素、名義直徑DA=39、名義長(zhǎng)度LA=22、孔的上偏差E SA=0.1、孔的下偏差E IA=0.07、尺寸公差應(yīng)用包容原則,沒(méi)有幾何公差要求。
被測(cè)圓柱體b 的同孔度公差及基準(zhǔn)圓柱體A 都有最大實(shí)體要求,并且基準(zhǔn)圓柱體A 只有尺寸公差要求并應(yīng)用包容原則,跳轉(zhuǎn)到步驟2。
步驟2:獲取實(shí)際被測(cè)圓柱體b 、實(shí)際基準(zhǔn)圓柱體A 的測(cè)量數(shù)據(jù),包括以下四個(gè)測(cè)點(diǎn)數(shù)據(jù)集,如表1所示:
實(shí)際基準(zhǔn)圓柱體A 的兩個(gè)測(cè)點(diǎn)Pmeasure, A, under, 1、Pmeasure,A,under,2分別在實(shí)際基準(zhǔn)圓柱體A 的兩個(gè)底面上,兩個(gè)測(cè)點(diǎn)的測(cè)點(diǎn)數(shù)據(jù)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, A, under, i},i =1, 2;實(shí)際基準(zhǔn)圓柱體A 的側(cè)面上的測(cè)點(diǎn)P measure, A, n分布在3層圓周上,每層圓周3個(gè)點(diǎn),其測(cè)點(diǎn)數(shù)據(jù)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, A, n},n =1, 2 … 9;實(shí)際被測(cè)圓柱體b 的兩個(gè)測(cè)點(diǎn)Pmeasure, b, under, 1、Pmeasure,b,under,2分別在實(shí)際被測(cè)圓柱體b 的兩個(gè)底面上,兩個(gè)測(cè)點(diǎn)的測(cè)點(diǎn)數(shù)據(jù)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, b, under, j},j =1, 2;實(shí)際被測(cè)圓柱體b 的側(cè)面上的測(cè)點(diǎn)Pmeasure, b, m分布在3層圓周上,每層圓周3個(gè)點(diǎn),其測(cè)點(diǎn)數(shù)據(jù)形成測(cè)點(diǎn)數(shù)據(jù)集{pmeasure, b, m,m =1, 2 … 9}。
將3層圓周上的測(cè)點(diǎn)P measure, A, n分別擬合為3個(gè)圓,其直徑分別為39.086、39.083、39.099,判定實(shí)際基準(zhǔn)圓柱體A 的尺寸誤差合格;將3層圓周上的測(cè)點(diǎn)pmeasure, b, m分別擬合為3個(gè)圓,其直徑分別為24.013、24.017、24.021,判定實(shí)際被測(cè)圓柱體b 的尺寸誤差合格;跳轉(zhuǎn)到步驟3。
步驟3:計(jì)算pmeasure, A, under, 1/2=(pmeasure, A, under, 1+pmeasure, A, under, 2)/2=(261.1905, 229.524, -584.6165)。
將步驟2中獲取的四個(gè)測(cè)點(diǎn)數(shù)據(jù)集進(jìn)行坐標(biāo)變換,得到四個(gè)粗略平移數(shù)據(jù)集{p0, A, under, i(x0, A, under, i, y0, A, under, i, z0, A, under, i)|p0, A, under, i =pmeasure, A, under, i -pmeasure, A, under, 1/2,i =1, 2},如表1所示;{p0, A, n(x0, A, n, y0, A, n, z0, A, n)|p0, A, n =pmeasure, A, n -pmeasure, A, under, 1/2,n =1, 2 … N },如表1所示;{p0, b, under, j(x0, b, under, j, y0, b, under, j, z0, b, under, j)|p0, b, under, j =pmeasure, b, under, j -pmeasure, A, under, 1/2,,j =1, 2},如表1所示;{p0, b, m(x0, b, m, y0, b, m, z0, b, m)|p0, b, m =pmeasure, b, m -pmeasure, A, under, 1/2,m =1, 2 … M },如表1所示。
計(jì)算p0, b, under, 1/2=(p0, b, under, 1+p0, b, under, 2)/2=(-23.8675, 3.699, -18.67)。
解目標(biāo)優(yōu)化問(wèn)題1:
s.t.
步驟11:使用多層粒子群算法的默認(rèn)參數(shù),包括分辨率TPOS=0.00005、粒子數(shù)NP=20、內(nèi)層最大迭代次數(shù)Ni,rd=100、外層最大迭代次數(shù)No,rd =100、外層最小迭代次數(shù)no,rd=50、質(zhì)量權(quán)因子W =0.5、局部權(quán)因子C1=2、全局權(quán)因子C2=2。
步驟12:定義20個(gè)粒子pPSO,k(pPSO, k,1, p PSO, k,2, pPSO, k,3, pPSO, k,4),其值對(duì)應(yīng)目標(biāo)優(yōu)化問(wèn)題1中的變量(x0, y0, α0, β0),pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間分別與x0、y0、α0、β0的取值區(qū)間相同,即:pPSO, k,1、p PSO, k,2∈[-39, 39],pPSO, k,3、pPSO, k,4∈[-π , π ];k =1, 2 … 20;所有粒子組成粒子集{pPSO,k};設(shè)置一個(gè)粒子pPSO,1(p PSO,1,1, p PSO,1,2, pPSO,1,3, pPSO,1,4)的初始值為(0, 0, 0, 0)。
將外層粒子群算法的迭代次數(shù)設(shè)置為0。
步驟13:分別在pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間按平均分布隨機(jī)取19個(gè)值,構(gòu)建19個(gè)粒子pPSO,k;k =2, 3 … 20。
分別在pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間按平均分布隨機(jī)取20個(gè)值,構(gòu)建20個(gè)粒子pPSO,k的初始速度vPSO, k (vPSO, k,1, v PSO, k,2, vPSO, k,3, vPSO, k,4);所有粒子的速度組成速度集{vPSO,k};k =1, 2 … 20。
定義20個(gè)粒子pPSO,k的局部最優(yōu)解為pPSO,k,min=pPSO,k;k =1, 2 … 20。
將pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的值分別代入目標(biāo)優(yōu)化問(wèn)題1中的變量x0、y0、α0、β0及其等式約束,并計(jì)算相應(yīng)的目標(biāo)優(yōu)化函數(shù)值d1,A,k,k =1, 2 … 20;即,
where
記錄粒子pPSO,k對(duì)應(yīng)的局部最優(yōu)值d1,A,k,min=d1,A,k,k =1, 2 … 20。
記錄全局最優(yōu)值d1,A,min=min d1,A,k,min,并記錄與min d1,A,k,min對(duì)應(yīng)的粒子的值為全局最優(yōu)解pPSO,min。
將內(nèi)層粒子群算法的迭代次數(shù)設(shè)置為0。
步驟14:將粒子pPSO,k的值更新為pPSO,k +vPSO, k,k =1, 2 … 20。
令(x0, y0, α0, β0)=pPSO,k,并代入目標(biāo)優(yōu)化問(wèn)題1的不等式約束,即0≤-x0,b,under,1/2 cosα0 sinβ0 +y0,b,under,1/2 sinα0 + z0,b,under,1/2 cosα0 cosβ0,x0、y0∈[-39, 39],α0、β0∈[-π , π ];如果不等式約束成立,那么將(x0, y0, α0, β0)代入目標(biāo)優(yōu)化問(wèn)題1中的等式約束,計(jì)算并更新相應(yīng)的目標(biāo)優(yōu)化函數(shù)值d1,A,k;如果d1,A,k ≤ d1,A,k,min,那么更新粒子pPSO,k的局部最優(yōu)值d1,A,k,min=d1,A,k,并更新粒子pPSO,k的局部最優(yōu)解為pPSO,k,min=pPSO,k;如果d1,A,k ≤ d1,A,min,那么更新全局最優(yōu)值d1,A,min=d1,A,k,并更新全局最優(yōu)解為pPSO,min=pPSO,k;k =1, 2 … 20。如果各粒子的局部最優(yōu)值和局部最優(yōu)解非常接近,即,(|max d1,A,k,min– min d1,A,k,min| ≤ 0.00005)且(|pPSO,k,min, mean – pPSO,k,min| ≤ 0.00005),其中,pPSO,k,min, mean為pPSO,k,min的算術(shù)平均值,k =1, 2 … 20;那么,轉(zhuǎn)到步驟17,否則轉(zhuǎn)到步驟15。
步驟15:將粒子pPSO,k的速度vPSO,k的值更新為0.5vPSO,k +2Crand1 (pPSO,k,min - pPSO,k) + 2Crand2 (pPSO,min - pPSO,k),其中,Crand1、Crand2是在區(qū)間[0, 1]中相互獨(dú)立地按平均分布隨機(jī)選取的兩個(gè)值;k =1, 2 … 20;
步驟16:累積一次內(nèi)層粒子群算法的迭代次數(shù);如果內(nèi)層粒子群算法的迭代次數(shù)大于100,那么跳轉(zhuǎn)到步驟17,否則跳轉(zhuǎn)到步驟14。
步驟17:記錄每次迭代得到的內(nèi)層粒子群算法的全局最優(yōu)值d1,A,min,s=d1,A,min,其中,s 是外層粒子群算法的迭代次數(shù)。
將粒子pPSO,1的值設(shè)置為當(dāng)前的全局最優(yōu)解pPSO,min。
當(dāng)外層粒子群算法的迭代次數(shù)s > 50時(shí),令g =s -50,判斷多層粒子群算法的收斂性;如果|d1,A,min,s– min d1,A,min, g | ≤ 0.00005,那么,結(jié)束多層粒子群算法并輸出目標(biāo)優(yōu)化問(wèn)題1的最優(yōu)解pPSO,min和最優(yōu)值d1,A,min,否則,累積一次外層粒子群算法的迭代次數(shù)。
如果外層粒子群算法的迭代次數(shù)大于100,那么停止外層粒子群算法并輸出目標(biāo)優(yōu)化問(wèn)題1的最優(yōu)解(x0, y0, α0, β0)=pPSO,min和最優(yōu)值min d1, A=d1,A,min,否則,更新粒子pPSO,1的初始值為pPSO,min跳轉(zhuǎn)到步驟13。
解得實(shí)際基準(zhǔn)圓柱體A 的擬合圓柱體C CA的直徑dA=|min d1, A|=39.099和對(duì)應(yīng)的pPSO,min的值(x0,min, y0,min, α0,min, β0,min)= (13.9257, 6.4138, 0.012, 0.0149)。
將粗略平移數(shù)據(jù)集{p0, A, n(x0, A, n, y0, A, n, z0, A, n)}進(jìn)行如下坐標(biāo)變換,n =1, 2 … N :
得到實(shí)際被測(cè)圓柱所有測(cè)點(diǎn)相對(duì)于實(shí)際基準(zhǔn)圓柱體的坐標(biāo)集{pA, n(xA, n, yA, n, zA, n)} ,如表1所示。
將粗略平移數(shù)據(jù)集{p0, b, m(x0, b, m, y0, b, m, z0, b, m)}進(jìn)行如下坐標(biāo)變換,m =1, 2 … M :
得到實(shí)際被測(cè)圓柱所有測(cè)點(diǎn)相對(duì)于實(shí)際基準(zhǔn)圓柱體的坐標(biāo)集{pb, m(xb, m, yb, m, zb, m)},如表1所示。
步驟4:計(jì)算基準(zhǔn)圓柱體C A 最大實(shí)體邊界圓柱體C CAM的直徑DAM,基準(zhǔn)圓柱體C A 是孔,DAM = DA +E IA =39+0.07=39.07;
解目標(biāo)優(yōu)化問(wèn)題2:
s.t.
步驟21:定義多層粒子群算法的參數(shù)或使用其默認(rèn)值,包括分辨率TPOS、粒子數(shù)NP(NP≥ 2)、內(nèi)層最大迭代次數(shù)Ni,rd(Ni,rd ≥ 1)、外層最大迭代次數(shù)No,rd、外層最小迭代次數(shù)no,rd、質(zhì)量權(quán)因子W 、局部權(quán)因子C1、全局權(quán)因子C2。
步驟22:定義粒子pPSO,k(pPSO, k,1, p PSO, k,2, pPSO, k,3, pPSO, k,4)的值對(duì)應(yīng)目標(biāo)優(yōu)化問(wèn)題2中的變量(d xA, d yA, d r xA, d r yA),pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間分別與d xA、d yA、d r xA、d r yA的取值區(qū)間相同,k =1, 2 … NP;所有粒子組成粒子集{pPSO,k};設(shè)置一個(gè)粒子pPSO,1(p PSO,1,1, p PSO,1,2, pPSO,1,3, pPSO,1,4)的初始值為(0, 0, 0, 0)。
將外層粒子群算法的迭代次數(shù)設(shè)置為0。
步驟23:分別在pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間中按平均分布隨機(jī)取(NP -1)個(gè)值,構(gòu)建(NP -1)個(gè)粒子pPSO,k;k =2, 3 … NP。
分別在pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的取值區(qū)間中按平均分布隨機(jī)取NP個(gè)值,構(gòu)建NP個(gè)粒子pPSO,k的初始速度vPSO, k (vPSO, k,1, v PSO, k,2, vPSO, k,3, vPSO, k,4);所有粒子的速度組成速度集{vPSO,k};k =1, 2 … NP。
定義NP個(gè)粒子pPSO,k的局部最優(yōu)解為pPSO,k,min=pPSO,k;k =1, 2 … NP。
將pPSO, k,1、p PSO, k,2、pPSO, k,3、pPSO, k,4的值代入目標(biāo)優(yōu)化問(wèn)題2中的變量d xA、d yA、d r xA、d r yA及其等式約束,并計(jì)算相應(yīng)的目標(biāo)優(yōu)化函數(shù)值db,AM,coa,k,k =1, 2 … NP。
記錄粒子pPSO,k的局部最優(yōu)值db,AM,coa,k,min=db,AM,coa,k,k =1, 2 … NP。
記錄全局最優(yōu)值db,AM,coa,min=min db,AM,coa,k,min,并記錄與min db,AM,coa,k,min對(duì)應(yīng)的粒子的值為全局最優(yōu)解pPSO,min。
將內(nèi)層粒子群算法的迭代次數(shù)設(shè)置為0。
步驟24:將粒子pPSO,k的值更新為pPSO,k +vPSO, k,k =1, 2 … NP。
令(d xA, d yA, d r xA, d r yA)=pPSO,k,并代入目標(biāo)優(yōu)化問(wèn)題2的不等式約束,如果不等式約束成立,那么將(d xA, d yA, d r xA, d r yA)代入目標(biāo)優(yōu)化問(wèn)題2的等式約束,計(jì)算并更新相應(yīng)的目標(biāo)優(yōu)化函數(shù)值db,AM,coa,k;如果db,AM,coa,k ≤ db,AM,coa,k,min,那么更新粒子pPSO,k的局部最優(yōu)值db,AM,coa,k,min=db,AM,coa,k,并更新粒子pPSO,k的局部最優(yōu)解為pPSO,k,min=pPSO,k;如果db,AM,coa,k ≤ db,AM,coa,min,那么更新全局最優(yōu)值db,AM,coa,min=db,AM,coa,k,并更新全局最優(yōu)解為pPSO,min=pPSO,k;k =1, 2 … NP。
如果各粒子的局部最優(yōu)值和局部最優(yōu)解非常接近,即,(|max db,AM,coa,k,min– min db,AM,coa,k,min| ≤ TPOS)且(|pPSO,k,min, mean – pPSO,k,min| ≤ TPOS),其中,pPSO,k,min, mean為pPSO,k,min的算術(shù)平均值,k =1, 2 … NP;那么,轉(zhuǎn)到步驟27,否則轉(zhuǎn)到步驟25。
步驟25:將粒子pPSO,k的速度vPSO,k的值更新為W vPSO,k +Crand1C1 (pPSO,k,min - pPSO,k) + Crand2C2 (pPSO,min - pPSO,k),其中,Crand1、Crand2是在區(qū)間[0, 1]中相互獨(dú)立地按平均分布隨機(jī)選取的兩個(gè)值;k =1, 2 … NP。
步驟26:累積一次內(nèi)層粒子群算法的迭代次數(shù);如果內(nèi)層粒子群算法的迭代次數(shù)大于Ni,rd,那么停止內(nèi)層粒子群算法并跳轉(zhuǎn)到步驟27,否則跳轉(zhuǎn)到步驟24。
步驟27:記錄每次迭代得到的外層粒子群算法的全局最優(yōu)值db,AM,coa,min,s=db,AM,coa,min,其中,s 是外層粒子群算法的迭代次數(shù)。
將粒子pPSO,1的值設(shè)置為當(dāng)前的全局最優(yōu)解pPSO,min。
當(dāng)外層粒子群算法的迭代次數(shù)s > no,rd時(shí),令g =s -no,rd,判斷多層粒子群算法的收斂性;如果|db,AM,coa,min,s– min db,AM,coa,min, g | ≤ TPOS,那么,結(jié)束多層粒子群算法并輸出目標(biāo)優(yōu)化問(wèn)題2的最優(yōu)解pPSO,min和最優(yōu)值db,AM,coa,min,否則,累積一次外層粒子群算法的迭代次數(shù)。
如果外層粒子群算法的迭代次數(shù)大于No,rd,那么停止外層粒子群算法并輸出目標(biāo)優(yōu)化問(wèn)題2的最優(yōu)解(d xA, d yA, d r xA, d r yA) =pPSO,min和最優(yōu)值min db,AM,coa=db,AM,coa,min,否則,更新粒子pPSO,1的初始值為pPSO,min并跳轉(zhuǎn)到步驟23。
解得圓柱體C Cb相對(duì)于圓柱體C CAM的極限當(dāng)量直徑db, AM, coa, mM=|min db, AM, coa|=23.792。
步驟5:計(jì)算被測(cè)圓柱體b 的最大實(shí)體實(shí)效尺寸:被測(cè)圓柱體b 是孔,DbMV = Db +E Ib -Tb, AM, coa=24+0-0.3=23.7。
被測(cè)圓柱體b 是孔,23.7=DbMV≤db, AM, coa, mM=23.792,給出結(jié)論“實(shí)際被測(cè)圓柱體b 的同軸度誤差合格”。
表1數(shù)據(jù)集和坐標(biāo)集