陳虹麗, 劉 磊, 李 強(qiáng), 于立君
(1.哈爾濱工程大學(xué) 自動(dòng)化學(xué)院,哈爾濱 150001;2.哈爾濱工業(yè)大學(xué) 空間控制與慣性技術(shù)研究中心,哈爾濱 150001)
隨著科研能力的進(jìn)步,對(duì)慣性系統(tǒng)的性能需求愈加嚴(yán)苛,慣性元件的精度也需要跟著提高,對(duì)慣性元件的標(biāo)定設(shè)備轉(zhuǎn)臺(tái)的性能也需要提高[1],為了滿(mǎn)足對(duì)慣性器件高性能的要求,需要研究出高精度的轉(zhuǎn)臺(tái),也即要提高轉(zhuǎn)臺(tái)控制系統(tǒng)的性能,提高控制系統(tǒng)的性能主要體現(xiàn)在提高運(yùn)算性能和改善控制算法上[2-3]。系統(tǒng)的運(yùn)算性能包括了運(yùn)算速度和運(yùn)算精度。
高頻角振動(dòng)臺(tái)是轉(zhuǎn)臺(tái)的一種類(lèi)型,主要用來(lái)測(cè)量陀螺的動(dòng)態(tài)特性,需要無(wú)穩(wěn)態(tài)誤差地跟蹤給定信號(hào),需要能跟蹤周期性的給定信號(hào)[4]。
角振動(dòng)臺(tái)控制系統(tǒng)要求是一個(gè)實(shí)時(shí)系統(tǒng)[5],對(duì)于一般性能指標(biāo)的轉(zhuǎn)臺(tái),可以采用Windows+RTX的方案編寫(xiě)轉(zhuǎn)臺(tái)控制算法,但是,由于Windows系統(tǒng)的運(yùn)行機(jī)理是基于消息機(jī)制的,因此不可能實(shí)現(xiàn)本質(zhì)上的實(shí)時(shí)性,RTX是一款可以嵌入Windows系統(tǒng)的實(shí)時(shí)操作內(nèi)核,但RTX也是基于Windows實(shí)現(xiàn)的,因此并不是強(qiáng)實(shí)時(shí)系統(tǒng),只能到微秒級(jí)的定時(shí)精度。為了提高系統(tǒng)的實(shí)時(shí)性,針對(duì)角振動(dòng)臺(tái)控制系統(tǒng)的運(yùn)算量和速度要求,本文使用DSP[6-8]器件作為控制器,同時(shí)使用FPGA作為輔助芯片,DSP實(shí)現(xiàn)控制算法,F(xiàn)PGA為DSP搭建數(shù)據(jù)通道[9],上位機(jī)采用工控機(jī),使用WindowsXP系統(tǒng),主要負(fù)責(zé)實(shí)時(shí)數(shù)據(jù)顯示和指令發(fā)送。
控制系統(tǒng)硬件框圖如圖1所示。上位機(jī)和FPGA通過(guò)USB通信[10],F(xiàn)PGA讀取光柵輸出的位置信息,解碼之后傳送給DSP做控制使用,DSP根據(jù)反饋回來(lái)的位置速度信息,執(zhí)行控制運(yùn)算,然后將控制量輸出至FPGA,F(xiàn)PGA將期望的位置和實(shí)際位置以及控制量信息發(fā)送給上位機(jī),上位機(jī)將位置信息處理后得到速度和位置信息以及控制量的輸出,然后將位置和速度使用曲線(xiàn)繪制出來(lái)。FPGA轉(zhuǎn)發(fā)到AD,AD將信號(hào)轉(zhuǎn)換為模擬量之后送給驅(qū)動(dòng)器驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn),整個(gè)系統(tǒng)閉環(huán)。
圖1 角振動(dòng)臺(tái)控制系統(tǒng)硬件框圖
系統(tǒng)硬件包括DSP最小系統(tǒng)及擴(kuò)展電路設(shè)計(jì),F(xiàn)PGA最小系統(tǒng)及外圍電路設(shè)計(jì),其中本文設(shè)計(jì)的A/D轉(zhuǎn)換電路使用的是AD7606作為A/D轉(zhuǎn)換器件,同時(shí)為了提高測(cè)量精度,對(duì)于AD7606設(shè)置了跟隨電路,將輸入的模擬信號(hào)隔離,提高帶載能力,同時(shí)為了保護(hù)器件,對(duì)模擬量輸入限幅。
本設(shè)計(jì)是一款高速信號(hào)采集板,需要和上位機(jī)之間實(shí)現(xiàn)高速數(shù)據(jù)交換,因此使用最高速達(dá)到480 Mb/s的USB2.0[11]技術(shù)通信。USB2.0芯片采用CYPRESS公司的CY68013實(shí)現(xiàn),F(xiàn)PGA采用16位FIFO和CY68013之間通信,時(shí)鐘達(dá)到48 MHz,CY68013可以配置為51內(nèi)核不參與數(shù)據(jù)交換,USB數(shù)據(jù)直接和FIFO通道相連,這樣可以大大增加反應(yīng)速度[12],USB和外設(shè)使用FIFO。
本設(shè)計(jì)中使用的USB2.0中還有一片24LC64,這是一片使用IIC讀寫(xiě)的E2ROM,因?yàn)镃Y68013內(nèi)部沒(méi)有ROM,程序不能固化,為了擴(kuò)充CY68013的存儲(chǔ)能力,以便編寫(xiě)更加復(fù)雜的固件程序,設(shè)計(jì)是參考官方技術(shù)手冊(cè)。
USB發(fā)送過(guò)來(lái)的數(shù)據(jù)需要使用上位機(jī)接收,并顯示出來(lái)。Windows自從Windows XP開(kāi)始就不再提供底層接口,因此為了使USB設(shè)備能夠正常工作,使CY68013工作于SLAVE FIFO模式,需要為CY68013編寫(xiě)固件程序。對(duì)于從USB發(fā)送過(guò)來(lái)的數(shù)據(jù),需要上位機(jī)進(jìn)行處理,然后將數(shù)據(jù)保存并顯示出來(lái),因此上位機(jī)是提供人機(jī)接口的不可或缺的一環(huán)。為了實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)操作,必須設(shè)定實(shí)時(shí)中斷對(duì)數(shù)據(jù)進(jìn)行接收,這樣才能保證數(shù)據(jù)能夠準(zhǔn)確接收。最后,使用DSP實(shí)現(xiàn)控制功能,完成控制算法的編寫(xiě),實(shí)現(xiàn)控制程序。
固件的主要功能是配置芯片,使硬件在上電后工作在指定的狀態(tài),通過(guò)配置MCU的各個(gè)寄存器完成這一目的,固件程序?qū)ο到y(tǒng)的配置有以下方面:配置FX2工作頻率為48 MHz,IO口設(shè)置PB和PD作為數(shù)據(jù)端口,端點(diǎn)選擇EP2和EP6,端點(diǎn)使能,設(shè)置端點(diǎn)工作方式,端點(diǎn)極性,完成設(shè)備的枚舉和重枚舉,對(duì)主機(jī)向USB設(shè)備發(fā)送的請(qǐng)求進(jìn)行實(shí)時(shí)響應(yīng),設(shè)置USB設(shè)備和外設(shè)通信使用SLAVEFIFO模式。
上位機(jī)程序設(shè)計(jì)包括Winform界面設(shè)計(jì)和后程臺(tái)序設(shè)計(jì)。
本文的上位機(jī)一共兩個(gè)界面,一個(gè)主界面,用來(lái)控制USB傳輸;另一個(gè)界面是繪圖界面,使用chart控件實(shí)時(shí)繪制曲線(xiàn)。
后臺(tái)程序設(shè)計(jì)包括系統(tǒng)初始化,系統(tǒng)初始化主要作用為初始化程序界面,初始化USB控制過(guò)程中的各個(gè)控制類(lèi),定時(shí)中斷接收數(shù)據(jù),使用定時(shí)100 ms的中斷接收數(shù)據(jù),使用bulk方式傳送,其他部分的程序主要功能為實(shí)現(xiàn)一些底層函數(shù)和上位機(jī)界面的繪制工作,實(shí)時(shí)曲線(xiàn)繪制工作。
術(shù)前意識(shí)狀態(tài)是預(yù)后最重要的決定因素,有無(wú)意識(shí)的障礙和他們的程度,可以直接反映腦實(shí)質(zhì)受損的情況。我們提倡盡快手術(shù),及時(shí)清除血腫對(duì)腦組織的壓力[3]。術(shù)前腦出現(xiàn)腦疝的預(yù)后較差,死亡率也大大增加,因?yàn)轱B內(nèi)壓力極高導(dǎo)致不良結(jié)局,在腦疝發(fā)生前尋求早期手術(shù)和改善患者是很重要的,能夠有效提高患者預(yù)后和提高生存質(zhì)量。
DSP是整個(gè)運(yùn)動(dòng)控制系統(tǒng)的處理中心,所有的控制算法都在DSP上進(jìn)行實(shí)現(xiàn),必須合理配置DSP,才能為算法移植提供一個(gè)好的工作環(huán)境。
首先進(jìn)行DSP初始化程序設(shè)計(jì),DSP的初始化程序執(zhí)行的工作主要為:配置鎖相環(huán),將系統(tǒng)的工作時(shí)鐘設(shè)置為200 MHz;配置中斷服務(wù)程序,設(shè)置中斷服務(wù)程序地址,關(guān)閉中斷,清除標(biāo)志;配置EMIF,配置管腳,將一些復(fù)用的管腳設(shè)置為EMIF的地址總線(xiàn)[13];配置實(shí)時(shí)中斷,設(shè)置實(shí)時(shí)中斷的定時(shí)周期20 kHz,最后使能中斷。
然后進(jìn)行系統(tǒng)定時(shí)中斷處理程序設(shè)計(jì),定時(shí)器是系統(tǒng)滿(mǎn)足實(shí)時(shí)性的核心,系統(tǒng)的控制程序都是在定時(shí)器中完成的。通過(guò)配置DSP的寄存器,設(shè)置片上定時(shí)器的周期,配置好定時(shí)器中斷和中斷處理程序,在中斷處理程序中,執(zhí)行控制算法。每當(dāng)定時(shí)器完成一次定時(shí),就會(huì)引發(fā)定時(shí)器中斷,然后程序跳轉(zhuǎn)到中斷處理程序中,在中斷處理程序中,實(shí)現(xiàn)使能定時(shí)器中斷,讀取角振動(dòng)臺(tái)位置,執(zhí)行控制算法。
本設(shè)計(jì)使用的DSP芯片TMS320C6726是32位浮點(diǎn)型DSP處理器。
實(shí)際運(yùn)行時(shí),將速度環(huán)自抗擾和位置環(huán)自抗擾寫(xiě)成一個(gè)函數(shù),這樣看起來(lái)更加方便,調(diào)參也更靈活。位置反饋使用光柵讀取的位置值;速度反饋使用光柵讀取的位置值進(jìn)行差分求得。然后進(jìn)行過(guò)零處理,過(guò)零之后作為反饋值帶入自抗擾控制器[14]中,算法采用后向差分法離散化,程序使用C語(yǔ)言編寫(xiě)。
系統(tǒng)的調(diào)試實(shí)驗(yàn)是在一款單軸轉(zhuǎn)臺(tái)上實(shí)現(xiàn)的,雖然單軸轉(zhuǎn)臺(tái)和角振動(dòng)臺(tái)的相關(guān)參數(shù)差別很大,使用直流力矩電動(dòng)機(jī)而不是音圈電動(dòng)機(jī),但是直流力矩電動(dòng)機(jī)和音圈電動(dòng)機(jī)數(shù)學(xué)模型相同[15],且單軸轉(zhuǎn)臺(tái)和角振動(dòng)臺(tái)機(jī)械結(jié)構(gòu)相似,因此數(shù)學(xué)模型只差在一些參數(shù)上,主要體現(xiàn)在電動(dòng)機(jī)的時(shí)間常數(shù)和負(fù)載的轉(zhuǎn)動(dòng)慣量上。轉(zhuǎn)臺(tái)為了使轉(zhuǎn)速平穩(wěn),波動(dòng)小,會(huì)將臺(tái)體的轉(zhuǎn)動(dòng)慣量設(shè)計(jì)的很大,而角振動(dòng)臺(tái)為了加快動(dòng)態(tài)過(guò)程,會(huì)將臺(tái)體的轉(zhuǎn)動(dòng)慣量設(shè)計(jì)的盡可能小,以上這些區(qū)別使轉(zhuǎn)臺(tái)和角振動(dòng)臺(tái)在反應(yīng)速度上有很大差別,但是其基本模型相同,因此使用單軸轉(zhuǎn)臺(tái)來(lái)代替角振動(dòng)臺(tái)進(jìn)行調(diào)試,最后只需要重設(shè)調(diào)節(jié)參數(shù)即可完成算法移植。實(shí)驗(yàn)中使用的控制板為本文設(shè)計(jì)的高速控制板,如圖2所示,轉(zhuǎn)臺(tái)為一款單軸轉(zhuǎn)臺(tái),如圖3所示,電動(dòng)機(jī)驅(qū)動(dòng)器為帶電流環(huán)的電動(dòng)機(jī)驅(qū)動(dòng)器如圖4所示,電動(dòng)機(jī)驅(qū)動(dòng)器使用單獨(dú)的線(xiàn)性恒壓電源供電,如圖5所示。
先將轉(zhuǎn)臺(tái)的位置歸零,然后給定一個(gè)5°的階躍信號(hào),調(diào)整自抗擾控制器參數(shù),得到其階躍響應(yīng)。從階躍響應(yīng)可以看出,自抗擾觀測(cè)器穩(wěn)態(tài)精度高,略有超調(diào),超調(diào)在0.38%左右,調(diào)節(jié)速度快,性能良好。
角振動(dòng)臺(tái)作為振動(dòng)仿真平臺(tái),其最常見(jiàn)的輸入信
圖2 轉(zhuǎn)臺(tái)高速控制板
圖3 單軸轉(zhuǎn)臺(tái)
圖4 電機(jī)驅(qū)動(dòng)器
圖5 電機(jī)驅(qū)動(dòng)器電源
圖6 跟蹤1 Hz正弦波
圖7 跟蹤20 Hz正弦波
從圖7可以看出,跟蹤20 Hz正弦波時(shí)已經(jīng)有很大的誤差了,此時(shí)時(shí)間滯后0.005 s,折合相位滯后為36°,波形賦值衰減7.5%,波形基本不失真,基本可以跟蹤20 Hz正弦波。
跟蹤30 Hz正弦波時(shí),波形已經(jīng)失真,波形和輸入波形有很大差距,而且輸出波形不穩(wěn)定,隨時(shí)間在變化,可能會(huì)導(dǎo)致系統(tǒng)不穩(wěn)定,因此,系統(tǒng)不能跟蹤30 Hz正弦波。
針對(duì)角振動(dòng)臺(tái)控制系統(tǒng)要求較高實(shí)時(shí)性的要求,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)功能全面的控制系統(tǒng)的軟硬件平臺(tái)及上位機(jī)界面,采用DPS加FPGA的控制方案,基于C#設(shè)計(jì)了上位機(jī)程序,使用USB控制類(lèi)庫(kù)控制USB傳輸,將數(shù)據(jù)反饋到主機(jī)上進(jìn)行分析,驗(yàn)證了硬件平臺(tái)的性能可以達(dá)到預(yù)期目標(biāo),證實(shí)了自抗擾控制器的性能,適合于運(yùn)動(dòng)控制,反應(yīng)快速,超調(diào)小,穩(wěn)態(tài)精度高。
參考文獻(xiàn)(References):
[1] 郝 信. 高頻角振動(dòng)臺(tái)控制系統(tǒng)設(shè)計(jì)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2016.
[2] 陶 濤,徐洪澤. 高速列車(chē)浸入與不變自適應(yīng)容錯(cuò)控制方法[J]. 吉林大學(xué)學(xué)報(bào)(工學(xué)版),2015(2):554-561.
[3] 邵星靈,王宏倫. 線(xiàn)性擴(kuò)張狀態(tài)觀測(cè)器及其高階形式的性能分析[J]. 控制與決策,2015(5):815-822.
[4] 姚松坡,陳羅慕成. 高頻響角振動(dòng)臺(tái)控制系統(tǒng)的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2016.
[5] 姚松坡,機(jī) 林,劉 超,等. 基于DSP+FPGA的電動(dòng)伺服加載系統(tǒng)設(shè)計(jì)[J].電氣傳動(dòng),2017(6):7-13.
[6] 機(jī) 林,劉 超,汪 輝,等. 基于DSP+FPGA的電動(dòng)伺服加載系統(tǒng)設(shè)計(jì)[J]. 電氣傳動(dòng),2017(6):7-13.
[7] ira-Ramirez H, Linares-Flores J, Garcia-Rodriguez C,etal. On the Control of the Permanent Magnet Synchronous Motor: An Active Disturbance Rejection Control Approach[J]. IEEE Transactions on Control Systems Technology, 2014, 22(5):2056-2063.
[8] 李福瑞,胡琪波,李楊聲,等. 基于DSP的一體化交流伺服系統(tǒng)研究和實(shí)現(xiàn)[J]. 導(dǎo)航定位與授時(shí),2017(3):32-38.
[9] 段曉敏,郭 濤. 基于USB 2.0的光散射系統(tǒng)上位機(jī)軟件設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)測(cè)量與控制,2015(6):2200-2202.
[10] 龔 智,趙 翠,徐林杰,等. 基于LPC1788微處理器USB驅(qū)動(dòng)和應(yīng)用程序設(shè)計(jì)[J]. 電腦編程技巧與維護(hù),2017(1):13-15+36.
[11] 莊洪毅. 一種基于FX2與FPGA聯(lián)用實(shí)現(xiàn)USB2.0通信協(xié)議的方法[J]. 電子測(cè)量技術(shù),2017(4):78-81.
[12] 徐 超,劉 沖,王永綱. 基于FPGA和USB2.0協(xié)議的通用數(shù)據(jù)傳輸設(shè)計(jì)[J]. 微型機(jī)與應(yīng)用,2016(16):41-43.
[13] 孫昌君,李立京,鄭 帥,等. 基于DSP和FPGA的被動(dòng)聲探測(cè)實(shí)時(shí)采集系統(tǒng)設(shè)計(jì)[J]. 傳感器與微系統(tǒng),2017(6):105-107+111.
[14] 韓京清. 自抗擾控制技術(shù)[J]. 前沿科學(xué),2007(1):24-31.
[15] 邵琳達(dá),趙英偉. 音圈電機(jī)直流驅(qū)動(dòng)電路設(shè)計(jì)[J]. 科技創(chuàng)新與應(yīng)用,2016(24):12-14.