徐自衡,蔣遠大,于 強,耿寶明(.中國科學院 空間科學與應(yīng)用研究中心,北京0090;2.中國科學院大學 北京00049)
基于串口服務(wù)器的模擬量自動標定系統(tǒng)設(shè)計
徐自衡1,2,蔣遠大1,于 強1,耿寶明1
(1.中國科學院 空間科學與應(yīng)用研究中心,北京100190;2.中國科學院大學 北京100049)
針對衛(wèi)星載荷控制器的多通道模擬量信號標定的復(fù)雜性與遠距離操作成本等問題,本文提出了一種基于串口服務(wù)器的控制器模擬量自動標定系統(tǒng)。實驗結(jié)果表明,該標定系統(tǒng)能夠按照設(shè)計標定流程自動執(zhí)行,通過數(shù)據(jù)注入,可以實現(xiàn)自動標定流程的實時修改。利用上位機軟件實時采集待標定信號,通過最小二乘算法自動計算出控制器數(shù)字量與實際輸入電壓模擬信號的線性擬合系數(shù)—K、B系數(shù)。并結(jié)合實際輸入信號對標定后的計算結(jié)果進行精度校驗,控制標定相對誤差不超過1%。
串口服務(wù)器;數(shù)據(jù)注入;模擬量標定;最小二乘算法
SJ-10衛(wèi)星驅(qū)動控制盒(以下簡稱驅(qū)動控制盒)為服務(wù)于SJ-10衛(wèi)星7臺實驗載荷設(shè)備的通用控制裝置。驅(qū)動控制盒FPGA采集載荷傳感器反饋的模擬量輸入信號,轉(zhuǎn)化為固定數(shù)據(jù)包格式傳送至上位機控制軟件。模擬量輸入信號標定軟件(以下簡稱標定軟件)對反饋數(shù)據(jù)進行線性校正后,將實際載荷狀態(tài)數(shù)據(jù)(主要包括溫度、壓力、濕度等)準確的反饋給實驗人員。標定系統(tǒng)基于串口服務(wù)器,利用以太網(wǎng)與分布在各實驗地點的串口設(shè)備進行通信,通過網(wǎng)絡(luò)控制下位機的模擬量信號輸入通路的繼電器,電機運行與HP34401A萬用表采集。以HP34401A萬用表測量得到的信號源的電壓Vi作為輸入信號模擬量標定的基準值,同時解析驅(qū)動控制盒反饋的該信號源經(jīng)A/D轉(zhuǎn)換后的值數(shù)字量Di。得到一系列Vi和Di值后,運用最小二乘算法[1-3]計算出該組數(shù)據(jù)的線性擬合系數(shù),即K和B系數(shù)。將輸入信號電壓范圍等分為16段,進行分段線性化處理[4]。最后對標定結(jié)果的進行精度校驗。標定結(jié)果表明,標定軟件能夠自動按照標定流程完成線性校正,并控制精度相對誤差在1%以內(nèi),滿足空間科學實驗對于物理量測量的精度要求。
基于串口服務(wù)器的模擬量標定系統(tǒng)由串口服務(wù)器,HP34401A數(shù)字萬用表,驅(qū)動控制盒,直流電機模擬信號輸入系統(tǒng)組成。串口服務(wù)器設(shè)備分散在各個需要模擬量標定的實驗設(shè)備調(diào)試地點,由直連網(wǎng)線接入以太網(wǎng)。串口服務(wù)器擁有獨立固定IP,并為其下各串口設(shè)備配置固定端口號。每組標定系統(tǒng)需要3個串口,包括兩個RS232串口,負責與萬用表和輸入信號控制器通信,一個RS422串口,與驅(qū)動控制盒通信。標定過程由上位機軟件進行控制,通過標定軟件的運算,按照標定流程設(shè)置時刻向信號源系統(tǒng)發(fā)送控制指令,下位機將控制信號轉(zhuǎn)換為驅(qū)動信號發(fā)送至各執(zhí)行機構(gòu),為驅(qū)動控制盒提供標定所需的輸入信號。通過上位機軟件的標定界面配置萬用表測量基準輸入信號電壓值的量程、精度、采集頻率等參數(shù);控制器模擬量輸入信號參數(shù)設(shè)置、控制盒FPGA通信設(shè)置以及控制盒反饋數(shù)據(jù)包采集頻率。配置參數(shù)通過以太網(wǎng)發(fā)送給指定目標串口服務(wù)器對應(yīng)的各個串口。模擬數(shù)字電壓信號測量值通過以太網(wǎng)反饋給上位機軟件,上位機軟件利用最小二乘算法計算線性擬合系數(shù),再通過以太網(wǎng)鏈接服務(wù)器,將信號采集值,K、B系數(shù),標定結(jié)果與精度校驗結(jié)果存儲在服務(wù)器的SQL Server數(shù)據(jù)庫中[5],SQL Server數(shù)據(jù)庫具有易用性、適合分布式組的可伸縮性,用于決策支持的數(shù)據(jù)倉庫功能,適用于服務(wù)器數(shù)據(jù)庫與網(wǎng)絡(luò)數(shù)據(jù)庫。系統(tǒng)總體結(jié)構(gòu)如圖1所示[6-7]。
圖1 模擬量標定控制系統(tǒng)總體結(jié)構(gòu)圖
標定軟件由C#實現(xiàn),主要功能包括輸入信號流程控制,線性擬合系數(shù)計算,精度校驗與數(shù)據(jù)存儲。
輸入信號流程控制包括信號切換與信號源輸入電壓調(diào)節(jié),上位機向網(wǎng)口發(fā)送指令數(shù)據(jù)包,通過串口繼電器傳向信號源串口,指令控制繼電器選擇模擬信號輸入通道。信號源模塊按照標定流程控制直流電機的速度與位移,調(diào)節(jié)電機連接的電位器輸出不同大小的電壓值。標定流程包含信號源模塊所有的控制邏輯。上位機軟件提供合成標定流程索引鏈表功能,分為靜態(tài)表,動態(tài)表與動作表3部分,通過數(shù)據(jù)表合成最終形成流程控制輸入信號的數(shù)據(jù)注入索引鏈表。
線性擬合K、B系數(shù)計算模塊,利用socket編程與串口服務(wù)器建立通信,基于TCP/IP協(xié)議。標定模塊分為兩部分,一部分是基準模擬輸入信號電壓的采集,通過字符型數(shù)據(jù)包遙控HP34401A數(shù)字萬用表完成的。萬用表收到指令后,按設(shè)定時間間隔通過套接字回傳測量數(shù)據(jù)值。上位機對接收到電壓采集值數(shù)據(jù)包進行解析;另一部分是對控制器輸入信號數(shù)字量的采集,相應(yīng)采集值需對固定格式數(shù)據(jù)包進行解析后得到模擬輸入信號數(shù)字量。最后該模塊自動對兩部分采集表按時間進行內(nèi)連接,形成模擬量與數(shù)字量對應(yīng)的合表,方便后續(xù)標定計算。
精度校驗與數(shù)據(jù)存儲模塊,將標定數(shù)字信號的定義域范圍等分為16段,每一段上采集n組數(shù)字模擬信號對,采用最小二乘法進行線性擬合,得到K、B補償系數(shù),并計算補償結(jié)果。與萬用表采集得到的基準輸入信號進行相對誤差校驗。軟件功能模塊圖如圖2所示。
輸入信號控制電路,主要控制芯片為dsPIC33F MCU,負責處理外部指令和PID計算,控制驅(qū)動電路。注入串口命令主要包括以下3種指令格式:繼電器選通指令、電機轉(zhuǎn)速調(diào)整指令、電機位移調(diào)整指令。其中上位機對下位機發(fā)送的指令數(shù)據(jù)包中數(shù)值為十六進制數(shù)據(jù)包形式向下位機執(zhí)行機構(gòu)發(fā)送數(shù)據(jù)注入,指令數(shù)據(jù)注入格式見表1。下位機信號源模塊會對收到的鍵值對指令進行解析,修改配置地址上的狀態(tài)值,從而達到控制繼電器開合與電機運行狀態(tài)的目的。
為了實現(xiàn)自動完成多路輸入信號的標定工作,整個標定過程對于信號通路的切換,輸入信號調(diào)整的信息存放在標定流程表中??刂葡到y(tǒng)設(shè)計實現(xiàn)在指定時間點檢索流程表中配置的動作,準確控制所有8個通路全部的標定流程。
圖2 模擬量標定控制軟件功能模塊圖
表1 數(shù)據(jù)注入指令格式表
3.1標定流程配置表設(shè)計
上位機系統(tǒng)通過檢索標定流程總表控制整個標定流程,總表包含3類配置分表:靜態(tài)配置表,動態(tài)標定流程表,動作信息表。總表由1個靜態(tài)配置表與m個動態(tài)流程表與n個動作信息表組成,并以1_m_n為文件名命名。
1)靜態(tài)配置表
靜態(tài)配置表中包含輸入信號源模塊的3種指令的配置3種動作指令條數(shù),格式見表2。
表2 靜態(tài)配置表格式
2)動態(tài)流程表
動態(tài)流程表主要由三部分構(gòu)成動作序號,動作時間碼與動作ID。其中動作時間碼是指相鄰兩個執(zhí)行動作之間的時間間隔;動作ID是每一個動作配置的檢索號。動作執(zhí)行順序按照動態(tài)流程表動作序號順序進行,當一個動作執(zhí)行時間等于時間間隔后,順序向下位機發(fā)送下一條指令。動態(tài)流程表格式如表3所示。
表3 動態(tài)流程表格式
3)動作信息表
輸入信號控制模塊中有兩部分機構(gòu)需要由上位機進行數(shù)據(jù)注入控制,繼電器開關(guān)與電機運行。每類動作都需要一列動作配置數(shù)據(jù)進行規(guī)定。每個動作分別存入一張動作信息表中。動作ID的分配由雙字節(jié)16進制數(shù)值確定。三類動作ID分配分別為0x1XXX,0x2XXX,0x3XXX,對應(yīng)三類動作表。動作ID檢索時通過ID號右移12位確定動作表類型,通過后面12位的數(shù)值檢索其在該類動作中具體的動作信息表號,即總表中該類動作中的列號,具體動作ID與動作信息表類型如表4所示。
表4 動作信息表格式
3.2加載執(zhí)行標定流程
在生成好靜態(tài)配置表、動態(tài)流程表與動作信息表后,調(diào)用合成表線程。將三種表合成控制總表。總表名以靜態(tài)配置表數(shù)_動態(tài)流程表數(shù)_動作信息表數(shù).xlsx命名,總表列以靜態(tài)動態(tài)動作順序排列。
讀取靜態(tài)配置表中各類動作的個數(shù),確定總表中動作信息表列的排放順序,方便檢索。同時動作條數(shù)存入全局變量,在整個標定過程中每類動作個數(shù)不發(fā)生改變。
根據(jù)選擇標定流程下拉框中的選項索引到對應(yīng)的動態(tài)流程表,并將動作時間碼與執(zhí)行動作ID分別存入對應(yīng)時間與ID號的數(shù)組中。通過上位機計時器,在計時器時間等于動作時間碼后自動將兩個數(shù)組的下標加1,執(zhí)行下一個動作。
動作流程表的加載是在執(zhí)行標定流程時進行,上位機讀取動態(tài)表中動作ID號后,準確檢索到所需的指定動作,加載動作信息配置,并將配置信息數(shù)據(jù)包發(fā)送給下位機執(zhí)行系統(tǒng)。
4.1socket網(wǎng)絡(luò)編程
標定系統(tǒng)基于串口服務(wù)器進行遠程標定,故上位機與下位機間的通信是基于TCP/IP網(wǎng)絡(luò)協(xié)議通過以太網(wǎng)進行的。標定系統(tǒng)串口服務(wù)器采用上海寬域工業(yè)網(wǎng)絡(luò)設(shè)備有限公司生產(chǎn)的PowerPort N1S08-485C-ET型串口服務(wù)器,設(shè)置串口服務(wù)器同時支持服務(wù)器和客戶機方式,監(jiān)聽并接收遠方客戶機的網(wǎng)絡(luò)鏈接請求,同時也主動請求與上位機的網(wǎng)絡(luò)鏈接,在串口接受到數(shù)傳時作為客戶機請求與上位機建立網(wǎng)絡(luò)鏈接,上位機作為服務(wù)器,監(jiān)聽并接收串口服務(wù)器回傳的數(shù)據(jù);當上位機向串口服務(wù)器發(fā)送指令時,上位機作為客戶端向串口服務(wù)器,每1 s發(fā)送請求,串口服務(wù)器接收到請求后,開始接收指令。兩種狀態(tài)同時獨立進行,互不干擾。
上位機程序引入System.Net.Sockets命名空間中的Socket類,該類提供了與低級Winsock API的接口。上位機作為客戶端,創(chuàng)建獨立線程,每1s向下位機串口服務(wù)器發(fā)送連接請求:涉及TCP客戶端函數(shù)為socket()—創(chuàng)建套接字;connect()—請求連接;send()—向串口服務(wù)器發(fā)送數(shù)據(jù);同時上位機作為服務(wù)端,監(jiān)聽客戶端發(fā)來的連接請求,建立連接后與下位機進行數(shù)據(jù)交換,因該套接字連接建立在已建立好的連接上,所以可以調(diào)用已建立socket對象的accept()允許連接,receive()接收數(shù)據(jù)函數(shù)。當網(wǎng)絡(luò)數(shù)據(jù)交換結(jié)束后調(diào)用close()斷開連接。
4.2電壓輸入信號采集
本標定系統(tǒng)采用RS232串口對HP34401A萬用表進行遙控操作,采用SCPI(Standard Command for Programmable Instrument)語言對其進行控制,程控接口通過發(fā)送字符串命令的形式對萬用表的功能、量程、精度、采集頻率等進行設(shè)置。電壓輸入信號采集中,電壓表功能設(shè)置為直流電壓采集。模擬電壓信號采集后存入SQL Server數(shù)據(jù)庫,萬用表基準電壓采集數(shù)據(jù)表結(jié)構(gòu)字段為記錄ID號,日期,時間,模擬輸入信號電壓值與單位。
4.3驅(qū)動控制盒數(shù)字信號采集
控制盒每秒向標定系統(tǒng)反饋數(shù)據(jù)包,數(shù)據(jù)包中包含了下位機系統(tǒng)的全部的鍵值對,采集結(jié)果存入數(shù)據(jù)庫中驅(qū)動控制盒電壓數(shù)字信號采集表中。標定系統(tǒng)收到反饋數(shù)據(jù)包后對數(shù)據(jù)進行解析,將對應(yīng)模擬量輸入信號的鍵值對選出來。對采集到的數(shù)字量進行解析存入數(shù)據(jù)庫中,表格字段包括數(shù)據(jù)包采集的日期時間,反饋數(shù)據(jù)包解析得到的8路控制盒輸入信號數(shù)字量;8個模擬輸入信號通路對應(yīng)的標定電壓范圍段號。模擬量數(shù)字量采集上位機界面見圖3。
圖3 輸入信號模擬量數(shù)字量上位機采集界面
驅(qū)動控制盒輸出數(shù)字信號取值范圍為 0x8000~0x0000,0xFFFF~0x0000,上位機軟件將采集得到的數(shù)字信號值加0x8000,使取值范圍轉(zhuǎn)化為(0xFFFF~0x0000),再將取值范圍等分為16段,進行局部線性化,每一段取n組電壓模擬信號、數(shù)字信號對,利用最小二乘法計算分段線性擬合系數(shù),即K、B系數(shù)。最小二乘算法見公式(1):
其中V(k)為所取電壓段上第K個電壓模擬信號采樣值,D(k)為所取電壓段上第K個電壓數(shù)字信號采樣值,n(k)為第K對模擬、數(shù)字信號計算的線性擬合誤差。極小化準則函數(shù):
取K、B為J取Jmin時的系數(shù)值;
最后,上位機界面中選中輸入信號通路輸入信號在16段電壓范圍上的實際電壓模擬信號值與對應(yīng)通過K、B標定得到的電壓標定模擬信號值,K、B系數(shù)存入數(shù)據(jù)表。計算實際電壓模擬信號值與標定得到的電壓標定值之間的相對誤差將相對誤差存入數(shù)據(jù)表。
以標定第5路輸入信號為例,標定流程中設(shè)置直流電機的速度值為在10 ms內(nèi)的脈沖數(shù)*四倍頻。本標定系統(tǒng)采用的直流電機編碼器為12線,標定流程配置電機速度為2,即在10 ms內(nèi)的脈沖數(shù)是2/4=0.5個,1s內(nèi)的脈沖數(shù)是0.5*100=50個,約為4圈每秒。該電機配有64:1的減速箱,故大約16 s為1圈,標定流程示意圖見圖4。標定系統(tǒng)采用電位器為10圈電位器,流程設(shè)置電位器每旋轉(zhuǎn)半圈8 s,60 s采集模擬數(shù)字電壓值,對采集值進行標定,計算每段電壓范圍上的線性擬合系數(shù),并進行相對誤差精度校驗。標定結(jié)果線性擬合曲線以及標定結(jié)果與實際結(jié)果比對見圖5,可以看出標定結(jié)果與實際輸入信號擬合良好,滿足標定要求。
圖4 標定流程示意圖
圖5 線性擬合與結(jié)果比對曲線
利用串口服務(wù)器遠程標定結(jié)果顯示,在輸入信號電壓有效范圍內(nèi),分段計算出的線性擬合系數(shù)能夠使標定結(jié)果與實際輸入信號的真實值之間相對誤差控制在1%以內(nèi)。實驗采用自動流程標定,免除人手工調(diào)整輸入電壓并進行先行擬合計算的繁瑣工作。通過串口服務(wù)器連接以太網(wǎng),可以實現(xiàn)遠距離標定操作,實驗人員可以同時對分布各地的多載荷進行標定,降低了調(diào)試成本,在空間實驗設(shè)備調(diào)試中具有重要意義。
[1]讀德方,趙國榮,周建軍.總體最小二乘法在慣導(dǎo)原位標定中的應(yīng)用[J].電光與控制,2011,18(4):89-92.
[2]劉巧珍,欒松,陳燕光.最小二乘法在PLC模擬量測量系統(tǒng)標定中的應(yīng)用[J].測控技術(shù),2007,26(5):85-87.
[3]都強,杭柏林.最小二乘法在多傳感器測量標定中的應(yīng)用[J].傳感技術(shù)學報,2005,18(2):244-246.
[4]Yu D,Sun X,Wang Y.Kinematic Calibration of Parallel Robots Based on Total Least Squares Algorithm[C]//Mechatronics and Automation,2007.ICMA 2007.International Conference on.IEEE,2007:789-794.
[5]吳晨,牛江川,李素娟.ASP.NET 2.0+SQL Server 2005數(shù)據(jù)庫開發(fā)與實例[M].北京:清華大學出版社,2008.
[6]Chiu Y,Tsang C W,Nikolic B,et al.Least mean square adaptive digital background calibration of pipelined analog-to-digital converters[J].Circuits&Systems I Regular Papers IEEE Transactions on,2004,51(1):38-46.
[7]Blecker E B,Mcdonald T M,Erdogan O E,et al.Digital background calibration of an algorithmic analog-to-digital converter using a simplified queue[J].Solid-State Circuits,IEEE Journal of,2003,38(6):1059-1062.
Design of automatic analog calibration system based on serial device server
XU Zi-heng1,2,JIANG Yuan-da1,YU Qiang1,GENG Bao-ming1
(1.Center for Space Science and Applied Research,Chinese Academy of Sciences,Beijing 100190,China;2.University of Chinese Academy of Sciences,Beijing 100049,China)
Given that the on-land contrast experiments conducted in different institutes at separate locations,field operation of manual multichannel analog signal calibration is both time and capital consuming.This paper proposes an automatic analog calibration system based on serial device system.The whole calibration process is controlled according to an automatic calibration process designed before of which steps and parameters in the process can be corrected via data injection.The results show that this system can accomplish the calibration automatically on PC software,collect both analog and digital signals and attain the coefficients on real time via least square algorithm.The fractional error between compensated calibration results and the accurate input signal is less than 1%.
serial device server;data injection;analog signal calibration;least square algorithm
TN02
A
1674-6236(2016)11-0042-04
2015-06-29稿件編號:201506238
徐自衡(1990—),女,河北石家莊人,碩士研究生。研究方向:智能檢測與控制技術(shù)。