曲云昭 李洪文 鄧永停 王晶
摘 要: 針對某望遠鏡轉臺使用的SSI接口絕對式編碼器,提出基于FPGA讀取編碼器信號的方案,并給出非線性跟蹤微分器的測速濾波方法,同時采用預報補償?shù)姆椒ń鉀Q濾波后的相位延遲問題。根據讀取到的編碼器位置信息,能夠準確快速地估計出速度值,濾除信號中的隨機噪聲干擾。該方案不依賴對象模型,算法簡單,調節(jié)參數(shù)少,計算量小,易于在工程中實現(xiàn)。通過仿真分析和實驗驗證表明,該方案能夠準確讀取絕對式編碼器碼值,根據碼值信息估計速度信息,轉臺以0.05 (°)/s轉動時,速度波動方差降低了3.46 (″)/s,改善了低速運行的平穩(wěn)性。實驗證明了該方法的準確性和有效性,具有良好的使用價值。
關鍵詞: 非線性跟蹤微分器; 絕對式編碼器; 速度估計; 濾波
中圖分類號: TN762?34; TP273 文獻標識碼: A 文章編號: 1004?373X(2017)21?0149?04
Application of encoder data acquisition based on nonlinear tracking?differentiator
QU Yunzhao1, 2, LI Hongwen1, DENG Yongting1, WANG Jing1, 2
(1. Changchun Institute of Optics, Fine Mechanics and Physics, Chinese Academy of Sciences, Changchun 130033, China;
2. University of Chinese Academy of Sciences, Beijing 100039, China)
Abstract: Aiming at the SSI interface absolute type encoder used in a certain telescope turntable, a scheme based on FPGA to read the signal of the encoder is proposed. A velocity measurement and filtering method of the nonlinear tracking?differentiator is given. The prediction compensation method is used to solve the phase delay after signal filtering. According to the read position information of the encoder, the speed value can be estimated accurately and quickly, and the random noise interference is filtered out in the signal. The scheme does not depend on the object model, its algorithm is simple, and has less calculated quantity and few adjustment parameters, which is easy to implement in the project. The simulation analysis and experiment results show that the scheme can accurately read the code value of the absolute type encoder and estimate the velocity information according to the code value information, when the turntable turns with the speed of 0.05 (°)/s, the speed fluctuation variance is reduced by 3.46 (″)/s, which improves the stationarity of low speed running. The experimental results show that the method is accurate and effective, and has high use value.
Keywords: nonlinear tracking?differentiator; absolute type encoder; velocity estimation; filtering
0 引 言
光電編碼器是集光、機、電于一體的精密位移傳感器,已經廣泛用于望遠鏡轉臺、經緯儀等設備中,其采集精度直接決定設備的整體性能。常用的光電編碼器主要分為增量式編碼器和絕對式編碼器兩種,增量式編碼器在系統(tǒng)上電后需要尋零操作,而絕對式編碼器可以直接讀取當前編碼器的位置信息,這一優(yōu)點明顯優(yōu)于增量式編碼器,所以絕對式編碼器在測量系統(tǒng)中得到廣泛的應用。但絕對式編碼器廠商還沒有統(tǒng)一的通信協(xié)議,例如,EnDat協(xié)議、Biss協(xié)議以及SSI協(xié)議等,目前的單片機和數(shù)字信號處理器等也沒有相應的讀取模塊,并且編碼器廠商也不直接提供編碼器讀取模塊,需要花費額外的費用購買,這在一定程度上也限制了絕對式編碼器的應用。針對SSI協(xié)議的絕對式編碼器,國內科研院所和高校也做了部分研究,如SSI_485轉換器[1]以及基于DSP的串行口設計[2]等。
望遠鏡在跟蹤星體目標時,需要較高的低速平穩(wěn)性,所以需要實時準確的速度測量。針對低速測量問題,在M法測量和T法測量的基礎上提出了M/T法測速,變M/T法測速等[3],但這些方法都需要額外的硬件電路來解決碼盤脈沖信號的上升沿或下降沿來同步時間信號的問題,并且這些方法也只適用于增量式編碼器速度測量,并不適用于絕對式編碼器。針對使用的SSI接口絕對式編碼器,通過引入非線性跟蹤微分器(NTD)理論進行速度估計,從被噪聲污染的信號中提取原始信號并估計其微分信號。利用FPGA實現(xiàn)了SSI協(xié)議絕對式編碼器碼值讀取、利用NTD理論實現(xiàn)了對信號的濾波和測速的目的,并將其應用于望遠鏡方位轉臺的速度測量中,有效提高了測量的實時性和準確性,取得了良好的實驗效果。endprint
1 絕對式編碼器數(shù)據采集
1.1 SSI通信協(xié)議
SSI接口絕對式編碼器利用兩對差分信號線傳輸數(shù)據:一對為數(shù)據線Data,另一對為同步時鐘線Clock,通過上位機發(fā)送同步時鐘線Clock控制采樣過程。SSI接口數(shù)據傳輸時序圖如圖1所示。其中[T]為每位數(shù)據讀取周期,[t1]為編碼器發(fā)送數(shù)據延遲時間,[t2]為數(shù)據發(fā)送接收后數(shù)據線低電平保持時間。在編碼器沒有數(shù)據傳輸時,時鐘線和數(shù)據線均為高電平。數(shù)據傳輸起始位為時鐘信號第一個下降沿,當檢測到時鐘下降沿時,編碼器開始計算位置值將其保存在緩沖區(qū),在時鐘信號上升沿時將編碼器碼值最高位MSB發(fā)送到數(shù)據線。在編碼器碼值解碼時需要注意數(shù)據發(fā)送的延時時間[t1,][t1<]350 ns。經過25個周期后,編碼器碼值從最高位到最低位依次發(fā)送到數(shù)據線。當編碼器數(shù)據最低位LSB發(fā)送后,數(shù)據線將保持一段時間低電平[t2,][t2]時間為13 μs,此時需要將時鐘線拉高,若在[t2]時間檢測到時鐘線的下降沿,會使緩沖區(qū)的數(shù)據再次發(fā)送到數(shù)據線。當時鐘線高電平持續(xù)時間大于[t2]時,則認為當前數(shù)據傳輸完畢,待再次檢測到時鐘下降沿時,開始發(fā)送新的數(shù)據。
1.2 數(shù)據采集
根據SSI接口通信協(xié)議特點,F(xiàn)PGA讀取編碼器碼值利用有限狀態(tài)機實現(xiàn),能夠準確控制時序 [4?5],有限狀態(tài)機狀態(tài)轉換圖如圖2所示。
在系統(tǒng)復位或編碼器碼值讀取結束時為State0,即空閑狀態(tài),此時時鐘信號保持高電平,等待接收數(shù)據讀取的使能信號。當接收到采樣使能信號Enable時狀態(tài)機進入State1狀態(tài),State1狀態(tài)發(fā)送數(shù)據讀取的起始位信號,時鐘線產生周期為[T2]的低電平信號,觸發(fā)編碼器發(fā)送編碼器位置數(shù)據,此時編碼器將數(shù)據存儲在緩沖區(qū)。當時鐘線低電平時間達到[T2]時,狀態(tài)機進入State2狀態(tài)讀取編碼器碼值數(shù)據。State2狀態(tài)需要產生25個讀取周期[T]的時鐘激勵信號,為了讀取數(shù)據的穩(wěn)定性,本文在讀取周期[T]的下降沿做100 ns延時后讀取數(shù)據,確保數(shù)據的穩(wěn)定性。當Size信號為25時,即依次讀取25位數(shù)據后,狀態(tài)機進入State3狀態(tài),此時將時鐘線拉高,大于數(shù)據傳輸結束后低電平保持時間[t2,]作為當前編碼器位置數(shù)據傳輸完成的結束信號。當高電平保持時間大于[t2]時,狀態(tài)機進入State4狀態(tài),此狀態(tài)用于完成編碼器碼值的轉換。因為此型號編碼器輸出碼值為格雷碼,格雷碼具有任意兩個相鄰位其輸出的格雷碼碼值只有一位不同的特點,這種輸出格式也有效提高了絕對式編碼器數(shù)據輸出的穩(wěn)定性。根據格雷碼和二進制碼的對應關系,利用向右異或法將格雷碼轉換為二進制碼。若二進制的格雷碼為[Gn-1Gn-2…G2G1G0,]所對應的普通二進制碼值為[Bn-1Bn-2…B2B1B0]。其最高位對應關系見式(1),其他位對應關系見式(2)。
[Bn-1=Gn-1] (1)
[Bi-1=Gi-1⊕Bi, i=1,2,…,n-1] (2)
當格雷碼向二進制碼轉換完成時,狀態(tài)機進入State5狀態(tài),此狀態(tài)生成編碼器碼值讀取轉換完成的Int信號,用于觸發(fā)DSP讀取編碼器碼值數(shù)據。當產生Int信號后狀態(tài)機進入State0狀態(tài),等待下一次讀取使能信號,進行新周期碼值讀取。
2 非線性跟蹤微分器原理
文獻[6]針對從非連續(xù)信號或者帶有噪聲干擾的采集信號中獲取連續(xù)信號及其微分信號的問題,給出了非線性跟蹤微分器(NTD)理論。非線性跟蹤微分器的結構可表述為:對該結構輸入一個信號[v(t)],它將輸出[z1]和[z2]兩個信號,其中[z1]信號跟蹤[v(t)]的變化,而[z2]則是[z1]的微分信號。當[z1]信號快速跟蹤輸入信號[v(t)]時,[z2]信號即可作為輸入信號[v(t)]的“近似微分”。非線性跟蹤微分器定理具有如下定義,若系統(tǒng):
[z1(t)=z2(t)z2(t)=fz1(t),z2(t)] (3)
的任意解均能滿足:[z1(t)→0,][z2(t)→0][(t→∞),]則對于任意有界可積函數(shù)[v(t)]和任意的時間常數(shù)[T>0],則系統(tǒng):
[x1(t)=x2(t)x2(t)=R2?fx1(t)-v(t),x2(t)R] (4)
的解[x1(t)]滿足:
[limR→∞0Tx1(t)-v(t)dt=0] (5)
非線性跟蹤微分器定理表明,[x1(t)]平均收斂于[v(t)]。如果將有界可積函數(shù)[v(t)]看成廣義函數(shù),則[x2(t)]弱收斂于[v(t)]的廣義導數(shù)。若把式(4)作為非線性跟蹤微分器,則由式(4)得到的[x1(t)]和[x2(t)]分別是在平均收斂和弱收斂意義下對原函數(shù)及其導數(shù)的光滑逼近,即狀態(tài)[x1(t)]和[x2(t)]分別跟蹤輸入信號及其微分。為了應用于實際工程,NTD的離散形勢表述如下[7]:
[x1(k+1)=x1(k)+T?x2(k)x2(k+1)=x2(k)+T?fste(k),x2(k),R,h] (6)
式中:[T]為積分步長;[e(k)=x1(k)-v(k)]為NTD對輸入變量[v(k)]誤差的估計值;[R]為速度因子,影響跟蹤的響應時間;[h]為濾波因子,影響濾波效果。在式(6)中非線性函數(shù)[fst(?)]定義如下:
[fste(k),x2(k),R,h=-R?satg(k),δ] (7)
[sat(x,δ)=sign(x),x>δxδ,x≤δ] (8)
[g(k)=x2(k)+sign[y(k)]?8Ry(k)+δ2-δ2, y(k)≥δ1x2(k)+y(k)h,y(k)<δ1] (9)
式中:[sign(?)]為符號函數(shù);[δ=Rh;δ1=δh;y(k)=e(k)+h?x2(k)。]endprint
根據上述NTD的離散化公式可知,離散型NTD只有速度因子[R]和濾波因子[h]兩個調節(jié)參數(shù),增加速度因子和濾波因子可以提高響應速度和濾波效果。但隨著增加濾波因子來提高噪聲抑制能力的同時,也會帶來一定的相位延遲,由此帶來的相位延遲問題可采用預報補償?shù)姆椒ㄟM行相應補償[8]。將濾波后的跟蹤信號加上獲取的微分信號后乘以預報步長作為輸入信號的逼近信號:
[x=x1+t?T?x2] (10)
式(10)即為經過補償后的輸出信號,式中[t]為預報步長。該方法參數(shù)整定方便,算法簡單,計算量小,適合在實際工程中應用[9?10]。
3 NTD仿真分析
通過對非線性跟蹤微分器理論分析和離散化推導可知,該模型可用于對輸入信號的速度測量,對受噪聲污染的信號進行濾波處理。本文為驗證NTD模型在測速和濾波中的應用效果,利用Matlab/Simulink對NTD模型進行建模仿真分析。NTD階躍響應曲線如圖3所示。
由圖3可知,非線性跟蹤微分器模型能夠對輸入的階躍信號實現(xiàn)快速無超調跟蹤。隨著速度因子的增加,響應時間明顯減少。
圖4和圖5為對正弦信號跟蹤仿真圖。當輸入為正弦信號時,速度信號為余弦信號。根據仿真圖可知,該模型能夠對輸入信號快速跟蹤,并準確地估計其微分信號。從圖5中可以看出,其他系數(shù)不變只增加濾波因子,當濾波因子達到一定數(shù)值時,跟蹤信號會產生相位延遲現(xiàn)象,利用本文提到的方法進行相位補償,可以有效地減少因延遲造成的誤差,補償后的仿真圖如圖6所示,該方法可以解決因濾波因子過大而帶來的相位延遲問題。
圖7為對受噪聲污染信號濾波后與原信號誤差仿真圖,由圖7可以看出當濾波因子為0.006時,濾波后信號與原信號的誤差在0.3左右,增加濾波因子,當其達到0.02時,經過相位補償后,濾波后信號與原信號的誤差基本保持在0.2。通過改變?yōu)V波因子,并做相應的相位補償,可以有效改善NTD模型對噪聲的抑制能力。
4 實驗驗證
通過建模仿真分析可知,利用NTD模型提取速度信號具有可行性。為了檢驗NTD模型測速的實際應用效果,利用某望遠鏡轉臺做了方位軸的速度測試。實驗測試時,將伺服轉臺調為定速工作模式,速度值定為0.05 (°)/s。首先利用傳統(tǒng)的后項差分法根據采集到的編碼器位置數(shù)據計算出轉臺速度信息;其次不改變任何控制參數(shù)的情況下利用NTD模型濾波估計速度值;最后對采用以上兩種方法測得的速度值進行對比,如圖8,圖9所示。
由圖可知,當轉臺以較低速運行時,采用傳統(tǒng)的后項差分測速法速度波動較大,利用NTD模型能夠準確估計速度信號,波動范圍更集中在設定值周圍,相比后項差分測速法能夠獲取更準確的速度信息。對上位機采集到的數(shù)據處理后發(fā)現(xiàn),速度波動方差從原來的9.15 (″)/s降為5.69 (″)/s。所以,使用NTD模型進行濾波測速,能夠獲取更加穩(wěn)定的速度信息,有效提高了轉臺伺服控制系統(tǒng)的低速性能。
圖8 差分測速
圖9 NTD濾波測速
5 結 論
本文給出基于FPGA的SSI接口絕對式編碼器碼值讀取方案,能夠準確讀取絕對式編碼器碼值,將NTD理論應用于速度測量中,根據編碼器位置采集數(shù)據準確快速地估計速度信號。此方法也可用于受噪聲干擾信號的濾波處理中,減少噪聲干擾的負面影響。NTD模型不依賴對象模型,可調參數(shù)只有速度因子和濾波因子兩個參數(shù),通過改變速度因子和濾波因子有效調節(jié)響應時間和抑制噪聲干擾,調節(jié)方法簡單,易于在工程中實現(xiàn)。實驗表明,該方案能夠準確讀取SSI接口絕對式編碼器碼值,根據采集到的碼值信息準確估計速度信息,當轉臺以0.05 (°)/s運行時,測得的速度波動方差降低了3.46 (°)/s,有效改善了轉臺的低速平穩(wěn)性,具有良好的使用效果。
參考文獻
[1] 戴蓉,王高鵬,齊向華.SSI?485轉換器的研究與應用[J].水利水文自動化,2008(2):46?51.
[2] 張琴琴,楊建宏,劉琳.基于DSP的絕對式光電編碼器串行接口設計[J].現(xiàn)代電子技術,2012,35(14):185?188.
[3] 劉益民,李變俠,車嶸,等.轉臺伺服系統(tǒng)中高精度測速方法的研究與實現(xiàn)[J].科學技術與工程,2007,7(8):1732?1734.
[4] 時旭,付成偉.基于FPGA的CAN總線通信系統(tǒng)的設計[J].現(xiàn)代電子技術,2015,38(22):59?61.
[5] 葛澎,王堃.基于FPGA的數(shù)據采集系統(tǒng)設計[J].現(xiàn)代電子技術,2011,34(15):161?163.
[6] 韓京清,王偉.非線性跟蹤?微分器[J].系統(tǒng)科學與數(shù)學,1994,14(2):177?183.
[7] 韓京清,袁露林.跟蹤微分器的離散形式[J].系統(tǒng)科學與數(shù)學,1999,19(3):268?273.
[8] 武利強,林浩,韓京清.跟蹤微分器濾波性能研究[J].系統(tǒng)仿真學報,2004,16(14):651?653.
[9] 朱承元,楊滌,荊武興.跟蹤微分器參數(shù)與輸入輸出信號幅值頻率關系[J].電機與控制學報,2005,9(4):376?379.
[10] 黃一,張文革.自抗擾控制器的發(fā)展[J].控制理論與應用,2002,19(4):485?492.