左 信,殷衛兵,譚壯壯
(1.中國石油大學(北京),北京 102249;2.中國石油集團海洋工程有限公司,北京 100028)
進入21世紀,過程工業的規模不斷擴大,隨之而來的安全問題得到了人們的廣泛關注。石油化工等過程工業中,任何一個小的失誤都有可能帶來極其慘重的后果。為了降低事故發生的概率、減少事故發生帶來的損失,包括石油化工等越來越多的過程工業采用了安全儀表系統SIS(safety instrumented system)。SIS一般由傳感器、邏輯控制器和執行器3部分組成,通常獨立于基本過程控制系統BPCS(basic process control system),專門用于處理緊急安全事故[1]。SIS系統的性能由多個性能指標衡量,應使用多目標優化方法對SIS進行優化。但是,傳統的多目標優化方法在對SIS進行優化時,存在最優解分布不合理的問題,這是SIS優化問題的特殊性導致的,因此本文提出一種改進的多目標優化方法對SIS進行優化。
近年來,對于安全儀表系統的研究主要集中于可靠性模型、共因失效分析、冗余結構優化等方面[2-4]。衡量SIS系統的主要性能指標有3個:安全完整性水平SIL(safety integrity level)、誤跳車率STR(spurious trip rate)以及生命周期成本LCC(life circle cost)。SIL是安全儀表系統最重要的性能指標,它表征了安全儀表系統所能達到的可靠性等級,根據IEC 61508的要求[1],SIL分為4級,劃分依據為平均要求時失效概率PFDavg(average probability of dangerous failure on demand)和系統結構,表1為SIL等級與PFDavg的對應關系[1]。SIS系統運行過程中,實際生產過程并不存在安全隱患,而由于SIS自身原因導致了錯誤跳車,即SIS系統進行了誤動作,帶來了不必要的跳車損失,這種事件發生的概率可以用STR來描述。另外,LCC也是SIS系統在設計和運行過程中應該考慮的一個重要指標。

表1 低要求操作模式下的安全完整性水平Tab.1 Request of safety integrity level
由前述可知,一個好的SIS系統需要在多個方面表現良好。然而PFDavg、STR和LCC是存在矛盾的3個指標,即某一指標的提高往往會帶來其它指標的下降,所以,對于SIS系統的多目標優化成為了安全儀表系統的一個研究領域[3-5]。在以往的研究中[3,5],主要是對SIS系統的PFDavg、STR和LCC對于冗余結構MooN(M-out-of-N)和測試周期TI(Test Interval)的計算模型進行多目標優化。但是,在實際的設計要求中,往往對于可靠性的要求是系統的SIL達到某一等級。因此可以認為在SIS系統的多目標優化中,應該在達到SIL要求的前提下,即PF Davg達到某一SIL等級的要求時,使得STR和LCC盡可能小。然而,原有的多目標遺傳算法選擇解集的一個原則是使解集中的解均勻的分布在Pareto前沿上,而并非更多的達到某一值,所以針對這一具體問題的特殊要求,筆者通過改進原有的多目標遺傳算法,在解集中解的數量不變的情況下得到更加符合實際應用要求的解。
安全儀表系統的3個主要指標為:PFDavg、STR和LCC。這3個指標主要由冗余結構MooN和測試周期TI決定,因此建立這3個指標對于MooN和TI的計算模型[2,5]。
系統整體的PFDavg為

式中:P,PS,PL,PA分別為整個系統、傳感器子系統、邏輯控制器子系統、執行器子系統的平均要求時失效率。其中,每個子系統有獨立的MooN冗余結構。
對于每個子系統,P由獨立失效部分PI和共因失效部分PC組成,即:

式中:獨立失效部分PI表示子系統的失效僅僅是某一個通道的失效而產生的,在MooN系統中只有當獨立失效的通道數大于N減去M的差時子系統才會失效;共因失效部分PC表示通道的失效是由于共同原因造成的,這種失效一旦發生往往意味著整個系統的失效。
STR的一般計算模型:

式中:S,SS,SL,SA分別為整個系統、傳感器子系統、邏輯控制器子系統、執行器子系統的誤跳車率。對于每個子系統,S由獨立失效部分SI和共因失效部分SC組成,即:

式中:獨立失效部分SI表示誤跳車僅是某一個通道的安全失效而引起的,在MooN系統中只有當獨立安全失效的通道數大于或等于M時發生誤跳車;共因失效部分SC表示誤跳車是由共同原因造成的,這種失效一旦發生往往意味著誤跳車的發生。
生命周期成本L計算模型為

其中:Cc為固定成本,元;Co為運行成本,元;Ci為風險成本,元。固定成本Cc包括系統的設計、購買、安裝、啟動等由系統結構決定的費用;運行成本Co包括檢測成本、維護成本,主要有系統結構和測試周期決定;風險成本Ci包括由危險事故和誤跳車產生的費用,主要有系統的PFDavg和STR決定。
以上3個模型的具體計算模型可見文獻[5]。
安全儀表系統的 3個主要性能指標 PFDavg、STR和LCC,是由冗余結構MooN和測試周期TI決定的。因此,可以將安全儀表系統的優化問題描述為以MooN和TI為決策變量,PFDavg、STR和LCC為目標函數的多目標優化問題,如式(6)所示:

式中:下標i表示第i個子系統;T為測試周期,月;Tmin和Tmax分別為測試周期下限和上限,月;N和M表示冗余結構為N取M結構;Nmax為最大冗余度。
PFDavg、STR和LCC是安全儀表系統的3個主要性能指標,單一的對其中某個優化并不能為設計安全儀表系統帶來較高的參考價值。因此,安全儀表系統有多個指標需要同時進行優化。目前,常用的多目標優化方法有2種:第1種是將多個目標函數加權后相加得到一個目標函數,再采用單目標優化的方法對其進行優化,這種方法最終得到一個單一的解,這個解往往在某一方面很好,但在其它方面可能很差,這樣的解沒有太多的參考價值;第2種方法是采用多目標優化算法,其最終產生一組位于Pareto最優前沿上的解,這組解多數情況下含有多個解,彼此之間不互相支配,可以供決策者選擇。
在多目標優化中,優化目標是一個由多個目標函數組成的函數向量。假設所有的優化目標函數都是要最小化,對于2個可行解x1和x2,所有的目標函數fl都滿足fl(x1)≤fl(x2),則稱解x1支配解x2。如果一個解集中的所有解都不被解空間中的其他解支配,則該解集為Pareto最優前沿。多目標優化的最終目標就是求取問題的Pareto最優前沿。由于冗余分配問題被證明為NP-hard問題[6],因此,文中采用了非支配排序遺傳算法NSGA-II[7],它是一種高效的多目標優化算法[8]。
NSGA-II的核心思想是將當前世代的所有個體按照適應度進行排序,排序靠前的個體獲得更高的參與遺傳操作的概率,而適應度由群體分級(Rank)和計算擁擠距離(Crowding Distance)決定。分級機制的原理是:種群中不被其它個體支配的個體獲得Rank為1的分級,只被Rank為1的個體支配的個體獲得Rank為2的分級,只被Rank為1和2的個體支配的個體獲得Rank為3的分級,以此類推。擁擠距離為個體在目標函數空間中前后相鄰的個體之間的距離,如圖1所示,為一個含有2個目標f1和f2的多目標優化問題,圖中x1,x2,x3和x4為遺傳算法中的4個個體,其中x2的擁擠距離為d1,即x2鄰近個體x1和x3之間的距離,同樣x3的擁擠距離為d2。在NSGA-II中,Rank值低的個體會有更高的幾率參與遺傳操作,同Rank值的個體中擁擠距離大的個體優先參加遺傳操作,由此可見NSGA-II算法選取解的策略是讓最終的解集盡可能均勻分布在Pareto最優前沿上。
利用改進的多目標遺傳算法對安全儀表系統進行優化的基本步驟如下:
步驟1建立以PFDavg、STR、LCC為優化目標,Ni,Mi,Ti為決策變量的目標函數,如式(6)所示。
步驟2生成初始種群,并為隨機生成每個個體的{Ni,Mi,Ti}。
步驟3計算個體的適應度{P,S,L}。計算個體的Rank和擁擠距離值,以進行非支配排序。
步驟4判斷遺傳代次是否等于最大代次,若滿足進入步驟5;否則,遺傳代次加1,并執行交叉、變異以及選擇等遺傳算子,生成新的種群,重復步驟3。
步驟5選擇種群中Rank=1的個體,得到Prato最優前沿。

圖1 NSGA-II算法擁擠距離示意圖Fig.1 Crowding Distance of NSGA-II
NSGA-II算法以及其它非精確算法得到的多目標最優解,并不是完整的Pareto解集。如NSGA-II算法等基于遺傳算法的多目標優化算法,其最優解集中解的個數最大為種群中個體的數量,當實際Pareto解集中解的數量大于個體數量時,算法將無法得到完整的Pareto解集。如圖2所示為一個2目標優化問題的Pareto解集和NSGA-II產生的最優解集。
圖中實心圓為NSGA-II產生的解,空心圓為Pareto解集中NSGA-II未產生的解。從圖中可以看出Pareto解集中有18個解,而NSGA-II只產生了9個解,這是由于設定優化參數時將種群數量設定成了9。上述問題可以將種群數量設定成18以上來解決。但是,實際中的問題的Pareto解集往往有上千甚至上萬個解,而單靠增加NSGA-II的種群數量是不可行的,因為當種群數量增大時,計算的復雜度將會變得很大。因此,多目標優化算法所產生的解往往不能產生完整的Pareto解集,只能產生一定數量的解來描述Pareto解集。如前所述,NSGA-II采用秩和擁擠距離結合的方法來產生最優解集,其目的就在于保持種群的多樣性,同時使最終的解均勻的分布在Pareto前沿上,這樣來達到用優化最優解盡可能完整的描述Pareto最優解集的目的。
采用擁擠距離的排序策略,可以很好的使NSGA-II產生的最優解均勻的分布在Pareto最優前沿上,這對于大部分多目標優化問題來說是很好的結果。但是,SIS系統存在其特殊性。在實際的設計中,常常要求的是SIS系統的SIL等級,即對于可靠性的要求是系統的SIL達到某一等級,而并非PFDavg最小。因此可以認為在SIS系統的多目標優化中,應該在達到SIL要求的前提下,即PFDavg達到某一SIL等級的要求時,使得STR和LCC盡可能小。然而,原有的多目標遺傳算法選擇解集的一個原則是使解集中的解均勻的分布在Pareto前沿上,而并非更多的達到某一值,所以針對這一具體問題的特殊要求,本章通過改進原有的多目標遺傳算法,在解集中解的數量不變的情況下得到更加符合實際應用要求的解。
NSGA-II是一種基于遺傳算法的多目標優化算法,因此,由NSGA-II產生的解集中解的數量不會超過其種群數量,換言之,大多數情況下所產生的解集是Pareto最優前沿的子集。在安全儀表系統的多目標優化問題中,Pareto最優前沿中一般有上千個解,但是如果把NSGA-II的種群數量選為1000以上,算法的運算復雜度將會大的無法接受,事實上一般種群數量都在100左右。如何在有限的種群數量下盡可能完整的表現Pareto最優前沿成為了多目標遺傳算法存在的一個問題。如前所述,NSGA-II使用群體分級機制和計算擁擠距離相結合的方法來解決這一問題,使優化結果在保持非支配的條件下均勻的分布在Pareto最優前沿上。
這種策略在大多數問題中是適合的,但是在安全儀表系統優化中,往往希望得到的是PFDavg略微優于某一SIL等級要求的水平,而其它2個指標更好的解,換言之,在多數設計過程中更加關注的是系統的SIL等級而非實際的PFDavg值。如表2所示,2個解都達到了SIL3的要求,第2個解的PFDavg比SIL3低很多,但是還達不到SIL4;第1個解PFDavg只比SIL3的要求低一點,但卻具有優于第2個解的STR和LCC。實際上,PFDavg、STR和LCC這3個指標大多數時候是矛盾的,所以PFDavg較好往往意味著另2個解較差,這一點可以從表2的對比看出。因此,應當在優化的過程中使得具有略低于某一SIL等級要求(即10-1,10-2,10-3或10-4)的PFDavg的解更容易遺傳到后代,即剛剛達到某一SIL等級對PFDavg要求但STR和LCC更好的解。
為達到此目的,在擁擠距離中加入PFDavg與SIL要求值的距離的項,使得個體按距離排列的過程中同時按照PFDavg與SIL要求值的距離排列。如下式所示:

表2 低要求操作模式下的安全完整性水平Tab.2 Request of safety integrity level

圖2 Pareto解集和NSGA-II產生的最優解集Fig.2 Pareto solution set and NSGA-II optimal solution set

式(7)中:D(x)為原NSGA-II中解x的擁擠距離的計算公式,xpre與 xnext為與解 x鄰近的解;式(8)中:D′(x)為改進算法中解x的擁擠距離計算公式,其中z為SIL等級的邊界值,如表1所示。加入這個距離后,遺傳算法會向著具有更接近SIL等級要求的方向優化,這樣可以得到更多的有利于決策的解。用以上獲得的值代替原NSGA-II算法中步驟4中的Distance值,將使得PFDavg略優于某一SIL等級要求的個體更容易參與遺傳操作。
改進的多目標優化算法能夠將有限的解集中在各個SIL等級附近,獲得更有利于設計人員作出決策的解集,對于安全儀表系統的優化有很大價值。
為對比提出的改進優化方法與原優化方法的不同,以文獻[5]中的例子為例,同時應用提出的改進算法和原算法對安全儀表系統冗余分配問題進行優化。例子中的安全儀表系統為壓力保護系統,其示意圖如圖3所示[3]。
如圖3中,PT為傳感器,PLC為邏輯控制器,FC為最終執行機構,M/N代表MooN冗余結構。例子中壓力保護系統用于保護化學反應器,使當中的壓力不致過高。傳感器子系統用于測量化學反應器中的壓力,傳送入邏輯控制子系統;邏輯控制子系統通過預設的程序對系統狀態進行判斷,當化學反應器中的壓力高于預設的安全壓力時發出動作信號;執行器子系統接受邏輯控制子系統的控制信號并產生相應的動作。本文使用文獻[5]中的模型作為安全儀表系統的計算模型,并采用相同的實驗數據進行實驗。

圖3 壓力保護系統示意圖Fig.3 Schematic diagram of pressure protection system
運用提出的改進優化方法對上述問題進行優化,并與原有的NSGA-II優化算法[7]進行比較。優化結果如圖4和圖5所示。

圖4 兩種優化方法的優化結果三維圖Fig.4 Optimization results of the two methods

圖5 兩種優化算法的優化結果二維圖Fig.5 Optimization results.using two algorithms
圖4所示為原有的方法和改進方法產生的解在以PFDavg、STR和LCC為坐標軸的三維圖中的分布,從圖中可以看出2種方法都產生了非支配的解集;原有的方法產生解均勻的分布在三維空間中,而改進方法產生的解集中在SIL等級要求的PFDavg的邊緣附近。
圖5為改進的算法和原有的NSGA-II算法的比較,所有的最優解按照PFDavg進行降序排列。從圖中可以看出2種方法產生的編號為1到編號為34的解,均滿足SIL2的要求且LCC相差不多,但是改進方法的STR優于原方法;2種方法產生的編號為37到編號為54的解,均滿足SIL3的要求,但是改進方法的STR和LCC優于原方法;2種方法產生的編號為59到編號為90的解,均滿足SIL4的要求,但是改進方法的STR和LCC優于原方法。
因此,可以得出原有方法所產生解的PFDavg均勻的分布在10-5到10-2的區間內,改進方法所產生解的PFDavg大多分布在略微優于SIL等級要求的PFDavg值的附近;同處于一個SIL等級的解中,改進方法所產生的解在STR和LCC 2個方面大多優于原有的方法。
優良的安全儀表系統應在安全完整性水平(SIL),誤跳車率(STR)以及生命周期成本(LCC)3個方面達到綜合最優化要求,通過采用改進的安全儀表系統多目標優化算法,得到了更好的滿足安全完整性水平偏好綜合要求的設計方案。改進的安全儀表系統多目標優化算法體現出良好的優越性:首先,改進的安全儀表系統多目標優化算法能夠使得到的解具有略微優于某一SIL等級的PFDavg值;其次,改進算法產生的解與原有NSGA-II方法產生的解相比較,在具有相同SIL等級時具有更優的STR和LCC值;第三,改進算法更加適應安全儀表系統的多目標優化問題,能夠為設計人員提供更有意義的參考。
[1] IEC 61508-1998.Functional Safety of Electrical/Electronic/ Programmable Electronic Safety Related Systems[S].1998.
[2] 王麗君,左信,潘高峰.安全儀表系統的不同運行階段實時可靠性分析[J].計算機與應用化學,2012,29(11):1331-1334.
[3] Torres-Echeverría A C,Martorell S,Thompson H A.Design optimization of a safety-instrumented system based on RAMS+ C addressing IEC 61508 requirements and diverse redundancy [J].Reliability Engineering and System Safety,2009,94(2):162-179.
[4] Torres-Echeverría A C,Martorell S,Thompson H A.Multiobjective optimization of de sign and testing of safety instrumented systems with MooN voting architectures using a genetic algorithm[J].Reliability Engineering and System Safety,2012,106(10):45-60.
[5] 左信,譚壯壯.安全儀表系統冗余分配的多目標優化[J].中國安全科學學報,2013,23(11):37-42.
[6] Maw-Sheng Chern.On the computational complexity of reliability redundancy allocation in a series system[J].Operations Research Letters,1992,11(5):309-315.
[7] Kalyanmoy Deb,Samir Agrawal,Amrit Pratap,et al.A fast and elitistmulti-objective genetic algorithm:NSGA-II[J].IEEE Transactions on Evolutionary Computation,2002(2):182-197.
[8] Carlos A Coello.Evolutionary multi-objective optimization:a historical view of the field[J].Computational Intelligence Magazine,IEEE,2006(1):28-36.