周海蓮 , 于 強 , 趙勛峰, 耿寶明
(1.中國科學院空間科學與應用研究中心 北京 100190;2.中國科學院大學 北京 100049)
空間多功能材料合成爐(以下簡稱多功能爐)是在空間微重力環境下進行材料合成的實驗設備[1],將服務于SJ-10衛星空間熔體材料科學實驗任務。為保證多功能爐在空間環境中順利完成實驗任務,在進入空間環境前,需要在地面反復進行匹配實驗,得到實驗過程中各個樣品的實驗參數。這些參數包括:溫度爬升值、溫度設定值、升溫時間、保溫時間、降溫時間、樣品生長速度、樣品工位對中參數、PID控制參數、熱電偶線性修正系數等[2]。
本文所實現的地面控制系統采用了配置表存放實驗流程信息的設計架構,實現了實驗流程易于修改、實驗結果顯示直觀等地面匹配實驗的需求。在多功能爐的地面匹配實驗和地面驗收實驗中,本地面控制系統發揮了重要作用。
地面控制系統是多功能爐地面實驗的核心系統,負責實驗過程的控制。控制系統由一臺運行控制軟件的計算機實現。通過控制軟件的運算,按照時間時刻向執行系統發送控制指令。執行系統解析控制指令,將控制信號轉換成驅動信號發送至執行機構,控制電機動作及爐絲加熱。多功能爐地面控制系統的工作原理如圖1所示。

圖1 多功能爐地面控制系統原理圖Fig.1 Schematic of materials synthesis furnace control system
控制軟件采用C++實現,分為三大功能模塊:通訊管理,實驗流程控制,實驗數據存儲。控制軟件的功能組成如圖2所示。

圖2 控制軟件模塊圖Fig.2 Module chart of control software
通訊管理模塊負責實現控制系統和執行系統之間的通訊,保證控制指令及反饋數據的交換。通訊管理模塊下包含三個子功能:數據注入,數據采集,數據解析。數據注入指控制系統向執行系統發送的控制指令;數據采集指執行系統向控制系統發送的反饋數據包;數據解析功能是對反饋數據包按照通訊協議進行解析,得到多功能爐內狀態量的實際值。
實驗流程控制模塊包含了全部控制邏輯,負責保證實驗流程地順利執行。實驗流程控制模塊下細分成兩個子功能:加載實驗流程表,執行實驗流程表。通過這兩個子功能的相互配合,完成實驗流程的控制。
實驗數據存儲模塊的功能是保存實驗期間產生的所有數據。從真實性出發,保存了實驗數據的原始值,也就是保存執行系統向控制系統反饋的原始數據。從易讀性出發,保存了實驗過程中多功能爐的狀態值,也就是保存實驗數據解析后的值。
執行系統(FPGA)使用鍵-值對的形式存儲系統當前狀態,其中鍵和值都是單字節十六進制數。對于控制系統而言,這些鍵值對分為兩種情況:第一種是用于接收控制信息的,因此可以通過控制指令進行修改,第二種則是反應了執行機構當前狀態的,控制系統只能讀取這些鍵值對的信息,不能修改。
控制系統和執行系統之間通信的本質就是交互鍵值對信息,使得控制系統能夠對執行系統進行反饋控制。通訊方式采用RS422通訊,兩者之間的通訊協議如下。
1)數據注入
數據注入是指控制系統向執行系統發送控制指令,修改某些鍵值對的值。指令格式如下圖3所示。

圖3 數據注入格式Fig.3 Format of data transmission
控制系統將需要修改的鍵值對通過數據注入發送到執行系統,執行系統會對數據進行解包,然后修改相應鍵值對的值。
2)數據采集與解析
執行系統每秒向控制系統反饋數據包。數據包的格式和數據注入的格式類似,不同的是反饋數據包中包含了全部的鍵值對。
控制系統收到反饋數據包后對數據進行解包,將需要的鍵值對找出來。由于數據包中的數據都是十六進制,因此控制系統還需要按照通訊協議的定義將十六進制轉換成具有實際意義、能夠用于控制的物理量。
實驗過程中的全部控制信息都被存放在實驗流程表中,因此需要確保讀取、執行中地每一步都準確無誤地進行。下面介紹實驗流程表的設計架構及實現。
實驗流程表中包含3種類型的配置表,分別是靜態配置表、動態配置表和動作配置表。一張完整的實驗流程表由一張靜態配置表、一張動態配置表和若干張動作配置表組成。
1)靜態配置表
靜態配置表中包含了多功能爐的固有信息,例如溫度采集模塊的參數配置信息、電機主備份信息、熱偶主備份信息等。靜態配置表在整個匹配實驗的過程中被修改的可能性很小。
2)動作配置表
實驗過程中執行機構可能出現的每個動作都要形成一張動作配置表。為了對這些動作配置表進行高效地索引,將所有動作分為五種動作類型,每個動作類型的不同的配置值形成不同的動作配置表。例如動作類型1是電機動作表,那么換位電機轉動到一號工位這個動作形成一張動作配置表,提拉電機移動至下限位開關這個動作也會形成一張動作配置表。五種動作類型的說明如表1所示。

表1 多功能爐動作分數表Tab.1 Classification of materials synthesis furnace
每張動作配置表都使用唯一的動作ID來標識。動作ID的計算公式為n*1 000+m,其中n為動作類型號,m為某個動作類型下的配置表號。例如電機動作的第3張配置表的動作ID為1003,PID控溫曲線設置的第2張配置表的動作ID為5002。
3)動態配置表
動態配置表的功能是以時間為主線,將多個動作表聯系起來。為了方便填寫,動態配置表中的動作排列方式不是按照時間順序排列的,而是通過次動作索引進行跳轉。動態配置表的格式如表2所示。

表2 動態配置表格式Tab.2 Format of dynamic configuration table
其中,序號和次動作索引一起決定了動作執行順序如何跳轉。次動作索引指下一個被執行動作的序號,以255標識全部動作執行完成。動作時間碼指該動作執行完成到執行下一個動作之間的時間間隔。動作ID為當前執行動作的標識,每個動作ID標識一張動作配置表。
因此,上表的執行順序為:實驗流程開始后直接執行動作ID為5001的PID控溫曲線設置表,設置溫度爬升曲線;10秒后,執行動作ID為3001的PID1參數設置表,使能PID1控制;7 200 s后,執行動作ID為3006的PID1參數設置表,關閉PID1控制;10秒后實驗流程執行完畢。這樣就完成了一次PID溫度控制過程。
當用戶在控制頁面上點擊“開始實驗”時,提示用戶選擇本次實驗加載的實驗流程表。確認選擇后,后臺自動開始加載選中的實驗流程表。加載過程如下。
首先,讀取靜態配置表。將靜態配置表中的配置內容寫入對應的全局變量中,以便在整個實驗流程執行過程中都能讀取到這些配置內容。
接著,讀取動態配置表。動態配置表中的內容決定了各個時間時刻進行的動作。讀取過程為按照動態配置表中動作ID的跳轉格式,將所有的動作執行時刻和對應的動作ID匹配起來,然后存儲在數組中。這樣,實驗流程執行過程中就可以通過順序讀取數組中的內容,完成在不同的時間時刻執行相應的動作。
需要說明的是,動作配置表的讀取不在加載過程中完成,而是在實驗流程執行過程中通過動作ID索引到要執行的動作配置表后讀取并執行。
加載完實驗流程表后,控制軟件會按照動態配置表中的內容執行相應動作。實驗流程表的執行過程實質上就是進行PID溫度控制[3]、電機控制的過程。
1)溫度控制
在材料合成過程中,溫度的波動至關重要,直接影響材料合成的結果是否滿足預期。本系統采用傳統PID控制方法對爐內溫度進行控制,PID控制原理如圖4所示[4]。

圖4 PID控制原理圖Fig.4 Schematic of PID control system
多功能爐中包含兩個溫區,對應了兩組溫度控制,分別用PID1、PID2進行標識。在實驗流程表中,與溫度控制相關的動作有PID控溫曲線設置動作表、PID1參數設置動作表、PID2參數設置動作表。
PID控溫曲線設置動作表中設置了PID1、PID2的溫度設定曲線。控制系統通過反饋數據包得到爐內真實溫度,計算當前爐內設定溫度與真實溫度的差值,即為溫度偏差e(t)。控制系統將偏差發送至FPGA,由FPGA進行PID公式運算,得到 u(t)。PID 計算公式中 P、I、D 參數的值由 PID1參數設置動作表和PID2參數設置動作表進行配置。FPGA將u(t)發送至執行機構,通過改變爐絲加熱的占空比來調節爐內溫度[5]。
2)電機控制
電機控制模塊采用電機動作表和電機狀態查詢表結合的方式實現,從而實現對電機故障的監控。
控制系統將電機動作表中包含的電機運行方向、速度等參數發送至FPGA,并發送電機使能指令。FPGA接收到電機使能命令后,按照設置參數控制電機進行換位或提拉。T s后,通過執行電機狀態查詢表來判斷電機是否到位。如果查詢結果為電機到位,則繼續后面的實驗流程;否則,說明電機運行過程中出現故障,此時應停止實驗流程并將電機復位。
其中,T s是電機執行該動作所需時間的常規值,可以通過匹配實驗統計得到。
實驗數據是實驗過程的記錄,為了方便科研人員分析數據,控制系統采用兩套存儲架構保存實驗過程中的原始數據和解析后的數據。
原始數據的存儲采用bin文件格式。所有bin文件統一采用日期命名,例如2014-12-12.bin中存放了2014年12月12日所有的實驗數據。控制系統將接收到的每一包反饋包都打上時間戳,存放到當天的bin文件中。這種存儲方式最大限度地保證了實驗數據不被篡改。當實驗過程中出現異常時,科研人員通過查詢當天的bin文件就可以直接定位到異常時執行系統的狀態。
由于bin文件中存儲的十六進制數據不利于進行統計分析,因此需要存儲解析后的數據。控制系統將執行系統反饋的數據包按照通訊協議的說明進行解析,得到執行系統狀態的實際值。解析后的數據存儲在Mysql數據庫中[6]。Mysql是一款輕量型關系數據庫,其增、刪、查、改等數據庫操作的效率都很高,能夠滿足控制系統存取數據的要求[7]。
以多功能爐第四工位為例,該工位的實驗流程見圖5所示。實驗開始后,首先將樣品送至特定加熱區域處。接著,樣品經過兩段保溫區后開始融化,溫度分別為650℃和700℃。最后,將樣品提拉至復位狀態,提拉過程中樣品溫度降低,開始凝固,得到需要的熔體材料。

圖5 多功能爐第四工位實驗流程Fig.5 Experiment flow of fourth stations
在控制系統中配置實驗流程表中的動態配置表,即可實現上述實驗流程。實驗過程中,多功能爐內的溫度曲線見圖6。其中,保溫區的控制精度為±0.3℃,滿足了材料熔合的需要。

圖6 多功能爐實驗過程中溫度曲線Fig.6 Temperature curve of materials synthesis furnace
本地面控制系統已應用在多功能地面實驗中。實驗結果表明,本系統能夠順利完成控制流程且時間控制精度為±1s,滿足多功能爐地面實驗的要求。通過地面實驗,科研人員獲得了多功能爐控制過程中的參數,并得到了期望的合成熔體材料,為空間實驗提供了依據。
[1]于強,俞號峰,劉威.空間晶體生長爐綜合控制方法[J].空間科學學報,2011,31(1):87-92.YU Qiang,YU Hao-feng,LIU Wei.Integrated control for crystal growth furnace in space[J].Chinese Journal of Space Science,2011,31(1):87-92.
[2]于強,呂旭濤,石春,等.空間晶體生長爐溫度系統建模[J].系統仿真學報,2008,20(13):3596-3599.YU Qiang,LV Xu-tao,SHI Chun,et al.Modeling of temperature system in space crystal growth furnace[J].Journal of System Simulation,2008,20(13):3596-3599.
[3]孫奉昌,樂愷,姜澤毅,等.智能控制算法對加熱爐溫度控制研究[J].熱能動力工程,2009,24(3):337-341.SUN Feng-cang,YUE Kai,JIANGZe-yi,et al.A study of the temperature control of a heating furnace based on an intelligent control algorithm[J].Journal of Engineering for Thermal Energy and Power,2009,24(3):337-341.
[4]宗素蘭,章家巖,尹成賀.模糊PID控制在溫度控制系統的應用[J].工程控制計算機,2010,23(8):75-76.ZONGSu-lan,ZHANGJia-yan,YIN Cheng-he.Application of fuzzy PID control in temperature control system[J].Industrial Control Computer,2010,23(8):75-76.
[5]王朝暉,宋軍.自整定PID控制策略在溫度控制中的應用[J].計算技術與自動化,2006,25(4):45-48.WANG Zhao-hui,SUN Jun.Self-adjust PID control method apply in the system of temperature control[J].Computing Technology and Automation,2006,25(4):45-48.
[6]唐漢明,翟振興,蘭麗華,等.深入淺出MySQL—數據庫開發、優化與管理維護[M].北京:人民郵電出版社,2008.
[7]蘭旭輝,熊家軍,鄧剛.基于MySQL的應用程序設計[J].計算機工程與設計,2004,25(3):442-443,468.LAN Xu-hui,XIONG Jia-jun,DENG Gang.Development of application program based on MySQL[J].Computer Engineering and Design,2004,25(3):442-443,468.