張旭,彭韜,彭浩,鄧志光
(中國核動力研究設計院核反應堆系統(tǒng)設計技術(shù)重點實驗室,成都 610213)
核電廠全范圍模擬機(FSS,F(xiàn)ull Scope Simulator)是對核電廠的工藝系統(tǒng)、控制系統(tǒng)、人機界面等方面的全面的仿真,主要用于實現(xiàn)操縱人員培訓、工況模擬、故障演練、科學研究的目的。
核電廠FSS主要組成部分如圖1所示。FSS主要包括Level 0、Level 1、Level 2三個層級。Level 0是模型與設備層,主要包括核電廠過程模型、教練員站軟件、傳感器與開關(guān)柜模型等部分[1]。Level 1是控制層,主要包括安全級DCS(S-DCS)與非安全級DCS(NCDCS)等幾部分。Level 2是主控室HMI(人機界面)層,包括安全級顯示單元 SVDU(Safety Video Display Unit)、盤臺儀表、操縱員站畫面等部分。
圖1 FSS主要組成部分
對于Level 1的仿真主要包括三種技術(shù)路線,即純模擬(Simulation)、虛擬實物(Emulation)和實物模擬(Stimulation)[2]。其中,純模擬方法是指在新的軟硬件平臺下重新實現(xiàn)被仿真對象的控制邏輯,達到功能一致的效果。原控制器平臺的算法與畫面遷移到仿真平臺的方式通常是由翻譯軟件實現(xiàn)的[3-4]。翻譯型仿真使仿真機脫離DCS軟硬件系統(tǒng),能夠在通用計算機環(huán)境使用[5],該過程稱為翻譯式模擬(Translation)。再由Level 0過程模型與虛擬化的Level 1通過軟激勵的方式進行對接,實現(xiàn)FSS的集成。
本文主要針對S-DCSFSS的翻譯方案進行研究。
通常情況下,Level 1的仿真主要包括邏輯和畫面兩部分??紤]到對某個板卡或某個信號通路所在Level 1的控制器板卡通道好壞的仿真,應增加硬件部分的仿真功能。另外,由于安全級DCS(S-DCS)的畫面由位于Level 2的SVDU實現(xiàn),因此,S-DCS的翻譯內(nèi)容包括邏輯和硬件兩部分。
邏輯部分的翻譯平臺選擇MathWorks公司MATLAB軟件的子軟件Simulink。Simulink廣泛用于科學研究、工程仿真等環(huán)境,普及范圍廣、可靠性強、仿真結(jié)果認可度高。
硬件部分的翻譯需要將Level 1控制器各通道與邏輯部分的各個輸入輸出信號綁定,通過設置控制器各通道的故障狀態(tài),影響相應的輸入輸出信號的質(zhì)量位好壞。
實體Level 1平臺的算法邏輯通常以“控制站”-“算法頁”的架構(gòu)實現(xiàn)。每張算法頁包括圖符(變量、算法塊、靜態(tài)圖符、備注標簽)及其連接關(guān)系。具體化為圖符塊與連接線兩種,其中靜態(tài)圖符與備注標簽僅作為顯示用,因而不需要進行邏輯翻譯。
實體Level 1平臺算法由兩部分組成,一部分是根據(jù)上游設計而繪制的執(zhí)行控制、保護、調(diào)節(jié)功能的算法邏輯,另一個部分是根據(jù)平臺自身特性設計的算法邏輯,如自診斷邏輯、CPU負荷監(jiān)測等。后者對翻譯后的平臺沒有意義,應在翻譯的過程中識別并略過。文中不再贅述該過程。
實體Level 1平臺上的控制算法與Simulink平臺算法是映射關(guān)系。即實體Level 1平臺的每個控制站上每張算法圖頁的每個算法圖符、圖符之間的連接關(guān)系都應以一定的規(guī)律映射到Sinulink平臺上。
每個控制站的翻譯過程總體如圖2所示。共分為三個階段:解析算法組態(tài)階段、啟動Simulink階段、繪制Simulink階段。
圖2翻譯過程總體流程
(1)解析組態(tài)算法階段
以C#語言開發(fā)翻譯軟件為例,定義結(jié)構(gòu)體Item、Line分別表示一個圖符和一條連接線。兩種結(jié)構(gòu)體的數(shù)據(jù)格式與Level 1平臺定義的該類型結(jié)構(gòu)體一一對應。定義鏈表型全局變量:
public static List
public static List
分別表示該控制站中所有算法塊與連接線。通過對實體Level 1組態(tài)文件的讀取或解析,可填充兩個全局變量。
(2)啟動Simulink階段
引用MATLAB軟件自帶動態(tài)鏈接庫:
using MLApp;
使用C#綁定方式System.Type.GetTypeFromProgID()靜態(tài)調(diào)用COM組件對象,通過調(diào)用System.Activator.CreateInstance()函數(shù)啟動 Matlab進程,進而通過向Matlab發(fā)送命令行的方式啟動Simuink,打開算法庫,如圖3所示。Simulink算法庫中的算法圖符應包含被翻譯Level 1平臺的算法庫,保證翻譯過程不出現(xiàn)找不到對應算法圖符的情況。
圖3 Simulink平臺算法庫
算法塊內(nèi)部包含Simulink自帶圖符與自定義圖符(User-Defined Functions)兩種,其中自定義圖符由m語言編寫函數(shù)實現(xiàn),如AND4算法塊,其函數(shù)聲明為function[y,s]=fcn(x1,s1,x2,s2,x3,s3,x4,s4),即輸入為四個值與其對應的質(zhì)量位,輸出為一個值與其質(zhì)量位,通過m語言實現(xiàn)四個變量“與”邏輯的過程,邏輯中包含變量質(zhì)量位為壞的情況。
(3)繪制Simulink階段
繪制Simulink的過程主要包括繪制圖符與繪制連接線兩部分。由于連線是在圖符的接口端口上面進行連接的,因而應先繪制圖符。
繪制圖符的過程如圖4所示。遍歷代表圖符的全局變量items,對其中每個圖符首先計算其坐標,然后繪制圖符。由于邏輯圖的作用僅在于仿真計算,首要目的并不是人工讀圖,因而對指定圖符坐標的過程簡化為設置每個圖符大小固定,圖符之間向右向下移動圖符寬度或高度的距離,避免圖符重疊。
圖4圖符繪制過程
繪制連接線的過程如圖5所示。連接線的繪制過程中,通過遍歷代表連接線的全局變量Lines,讀取每根連接線的起點和終點的圖符結(jié)構(gòu)體及具體連接的接口。如果連接線Line結(jié)構(gòu)體中關(guān)于線的起點和終點的記錄是名字而非Item結(jié)構(gòu)體,則需要編寫函數(shù)(如Get-ItemFromLine())由圖符名反推得到圖符結(jié)構(gòu)體。再調(diào)用接口函數(shù),實現(xiàn)連接線的繪制。
圖5連接線繪制過程
考慮到通常實體Level 1平臺的變量值格式為Analog或Binary,由值和質(zhì)量位共同組成,而Simulink平臺本身沒有這種值與質(zhì)量位組合的數(shù)據(jù)格式,因而對于這種情況,可將實體Level 1平臺的一根連接線對應到Simulink平臺的兩根連接線,分別代表值和質(zhì)量位。
硬件翻譯應實現(xiàn)能夠模擬Level 1平臺某個板卡或某個信號通路故障導致其對應的輸入輸出信號質(zhì)量位為壞的情況。
硬件翻譯部分由控制臺(Console)程序?qū)崿F(xiàn),在軟件啟動時讀取設備組態(tài)文件與變量點表,獲取每個變量所在板卡和通道。對于輸入變量,當其對應的信號通道被設置為故障時,控制臺程序改變Simulink平臺上該變量的質(zhì)量位信息;對于輸出變量,當其對應的信號通道被設置為故障時,控制臺程序?qū)imulink平臺上該變量質(zhì)量位的直接修改將被下一周期的質(zhì)量位值覆蓋,因而只在控制臺程序內(nèi)部記錄該故障設置信息。當?shù)谌杰浖@取變量值時,通過控制臺程序與其接口,即可得到該故障信息。
板卡故障是通道故障的上層故障,當某張板卡被設置為故障狀態(tài)時,該板卡上所有通道的變量都會被設置為故障狀態(tài)。其中每個通道的故障設置與通道故障相同。
以中國核動力研究設計院(NPIC)研制的核安全級DCS平臺“龍鱗”(NASPIC)系統(tǒng)作為被翻譯對象,以某實際控制算法為例進行翻譯模擬方案的實例分析。該控制算法由四個開關(guān)量輸入信號(DI)為輸入,一個開關(guān)量輸出信號(DO)為輸出。參與運算的算法包括與門、三取二表決邏輯、非門等常見算法邏輯。該算法邏輯在實體Level 1的工程師站上進行繪制,如圖6所示。
圖6實體Level 1的控制算法
圖7 Simulink平臺上的模型
圖中的控制邏輯為,兩個DI信號經(jīng)過與門的輸出值與另外兩個DI信號進行三取二表決,再將表決結(jié)果取反得到最終的DO輸出。
按照第2節(jié)所述翻譯模擬方案的仿真策略,對實體Level 1進行翻譯式仿真,在Simulink平臺生成的模型如圖7所示。
首先讀取被翻譯平臺NASPIC的下裝算法文件,獲取其圖符及連接關(guān)系并記錄。然后在Simulink平臺對應繪制出每種圖符并連接。讀取被翻譯平臺NASPIC的下裝設備組態(tài)文件與變量點表,通過解析該文件,獲取每個變量對應的板卡與通道位置,為設置某通道故障時對應到變量做準備。
以基于Simulink的翻譯模擬式Level 1控制器與“華龍一號”堆型百萬千瓦壓水堆核電廠過程模型構(gòu)成純模擬仿真環(huán)境,使用實體DCS與過程模型構(gòu)成實物模擬仿真環(huán)境,兩種閉環(huán)仿真環(huán)境分別進行核功率調(diào)節(jié)實驗[6-7]。記錄兩組仿真實驗的過程參數(shù)數(shù)據(jù),以核功率為例,實驗結(jié)果如圖8所示。圖中,sp代表核功率設定值,pv-simulink代表純模擬仿真仿真實驗中的核功率測量值,pv-PDCS代表實物模擬仿真實驗中的核功率測量值。
通過實驗分析可知,基于Simulink的S-DCSFSS翻譯模擬方案得到的Level 1控制器具有對實體Level 1控制器的良好擬真效果。
圖8核功率調(diào)節(jié)仿真實驗
基于Simulink的S-DCSFSS翻譯模擬方案能夠有效的對核電廠DCSLevel 1對應的算法邏輯和硬件進行仿真。該方案軟件結(jié)構(gòu)相對簡單,因此具有價格低廉、開發(fā)周期短、與Level 0易于接口等優(yōu)點[8]。在不要求反映實物DCS相關(guān)特性的場合,基于Simulink的SDCSFSS翻譯模擬方案具有明顯的優(yōu)勢,是對傳統(tǒng)的以操縱人員培訓為首要需求的FSS的重要補充。