盧莉蓉, 牛曉東, 周晉陽(yáng)△,石春花
(1.長(zhǎng)治醫(yī)學(xué)院生物醫(yī)學(xué)工程系,山西 長(zhǎng)治 046000;2.長(zhǎng)治醫(yī)學(xué)院 物理教研室,山西 長(zhǎng)治,046000)
傳感器[1]是可以將被測(cè)量轉(zhuǎn)換成電量輸出的一種器件。傳感器在醫(yī)學(xué)儀器的研制和醫(yī)學(xué)實(shí)驗(yàn)中占有重要地位。在理想的狀態(tài)下,傳感器的輸入輸出間呈線性關(guān)系,通過(guò)對(duì)輸出量的測(cè)量也就知道了輸入量的大小。但在實(shí)際應(yīng)用中多數(shù)傳感器其輸出量與輸入量之間的關(guān)系為非線性的關(guān)系。針對(duì)這一問(wèn)題,人們采用了許多辦法來(lái)對(duì)傳感器的非線性進(jìn)行校正。但現(xiàn)階段的這些校正方法存在著成本高、校正精度差和穩(wěn)定性差等缺點(diǎn)[2-3]。
進(jìn)化規(guī)劃[4](evolutionary programming,EP)是一種隨機(jī)搜索算法。在進(jìn)化規(guī)劃中,不使用交叉、重組之類體現(xiàn)個(gè)體之間相互作用的算子,而只采用變異算子,并且大多數(shù)情況下使用高斯變異算子,算法簡(jiǎn)單易行。變異算子是以一定的概率隨機(jī)地修改個(gè)體,有可能變異后的個(gè)體還不如父代個(gè)體,即出現(xiàn)了退化現(xiàn)象;還有所有實(shí)際問(wèn)題本身都具有一定的特點(diǎn),如果利用這些特點(diǎn)則會(huì)提高求解的速度,但進(jìn)化規(guī)劃中沒(méi)有利用這些特點(diǎn)。以上這兩點(diǎn)就影響了算法的運(yùn)行速度。而且進(jìn)化規(guī)劃保持種群多樣性的能力不足,易于早熟收斂[5-7]。生物免疫系統(tǒng)[8-9]是機(jī)體執(zhí)行免疫應(yīng)答及免疫功能的重要系統(tǒng),它可以識(shí)別“自己”和“異己”,迅速清除和消滅異物,確保機(jī)體的安全性。生物免疫系統(tǒng)具有可產(chǎn)生多樣抗體、自我調(diào)節(jié)和免疫記憶的功能。
將生物免疫系統(tǒng)的機(jī)制應(yīng)用于進(jìn)化規(guī)劃算法中,借鑒免疫系統(tǒng)能產(chǎn)生和維持多樣性抗體的能力,以及自我調(diào)節(jié)能力,在進(jìn)化算法的整體框架上引入免疫機(jī)制,就形成了免疫規(guī)劃[10](immune programming,IP)。我們研究并應(yīng)用免疫規(guī)劃解決傳感器系統(tǒng)的非線性校正問(wèn)題。實(shí)例分析的結(jié)果表明應(yīng)用免疫規(guī)劃對(duì)傳感器進(jìn)行非線性校正,不僅可以提高校正精度,速度和穩(wěn)定性也有了大幅度的提高。
校正模型見圖1。

圖1 校正模型
圖中X是被測(cè)量,作為傳感器的輸入信號(hào)。X經(jīng)過(guò)傳感器后輸出一個(gè)非線性信號(hào),再經(jīng)過(guò)放大器和AD轉(zhuǎn)換器后輸出Y,Y與X之間依然是呈非線性的,最后經(jīng)過(guò)IP校正輸出Z。
IP校正主要就是要進(jìn)行數(shù)據(jù)處理和非線性校正,使得最終的輸出Z與傳感器的輸入X之間呈線性關(guān)系。
設(shè)Y與X之間的關(guān)系為Y=f(X),Z與Y之間的關(guān)系為Z=g(Y),若滿足g(Y)=f-1(Y),則:
Z=g(Y)=f-1(Y)=X
(1)
從(1)式中可以看出, 輸出Z與輸入X是呈線性關(guān)系的,即非線性校正成功。本文的目的就是利用IP來(lái)求校正環(huán)節(jié)Z=g(Y),即Z=f-1(Y)。
Z可以表示為:
Z=f-1(Y)=a0+a1Y+a2Y2+…+anYn
(2)
式(2)中,a0,a1,a2,…,an為待定系數(shù),n的值一般取3,即:
Z=f-1(Y)=a0+a1Y+a2Y2+a3Y3
(3)
式中,a0,a1,a2,a3為待定系數(shù)。只要確定了式(3)中的待定系數(shù),也就確定了校正環(huán)節(jié)Z=f-1(Y)。
將生物免疫系統(tǒng)的機(jī)制應(yīng)用于進(jìn)化規(guī)劃算法中,就形成了免疫規(guī)劃。IP流程圖見圖2。

圖2 IP流程圖
應(yīng)用IP解決傳感器系統(tǒng)的非線性校正問(wèn)題的步驟如下:
(1)抗原的識(shí)別??乖褪菍?duì)應(yīng)于我們要求解的問(wèn)題。抗原的識(shí)別就是要找出對(duì)應(yīng)問(wèn)題的目標(biāo)函數(shù)形式。在本文中,傳感器非線性校正的目標(biāo)函數(shù)為:

(4)
(2)初始抗體的產(chǎn)生。通過(guò)計(jì)算機(jī)隨機(jī)產(chǎn)生隨機(jī)N+m個(gè)個(gè)體,這些個(gè)體作為初始種群。并將其中的m個(gè)個(gè)體放入記憶庫(kù)中。
(3)個(gè)體適應(yīng)度評(píng)價(jià)。個(gè)體適應(yīng)度由下式來(lái)確定:

(5)
(4)高斯變異。在IP中大多采用高斯變異算子。在變異過(guò)程中,計(jì)算每個(gè)個(gè)體適應(yīng)度函數(shù)值的線性平方根獲得該個(gè)體變異的標(biāo)準(zhǔn)差,將每個(gè)分量加上一個(gè)服從正態(tài)分布的隨機(jī)數(shù)。
假設(shè)X為個(gè)體,σ為高斯變異的標(biāo)準(zhǔn)差。染色體個(gè)體有L個(gè)基因位。則(X,σ)=((x1,x2,…,xL),σ) 。經(jīng)過(guò)高斯變異后,
xi(t+1)=xi(t)+N(0,σ(t+1))
(6)
式中,

(7)
式中,N(0,σ(t+1))表示均值為0,方差為σ(t+1)的符合正態(tài)分布的隨機(jī)變量;F(X(t))表示當(dāng)前個(gè)體的適應(yīng)度;系數(shù)β、γ為特定的系數(shù),通常取β和γ的值為1和0。
(5)計(jì)算個(gè)體的適應(yīng)度和抗體的濃度。計(jì)算的對(duì)象為高斯變異產(chǎn)生的N個(gè)新個(gè)體與記憶庫(kù)中m個(gè)個(gè)體。
a、計(jì)算個(gè)體的適應(yīng)度。依據(jù)公式(5)即可求得。
b、計(jì)算抗體的濃度。對(duì)于抗體和b來(lái)說(shuō),令這兩個(gè)抗體總的基因位數(shù)為L(zhǎng),相同的基因位數(shù)為k,并提前設(shè)定一常數(shù)T=0.5。
我們定義抗體的濃度為:
(8)

(6)條件判斷。判斷是否滿足終止條件,是則結(jié)束,輸出結(jié)果;否則繼續(xù)。
(7)形成新的父代種群。新的父代種群的形成是依據(jù)個(gè)體的期望繁殖概率。簡(jiǎn)化的個(gè)體的期望繁殖概率可用下式計(jì)算[11]

(9)
由式(9)可以看出。F(x)越高,則P越大;CV越大,則P越小。也就是說(shuō),我們希望適應(yīng)度高,并且濃度低的個(gè)體繁殖。從而保持了種群的多樣性。
按照個(gè)體的期望繁殖概率由大到小排列,前N個(gè)就構(gòu)成了新的父代種群。前m個(gè)個(gè)體就構(gòu)成了新的記憶庫(kù)。
(8)新的抗體的產(chǎn)生。通過(guò)選擇操作來(lái)產(chǎn)生新的抗體,選擇操作選用輪盤賭選擇,個(gè)體被選擇的概率即為式(9)計(jì)算出的個(gè)體的期望繁殖概率。
(9)轉(zhuǎn)去執(zhí)行步驟(3)。
為了驗(yàn)證本研究所提出方法的先進(jìn)性,我們?cè)贛ATLAB上做了大量的仿真實(shí)驗(yàn)。其輸入、輸出數(shù)據(jù)取自文獻(xiàn)[2]的濃度傳感器。表1中f為傳感器的輸出,Cp為傳感器的輸入:

表1 傳感器輸出f及對(duì)應(yīng)的實(shí)際輸入濃度值Cp
從表中可以看出,其輸出f與對(duì)應(yīng)的實(shí)際輸入濃度Cp是呈非線性關(guān)系的。這里就要在傳感器的輸出后加入非線性校正環(huán)節(jié),使得最終的輸出與輸入間呈線性關(guān)系。
校正環(huán)節(jié):
其中fmax=2500 Hz,a0,a1,a2,a3為待定系數(shù)。本研究就是要利用IP來(lái)確定這個(gè)非線性校正環(huán)節(jié)多項(xiàng)式的系數(shù)。我們?nèi)〉螖?shù)為100,a0,a1,a2,a3的位數(shù)為20,群體個(gè)體為50,記憶庫(kù)大小為10。
運(yùn)行IP,結(jié)果如下:
圖3為實(shí)際輸入的濃度值與IP擬合曲線的對(duì)比值。圓圈代表的是對(duì)應(yīng)于實(shí)際輸入濃度的實(shí)際輸出頻率。實(shí)線代表的是對(duì)應(yīng)于非線性校正環(huán)節(jié)實(shí)際輸入頻率的非校正環(huán)節(jié)的輸出。從圖3可看出:對(duì)應(yīng)于相同的頻率來(lái)說(shuō),實(shí)際的輸入濃度值與經(jīng)過(guò)非線性校正后的輸出值基本上是相同的,也就是整個(gè)濃度傳感器系統(tǒng)的輸入輸出基本相同,從而實(shí)現(xiàn)了線性輸出,實(shí)現(xiàn)了濃度傳感器的非線性校正。

圖3 實(shí)際值與IP擬合曲線
圖4是利用IP對(duì)濃度傳感器進(jìn)行非線性校正經(jīng)過(guò)100次迭代后最優(yōu)解變化圖,橫軸代表的是進(jìn)化代數(shù),縱軸代表的是目標(biāo)函數(shù)值(即(4)式)的變化,目標(biāo)函數(shù)值越小,非線性校正的效果就越好。從圖4中可看出種群經(jīng)過(guò)58代進(jìn)化后收斂到目標(biāo)函數(shù)最小值。目標(biāo)函數(shù)最小值為0.0635,并且可得到待定系數(shù)為:
a0=5.4478,a1=-4.8007,a2=-3.5829,a3=5.5091


圖4 經(jīng)過(guò)100次迭代后目標(biāo)函數(shù)值的變化
利用IP對(duì)此濃度傳感器進(jìn)行傳感器的非線性校正,運(yùn)行100次,將運(yùn)行結(jié)果與文獻(xiàn)[2]中的結(jié)果進(jìn)行比較,結(jié)果見表2。

表2 IP與IGA的運(yùn)行結(jié)果比較
實(shí)例分析可看出,利用IP對(duì)傳感器進(jìn)行傳感器的非線性校正,整個(gè)濃度傳感器的輸入與輸出基本相同,目標(biāo)函數(shù)值可以達(dá)到0.0635,比利用IGA對(duì)傳感器進(jìn)行非線性校正的目標(biāo)函數(shù)值0.3477大大減小,說(shuō)明此校正方法具有較高的校正精度;而且從圖4還可以看出曲線在58代就收斂到了目標(biāo)函數(shù)的最小值,說(shuō)明此校正方法具有較快的收斂速度;運(yùn)行程序100次,95%都可收斂到了目標(biāo)函數(shù)的最小值,說(shuō)明此校正方法具有非常好的穩(wěn)定性。
傳感器作為醫(yī)學(xué)測(cè)量中的核心部件,其精度和穩(wěn)定性決定了醫(yī)學(xué)測(cè)量的精度和穩(wěn)定性。但是大多數(shù)傳感器所存在的輸入輸出呈非線性的特點(diǎn),這給醫(yī)學(xué)儀器的測(cè)量帶來(lái)了很多不便。本研究在進(jìn)化規(guī)劃的基礎(chǔ)上引入生物免疫機(jī)制,從而形成免疫規(guī)劃,利用免疫規(guī)劃來(lái)計(jì)算得到校正環(huán)節(jié)的待定常數(shù),同時(shí)使得整個(gè)系統(tǒng)的輸出與傳感器的輸入間呈線性關(guān)系,即對(duì)傳感器實(shí)現(xiàn)了非線性校正。實(shí)踐表明, 利用免疫規(guī)劃對(duì)傳感器進(jìn)行傳感器的非線性校正,具有較高的校正精度,較快的收斂速度和非常好的穩(wěn)定性。