齊 帥,陳 智,吳志強,丁 琳,劉朝暉
(1.南華大學(xué) 計算機學(xué)院,衡陽 421001;2.中國核動力研究設(shè)計院 核反應(yīng)堆系統(tǒng)設(shè)計技術(shù)重點實驗室,成都 610213)
核電廠儀表與控制系統(tǒng)是核電廠的“中樞神經(jīng)”,對于保證核電廠安全運行起著至關(guān)重要的作用。目前,核電廠儀控系統(tǒng)基本都采用了全數(shù)字化的分布式控制系統(tǒng)DCS(distributed control system)結(jié)構(gòu),并分為安全級DCS和非安全級DCS兩大部分。其中,反應(yīng)堆保護(hù)系統(tǒng)RPS(reactor protection system)作為核電廠儀控系統(tǒng)中的重要的安全級系統(tǒng),其功能由安全級DCS實現(xiàn)。通常,核電廠安全級DCS的主控制器 CPU(central processing unit)負(fù)荷率是衡量RPS運行性能的重要指標(biāo)[1],因此一般在簽訂反應(yīng)堆保護(hù)系統(tǒng)設(shè)備采購技術(shù)合同時,規(guī)定核電廠正常運行的情況下,CPU的負(fù)荷率需要被限定在一定的范圍內(nèi),以確保系統(tǒng)能夠長時間安全穩(wěn)定運行。
目前對CPU負(fù)荷率的分析常采用靜態(tài)實測方法,即在應(yīng)用軟件完成組態(tài)設(shè)計下裝后進(jìn)行負(fù)荷率的測試,驗證是否達(dá)到要求。然而在實際工程實施時,DCS供貨商往往希望在組態(tài)軟件開始設(shè)計時就能夠預(yù)估主控制器的程序模塊執(zhí)行時間,從而對不同功能模塊在CPU的配置分配提供參考,以避免后期設(shè)備設(shè)計完成后由于CPU負(fù)荷率不滿足相關(guān)要求引起的組態(tài)修改造成進(jìn)度延遲。通常采用的靜態(tài)測試方法無法實現(xiàn)這種需求。為此,研究了基于神經(jīng)網(wǎng)絡(luò)模型的預(yù)測方法,以實現(xiàn)對主控制器負(fù)荷率快速準(zhǔn)確的預(yù)測。
在CPU運算周期內(nèi),規(guī)定CPU的實際數(shù)據(jù)處理時間占CPU設(shè)定運算周期的百分比,稱為CPU負(fù)荷率[2],因此實際數(shù)據(jù)處理時間(程序執(zhí)行時間)是決定CPU負(fù)荷率的重要因素。
目前,對程序執(zhí)行時間的研究聚焦在云服務(wù)和網(wǎng)絡(luò)服務(wù)領(lǐng)城,在嵌入式應(yīng)用程序方面的研究相對較少。對程序執(zhí)行時間預(yù)測通常有靜態(tài)分析和動態(tài)分析檢測2種方法。靜態(tài)分析[3]直接從程序結(jié)構(gòu)分析流信息,通過靜態(tài)分析可以建立輸入、開發(fā)語言和硬件影響的時間模型,預(yù)測結(jié)果值往往大于實際值。動態(tài)分析方法[4]可以不考慮系統(tǒng)具體實現(xiàn)過程和軟硬件環(huán)境,直接通過分析測試用例的實際執(zhí)行時間就可以完成程序執(zhí)行時間的預(yù)測,結(jié)果值往往小于實際值。
早期的文獻(xiàn)[5]提出了基于控制流程圖的程序執(zhí)行時間的可視化分析框架,設(shè)計了基于控制流程圖的靜態(tài)分析工具,但其分析過程需要耗費大量的時間和資源。2010年文獻(xiàn)[6]的方法對于小樣本集誤差結(jié)果誤差范圍較大。2012年文獻(xiàn)[7]針對ARM處理器程序,分析程序執(zhí)行中的動態(tài)指令數(shù)與執(zhí)行時間在處理器上的非線性關(guān)系,設(shè)計出一種BP神經(jīng)網(wǎng)絡(luò)和最小二乘法支持向量機的預(yù)測方案,2種方法的程序執(zhí)行時間預(yù)測平均誤差范圍在8%~13%之間,具有較好的預(yù)期結(jié)果。同年,文獻(xiàn)[8]針對應(yīng)用程序自身的復(fù)雜性、硬件平臺的異構(gòu)性和環(huán)境因素對功耗影響的不確定性,導(dǎo)致很難直接給出程序運行功耗的預(yù)測公式的問題,提出了基于神經(jīng)網(wǎng)絡(luò)的程序運行功耗預(yù)測方法,試驗表明所提出方法具有合理性和可行性。2017年文獻(xiàn)[9]通過分析云制造中執(zhí)行時間的動態(tài)變化環(huán)境結(jié)合機器學(xué)習(xí)進(jìn)一步進(jìn)行研究,將執(zhí)行時間劃分為靜態(tài)時間和動態(tài)時間,其中靜態(tài)時間可以通過公式計算得出,針對動態(tài)時間,該文獻(xiàn)在分析影響執(zhí)行時間的因素基礎(chǔ)上,提出基于BP神經(jīng)網(wǎng)絡(luò)預(yù)測動態(tài)時間歷史數(shù)據(jù)的方法,試驗結(jié)果表明預(yù)測精度較高。
據(jù)此,文獻(xiàn)[5-6]方法穩(wěn)定性較差;文獻(xiàn)[7-9]提出的BP神經(jīng)網(wǎng)絡(luò)方法,能夠在保證精度和穩(wěn)定性的情況下適合核電廠對系統(tǒng)穩(wěn)定性、可靠性的要求。故在此,以采用中國核動力研究設(shè)計院研發(fā)的安全級DCS平臺——NASPIC(nuclear advanced safety platform of I&C)進(jìn)行設(shè)備配置的反應(yīng)堆保護(hù)系統(tǒng)為例,設(shè)計了基于神經(jīng)網(wǎng)絡(luò)模型預(yù)測CPU負(fù)荷率的方案,考慮到在對網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練的過程中可能遇到的預(yù)測結(jié)果陷入局部優(yōu)化的問題,采用遺傳算法對網(wǎng)絡(luò)模型進(jìn)行優(yōu)化。
2.1.1 核安全級主控制器負(fù)荷率影響因素分析
BP神經(jīng)網(wǎng)絡(luò)[10]是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)由輸入層、隱藏層和輸出層組成。為建立主控制器CPU負(fù)荷率預(yù)測的BP神經(jīng)網(wǎng)絡(luò)模型,需要明確其輸入輸出的節(jié)點數(shù),因此需要對核安全級負(fù)荷率影響因素進(jìn)行分析。
由于國內(nèi)安全級DCS的CPU設(shè)計一般采用定周期處理機制,NASPIC采用了相同的設(shè)計,所以分析CPU負(fù)荷率可轉(zhuǎn)化為對數(shù)據(jù)處理時間的研究。一般來說,影響CPU數(shù)據(jù)處理時間的因素主要包括軟件自身特征、硬件配置和運行的自然環(huán)境3個方面。在此所做的研究在相同的硬件配置環(huán)境條件下進(jìn)行,故僅考慮軟件自身特征和運行自然環(huán)境的影響。
(1)影響核安全級CPU負(fù)荷率的軟件因素
利用NASPIC平臺軟件工具進(jìn)行設(shè)備組態(tài)的設(shè)計階段,首先需根據(jù)系統(tǒng)設(shè)計方給出的功能圖,運用工程師站設(shè)備軟件工具進(jìn)行圖形化組態(tài)設(shè)計,把功能圖轉(zhuǎn)化為XML格式的工程圖頁(每個工程圖頁由若干個算法基礎(chǔ)模塊非線性組合而成);隨后進(jìn)行第1次編譯,通過設(shè)備組態(tài)SCADE軟件工具對工程圖頁進(jìn)行編譯,生成XSCADE格式的文件和對應(yīng)的組態(tài)模塊應(yīng)用程序;最后對生成文件進(jìn)行第2次編譯,下裝到設(shè)備內(nèi)存等待主控制器執(zhí)行。同時,從組態(tài)設(shè)計到下裝生成應(yīng)用程序過程之間可能存在某種關(guān)聯(lián)關(guān)系,從而影響執(zhí)行時間。
根據(jù)上述過程,設(shè)計圖頁XML格式文件大小、生成的XSCADE格式文件大小、應(yīng)用程序大小、基礎(chǔ)算法模塊數(shù)、算法模塊種類及大小、輸入?yún)?shù)類型和個數(shù)、條件語句都是影響CPU負(fù)荷率的重要因素。影響核電廠CPU負(fù)荷率的主要軟件因素見表1。

表1 影響CPU負(fù)荷率的主要軟件因素Tab.1 Main software factors for CPU load road
(2)影響核安全級CPU負(fù)荷率的環(huán)境因素
考慮核電廠的地理位置周圍環(huán)境的特殊影響,溫度和濕度經(jīng)常會發(fā)生變化,而溫度和濕度是影響主控制器硬件設(shè)備內(nèi)部結(jié)構(gòu)半導(dǎo)體電阻大小的重要因素。不同的溫度和濕度通過影響電阻大小,進(jìn)而對電流變化產(chǎn)生影響,導(dǎo)致CPU運行功率將受到影響,相應(yīng)的程序執(zhí)行時間和CPU負(fù)荷率也會隨之變化。同樣溫度和濕度作為神經(jīng)網(wǎng)絡(luò)的輸入層神經(jīng)元,環(huán)境因素見表2。

表2 影響CPU負(fù)荷率的環(huán)境因素Tab.2 Environmental factors affecting CPU load road
2.1.2 模型的建立
根據(jù)上述分析,影響核安全級CPU負(fù)荷率的影響因素從軟件自身和運行環(huán)境來說主要有11個,這些影響因素可作為BP神經(jīng)網(wǎng)絡(luò)模型的輸入層的神經(jīng)元。在此采用含有一層隱藏層的BP神經(jīng)網(wǎng)絡(luò),隱藏層中神經(jīng)元個數(shù)是影響神經(jīng)網(wǎng)絡(luò)性能的重要因素。根據(jù)Kolmogorov定理[11],隱藏層神經(jīng)元個數(shù)設(shè)定為2n+1,其中n為輸入層神經(jīng)元個數(shù)。輸入層節(jié)點數(shù)為11,則隱藏層節(jié)點數(shù)為23。輸出層節(jié)點由CPU負(fù)荷率和程序執(zhí)行時間(P,T)2個神經(jīng)元組成。因此用于CPU負(fù)荷率預(yù)測的BP神經(jīng)網(wǎng)絡(luò)模型的基本結(jié)構(gòu)如圖1所示。

圖1 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型Fig.1 Neural network model
神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法基于梯度下降,容易使問題的解陷入局部優(yōu)化。遺傳算法[12]GA(genetic lgorithm)是一種通過模擬自然進(jìn)化過程中,種群個體的染色體的遺傳和變異形成的一種全局優(yōu)化搜索最優(yōu)解個體的算法。遺傳算法擅長全局搜索,可以很好地解決BP神經(jīng)網(wǎng)絡(luò)收斂速度慢和局部優(yōu)化等局限性問題,故在此將兩者相結(jié)合。利用遺傳算法全局搜索的優(yōu)勢,對BP算法的初始權(quán)值和閥值進(jìn)行優(yōu)化,然后再進(jìn)行神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練,提高對核電廠主控制器負(fù)荷率值的預(yù)測精度?;谶z傳算法優(yōu)化的神經(jīng)網(wǎng)絡(luò)核安全級主控制器負(fù)荷率預(yù)測方法應(yīng)用流程如圖2所示。
遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)具體操作步驟如下:
步驟1確定網(wǎng)絡(luò)結(jié)構(gòu),初始化網(wǎng)絡(luò)算法參數(shù)值種群,設(shè)置遺傳算法參數(shù)值。
步驟2得到更新的網(wǎng)絡(luò)權(quán)值與閾值進(jìn)行網(wǎng)絡(luò)訓(xùn)練,分別計算網(wǎng)絡(luò)訓(xùn)練輸出的CPU負(fù)荷率和執(zhí)行時間值的誤差率,并且比較誤差率值是否小于α。如若滿足,則獲得優(yōu)化網(wǎng)絡(luò)算法參數(shù),輸出預(yù)測值。否則執(zhí)行步驟3。
步驟3①選擇:計算種群個體適應(yīng)度,選擇適應(yīng)度值高的保留到群體中。②交叉:通過改變將個體的結(jié)合順序而得到更好的個體。③變異:仿照基因變異的方法來改變個體值來尋求全局最優(yōu)解。群體經(jīng)過選擇、交叉、變異運算之后得到下一代新群體。

圖2 GA-BP神經(jīng)網(wǎng)絡(luò)應(yīng)用流程Fig.2 Application flow chart of GA-BP neural network
步驟4重新計算適應(yīng)度,如若適應(yīng)度值大于β,則執(zhí)行步驟2;否則回到步驟3。
為便于研究,選取核電廠不同工程項目的主控制器應(yīng)用程序作為試驗訓(xùn)練樣本,以盡可能覆蓋核電廠安全級儀控系統(tǒng)平臺中的所有功能的主控模塊的工程應(yīng)用。
測量試驗在相同的自然環(huán)境下進(jìn)行,室溫和相對濕度通過空調(diào)分別固定在27℃和35%。測試的軟硬件環(huán)境為:軟件環(huán)境采用NASPIC系統(tǒng)軟件平臺,工程師站操作系統(tǒng)為Windows 7;硬件設(shè)備環(huán)境由1個主控器板卡、通信COM板卡和協(xié)議轉(zhuǎn)換模塊PT組成。
獲得樣本的試驗仿真將系統(tǒng)工程師站通過對不同工程圖頁應(yīng)用程序的進(jìn)行調(diào)參(改變輸入?yún)?shù)值大小),這些不同的參數(shù)即作為神經(jīng)網(wǎng)絡(luò)模型輸入層的神經(jīng)元,然后通過安全顯示站SVDU監(jiān)控設(shè)備得到實際的主控制器程序執(zhí)行時間和CPU負(fù)荷率,并進(jìn)行多次測量記錄執(zhí)行時間和CPU負(fù)荷率的平均值作為真實值。測量試驗原理如圖3所示。

圖3 試驗仿真原理Fig.3 Experimental simulation schematic
樣本訓(xùn)練是通過MatLab軟件工具進(jìn)行網(wǎng)絡(luò)建模訓(xùn)練而實現(xiàn)的。訓(xùn)練前為防止神經(jīng)元進(jìn)入飽和狀態(tài),對樣本進(jìn)行歸一化預(yù)處理,公式為

式中:Yn為神經(jīng)元向量值;min,max分別為向量集的最小、最大值。
在試驗中,對遺傳算法參數(shù)設(shè)置為:種群規(guī)模取50,進(jìn)化代數(shù)取100,交叉概率取0.5,變異概率取0.05。分別采用GA_PB算法和基本BP算法對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,2種網(wǎng)絡(luò)模型均選擇所設(shè)計的11-23-2三層結(jié)構(gòu)。選取50個工程圖頁程序作為驗證樣本,部分驗證樣本見表3。

表3 部分測試樣本Tab.3 Partial training samples
將測試數(shù)據(jù)輸入已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型,得到工程應(yīng)用程序執(zhí)行時間和CPU負(fù)荷率預(yù)測值。執(zhí)行時間和CPU負(fù)荷率的預(yù)測值與實際值的比較如圖4所示。

圖4 神經(jīng)網(wǎng)絡(luò)算法預(yù)測執(zhí)行時間值、CPU負(fù)荷率對比Fig.4 Comparisons of predictive execution time values and CPU load rate of neural network algorithm
通過對比試驗數(shù)據(jù)可知,預(yù)則與實測執(zhí)行時間的最大絕對誤差、平均絕對值誤差、平均相對誤差見表4。

表4 執(zhí)行時間和CPU負(fù)荷率誤差Tab.4 Execution time and CPU load rate error
由表可知,BP神經(jīng)網(wǎng)絡(luò)在執(zhí)行時間和CPU負(fù)荷率的預(yù)測值平均相對誤差上,比GA-BP神經(jīng)網(wǎng)絡(luò)相對應(yīng)的分別多4.15%和4.64%。GA-BP神經(jīng)網(wǎng)絡(luò)在經(jīng)過遺傳算法優(yōu)化網(wǎng)絡(luò)權(quán)值和閾值之后,解決了陷入局部最小值的問題,取得的CPU負(fù)荷率的精度范圍在90.76%~95.60%,平均相對誤差率為5.32%,可滿足實際工程設(shè)計的需求。
針對實際工程需求,提出了一種基于神經(jīng)網(wǎng)絡(luò)模型的核安全級主控制器負(fù)荷率預(yù)測的方案。研究結(jié)果表明:對于具有非線性組合特點的主控制器的組態(tài)模塊,采用遺傳算法優(yōu)化的神經(jīng)網(wǎng)絡(luò)在預(yù)測核安全級主控制器負(fù)荷率上具有更好的擴(kuò)展和適應(yīng)能力。
該方法使核電廠DCS工程師站能夠在安全級DCS進(jìn)行軟件組態(tài)設(shè)計階段時,就能對主控制器負(fù)荷率有準(zhǔn)確的判定,從而預(yù)先進(jìn)行CPU資源的合理分配,提高了工程效率。