周海蓮 , 于 強(qiáng) , 趙勛峰, 耿寶明
(1.中國(guó)科學(xué)院空間科學(xué)與應(yīng)用研究中心 北京 100190;2.中國(guó)科學(xué)院大學(xué) 北京 100049)
空間多功能材料合成爐(以下簡(jiǎn)稱多功能爐)是在空間微重力環(huán)境下進(jìn)行材料合成的實(shí)驗(yàn)設(shè)備[1],將服務(wù)于SJ-10衛(wèi)星空間熔體材料科學(xué)實(shí)驗(yàn)任務(wù)。為保證多功能爐在空間環(huán)境中順利完成實(shí)驗(yàn)任務(wù),在進(jìn)入空間環(huán)境前,需要在地面反復(fù)進(jìn)行匹配實(shí)驗(yàn),得到實(shí)驗(yàn)過程中各個(gè)樣品的實(shí)驗(yàn)參數(shù)。這些參數(shù)包括:溫度爬升值、溫度設(shè)定值、升溫時(shí)間、保溫時(shí)間、降溫時(shí)間、樣品生長(zhǎng)速度、樣品工位對(duì)中參數(shù)、PID控制參數(shù)、熱電偶線性修正系數(shù)等[2]。
本文所實(shí)現(xiàn)的地面控制系統(tǒng)采用了配置表存放實(shí)驗(yàn)流程信息的設(shè)計(jì)架構(gòu),實(shí)現(xiàn)了實(shí)驗(yàn)流程易于修改、實(shí)驗(yàn)結(jié)果顯示直觀等地面匹配實(shí)驗(yàn)的需求。在多功能爐的地面匹配實(shí)驗(yàn)和地面驗(yàn)收實(shí)驗(yàn)中,本地面控制系統(tǒng)發(fā)揮了重要作用。
地面控制系統(tǒng)是多功能爐地面實(shí)驗(yàn)的核心系統(tǒng),負(fù)責(zé)實(shí)驗(yàn)過程的控制??刂葡到y(tǒng)由一臺(tái)運(yùn)行控制軟件的計(jì)算機(jī)實(shí)現(xiàn)。通過控制軟件的運(yùn)算,按照時(shí)間時(shí)刻向執(zhí)行系統(tǒng)發(fā)送控制指令。執(zhí)行系統(tǒng)解析控制指令,將控制信號(hào)轉(zhuǎn)換成驅(qū)動(dòng)信號(hào)發(fā)送至執(zhí)行機(jī)構(gòu),控制電機(jī)動(dòng)作及爐絲加熱。多功能爐地面控制系統(tǒng)的工作原理如圖1所示。
圖1 多功能爐地面控制系統(tǒng)原理圖Fig.1 Schematic of materials synthesis furnace control system
控制軟件采用C++實(shí)現(xiàn),分為三大功能模塊:通訊管理,實(shí)驗(yàn)流程控制,實(shí)驗(yàn)數(shù)據(jù)存儲(chǔ)??刂栖浖墓δ芙M成如圖2所示。
圖2 控制軟件模塊圖Fig.2 Module chart of control software
通訊管理模塊負(fù)責(zé)實(shí)現(xiàn)控制系統(tǒng)和執(zhí)行系統(tǒng)之間的通訊,保證控制指令及反饋數(shù)據(jù)的交換。通訊管理模塊下包含三個(gè)子功能:數(shù)據(jù)注入,數(shù)據(jù)采集,數(shù)據(jù)解析。數(shù)據(jù)注入指控制系統(tǒng)向執(zhí)行系統(tǒng)發(fā)送的控制指令;數(shù)據(jù)采集指執(zhí)行系統(tǒng)向控制系統(tǒng)發(fā)送的反饋數(shù)據(jù)包;數(shù)據(jù)解析功能是對(duì)反饋數(shù)據(jù)包按照通訊協(xié)議進(jìn)行解析,得到多功能爐內(nèi)狀態(tài)量的實(shí)際值。
實(shí)驗(yàn)流程控制模塊包含了全部控制邏輯,負(fù)責(zé)保證實(shí)驗(yàn)流程地順利執(zhí)行。實(shí)驗(yàn)流程控制模塊下細(xì)分成兩個(gè)子功能:加載實(shí)驗(yàn)流程表,執(zhí)行實(shí)驗(yàn)流程表。通過這兩個(gè)子功能的相互配合,完成實(shí)驗(yàn)流程的控制。
實(shí)驗(yàn)數(shù)據(jù)存儲(chǔ)模塊的功能是保存實(shí)驗(yàn)期間產(chǎn)生的所有數(shù)據(jù)。從真實(shí)性出發(fā),保存了實(shí)驗(yàn)數(shù)據(jù)的原始值,也就是保存執(zhí)行系統(tǒng)向控制系統(tǒng)反饋的原始數(shù)據(jù)。從易讀性出發(fā),保存了實(shí)驗(yàn)過程中多功能爐的狀態(tài)值,也就是保存實(shí)驗(yàn)數(shù)據(jù)解析后的值。
執(zhí)行系統(tǒng)(FPGA)使用鍵-值對(duì)的形式存儲(chǔ)系統(tǒng)當(dāng)前狀態(tài),其中鍵和值都是單字節(jié)十六進(jìn)制數(shù)。對(duì)于控制系統(tǒng)而言,這些鍵值對(duì)分為兩種情況:第一種是用于接收控制信息的,因此可以通過控制指令進(jìn)行修改,第二種則是反應(yīng)了執(zhí)行機(jī)構(gòu)當(dāng)前狀態(tài)的,控制系統(tǒng)只能讀取這些鍵值對(duì)的信息,不能修改。
控制系統(tǒng)和執(zhí)行系統(tǒng)之間通信的本質(zhì)就是交互鍵值對(duì)信息,使得控制系統(tǒng)能夠?qū)?zhí)行系統(tǒng)進(jìn)行反饋控制。通訊方式采用RS422通訊,兩者之間的通訊協(xié)議如下。
1)數(shù)據(jù)注入
數(shù)據(jù)注入是指控制系統(tǒng)向執(zhí)行系統(tǒng)發(fā)送控制指令,修改某些鍵值對(duì)的值。指令格式如下圖3所示。
圖3 數(shù)據(jù)注入格式Fig.3 Format of data transmission
控制系統(tǒng)將需要修改的鍵值對(duì)通過數(shù)據(jù)注入發(fā)送到執(zhí)行系統(tǒng),執(zhí)行系統(tǒng)會(huì)對(duì)數(shù)據(jù)進(jìn)行解包,然后修改相應(yīng)鍵值對(duì)的值。
2)數(shù)據(jù)采集與解析
執(zhí)行系統(tǒng)每秒向控制系統(tǒng)反饋數(shù)據(jù)包。數(shù)據(jù)包的格式和數(shù)據(jù)注入的格式類似,不同的是反饋數(shù)據(jù)包中包含了全部的鍵值對(duì)。
控制系統(tǒng)收到反饋數(shù)據(jù)包后對(duì)數(shù)據(jù)進(jìn)行解包,將需要的鍵值對(duì)找出來。由于數(shù)據(jù)包中的數(shù)據(jù)都是十六進(jìn)制,因此控制系統(tǒng)還需要按照通訊協(xié)議的定義將十六進(jìn)制轉(zhuǎn)換成具有實(shí)際意義、能夠用于控制的物理量。
實(shí)驗(yàn)過程中的全部控制信息都被存放在實(shí)驗(yàn)流程表中,因此需要確保讀取、執(zhí)行中地每一步都準(zhǔn)確無誤地進(jìn)行。下面介紹實(shí)驗(yàn)流程表的設(shè)計(jì)架構(gòu)及實(shí)現(xiàn)。
實(shí)驗(yàn)流程表中包含3種類型的配置表,分別是靜態(tài)配置表、動(dòng)態(tài)配置表和動(dòng)作配置表。一張完整的實(shí)驗(yàn)流程表由一張靜態(tài)配置表、一張動(dòng)態(tài)配置表和若干張動(dòng)作配置表組成。
1)靜態(tài)配置表
靜態(tài)配置表中包含了多功能爐的固有信息,例如溫度采集模塊的參數(shù)配置信息、電機(jī)主備份信息、熱偶主備份信息等。靜態(tài)配置表在整個(gè)匹配實(shí)驗(yàn)的過程中被修改的可能性很小。
2)動(dòng)作配置表
實(shí)驗(yàn)過程中執(zhí)行機(jī)構(gòu)可能出現(xiàn)的每個(gè)動(dòng)作都要形成一張動(dòng)作配置表。為了對(duì)這些動(dòng)作配置表進(jìn)行高效地索引,將所有動(dòng)作分為五種動(dòng)作類型,每個(gè)動(dòng)作類型的不同的配置值形成不同的動(dòng)作配置表。例如動(dòng)作類型1是電機(jī)動(dòng)作表,那么換位電機(jī)轉(zhuǎn)動(dòng)到一號(hào)工位這個(gè)動(dòng)作形成一張動(dòng)作配置表,提拉電機(jī)移動(dòng)至下限位開關(guān)這個(gè)動(dòng)作也會(huì)形成一張動(dòng)作配置表。五種動(dòng)作類型的說明如表1所示。
表1 多功能爐動(dòng)作分?jǐn)?shù)表Tab.1 Classification of materials synthesis furnace
每張動(dòng)作配置表都使用唯一的動(dòng)作ID來標(biāo)識(shí)。動(dòng)作ID的計(jì)算公式為n*1 000+m,其中n為動(dòng)作類型號(hào),m為某個(gè)動(dòng)作類型下的配置表號(hào)。例如電機(jī)動(dòng)作的第3張配置表的動(dòng)作ID為1003,PID控溫曲線設(shè)置的第2張配置表的動(dòng)作ID為5002。
3)動(dòng)態(tài)配置表
動(dòng)態(tài)配置表的功能是以時(shí)間為主線,將多個(gè)動(dòng)作表聯(lián)系起來。為了方便填寫,動(dòng)態(tài)配置表中的動(dòng)作排列方式不是按照時(shí)間順序排列的,而是通過次動(dòng)作索引進(jìn)行跳轉(zhuǎn)。動(dòng)態(tài)配置表的格式如表2所示。
表2 動(dòng)態(tài)配置表格式Tab.2 Format of dynamic configuration table
其中,序號(hào)和次動(dòng)作索引一起決定了動(dòng)作執(zhí)行順序如何跳轉(zhuǎn)。次動(dòng)作索引指下一個(gè)被執(zhí)行動(dòng)作的序號(hào),以255標(biāo)識(shí)全部動(dòng)作執(zhí)行完成。動(dòng)作時(shí)間碼指該動(dòng)作執(zhí)行完成到執(zhí)行下一個(gè)動(dòng)作之間的時(shí)間間隔。動(dòng)作ID為當(dāng)前執(zhí)行動(dòng)作的標(biāo)識(shí),每個(gè)動(dòng)作ID標(biāo)識(shí)一張動(dòng)作配置表。
因此,上表的執(zhí)行順序?yàn)椋簩?shí)驗(yàn)流程開始后直接執(zhí)行動(dòng)作ID為5001的PID控溫曲線設(shè)置表,設(shè)置溫度爬升曲線;10秒后,執(zhí)行動(dòng)作ID為3001的PID1參數(shù)設(shè)置表,使能PID1控制;7 200 s后,執(zhí)行動(dòng)作ID為3006的PID1參數(shù)設(shè)置表,關(guān)閉PID1控制;10秒后實(shí)驗(yàn)流程執(zhí)行完畢。這樣就完成了一次PID溫度控制過程。
當(dāng)用戶在控制頁面上點(diǎn)擊“開始實(shí)驗(yàn)”時(shí),提示用戶選擇本次實(shí)驗(yàn)加載的實(shí)驗(yàn)流程表。確認(rèn)選擇后,后臺(tái)自動(dòng)開始加載選中的實(shí)驗(yàn)流程表。加載過程如下。
首先,讀取靜態(tài)配置表。將靜態(tài)配置表中的配置內(nèi)容寫入對(duì)應(yīng)的全局變量中,以便在整個(gè)實(shí)驗(yàn)流程執(zhí)行過程中都能讀取到這些配置內(nèi)容。
接著,讀取動(dòng)態(tài)配置表。動(dòng)態(tài)配置表中的內(nèi)容決定了各個(gè)時(shí)間時(shí)刻進(jìn)行的動(dòng)作。讀取過程為按照動(dòng)態(tài)配置表中動(dòng)作ID的跳轉(zhuǎn)格式,將所有的動(dòng)作執(zhí)行時(shí)刻和對(duì)應(yīng)的動(dòng)作ID匹配起來,然后存儲(chǔ)在數(shù)組中。這樣,實(shí)驗(yàn)流程執(zhí)行過程中就可以通過順序讀取數(shù)組中的內(nèi)容,完成在不同的時(shí)間時(shí)刻執(zhí)行相應(yīng)的動(dòng)作。
需要說明的是,動(dòng)作配置表的讀取不在加載過程中完成,而是在實(shí)驗(yàn)流程執(zhí)行過程中通過動(dòng)作ID索引到要執(zhí)行的動(dòng)作配置表后讀取并執(zhí)行。
加載完實(shí)驗(yàn)流程表后,控制軟件會(huì)按照動(dòng)態(tài)配置表中的內(nèi)容執(zhí)行相應(yīng)動(dòng)作。實(shí)驗(yàn)流程表的執(zhí)行過程實(shí)質(zhì)上就是進(jìn)行PID溫度控制[3]、電機(jī)控制的過程。
1)溫度控制
在材料合成過程中,溫度的波動(dòng)至關(guān)重要,直接影響材料合成的結(jié)果是否滿足預(yù)期。本系統(tǒng)采用傳統(tǒng)PID控制方法對(duì)爐內(nèi)溫度進(jìn)行控制,PID控制原理如圖4所示[4]。
圖4 PID控制原理圖Fig.4 Schematic of PID control system
多功能爐中包含兩個(gè)溫區(qū),對(duì)應(yīng)了兩組溫度控制,分別用PID1、PID2進(jìn)行標(biāo)識(shí)。在實(shí)驗(yàn)流程表中,與溫度控制相關(guān)的動(dòng)作有PID控溫曲線設(shè)置動(dòng)作表、PID1參數(shù)設(shè)置動(dòng)作表、PID2參數(shù)設(shè)置動(dòng)作表。
PID控溫曲線設(shè)置動(dòng)作表中設(shè)置了PID1、PID2的溫度設(shè)定曲線??刂葡到y(tǒng)通過反饋數(shù)據(jù)包得到爐內(nèi)真實(shí)溫度,計(jì)算當(dāng)前爐內(nèi)設(shè)定溫度與真實(shí)溫度的差值,即為溫度偏差e(t)。控制系統(tǒng)將偏差發(fā)送至FPGA,由FPGA進(jìn)行PID公式運(yùn)算,得到 u(t)。PID 計(jì)算公式中 P、I、D 參數(shù)的值由 PID1參數(shù)設(shè)置動(dòng)作表和PID2參數(shù)設(shè)置動(dòng)作表進(jìn)行配置。FPGA將u(t)發(fā)送至執(zhí)行機(jī)構(gòu),通過改變爐絲加熱的占空比來調(diào)節(jié)爐內(nèi)溫度[5]。
2)電機(jī)控制
電機(jī)控制模塊采用電機(jī)動(dòng)作表和電機(jī)狀態(tài)查詢表結(jié)合的方式實(shí)現(xiàn),從而實(shí)現(xiàn)對(duì)電機(jī)故障的監(jiān)控。
控制系統(tǒng)將電機(jī)動(dòng)作表中包含的電機(jī)運(yùn)行方向、速度等參數(shù)發(fā)送至FPGA,并發(fā)送電機(jī)使能指令。FPGA接收到電機(jī)使能命令后,按照設(shè)置參數(shù)控制電機(jī)進(jìn)行換位或提拉。T s后,通過執(zhí)行電機(jī)狀態(tài)查詢表來判斷電機(jī)是否到位。如果查詢結(jié)果為電機(jī)到位,則繼續(xù)后面的實(shí)驗(yàn)流程;否則,說明電機(jī)運(yùn)行過程中出現(xiàn)故障,此時(shí)應(yīng)停止實(shí)驗(yàn)流程并將電機(jī)復(fù)位。
其中,T s是電機(jī)執(zhí)行該動(dòng)作所需時(shí)間的常規(guī)值,可以通過匹配實(shí)驗(yàn)統(tǒng)計(jì)得到。
實(shí)驗(yàn)數(shù)據(jù)是實(shí)驗(yàn)過程的記錄,為了方便科研人員分析數(shù)據(jù),控制系統(tǒng)采用兩套存儲(chǔ)架構(gòu)保存實(shí)驗(yàn)過程中的原始數(shù)據(jù)和解析后的數(shù)據(jù)。
原始數(shù)據(jù)的存儲(chǔ)采用bin文件格式。所有bin文件統(tǒng)一采用日期命名,例如2014-12-12.bin中存放了2014年12月12日所有的實(shí)驗(yàn)數(shù)據(jù)??刂葡到y(tǒng)將接收到的每一包反饋包都打上時(shí)間戳,存放到當(dāng)天的bin文件中。這種存儲(chǔ)方式最大限度地保證了實(shí)驗(yàn)數(shù)據(jù)不被篡改。當(dāng)實(shí)驗(yàn)過程中出現(xiàn)異常時(shí),科研人員通過查詢當(dāng)天的bin文件就可以直接定位到異常時(shí)執(zhí)行系統(tǒng)的狀態(tài)。
由于bin文件中存儲(chǔ)的十六進(jìn)制數(shù)據(jù)不利于進(jìn)行統(tǒng)計(jì)分析,因此需要存儲(chǔ)解析后的數(shù)據(jù)??刂葡到y(tǒng)將執(zhí)行系統(tǒng)反饋的數(shù)據(jù)包按照通訊協(xié)議的說明進(jìn)行解析,得到執(zhí)行系統(tǒng)狀態(tài)的實(shí)際值。解析后的數(shù)據(jù)存儲(chǔ)在Mysql數(shù)據(jù)庫中[6]。Mysql是一款輕量型關(guān)系數(shù)據(jù)庫,其增、刪、查、改等數(shù)據(jù)庫操作的效率都很高,能夠滿足控制系統(tǒng)存取數(shù)據(jù)的要求[7]。
以多功能爐第四工位為例,該工位的實(shí)驗(yàn)流程見圖5所示。實(shí)驗(yàn)開始后,首先將樣品送至特定加熱區(qū)域處。接著,樣品經(jīng)過兩段保溫區(qū)后開始融化,溫度分別為650℃和700℃。最后,將樣品提拉至復(fù)位狀態(tài),提拉過程中樣品溫度降低,開始凝固,得到需要的熔體材料。
圖5 多功能爐第四工位實(shí)驗(yàn)流程Fig.5 Experiment flow of fourth stations
在控制系統(tǒng)中配置實(shí)驗(yàn)流程表中的動(dòng)態(tài)配置表,即可實(shí)現(xiàn)上述實(shí)驗(yàn)流程。實(shí)驗(yàn)過程中,多功能爐內(nèi)的溫度曲線見圖6。其中,保溫區(qū)的控制精度為±0.3℃,滿足了材料熔合的需要。
圖6 多功能爐實(shí)驗(yàn)過程中溫度曲線Fig.6 Temperature curve of materials synthesis furnace
本地面控制系統(tǒng)已應(yīng)用在多功能地面實(shí)驗(yàn)中。實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)能夠順利完成控制流程且時(shí)間控制精度為±1s,滿足多功能爐地面實(shí)驗(yàn)的要求。通過地面實(shí)驗(yàn),科研人員獲得了多功能爐控制過程中的參數(shù),并得到了期望的合成熔體材料,為空間實(shí)驗(yàn)提供了依據(jù)。
[1]于強(qiáng),俞號(hào)峰,劉威.空間晶體生長(zhǎng)爐綜合控制方法[J].空間科學(xué)學(xué)報(bào),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]于強(qiáng),呂旭濤,石春,等.空間晶體生長(zhǎng)爐溫度系統(tǒng)建模[J].系統(tǒng)仿真學(xué)報(bào),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]孫奉昌,樂愷,姜澤毅,等.智能控制算法對(duì)加熱爐溫度控制研究[J].熱能動(dòng)力工程,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]宗素蘭,章家?guī)r,尹成賀.模糊PID控制在溫度控制系統(tǒng)的應(yīng)用[J].工程控制計(jì)算機(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控制策略在溫度控制中的應(yīng)用[J].計(jì)算技術(shù)與自動(dòng)化,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—數(shù)據(jù)庫開發(fā)、優(yōu)化與管理維護(hù)[M].北京:人民郵電出版社,2008.
[7]蘭旭輝,熊家軍,鄧剛.基于MySQL的應(yīng)用程序設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(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.