摘 要: 設計了一種基于CPU+FPGA的新型舵機控制器。該控制器考慮了諧波傳動的隨速度波動和低阻尼特點,以提高舵機系統控制品質為目標,采用增量式分段PID算法產生PWM信號,對舵機隨動系統進行實時精準控制,并通過USB2.0總線接口實現了微型計算機與CPU之間的實時變量傳送,方便了程序的調試。測試結果表明,該控制系統具有抗干擾性能好、控制品質優等特點。
關鍵詞: 舵機控制器 PID算法 調寬斬波輸出 USB2.0
舵機是控制飛行器運動方向的關鍵部件。隨著航空航天事業的高速發展,提高舵機伺服系統的性能成為當前的迫切需要。為此,設計者在考慮到諧波傳動的隨速度波動和低阻尼特點的基礎上,以提高舵機系統控制品質為目標,提出了一種新型舵機控制系統。該硬件系統以CYPRESS公司的CY7C68013處理器為核心,結合使用現場可編程門陣列(FPGA)和高性能的模/數轉換器(ADC),并通過USB2.0總線接口實現了PC機與CY7C68013處理器之間的參數傳送。
由于舵機系統對定位精度、頻率響應特性、階躍響應特性和震蕩次數等因素有著非常高的要求,因此其測試數據、分析曲線和指示結果是分析、判定系統性能和工作狀態的重要依據和手段。本文所涉及的控制器具有USB2.0總線接口,它負責與PC機通信,這使得控制器在運行中產生的各種參數和變量能夠實時地傳送并在CRT上顯示,極大地方便了對參數變化趨勢的觀察和控制過程的判斷分析,為加快參數的整定奠定了基礎。
1 系統的構成與工作原理
1.1 系統的構成
如圖1所示,系統由主控板卡、電機驅動" title="電機驅動">電機驅動板卡、微型計算機以及包括力矩伺服電機、諧波減速器及其位置電位計的舵機組成。其中,主控板卡為該系統的核心組成部分,運算處理器采用CYPRESS公司的CY7C68013芯片。
1.2 系統的工作原理
本系統由上位微機發送控制指令,經由USB2.0總線傳送至主控板卡。主控板卡將采集到的舵機實時位置數據與上位機" title="上位機">上位機傳來的位置指令數據代入到增量式分段離散PID控制算法" title="控制算法">控制算法中進行運算。處理后得到的PWM調制波形作為電機驅動板卡的輸入信號,通過電機驅動板卡上的H橋電路對電機進行驅動,進而完成對電機的控制。另外,主控板卡還將舵機運行狀態數據經由USB2.0總線上行傳送至上位微機,由PC機測控應用程序" title="應用程序">應用程序對其進行后期分析處理。
2 系統的硬件電路描述
2.1主控板卡部分
2.1.1主控板卡的構成
在整個硬件系統中,主控板是核心的部分。該板卡的原理框圖如圖2所示。此板卡的主控芯片為CY7C68013處理器,其內部嵌有USB2.0總線控制器,用戶可通過USB串行總線與計算機進行高速實時通信。FPGA采用的是ALTERA公司的EP1C3T144C8,由Flash 存儲器EPCS1對其進行上電初始化配置。主控板卡的舵機位置反饋給A/D轉換電路,這里采用的是ADI公司的AD9241模/數轉換器及與其匹配的電壓基準源REF192,對反饋的舵偏角度模擬信號進行數字轉換。在舵機電位器產生的表征角度值的反饋電壓信號送至ADC以前,為了排除高頻干擾,加入了一個以OP77運算放大器為核心的二階壓控低通濾波環節。
2.1.2 主控板卡的功能
主控板卡不但承擔著執行來自上位機的控制指令并將指令執行的實時狀態上行送至上位機的任務,而且還要將經過處理器運算產生的相應占空比" title="占空比">占空比的PWM信號送至電機驅動板卡,實現對電機的精準控制。
板卡中各部分的具體職能如下:
(a)CY7C68013接收來自計算機的控制命令,并連同實時角度反饋數據一起代入到增量式分段離散PID算法中運算,生成11位占空比數據送至FPGA以生成PWM信號;另外,CPU還要將實時反饋數據值以相應的通信協議送至計算機,以便上位機測控應用程序做進一步處理。
(b)FPGA內部的功能模塊由硬件描述語言Verilog編寫,如圖3所示,主要有四項功能,分別是:
·接收CPU發送來的占空比數據,通過內部的PWM生成模塊產生相應的脈寬調制信號,并輸出到驅動電機驅動板卡,進而拖動電機。
·通過時序狀態機為本系統提供主時鐘,使整個控制系統以同一步調協調運行,這樣就有效地避免了各部分之間的競爭與冒險。
·為ADC傳送來的數字信號進行均值濾波,減小測量誤差。
·指標測試模塊將測試結果輸出到FPGA的相應引腳,可由示波器直觀檢測到測試結果。
(c)二階壓控濾波模塊通帶截止頻率為1kHz,品質因數Q值為1,可有效地濾除反饋信號的高頻干擾。
(d)模/數轉換器AD9241的采樣率為1.25MHz,14位精度,可以滿足系統指標的要求,實時給FPGA提供精準的位置反饋信息。
2.2 電機驅動板卡部分
該電路采用可逆H型雙極式PWM開關功率放大器作為主回路驅動電機。它主要是由大功率晶體管D1047和達林頓管TIP122組合而成的復合管,以及續流二極管1N5408組成的橋式電路。PWM信號經高速光耦隔離器件6N137將信號隔離,這樣就很好地避免了電機驅動板卡對主控板卡的干擾。隔離后的脈寬調制信號由三極管3DG6構成的放大電路放大,送給末級電路,控制H橋復合管的開關。電機驅動板卡原理框圖如圖4所示。
3 軟件程序設計及其算法描述
3.1 CY7C68013處理器固件主程序設計
CY7C68013的主程序負責完成對CPU的初始化并對數據進行相應處理。初始化包括對I/O、寄存器、處理器工作狀態以及內部USB2.0控制模塊等的初始化。在初始化過程完成后,進入數據處理的運算子程序。該子程序具體工作流程如圖5所示。
3.2 CPU與上位機的通信
CY7C68013與上位機的USB2.0串行通信采用批量傳輸模式,一次傳輸包括令牌包、數據包和握手包三部分。令牌包與握手包為USB控制器自行生成,數據包由用戶指令填充。因此,這里提出形如XX XX XX H的3字節傳輸通信方案作為USB2.0傳送的數據包進行發送。其中,第一字節為指令標識字節,第二字節為16位指令目標值的高字節,第三字節為16位指令目標值的低字節。在該系統的硬件板卡和上位微機的上行和下行通信中,均采用上述通信方案進行控制命令的發送和舵機工作狀態的監測。
3.3 上位機測控應用程序設計
為便于舵機的控制和系統指標的測試,編制了基于Windows操作系統環境的底層驅動函數C++應用程序,即測控應用程序軟件包。該測控應用程序的用戶界面分為實時顯示區、目標位置控制區、指標測試區等幾大模塊,可以對電機的目標位置進行設定,對系統指標進行測試,并實時地將PWM占空比數據、目標值數據以及反饋值數據以趨勢圖的形式直觀地顯示出來,易于進行在線分析處理和評估。
?
3.4 增量式分段離散PID控制算法描述
舵機控制器系統的控制算法分為兩段進行:
式中,V為 PWM最大輸出常量, f(PID)為線性PID算法,Emax為偏差的設定閾值,U為控制算法輸出值,表征PWM信號的占空比。在偏差E很大時(E>Emax),系統快速性是控制的關鍵指標,系統開環運行V,使得偏差能夠盡快縮小;在較小偏差下(E≤Emax),系統的定位精度成為關鍵指標,此時采樣值在設定值附近,按優化的增量PID控制算法運行。
4 系統測試結果分析
舵機系統在2kgm的額定負載力矩的測試條件下,聯調試驗結果表明:本系統可以達到250°/s的舵軸最大輸出轉速;系統頻帶寬度>20Hz(1.5°正弦信號檢測,幅值下降不大于3dB,相位滯后不大于90°),如圖6所示。舵機從0°轉到25°含純延時的時間不大于110ms,響應曲線如圖7所示,超調量小于5%;舵面角定位精度±0.08°,舵機軸受控偏轉線性度誤差小于1%,系統電路工作穩定。
參考文獻
1 劉延杰,孫立寧.諧波驅動并聯機器人的加速度反饋抑振控制.哈爾濱工業大學學報,2004;36(3):281~285
2過潤秋,林曉春.基于模糊控制的自動回轉系統[J].西安電子科技大學學報(自然科學版), 1999
3 閻 力,段寶巖.非線性變結構不確定連續系統的反饋控制.西安電子科技大學學報(自然科學版),2004;31(1)
4 過潤秋,王小紅.基于免疫反饋機理的溫度自動控制研究.西安電子科技大學學報(自然科學版),2003;30(6)
5 任愛峰,孫肖子. 基于FPGA的嵌入式系統設計. 西安:西安電子科技大學出版社,2004
6 Ciletti, M D著,張亞琦等譯. Verilog HDL高級數字設計.北京:電子工業出版社,2005