丁玉葉,蘭盛昌,華 伊,李夢立,潘 瑞,徐國棟,
(1.哈爾濱工業大學電子與信息工程學院,150001 哈爾濱;2.哈爾濱工業大學 航天學院,150080 哈爾濱)
小衛星PD姿態控制器IP核的FPGA實現
丁玉葉1,蘭盛昌2,華 伊1,李夢立2,潘 瑞1,徐國棟1,2
(1.哈爾濱工業大學電子與信息工程學院,150001 哈爾濱;2.哈爾濱工業大學 航天學院,150080 哈爾濱)
針對現代小衛星在姿態控制系統中對運算速度、控制精度等方面提出的更高要求,分析了利用FPGA來實現衛星姿態PD控制器的可行性,提出用輸入使能端及輸出標志符號對內部各計算模塊進行控制以解決數據同步問題.利用硬件描述語言進行了各模塊功能的實現,并最終例化為PD控制器IP核.結果表明該設計只需34個時鐘脈沖即可完成姿態控制力矩的計算,控制精度達到10-5量級,速度及精度滿足現代小衛星對控制系統的要求.
衛星姿態控制;FPGA;IP核;PD控制律
衛星姿態控制系統是在軌衛星保持特定姿態完成特定功能的重要保障,因此對衛星姿態控制器輸出力矩的計算速度及精度有著較高的要求.
然而小衛星在軌運行時,需要處理的數據多、任務復雜,加之中斷頻繁發生,使得單靠傳統處理器對姿態進行控制時,控制周期受到較大限制,性能難以大幅度提高.現代小衛星體積小、重量輕、功耗低[1],如何在有限的資源及重量等方面的要求下設計出結構簡單、計算速度快及可靠性高的姿態控制系統成為難點問題.利用FPGA可重構的特點及并行運算的優勢解決航天問題成為研究的熱點[2-4].目前,國內外已有多顆衛星成功將FPGA用于航天領域,包括澳大利亞2002年12月發射的FedSat-1衛星以及Stuttgart大學實施的一項叫做Stuttgart Small Satellite Program的小衛星計劃中的第一顆小衛星Flying Laptop,這項計劃主要是對未來小衛星的新技術驗證.基于FPGA的星載計算機便是其中的一項創新技術[5].將FPGA應用于衛星姿態控制系統也得到了國內外航天領域的重視,相關工作已展開.文獻[6-7]都對該問題進行了探討,并取得了一定成果,但是兩者接口選取的數據形式為定點數,與外部系統不宜轉換,并且在計算精度方面不能滿足要求,計算速度較慢.
為了更好的解決上述問題,本文所設計的小衛星PD姿態控制器IP核采用輸入使能信號與輸出標志符號進行內部計算控制,解決了數據不同步問題,避免了模塊間數據延遲造成的處理速度的降低,可以快速計算出輸出力矩,滿足速度及精度要求.該IP直接采用32浮點數數據形式進行計算,精度高,同時外部計算機系統的單精度或雙精度轉換為浮點數較為容易.
目前,衛星上實際應用的姿態控制技術主要為PID或改進PID控制,此外最優控制方法、變結構控制方法、魯棒控制方法、自適應控制方法、智能控制等先進控制方法等也逐漸被應用[8-9].PID控制中微分信號的引入可提高系統的通頻帶,加速系統的響應速度,加速消除誤差,積分信號可以提高穩定精度,但會出現積分飽和現象,影響控制效果;變結構控制適合非線性系統控制,可靠性強,但是易抖動,影響姿態控制的精度;魯棒控制適用于將穩定性和可靠性作為首選的系統,但由于一般不工作在最優狀態,因此穩態精度差;全系數自適應控制方法以其控制品質好、適應性強和魯棒性強等優點,已在實際工業控制中取得了成功的應用,但采用FPGA實現控制方法較為復雜;智能控制從提出以來已解決了一些傳統控制技術難以解決的問題,而且大大提高了控制性能,受到了人們的極大關注,但缺乏經典控制和現代控制理論那些嚴格的理論體系和設計方法.PD控制定律形式簡潔,適合硬件編程實現快速控制,穩定精度高,因此本文涉及的衛星姿態控制器主要是對常用的PD控制律利用VHDL進行設計.主要包括PD控制律的數學模型及接口設計,模塊劃分及設計.
采用歐拉角反饋的PD控制律可以表示如式(1)所示:

其中:kp、kd為比例常數;φc、θc、ψc為3 個控制通道的標準角度;φ、θ、ψ 為3個通道的實時角度;ωx、ωy、ωz為3 個通道的實時角速度,Tcx、Tcy、Tcz為 3個輸出力矩.
由上式可見PD控制律完成的是1個計算功能,因此需要綜合考慮計算速度、精度及數據轉換難易選取合理的數據形式.IEEE標準754有基本的單精度格式浮點數[10],但是由于規格化尾數在小數點前有隱藏的1,進行計算需要先將其移出,計算麻煩且浪費資源,同時單精度格式階碼表數在1~254(偏移127),在進行階碼計算操作時需要考慮偏移,增加運算所需時鐘周期數,因此在基本單精度格式上自定義一種32位浮點數,該浮點數表示精度高、計算過程明確,并且進行單精度或雙精度浮點數與32位浮點數轉換非常容易,因此設計中數據均表示為32位浮點數.
32位浮點數的基本格式如圖1所示.

圖1 32位點數的基本格式
圖中S表示符號位,0代表正數,1代表負數;E[30∶23]代表階碼,為指數項;F[22∶0]代表尾碼.
階碼采用移碼表示,尾碼采用無符號二進制數原碼表示.
數字‘0'的意思是只要尾碼 F[22∶0]全為 0,則表示該浮點數大小為‘0'.其表示的實際數值為

32位浮點數在作加、減法運算時,小數點必須是對齊的,所以階碼不相等的兩個浮點數不能直接進行加、減運算.浮點數加減運算的步驟如下:
1)對階.通過比較階碼大小選擇較大者作為結果階碼,同時通過兩者差值移動階碼較小數的尾碼,使兩個操作數小數點對齊.
2)尾碼求和.將對階后的兩個尾數按照定點數的運算規則求和、差.
3)規格化.保證尾碼的第1個有效數字是1.
4)舍入.精度要求較高時考慮.
5)溢出判斷.主要表現為階碼的溢出,由于階碼最大為127,此時表示的十進制數字很大,因此可以不考慮溢出.
兩個浮點數相乘,其乘積的階碼是兩個數的階碼之和,尾碼是兩個操作數尾碼之積.所以浮點數的乘法運算也要經過如下5個步驟:
1)階碼相加.求出結果的階碼.
2)尾碼相乘.求出結果的尾碼.
3)規格化.由于尾碼相乘結果尾數較多,需要通過規格化選擇23位作為結果的尾碼,同時移動階碼.
4)舍入.精度要求較高時考慮.
5)溢出判斷.主要表現為階碼的溢出,由于階碼最大為127,此時表示的十進制數字很大,因此可以不考慮溢出.
由于控制定律在3個方向具有相同的數學形式,因此在FPGA層次化設計中可以只設計其中1個方向,通過頂層模塊的三次并行調用完成3個方向的控制功能.
由控制定律的形式可見,整個運算過程中涉及到兩次加減法運算和兩次乘法運算,因此中間模塊包括加法器模塊及乘法器模塊,如圖2所示.利用元件例化語句通過頂層模塊按順序依次調用加法模塊和乘法模塊可以完成輸出力矩的計算[11].由于選取的數據形式為32位浮點數,而浮點數的加法及乘法是按照特定的步驟完成的,因此最底層模塊可以按照加、乘法的運算步驟共劃分7個模塊.層次劃分、模塊劃分及各模塊完成功能如圖2所示.

圖2 層次劃分、模塊劃分及各模塊完成功能
由圖2可知通過輸入端口輸入數據會傳遞給中間加法器及乘法器模塊,中間加法器及乘法器模塊會分別將該數據按照流程圖2、3順序或并行的傳遞給底層模塊進行各步驟的計算,底層模塊會將最終的輸出結果返回給頂層模塊,并最終輸出.整個計算過程中各個模塊設置3個輸入使能信號及1個輸出控制信號,其中1個輸入使能端接全局復位信號,另外兩個接前面模塊的輸出控制信號(當前面只有1個模塊時,兩個使能端均接該模塊),上一個(多個)模塊或頂層的模塊的輸出控制信號接下一個(多個)模塊或底層模塊的使能端,當各模塊完成功能后將輸出控制信號置高電平(及下一模塊使能端置高電平),當所有使能端都為高電平時,模塊才允許計算,這樣可以保證各模塊間的順序或并行運算,解決了中間計算數據不同步的問題.
根據上面定律的數學形式、選取的數據形式以及流程和模塊劃分利用VHDL進行編程,所有底層模塊采用進程并行語句時鐘觸發,首先判斷使能端是否為高電平以決定是否啟動該模塊,其次判斷時鐘是否為高電平,為高電平時進行本模塊計算,保證時序同步;各同級模塊之間通過端口映射級聯;上下級模塊間通過元件例化進行調用,各模塊編程設計所用時間如表1所示.

表1 底層模塊設計及所用時間
加法器各模塊順序運算,所以完成一次加法需要4時鐘周期;由于乘法器的階碼加與尾碼乘并行運算,所以這兩個模塊所用時間為24時鐘周期,因此完成一次乘法需要25時鐘周期;由圖2(a)知,在最后一次加法完成前,存在并行運算,因此之前3次計算所用時間為一次加法及一次乘法所用時間即29時鐘周期,所以整個計算過程需要34時鐘周期.
仿真結果如圖3所示(時鐘周期1 μs).由仿真結果可以看出,在第34個時鐘周期到來時完成整個計算得出輸出力矩.滿足衛星姿態快速控制要求.
綜合后得到RTL圖如圖4所示:RTL圖表明各模塊間運算關系、頂層與底層模塊的接口連接符合設計的要求,形成了模塊化的PD控制器.

圖3 PD控制律仿真結果

圖4 綜合所得模塊級聯RTL視圖
由仿真圖2可知完成計算共需34個時鐘周期,計算速度快,滿足衛星姿態控制器對時間的要求,但是手動輸入角度及角速度效率低,并且不能輸入連續的角度及角速度,導致無法全面的對該IP核計算準確度進行驗證,另外需要考慮實時性問題.因此需要進行聯合仿真和實時仿真對所設計IP核的穩定精度及實時計算速度進行驗證.
利用Matlab的M文件編寫的S-function和Simulink模塊建立微小衛星姿態控制仿真系統,其總體框架如圖5所示.該仿真系統主要包括衛星運動學模塊,衛星動力學模塊,PD控制定律模塊.其中PD控制模塊內部包括輸入輸出轉換模塊.PD控制定律模塊鏈接到Modelsim中具體的HDL實體.
將Matlab與Modelsim連接時,Matlab作為服務器,而Modelsim作為客戶端,Matlab對Modelsim仿真器發出的服務請求做出響應,建立通信連接,并調用1個具體的封裝函數對在Modelsim下仿真的HDL模型進行數值計算和驗證分析[12].

圖5 聯合仿真模型
由于外部模型數據均采用IEEE標準754中基本雙精度浮點數,因此需要進行數制轉換.首先需要將基本雙精度與基本單精度浮點數進行轉換,利用強制轉換函數將基本雙精度浮點數與基本單精度浮點數轉換.再利用C語言編寫轉換函數,將基本單精度浮點數與32位浮點數進行轉換.轉換流程如圖6.
聯合仿真模塊的參數對話框包括輸入輸出端口設置、時鐘周期及觸發方式設置、Simulink與Modelsim仿真時間的對應關系、Simulink與Modelsim的連接方式,以及仿真前后執行的TCL命令5個部分,其中連接方式采用 TCP/IP套接字(TCP/IP socket)方式,TCL命令可以不設置.本硬件姿控仿真模塊其他具體參數設置如表2~4所示.

圖6 輸入、輸出轉換流程

表2 聯合仿真輸入輸出端口設置

表3 聯合仿真時鐘設置

表4 聯合仿真時間對應設置
建立如表5所示的實時仿真參數,仿真后所得結果如圖7所示.

表5 PD控制實時仿真參數

圖7 三個通道控制角度仿真
可見,3個方向的姿態角度都是從0°開始,在經過50次計算后使控制角度接近于0.3°,在經過100次計算后使衛星姿態角度達到基本等于0.3°,誤差如圖 8.

圖8 3個通道的誤差
由圖8可知達到穩定后實時角度與控制標準角度的絕對誤差遠低于10-5數量級,能夠滿足中高精度指向衛星的姿控要求.說明本文設計的姿控算法的FPGA實現可以在精度方面滿足衛星對姿態控制的需要.
前面利用Matlab與Modelsim進行了聯合仿真驗證,得到較好的結果,但以上仿真均是非實時性的仿真,與實際系統的工作有一定的差別.建立基于PC/104和FPGA的實時系統仿真平臺,可以很好的檢驗該設計的實用性.
利用CAN總線將xPC實時仿真機和基于FPGA的嵌入式處理器連接起來.并將PC機接入CAN總線,用于監視CAN總線上的數據.在PC機上利用Matlab/Simulink將衛星姿態動力學、姿態運動學模型轉換成RTW代碼,下載到實時仿真機中;同時在PC機上利用Xilinx FPGA EDK軟件,將PD算法IP核添加到MicroBlaze嵌入式處理器中,生成姿態控制器,下載到 FPGA開發板中,進行實時仿真驗證.利用CAN總線向處理器發送姿態參數,處理器調用 PD控制器進行100 000次計算,之后將結果返回給CAN總線,通過時間差可以求得實時計算所需時間,計算時間測試結果如表6所示.

表6 實時仿真計算時間
通過基于PC/104和FPGA之間的實時系統仿真可以看出實時仿真計算時間較短,說明使用FPGA進行計算速度較快.說明本文設計的姿控算法的FPGA實現可以提高計算速度以滿足衛星對姿態控制的需要.
衛星姿態控制器快速精確的進行輸出力矩計算是姿態控制的關鍵,而利用FPGA并行運算的特點來實現衛星姿態控制定律,通過設計輸入使能信號及輸出標志符號解決數據同步問題,能夠大大縮短運算時間,滿足了高精度觀測等姿態控制系統高響應速度的要求,并且所選32位浮點數精度高,計算舍入誤差小,大大提高了輸出力矩的計算精度.此外采用模塊化實現的PD控制律IP方法可以重復利用,大大縮短了研發周期,減少了成本,有效地滿足了航天器對時間成本及質量的要求.
[1]JILLA C D,MILLERR D W.Satellite design:past,present and future[J].International Journal of Small Satellite Engineering,1997,1(1):234 -240.
[2]SALCIC Z,LEE C R.FPGA-based adaptive tracking estimation computer[J].IEEE Transactions on Aerospace and Electronic Systems,2001,37(2):699 -706.
[3]DEUTSCHMANN J,BAR-ITZHACK I Y.Extented Kalman filter for the ocean topography experiment satellite[C]//Flight Mechanics and Estimation Theory Symposium.Washingtong,DC:NASA,1989:333-345.
[4]SHUSTER M D.Efficient estimation of attitude sensor coalignments[C]//Proceedings of the AIAA/AAS Astrodynamics Conference.Washington,DC:AIAA,1994:45-53.
[5]武文權.可重構并行小衛星星載計算機體系結構設計[D].上海:中國科學院研究生院,2004:1-9.
[6]謝祥華.微小衛星姿態控制系統研究[D].南京:南京航空航天大學,2007:64-87.
[7]戴彥.基于FPGA的衛星姿態控制系統的設計與仿真[D].哈爾濱:哈爾濱工業大學,2007:42-50.
[8]WEI X,GUO L.Composite disturbance-observer-based control and H∞control for complex continuous models[J].Int J Robust Nonlinear Control,2010,20(1):106 -118.
[9]BOLONKIN A A,KHOT N S.Optimal bounded control design for vibration suppression[J].Acta Astronaut,1996,38(10):803 -813.
[10]覃霖,曾超.基于VHDL實現單精度浮點數的加/減法運算[J].電子工程師,2008,34(7):52 -53.
[11]詹仙寧.VHDL開發精解與實例剖析[M].北京:電子工業出版社,2009:9.
[12]范靜,陳文藝.基于Modelsim與Matlab/Simulink聯合仿真技術的接口與應用研究[J].西安郵電學院學報,2010,15(3):73 -74.
The FPGA implementation of IP core of PD attitude controller for small satellites
DING Yu-ye1,LAN Sheng-chang2,HUA Yi1,LI Meng-li2,PAN Rui1,XU Guo-dong1,2
(1 School of Electronic And Information Engineering,Harbin Institute of Technology,150001 Harbin,China;2.School of Aerospace,Harbin Institute of Technology,150080 Harbin,China)
In the sight of the higher requirement about operation speed and control accuracy in satellite attitude control system,this paper analyzed the feasibility of PD attitude controller by using FPGA,and proposed a method using the input enable and the output control symbol to dominate the internal calculation module to figure out the problem of data synchronization.The paper used hardware description language to achieve the function of each module,and finally instantiated the IP core of PD controller.The result shows that the design is able to accomplish the calculation of attitude control torque by only using 34 clock pulses and the accuracy of control can reach 10-5magnitude.The speed and accuracy meet the needs of the modern small satellite control system and lay the foundation for using FPGA implementation in small satellite attitude control system.
satellite attitude control;FPGA;core of IP;control law of PD
TP3332
A
0367-6234(2012)09-0040-06
2011-09-15.
國家自然科學基金資助項目(60904051);中國博士后科學基金資助項目(20090450126);微小型航天器技術國防重點實驗室開放基金資助項目(HIT.KLOF2009091).
丁玉葉(1988—),男,博士研究生;
徐國棟(1961—),男,教授,博士生導師.
丁玉葉,dyytianzhijiaozi@gmail.com.
(編輯 張 宏)