本發明涉及一種基于改進粒子群算法的數字微流控芯片故障檢測方法及系統,屬于微數字微流控芯片故障檢測領域。
背景技術:
隨著科技的發展,自動測試領域已從對模擬電路或數字電路的測試擴展到對微機電系統MEMS(Micro-Electromechanical Systems)的測試。微流控芯片又稱作片上實驗室(Lab-on-a-chip),可以在一塊幾平方厘米的芯片上完成生物實驗室及常規化學檢驗的各種功能。具有小型化、高敏感度、低成本、集成化等特點。第一代微流控生物芯片具有永久刻蝕的微閥、微泵和微流道,至于具體操作都是基于連續的流體流動。微流體技術和制造工藝的發展推動了數字微流控芯片的產生,數字微流控芯片在二維微流控陣列上操縱離散的液滴,具有可大幅擴展的系統架構。
數字微流控芯片與連續流體控制相比,強調將液體分散化為微量的液滴來操作,單獨控制每個液滴,且能耗很低,特別適用于需要高性能并且操作較復雜的生化分析。與傳統模式的生化分析儀相比,數字微流控芯片具有可重復使用、尺寸小、自動化程度高、集成度高等優勢。有能力精確驅動微量液體(低至微升甚至納升級別的液體),在芯片上完成流體的運輸、存儲、分離和混合等操作,以低成本完成超靈敏的生化檢測,可以顯著的減少測試時間及實驗室空間,由于減少了人為操作過程,增加了結果的穩定性和準確性。因此在臨床診斷、生物醫療、健康檢查、藥物診斷、空氣質量的檢測等方面都有廣泛的應用前景,具有重要的意義。
隨著數字微流控芯片的發展,為了滿足越來越復雜的生化分析實驗系統的要求,數字微流控芯片的規模及芯片密度迅速擴大,這樣在使用過程中十分容易出現各種物理故障及生產故障,這樣的故障對微流控系統而言更具有危險性,也更容易出現破壞性的故障。同時,數字微流控生物芯片常用在生物檢測、臨床診斷、藥物研制等安全關鍵領域,其可靠性成為制作和設計的重要標準。為保證芯片系統的可靠性,需要進行有效并且全面的故障檢測。芯片的有效性測試不僅僅存在于芯片生產完成后,進行生化檢測之前,甚至在實驗進行過程中都需要不斷的進行測試,以保證穩定性。故障檢測完成后,為了實現實驗液滴行走路線的重新配置,還需要對芯片陣列進行準確的故障定位。如何對測試液滴的測試路徑進行規劃是節約芯片測試時間、提高芯片測試效率的核心問題。
數字微流控芯片的測試方法是使實測試滴遍歷芯片的電極單元,因此實驗液滴走過路徑的長短直接影響測試時間的長短。為了不影響實驗液滴的正常工作,數字微流控芯片陣列故障檢測屬于資源限制下的路徑優化問題,屬于NP難問題。
因此,需要一種新的數字微流控芯片的故障檢測方法,使得在保證故障覆蓋率的前提下,最大程度的縮短故障定位時間,提高故障檢測效率,節約檢測成本,保障數字微流控芯片的安全性。
技術實現要素:
本發明的目的是為了解決現有技術的數字微流控芯片故障檢測方法故障定位時間較長的缺點,而提出一種新的基于改進粒子群算法的數字微流控芯片故障檢測及定位方法。
基于改進粒子群算法的數字微流控芯片故障檢測方法,其特征在于,包括如下步驟:
步驟一:獲取測試液滴的起始位置和終點位置;所述測試液滴用于在數字微流控芯片的相鄰電極陣列間移動以判斷所述相鄰電極陣列間是否存在故障;每兩個相鄰電極陣列間的邊被賦予了互不相同的編號;
步驟二:構建禁忌表,所述禁忌表用于存放液滴在當前位置不能訪問的邊以及已經訪問過的邊;
步驟三:構建至少一個粒子群,為每個粒子群構建與其對應的位置矩陣,所述位置矩陣的行數表示粒子群算法中的粒子總數;所述位置矩陣的列數表示相鄰電極陣列間形成邊的總數;所述位置矩陣中的元素表示特定的粒子在特定電極陣列處的速度向量;所述速度向量為下一時刻每個粒子所在的邊的序號;
步驟四:確定粒子群算法中每個粒子的速度向量Speed,直至所有邊均被遍歷;所述速度向量Speed具體通過如下方式的隨機一種確定:
A、選擇隨機的一個允許選擇的邊Speed1;
B、選擇離當前位置距離最近的一條邊Speed2;
C、選擇上一次迭代得到的最短路徑序列中與當前時刻的位置相鄰的邊Speed3;
步驟五:根據公式更新粒子的位置序列,其中Xt=(1,x1,x2,...,xt,0,...),xt為第t時刻粒子的位置,Vt=(0,0,0,...,xt+1,0,...),xt+1=Speed;
步驟六:計算每個粒子的位置向量的適應度,并分別確定每個
當前最短路徑Pbesti以及全局最短路徑Gbest;所述適應度用于表示生成的邊的有序序列所對應的路徑的長度;
步驟七:重復迭代步驟三至步驟六,直至達到預定的迭代次數,輸出全局最短路徑Gbest。
本發明的有益效果為:使用粒子群算法,在保證故障覆蓋率的前提上最大程度的縮短故障定位時間,提高故障檢測效率,節約檢測成本,保障數字微流控芯片的安全性。同時,本發明將PSO算法和貪婪算法的思想融合,使改進粒子群算法可以解決基本粒子群求解路徑優化問題時面臨的困難,并且有更高的效率。對基本PSO算法中粒子的位置、速度以及操作進行了重新定義,使粒子群算法更適合于求解最短路徑優化問題,更好的完成數字微流控芯片的在線故障檢測。同時,本發明提出利用紅外發光管和紅外接收管進行故障定位的方法,能有效的發現故障點,便于后續的實驗液滴路徑重構問題。
附圖說明
圖1為本發明的基于改進粒子群算法的數字微流控芯片故障檢測方法的流程圖;
圖2(a)為數字微流控芯片無故障單元時的測試結果;
圖2(b)為數字微流控芯片有故障單元時的測試結果;
圖3(a)為一個實施例中數字微流控芯片的液滴從起始點開始移動的示意圖;其中兩個電極的相連表示短路;箭頭表示移動方向;
圖3(b)為圖3(a)的液滴移動到短路位置的示意圖;
圖4(a)為另一個實施例中數字微流控芯片的液滴從起始點開始移動的示意圖;其中兩個電極的相連表示短路;箭頭表示移動方向;
圖4(b)為圖4(a)的液滴由于偏離移動方向而經過故障電極的情況;
圖4(c)為圖4(b)的液滴未停留在故障電極而是移動到下一電極的情況;
圖5為將微流控芯片模型轉換為圖的示意圖。
具體實施方式
本發明涉及到的基本原理如下:
數字微流控芯片驅動微流體的方式為介電潤濕驅動。通過電極陣列對液滴施加電場以改變其表面張力,在疏水聚合物表面利用的液固表面張力改變來驅動液滴。為了使液滴移動,驅動電壓加在相鄰的電極單元上,利用介電潤濕原理,使得液滴的表面上積累電量,從而在液滴表面生成覆蓋相鄰電極的表面張力梯度,當該張力大于上下表面與液滴之間的阻力時,便可以完成液滴移動的驅動,這是控制液滴移動的最基本方法。通過在相應的電極陣列上施加電壓序列,就能夠實現在芯片上實現生化檢測中基本操作,如:液滴分配,運輸,存儲,混合和分離等。
數字微流控芯片故障類型分為兩種:參數性故障和永久性故障。參數性故障主要在制作過程中產生,如尺寸參數誤差引起,當電極陣列不水平,兩層表面之間不平行或電極厚度不均勻時,數字液滴的驅動將受到影響,該類故障對實驗結果的影響表現為產生較大偏差,使芯片的性能受到嚴重影響。
永久性故障由芯片電極單元之間的斷路和短路造成,這些故障可能來源于制作過程中,或者是由控制電壓不合適導致的電極退化引起。永久性故障會導致液滴停留在故障單元,不能依照設計路線行進,無法完成實驗移動到廢液池,導致生化檢測的失敗,在安全性要求高的領域的應用會產生重大不良影響。本發明主要考慮永久性故障的在線故障檢測方法。
數字微流控芯片的永久性故障主要會造成系統的液滴無法移動,因此可以根據測試液滴移動是否正常判斷是否存在故障,但是由于故障可能會在實驗進行時產生,所以需要不斷的對芯片進行測試才能保證芯片長期穩定工作。可以使檢測液滴和實驗液滴并測的在線測試方法:通過對電極施加電壓從而控制測試液滴從單獨的檢測液體儲液池出發,在不影響實驗液滴的前提下遵循測試規則行走,通過遍歷陣列單元最終到達測試終點。在終點端增加電容檢測電路判斷測試液滴到達,即完成故障測試。如圖2所示:
但僅僅使液滴遍歷每個電極陣列是不能完成故障檢測的,由上述介紹可知,永久故障可由電極之間短路引起,測試液滴經歷短路的相鄰電極時會出現不同的情況,圖3圖4中(a)表示液滴起始位置及運動方向,實線相連表示兩個電極之間短路,即驅動電壓同時產生同時消失。對圖3,運動方向與電極短路方向平行,液滴經過短路的兩個電極時,由于左右驅動電壓同時產生同時消失,液滴會停留在短路電極中間,如(b)。對圖4,液滴行進方向與短路電極方向相互垂直,經過故障位置時會有(b)中所示的稍許偏離,但是仍然能經過短路電極到達下一陣列的單元,如(c),并沒有停留在故障單元。
所以,為防止出現上述情況,需要對所有陣列單元及相鄰陣列單元進行測試,從而才能保證檢測的有效性和芯片工作的可靠性。數字微流控芯片的在線故障檢測問題轉化為尋找最短的遍歷所有陣列單元和相鄰陣列單元的問題。
本發明使用了基本粒子群算法來解決數字微流控芯片故障檢測的問題。
基本粒子群算法(Particle Swarm Optimization,PSO)原理主要模擬鳥群飛行的覓食行為,通過鳥群的集體協作達到尋優的目的。在PSO算法中,每個粒子利用自身的歷史最優位置和整個粒子群的全局最優解提供的信息,在解空間內不斷飛行,實現尋找最優解的目的。
設搜索空間為N維,總粒子數為Num,第i個粒子的位置為xi=(xi1,xi2,...,xin),第i個粒子的速度向量是Vi=(vi1,vi2,...,vin),第i個粒子在飛行中的粒子最優位置是Pi=(Pi1,Pi2,...,Pin),Ps表示目前為止在整個粒子群中發現的全局最優粒子,粒子按如下方式飛行:
vijt=w×vijt+c1×r1×[Pijt-xijt]+c2×r2×[Psjt-xijt]
xijt+1=xijt+vijt+1
其中,下標j表示第j維,t為飛行的次數;w為慣性權重,使粒子保持運動慣性,控制前一速度對當前速度的影響,較大的w適用于對解空間進行大規模探查,較小的w適合于進行小范圍尋優;c1,c2為加速常數,通常在0~2間取值,c1調節粒子飛向自身最好位置方向的步長,c2調節粒子向全局最好位置飛行步長;r1,r2是[0,1]之間相互獨立的隨機數。粒子的位置向量中各維變化范圍為[Xmin,Xmax],速度變化范圍為[Vmin,Vmax],迭代中若位置和速度超過邊界范圍則取邊界值。PSO算法通過粒子在解空間內不斷地變化速度向量來改變位置,最終尋到最優解。
從社會學的角度來分析,速度迭代公式的第一部分是“記憶”項,是粒子之前的速度,說明粒子當前速度向量要受到上一次速度的作用;公式第二部分是“自我認知”項,是從當前點粒子位置指向粒子個體最優的一個矢量,說明粒子的運動來源于粒子之前的經驗;公式的第三部分是“群認知”項,是一個從當前點指向群體最優點的矢量,反映了粒子間的信息分享和協同合作。粒子通過經驗和群體最優經驗來決定下一時刻的速度以及位置。也就是第一部分起到了局部搜索和平衡全局的能力,第二部分保障粒子擁有局部搜索能力,更好的探索解空間;第三部分表示了粒子間的信息分享,使粒子能探索更廣闊的空間,所以粒子能有效的搜索到最優解。
具體實施方式一:本實施方式的基于改進粒子群算法的數字微流控芯片故障檢測方法,如圖1所示,包括如下步驟:
步驟一:獲取測試液滴的起始位置和終點位置;所述測試液滴用于在數字微流控芯片的相鄰電極陣列間移動以判斷所述相鄰電極陣列間是否存在故障;每兩個相鄰電極陣列間的邊被賦予了互不相同的編號。
具體而言,設置起始位置和終點位置是為了對應獅子微流控芯片上存在的儲液池和廢液池,實驗液滴需從儲液池出發,遍歷所有電極陣列和相鄰的電極陣列后到達廢液池,所以首先需確定液滴的起始位置和終點位置,縮小解空間的維數,提高測試過程的效率。同時,根據實驗液滴位置確定不能訪問的邊和已經走過的邊,存放到禁忌表中,根據實驗液滴的運動,及時更新禁忌表。
本發明將芯片遍歷相鄰兩單元問題轉化為圖,建立數學模型。考慮到芯片形狀規則的結構特點,為了方便利用離散粒子群算法進行問題的求解,將芯片的中的物理模型利用圖論中的相關概念進行等效。將每個電極單元等效為圖中的點,兩個豎直或水平方向相鄰的電極單元等效為一條邊,抽象后的圖用G=(V,E)代表,數字微流控芯片模型如圖5示。
研究表明,數字微流控芯片測試問題是一種遍歷電極陣列單元與其相鄰陣列單元的問題。芯片的模型為非連通圖,由歐拉路徑理論,我們不可能找到一次并且只有一次經過每一條邊的路徑。假設實驗液滴走過每條邊的時間一定,可以將芯片在線測試問題轉化為尋找遍歷圖中所有邊的最短路徑問題。由Floy算法求得兩條邊i,j之間的最短路徑dij。假設測試液滴需遍歷的邊的總數目為n,xij代表需訪問的邊,問題的解空間為X=(X1,X2,...Xk),第i個可行解為Xi=(xi1,xi2,...,xin),該可行解的適應度函數為
則在線測試問題可轉化為求最優解z:
由步驟一可知,數字微流控芯片故障在線測試問題為訪問不同點,尋找最優路徑問題,類似于TSP問題。TSP問題要求每個點訪問且只訪問一次,而本問題不存在遍歷并且只訪問每條邊的回路。
步驟二:構建禁忌表,所述禁忌表用于存放液滴在當前位置不能訪問的邊以及已經訪問過的邊。
具體而言,禁忌表中的不能訪問的邊可以包括實驗液滴所在的邊。實驗液滴是數字微流控芯片在正常用于實驗時,其上所存在的液滴。而本發明所提到的測試液滴是與實驗液滴不同的、用于測試故障的另一個液滴。本發明可以在實驗液滴正常進行實驗的情況下進行測試,而實驗表明,測試液滴和實驗液滴之間要有一定的間隔距離,兩液滴不能處于直接相鄰或對角相鄰的陣列單元,否則會導致液滴融合,所以靜態約束條件為:對任意時間單位t,di(測試液滴)和dj(實驗液滴)需要在水平或豎直方向相距大于一個坐標單元(否則測試液滴可能會于實驗液滴融合):
|xit-xjt|>1且|yit-yjt|>1
同時,di在下一時間片的目標位置不能與dj相鄰,為動態約束條件,用數學公式表示為:
|xit+1-xjt|>1且|yit+1-yjt|>1
這意味著,由于實驗液滴的存在,故障在線檢測問題存在動態靜態約束。
步驟三:構建至少一個粒子群,為每個粒子群構建與其對應的位置矩陣,所述位置矩陣的行數表示粒子群算法中的粒子總數;所述位置矩陣的列數表示相鄰電極陣列間形成邊的總數;所述位置矩陣中的元素表示特定的粒子在特定電極陣列處的速度向量;所述速度向量為下一時刻每個粒子所在的邊的序號。
具體而言,將粒子群算法應用到故障測試問題的核心思想為:每個粒子從起始位置開始,依次按照算法流程產生下一刻所在邊的位置,并形成運動序列。設定算法參數:算法最大迭代次數genmax,速度參數rand1、rand2和rand3和粒子數目a。初始化迭代次數,粒子群算法需要產生初始粒子群的位置。在本發明中,為了提高檢測效率,縮短檢測時間,改進粒子群算法,可以同時產生多個群體,同時進行搜索。
例如在產生兩個群體A和B時,設測試液滴從邊“1”開始測試,則按照總邊數和粒子總數分別產生群體A和群體B粒子初始位置向量。位置矩陣用來記錄每個粒子進行搜索時走過的邊的順序排列,速度向量表示下一時刻粒子的位置。粒子群規模保證了算法的有效性,粒子群規模大,更容易蘊藏最優解,尋找最優路徑時迭代次數少,但每次迭代所需時間更長。
步驟四:確定粒子群算法中每個粒子的速度向量,直至所有邊均被遍歷;所述速度向量具體通過如下方式的隨機一種確定:
A、選擇隨機的一個允許選擇的邊Speed1。
B、選擇離當前位置距離最近的一條邊Speed2。
C、選擇上一次迭代得到的最短路徑序列中與當前時刻位置相鄰的Speed3。
具體而言,本發明將粒子下一時刻所處的位置,即粒子所在邊的序號定義為速度向量。這里使用貪婪算法和粒子群算法相結合的方法選擇粒子速度向量,此處的速度向量是由上述的A、B、C三種方法中隨機選擇的。可以通過調節A、B、C的概率所占比例來得到最優的參數。
下面以圖5的微流控芯片為例,說明確定速度向量的方法:
設前次迭代形成的完整粒子最短最優路徑為:Gbest=(1,5,7,3,8,2,6,4,12,9,10、11)
共有3個粒子,本次路徑搜索進行到第五個時刻,形成的運動序列為;
對于粒子1,隨機產生沒有走過的新的位置Speed1=8。通過圖可以看出,離上一時刻所在位置“10”最近的邊為“12、7、5”,這里隨機選擇Speed2=12。觀察最優路徑,“10”位置之后為“11”,且粒子1在本次搜尋中還沒有走過“11”,則Speed3=11。
設3部分速度分量所占的影響分別為20%、50%、30%。則設定參數rand1=0.2、rand2=0.7、rand3=0.1,產生0到1之間的隨機數p,若p<rand1,選擇Speed=Speed1為下一時刻位置;若rand1<p<rand2,選擇Speed=Speed2為下一時刻位置;rand2<p<rand3,選擇Speed=Speed3為下一時刻位置。
設隨機數p=0.5627,則Speed=12,位置矩陣變為:
按照此方法,對每個粒子每一時刻的位置進行更新。
步驟五:根據公式更新粒子的位置序列,其中Xt=(1,x1,x2,...,xt,0,...),xt為第t時刻粒子的位置,Vt=(0,0,0,...,xt+1,0,...),xt+1=Speed。
具體而言,由上面的介紹可知,數字微流控在線測試是類TSP問題,屬于離散化問題。用前述的粒子群算法求解該問題需要對基本PSO算法中粒子的位置、速度編碼及操作符進行重新定義。粒子的位置是走過的邊的序列,速度定義為該粒子下一時刻的位置,第t時刻某粒子的位置序列為Xt=(1,x1,x2,...,xt,0,...),Vt=(0,0,0,...,xt+1,0,...),此處xt+1=Speed(見步驟四),定義位置更新公式為:
即Xt+1=(1,x1,x2,...,xt,xt+1,0,...)。
步驟六:計算每個粒子的位置向量的適應度,并分別確定每個粒子群當前最短路徑Pbesti以及全局最短路徑Gbest;適應度用于表示生成的邊的有序序列所對應的路徑的長度。
步驟七:重復迭代步驟三至步驟六,直至達到預定的迭代次數genmax,輸出全局最短路徑Gbest。
具體實施方式二:本實施方式與具體實施方式一不同的是:
步驟四中,速度向量Speed具體通過方式A確定的比率為20%,通過方式B確定的比率為50%,通過方式C確定的比率為30%。
前面提到了可以通過調節A、B、C三種方式的比率的方式調節出最佳參數,本實施方式中提供的比率即為一組優選的比率。
其它步驟及參數與具體實施方式一相同。
具體實施方式三:本實施方式與具體實施方式一或二不同的是:
數字微流控芯片上還具有實驗液滴,所述實驗液滴與所述測試液滴滿足如下條件:
|xit-xjt|>1且|yit-yjt|>1
|xit+1-xjt|>1且|yit+1-yjt|>1
其中,xit表示測試液滴在t時刻的橫坐標,yit表示測試液滴在t時刻的縱坐標,xjt表示實驗液滴在t時刻的橫坐標,yjt表示實驗液滴在t時刻的縱坐標,xit+1表示測試液滴在t+1時刻的橫坐標,yit+1表示測試液滴在t+1時刻的縱坐標。
即前述的,為了保證實驗液滴與測試液滴不融合,而需要滿足的靜態約束以及動態約束條件。
其它步驟及參數與具體實施方式一或二相同。
具體實施方式四:本實施方式與具體實施方式一至三之一不同的是:
步驟四的方式A中,“允許選擇的邊”為不在禁忌表中的任意邊。這樣設置的好處是,可以盡可能避免測試液滴與實驗液滴的融合,減少測試失敗的幾率。
其它步驟及參數與具體實施方式一至三之一相同。
具體實施方式五:本實施方式提供一種基于改進粒子群算法的數字微流控芯片故障檢測系統,包括:至少一個儲液池,用于產生實驗液滴和/或測試液滴;廢液池,用于回收經過微流控芯片后的實驗液滴;微流控芯片微流控芯片上與儲液池連接的電極作為起始電極,與廢液池連接的電極作為終點電極;主控單元,用于根據如具體實施方式一至四中任意一項所述的方法產生全局最短路徑,并通過控制微流控芯片的電極控制實驗液滴沿著全局最短路徑移動。
本實施方式的有益效果是,提供了一種將前述的數字微流控芯片在線測試方法進行具體應用的硬件結構。
具體實施方式六:本實施方式與具體實施方式五不同的是:
微流控芯片的電極陣列為n×n個,系統還包括:
分別設置在微流控芯片的兩條相鄰邊外側的第一紅外發光管組以及第二紅外發光管組,第一紅外發光管組以及第二紅外發光管組均包含n個與電極對應的紅外發光管;以及分別設置在微流控芯片的另外兩條相鄰邊外側的第一紅外接收管組以及第二紅外接收管組,第一紅外發光管組以及第二紅外發光管組均包含n個與電極對應的紅外發光管,用于接收第一紅外發光管組以及第二紅外發光管組發射出的紅外光;主控單元用于根據未接收到紅外光的第二紅外接收管的序號確定發生故障的電極的位置。
具體而言,數字微流控生物芯片的永久性故障主要會導致系統的液滴無法移動,因此可根據測試液滴移動預購判斷是否存在故障,即測試液滴從儲液池觸發,在電極陣列單元移動,在終點端檢測實驗液滴是否到達。如果遇到故障單元,則液滴會卡在該陣列單元上,無法到達終點。因此本實施方式的有益效果在于,可以利用紅外發光管和接收管對故障位置進行定位,在數字微流控芯片左端和下端安裝紅外發光管,右端和上端對應的電極安裝紅外接收管。這樣可以使得故障的定位快速而又準確。
故障檢測完成后,數字微流控芯片上會有實驗液滴和檢測液滴,實驗液滴會隨著實驗的進行繼續移動,故障位置的檢測液滴則固定在該位置,使紅外發光管由實驗液滴的驅動電壓同步觸發,發出光線,接收管沒有輸出的則為有液滴的位置。假設芯片上共有n個液滴,則n個液滴都移動后,接收管始終沒有輸出的行和列即為故障位置。
其它步驟及參數與具體實施方式五相同。
本發明還可有其它多種實施例,在不背離本發明精神及其實質的情況下,本領域技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發明所附的權利要求的保護范圍。