楊 永
(中國科學(xué)院 等離子體物理研究所,合肥 230031)
電子回旋共振加熱(electron cyclotron resonance heating,ECRH)是可控核聚變反應(yīng)的重要的加熱方法之一,具有耦合效率高、功率沉積局域性好、微波發(fā)射天線結(jié)構(gòu)簡單、發(fā)射功率密度較高、易于控制回旋共振層等許多優(yōu)點(diǎn),能夠彌補(bǔ)傳統(tǒng)加熱方式加熱溫度有限的缺點(diǎn),如中國環(huán)流器新一號(HL-1M) 裝置上研制的500 kW/50 ms的電子回旋共振加熱系統(tǒng)[1]。中國環(huán)流器二號A(HL-2A)裝置在一代的基礎(chǔ)上先后從2005年的2只500 kW回旋管共1 MW輸出功率逐步發(fā)展到2009年6只共3 MW輸出功率[2-3]。作為中國第一個超導(dǎo)托卡馬克HT-7[4]的升級版,EAST(experimental advanced superconducting tokamak)托卡馬克裝置上配備了4 MW長脈沖電子回旋加熱系統(tǒng)[5-7]。
回旋管作為整個ECRH系統(tǒng)的核心器件,它的控制需要遵循嚴(yán)格的要求,其中一個重要的原則是:加電時,應(yīng)先加陰極高壓,再加陽極高壓;關(guān)斷時,先關(guān)陽極高壓,再關(guān)陰極高壓,即陽極高壓要在陰極高壓已經(jīng)加載的情況下才能加載,不能單獨(dú)加載[8]。中央控制器作為直接控制回旋管的部件,為了保證回旋管可靠運(yùn)行,以及不被各種意外情況損壞,其控制邏輯復(fù)雜,輸入輸出信號繁多,如果安裝調(diào)試中遇到異常狀況,難以定位異常發(fā)生的位置。如果沒有異常診斷功能,遇到異常時,需要使用示波器去再次捕獲異常,由于信號繁多、連線困難,而且有些異常出現(xiàn)的頻率較低,使得調(diào)試工作非常繁瑣,效率低下,嚴(yán)重拖延工作進(jìn)展。因此設(shè)計一種實(shí)時在線的異常診斷邏輯勢在必行。
另外,配合計算機(jī)進(jìn)行長期的異常數(shù)據(jù)記錄,通過分析異常的類型和出現(xiàn)頻率的變化,還可以評估ECRH系統(tǒng)中重要部件的運(yùn)行狀態(tài)。ECRH系統(tǒng)正常運(yùn)行時,也會出現(xiàn)一些異常,但是出現(xiàn)的頻率很低,隨著系統(tǒng)運(yùn)行時間的增長,各部件會逐漸老化,這些異常出現(xiàn)頻率可能會增加或者減少,通過分析這些異常發(fā)生的頻率,可以間接地監(jiān)控各部件運(yùn)行的狀態(tài)。
傳統(tǒng)的ECRH系統(tǒng)主要采用可編程邏輯控制器(programmable logic controller,PLC)來控制回旋管高壓電源的開關(guān)。但是PLC的控制響應(yīng)速度不高,一般為毫秒量級,且無法編程實(shí)現(xiàn)較為復(fù)雜的邏輯,大大限制了ECRH系統(tǒng)回旋管控制的性能提升。FPGA(field programmable gate array)作為PAL、GAL等可編程器件的進(jìn)一步發(fā)展的產(chǎn)物,具有速度高、邏輯資源豐富,幾乎能夠編程實(shí)現(xiàn)任意復(fù)雜邏輯。為了提高控制響應(yīng)速度、控制時間精度、以及復(fù)雜度,EAST托卡馬克裝置的ECRH系統(tǒng)采用FPGA芯片作為回旋管的主控芯片。
本文主要介紹了ECRH系統(tǒng)中央控制器的控制原理以及異常診斷的邏輯設(shè)計,并且進(jìn)行了仿真驗(yàn)證。第二小節(jié)介紹了中央控制器正常的回旋管控制流程。第三小節(jié)詳述了可能出現(xiàn)的異常種類及其原因,然后設(shè)計了對應(yīng)的診斷邏輯。第四小節(jié)對這些診斷邏輯進(jìn)行了時序仿真。第五小節(jié)對全文進(jìn)行了總結(jié)。
中央控制器的主要作用是根據(jù)EAST裝置的總控發(fā)來的觸發(fā)信號和等離子體電流信號來控制回旋管陰極高壓電源和陽極高壓電源的開關(guān)。由于要嚴(yán)格保證陽極高壓不被單獨(dú)加載在回旋管上,因此需要實(shí)時檢測陰極高壓源的輸出狀況,一旦檢測到異常就先迅速關(guān)閉陽極電源。中央控制器的輸入輸出信號如圖1所示。圖中只畫出了中央控制器與其他部件或系統(tǒng)之間的信號連接關(guān)系,各部件或系統(tǒng)之間的信號連線沒有在該圖中表示,比如PLC也會監(jiān)視陰極高壓電源的輸出情況等。與中央控制器相連的有EAST總控、陰極高壓單元、陽極高壓電源、PLC監(jiān)視器、ECRH總控見算計、自檢計算機(jī)以及各種保護(hù)單元。
圖1 中央控制器輸入輸出信號
信號TriggerIn_-60、TriggerIn_0以及Ip是EAST總控發(fā)來的信號,TriggerIn_-60為負(fù)60秒觸發(fā)脈沖信號,用于通知ECRH系統(tǒng)作好一次放電實(shí)驗(yàn)的準(zhǔn)備,因?yàn)镋CRH系統(tǒng)中有些部件(比如陰極高壓電源)從啟動到就緒需要比較長的時間。TriggerIn_0為0秒觸發(fā)脈沖信號用于通知中央控制器可以立即打開回旋管給EAST裝置輸送高功率微波。Ip為EAST總控發(fā)送來的等離子電流信號,當(dāng)回旋管輸出微波后就會接收到Ip信號有效,等Ip信號再次變?yōu)闊o效時,表示一次放電過程結(jié)束,應(yīng)立即關(guān)閉回旋管。
NegHVPre_-60為陰極高壓電源負(fù)60秒準(zhǔn)備信號,DAQCtrl_OnOff為數(shù)據(jù)采集控制信號,與NegHVPre_-60時刻保持同步。NegHV_OnOff為陰極高壓電源的輸出開關(guān)信號,NegHV_Ready為其準(zhǔn)備就緒信號,NegHV_OutputState為其輸出狀態(tài)信號,NegHV_Voltage為其輸出電壓信號,該信號用電平高低來表示輸出電壓是否達(dá)到要求。PosHV_OnOff為陽極高壓電源的輸出開關(guān)信號。PLC_Ready為PLC準(zhǔn)備就緒信號,Wave_OutputState為實(shí)時波輸出狀態(tài)信號,其電平的高低表示回旋管有無波輸出,由于微波功率檢測器輸出的模擬信號噪聲較大,可能會造成Wave_OutputState信號有脈沖干擾,因此需要對該信號進(jìn)行兩次或多次確認(rèn)才能比較可靠地判斷波輸出的真實(shí)狀態(tài)。
Wave_OutputState_Down為發(fā)生波輸出狀態(tài)異常時的診斷輸出信號,IpNull為發(fā)生無等離子電流異常時的診斷輸出信號,NegHV_Down為發(fā)生陰極高壓輸出狀態(tài)異常時的診斷輸出信號,PLC_Ready_Down為發(fā)生PLC就緒狀態(tài)異常時的診斷輸出信號,NegHV_Ready_Down為發(fā)生陰極高壓就緒狀態(tài)異常時的診斷輸出信號。
除了上述信號之外,還有各種保護(hù)和急停信號,統(tǒng)稱為Protection Stop Signals,當(dāng)這些信號中的任意一個有效時,中央控制器會立即關(guān)閉回旋管,并且輸出對應(yīng)信號的診斷輸出信號,這里統(tǒng)稱為Protection Signals.
回旋管除了需要陰極高壓電源和陽極高壓電源外,還需要配套超導(dǎo)磁體及其電源、燈絲電源、鈦泵電源等附屬部件,因?yàn)檫@些部件的監(jiān)控要求速度相對不高,由其他PLC等控制器來監(jiān)控,當(dāng)出現(xiàn)異常時,會發(fā)送保護(hù)停止信號(protection stop signals)給中央控制器,來使其關(guān)閉陰極高壓電源和陽極高壓電源。
中央控制器的控制流程可以用圖2所示的狀態(tài)圖來表示:
1)上電初始化:系統(tǒng)上電之后100 ms內(nèi),復(fù)位信號有效,此時處于“空閑狀態(tài)”,系統(tǒng)進(jìn)行初始化,F(xiàn)PGA將所有輸出信號置為無效狀態(tài)(NegHVPre_-60、NegHV_Onoff、PosHV_Onoff、DAQCtrl_OnOff、IpNull為低電平,Wave_OutputState_Down、NegHV_Down、PLC_Ready_Down、NegHV_Ready_Down、Protection Signals為高電平);
2)當(dāng)PLC就緒信號PLC_Ready為高電平時,進(jìn)入“準(zhǔn)備狀態(tài)”;此時如果-60 s觸發(fā)脈沖信號TriggerIn_-60有效,進(jìn)入“負(fù)60 s觸發(fā)狀態(tài)”,F(xiàn)PGA將負(fù)60 s陰極高壓準(zhǔn)備信號NegHVPre_-60和DAQCtrl_OnOff置為高電平,以使陰極高壓電源開始準(zhǔn)備,各信號數(shù)據(jù)開始被采集;當(dāng)陰極高壓電源準(zhǔn)備好后,陰極高壓準(zhǔn)備好狀態(tài)信號NegHV_Ready變?yōu)楦唠娖剑?/p>
3)處于“負(fù)60 s觸發(fā)狀態(tài)”時,當(dāng)NegHV_Ready信號變?yōu)楦唠娖胶?,如? s觸發(fā)脈沖信號TriggerIn_0有效,F(xiàn)PGA將陰極高壓啟停信號NegHV_OnOff置為高電平,給回旋管加載陰極高壓電源,程序進(jìn)入“等待陰極高壓輸出狀態(tài)”;
4)等待1 ms后,程序自動進(jìn)入“檢測陰極高壓輸出狀態(tài)”,檢測信號NegHV_OutputState是否正常;如果NegHV_OutputState異常(表示陰極高壓電源沒有正常加載),進(jìn)入“關(guān)閉狀態(tài)”;如果NegHV_OutputState正常(表示陰極高壓電源已正常加載),程序進(jìn)入“等待陽極高壓輸出狀態(tài)”,50 ms后自動進(jìn)入“等待波輸出狀態(tài)”,并將陽極高壓啟停信號PosHV_OnOff置為高電平,給回旋管加載陽極高壓電源;
5)當(dāng)陽極高壓啟停信號PosHV_OnOff發(fā)出后,程序等待1 ms,然后進(jìn)入“檢測波輸出狀態(tài)”,檢測信號Wave_OutputState是否正常;如果Wave_OutputState檢測為異常,程序進(jìn)入“再次等待波輸出狀態(tài)”,等待1 ms,然后進(jìn)入“再次檢測波輸出狀態(tài)”,再次檢測信號Wave_OutputState是否正常,如果波輸出狀態(tài)信號再次檢測不正常,進(jìn)入“關(guān)閉狀態(tài)”;如果Wave_OutputState檢測(或再次檢測)為正常,則進(jìn)入“等待等離子電流狀態(tài)”,等待1 ms后,進(jìn)入“檢查等離子電流狀態(tài)”,檢測信號Ip是否正常;
6)如果信號Ip正常,程序進(jìn)入“等待關(guān)閉狀態(tài)”;如果異常,則直接進(jìn)入“關(guān)閉狀態(tài)”;
7)在“等待關(guān)閉狀態(tài)”中,程序等待信號Ip變?yōu)闊o效(表示一個放電過程結(jié)束),然后正常進(jìn)入“關(guān)閉狀態(tài)”;如果此時檢測到波輸出異常,程序會進(jìn)入“再次等待波輸出狀態(tài)”,等待1 ms后,進(jìn)入“再次檢測波輸出狀態(tài)”,如果檢測正常,會直接返回“等待關(guān)閉狀態(tài)”;否則會進(jìn)入“關(guān)閉狀態(tài)”。程序從“等待關(guān)閉狀態(tài)”進(jìn)入到“再次等待波輸出狀態(tài)”以及“再次檢測波輸出狀態(tài)”時,當(dāng)Ip信號變?yōu)闊o效時,也判定為放電過程正常結(jié)束,立即進(jìn)入“關(guān)閉狀態(tài)”;
8)當(dāng)程序進(jìn)入“關(guān)閉狀態(tài)”后,會將PosHV_Onoff置為低電平,以關(guān)閉陽極高壓電源,等待2 ms后進(jìn)入“關(guān)閉狀態(tài)2”;在“關(guān)閉狀態(tài)2”中,將NegHV_Onoff置為低電平,以關(guān)閉陰極高壓電源,等待200 ns后進(jìn)入“關(guān)閉狀態(tài)3”;在“關(guān)閉狀態(tài)3”中,將NegHVPre_-60和DAQCtrl_OnOff置為低電平;最后返回“空閑狀態(tài)”。
圖2 FPGA控制部分狀態(tài)機(jī)
除了上一節(jié)所述的正常的控制邏輯外,在控制回旋管運(yùn)行時,還會出現(xiàn)各種異常的情況,中央控制器必須及時地診斷和處理這些異常狀況,才能起到保護(hù)回旋管的作用。異常診斷邏輯是根據(jù)程序跳轉(zhuǎn)到關(guān)閉狀態(tài)前的狀態(tài)以及各輸入信號的電平高低來判斷是否發(fā)生了異常以及診斷異常發(fā)生的原因。當(dāng)主控制邏輯處于空閑、就緒或者關(guān)閉狀態(tài)時,輸入狀態(tài)信號異常或者保護(hù)急停信號有效不會被判定為一個異常情況。只有在一次放電過程中,輸入狀態(tài)信號異常才有可能產(chǎn)生一個異常情況。異常主要可以分為以下六種情況:
1)PLC就緒狀態(tài)異常:指當(dāng)程序處于狀態(tài)2~12時(即處于一個放電過程中),PLC_Ready信號突然變?yōu)榈碗娖?,表示PLC出現(xiàn)了異常狀況,此時回旋管控制邏輯從狀態(tài)2~12中的某一個狀態(tài)跳轉(zhuǎn)到“關(guān)閉狀態(tài)”,異常診斷邏輯監(jiān)測這一狀況后,將信號PLC_Ready_Down置為低電平,并保持20 s后再拉高;
2)陰極高壓就緒狀態(tài)異常:指當(dāng)0 s觸發(fā)脈沖信號TriggerIn_0有效后至放電過程結(jié)束進(jìn)入“關(guān)閉狀態(tài)”前,NegHV_Ready信號突然變?yōu)榈碗娖?,表示陰極高壓電源沒有就緒。此時回旋管控制邏輯從狀態(tài)2~12中的某一個狀態(tài)跳轉(zhuǎn)到“關(guān)閉狀態(tài)”,異常診斷邏輯監(jiān)測這一狀況后,檢查跳轉(zhuǎn)前的狀態(tài)是否是“負(fù)60 s觸發(fā)狀態(tài)”,如果是,則還需檢查TriggerIn_0信號,只有當(dāng)TriggerIn_0信號同時為高時,才表示發(fā)生了陰極高壓就緒狀態(tài)異常;如果跳轉(zhuǎn)前的狀態(tài)不是“負(fù)60 s觸發(fā)狀態(tài)”,NegHV_Ready信號為低就直接表示發(fā)生了陰極高壓就緒狀態(tài)異常,然后異常診斷邏輯將信號NegHV_Ready_Down置為低電平,并保持20 s后再拉高;
3)陰極高壓輸出狀態(tài)異常:指當(dāng)程序處于狀態(tài)4~12時,NegHV_OutputState信號或NegHV_Voltage信號為低電平,表示陰極高壓輸出不正常,此時程序從狀態(tài)4~12中的某一個狀態(tài)跳轉(zhuǎn)到“關(guān)閉狀態(tài)”,異常診斷邏輯監(jiān)測這一狀況后,將信號NegHV_Down置為低電平,并保持20 s后再拉高;
4)波輸出狀態(tài)異常:由于回旋管波輸出信號噪聲比較大,為了避免誤判,程序中只有連續(xù)兩次檢測到波輸出信號Wave_OutputState為低時才判定為異常狀況,即當(dāng)程序從“再次檢查波輸出狀態(tài)”跳轉(zhuǎn)到“關(guān)閉狀態(tài)”,且波輸出信號Wave_OutputState為低時,才表示發(fā)生了波輸出狀態(tài)異常。異常診斷邏輯監(jiān)測這一狀況后,將信號Wave_OutputState_Down置為低電平,并保持20 s后再拉高;
5)無等離子電流異常:當(dāng)程序從“檢查等離子電流狀態(tài)”跳轉(zhuǎn)到“關(guān)閉狀態(tài)”,且Ip信號為低時,表示發(fā)生了無等離子電流異常。異常診斷邏輯監(jiān)測這一狀況后,將信號IpNull置為高電平,并保持5 s后再拉低;
6)保護(hù)急停信號有效:指當(dāng)程序處于狀態(tài)2~12時(即處于一個放電過程中),保護(hù)停止類信號中的任意一個突然變?yōu)楦唠娖?,表示ECRH控制系統(tǒng)給中央控制器發(fā)送了停止命令,此時回旋管控制邏輯從狀態(tài)2~12中的某一個狀態(tài)跳轉(zhuǎn)到“關(guān)閉狀態(tài)”,異常診斷邏輯監(jiān)測這一狀況后,將對應(yīng)停止類信號的異常輸出信號置為低電平,并保持20 s后再拉高。
本設(shè)計的開發(fā)采用Quartus II軟件,F(xiàn)PGA芯片選用Cyclone II系列[9]的工業(yè)級芯片,上述2、3兩小節(jié)的邏輯采用VerilogHDL進(jìn)行編寫。FPGA系統(tǒng)時鐘采用外部的高精度有源晶振產(chǎn)生的頻率為29.2412 MHz的時鐘信號,不適用內(nèi)部PLL。由于系統(tǒng)中各輸入信號與系統(tǒng)時鐘是異步的,如果直接使用會產(chǎn)生亞穩(wěn)態(tài)。因此為了避免時序混亂,對所有輸入信號用系統(tǒng)時鐘進(jìn)行了兩步采樣寄存,雖然理論上仍然可能進(jìn)入亞穩(wěn)態(tài),但是其概率已經(jīng)非常小[10-11]。
為了驗(yàn)證設(shè)計的正確性,將程序在各種可能的輸入情況下進(jìn)行了仿真。仿真時,為了減少仿真時間以及便以觀察波形,對涉及的各個時間間隔進(jìn)行了適當(dāng)?shù)目s短。
圖3為正常運(yùn)行的仿真時序圖,仿真開始時,PLC_Ready信號有效,程序應(yīng)處于準(zhǔn)備狀態(tài);隨著TriggerIn_neg_60信號脈沖的到來,一次放電過程開始,首先將陰極高壓電源負(fù)60秒準(zhǔn)備信號(NegHVPre_neg_60)和數(shù)據(jù)采集控制信號(DAQCtrl_OnOff)置高,啟動陰極高壓電源,并且開始數(shù)據(jù)采集;一段時間后,陰極高壓電源準(zhǔn)備好信號(NegHV_Ready)變高,表示陰極高壓電源就緒;然后0秒觸發(fā)脈沖信號(TriggerIn_0)來了一個脈沖,程序立即將陰極高壓電源的輸出開關(guān)信號(NegHV_OnOff)置高,以給回旋管陰極加載高壓,然后陰極高壓輸出狀態(tài)信號(NegHV_OutputState)和陰極高壓輸出電壓信號(NegHV_Voltage)均變高,表示陰極高壓輸出正常;檢測到陰極高壓輸出正常后將陽極高壓電源的輸出開關(guān)信號(PosHV_OnOff)置高,給回旋管陽極加載高壓;延遲一小段時間后檢測波輸出是否正常,圖3中Wave_OutputState為高表示波輸出正常;然后進(jìn)入等離子電流信號(Ip_D)檢測,檢測到Ip_D正常后一直等待Ip_D信號變低;先將陽極高壓電源的輸出開關(guān)信號(PosHV_OnOff)置低,再將陰極高壓電源的輸出開關(guān)信號(NegHV_OnOff)置低,最后將將陰極高壓電源負(fù)60秒準(zhǔn)備信號(NegHVPre_neg_60)和數(shù)據(jù)采集控制信號(DAQCtrl_OnOff)置低;一次正常的放電過程結(jié)束。
圖3 正常運(yùn)行仿真時序圖
圖4為發(fā)生無等離子電流異常時的仿真時序圖。直到波輸出狀態(tài)信號Wave_OutputState變高前,與正常運(yùn)行時相同;但是由于在Wave_OutputState變高后的很長一段時間內(nèi)等離子電流信號Ip_D均保持為低,此時程序應(yīng)已進(jìn)入“檢查等離子電流狀態(tài)”,然后主控制邏輯檢測到Ip_D為低,進(jìn)入“關(guān)閉狀態(tài)”,依次將陽極高壓電源的輸出開關(guān)信號(PosHV_OnOff)、陰極高壓電源的輸出開關(guān)信號(NegHV_OnOff)、以及陰極高壓電源負(fù)60秒準(zhǔn)備信號(NegHVPre_neg_60)和數(shù)據(jù)采集控制信號(DAQCtrl_OnOff)置低。異常診斷邏輯檢測到主控制邏輯從“檢查等離子電流狀態(tài)”跳轉(zhuǎn)到“關(guān)閉狀態(tài)”,且此時Ip_D為低,因此診斷為發(fā)生了無等離子電流異常,將IpNull信號拉高一段時間。
圖4 無等離子電流異常仿真時序圖
圖5為發(fā)生波輸出狀態(tài)異常時的仿真時序圖。當(dāng)陽極高壓電源的輸出開關(guān)信號(PosHV_OnOff)置高后,很長一段時間內(nèi)波輸出狀態(tài)信號Wave_OutputState保持為低,因此導(dǎo)致主控制邏輯連續(xù)兩次檢測波輸出信號為低,因此直接進(jìn)入了“關(guān)閉狀態(tài)”,依次將PosHV_OnOff、NegHV_OnOff以及NegHVPre_neg_60和DAQCtrl_OnOff置低。異常診斷邏輯檢測到主控制邏輯從“再次檢測波輸出狀態(tài)”跳轉(zhuǎn)到“關(guān)閉狀態(tài)”,且此時波輸出狀態(tài)信號Wave_OutputState為低,因此診斷為發(fā)生了波輸出狀態(tài)異常,將信號Wave_OutputState_Down拉低一段時間。
圖5 波輸出狀態(tài)異常仿真時序圖
圖6為發(fā)生陰極高壓就緒狀態(tài)異常時的仿真時序圖。當(dāng)0 s觸發(fā)脈沖信號TriggerIn_0有效時,檢測到陰極高壓電源準(zhǔn)備信號(NegHV_Ready)為低,主控制邏輯進(jìn)入進(jìn)入“關(guān)閉狀態(tài)”。異常診斷邏輯檢測到這一情況后,將信號NegHV_Ready_Down拉低一段時間。
圖6 陰極高壓就緒狀態(tài)異常仿真時序圖
本文主要闡述了ECRH系統(tǒng)中央控制器異常診斷的邏輯設(shè)計。針對回旋管中央控制器發(fā)生故障時調(diào)試工作繁瑣、難以查找異常發(fā)生的原因等問題,設(shè)計了一套實(shí)時在線的異常檢測和診斷邏輯,并且在Altera Cyclone II系列FPGA中編程實(shí)現(xiàn)了該異常診斷邏輯與回旋管控制邏輯,最后對FPGA程序進(jìn)行了時序仿真,驗(yàn)證了設(shè)計的正確性。