曲云昭 李洪文 鄧永停 王晶
摘 要: 針對(duì)某望遠(yuǎn)鏡轉(zhuǎn)臺(tái)使用的SSI接口絕對(duì)式編碼器,提出基于FPGA讀取編碼器信號(hào)的方案,并給出非線性跟蹤微分器的測(cè)速濾波方法,同時(shí)采用預(yù)報(bào)補(bǔ)償?shù)姆椒ń鉀Q濾波后的相位延遲問題。根據(jù)讀取到的編碼器位置信息,能夠準(zhǔn)確快速地估計(jì)出速度值,濾除信號(hào)中的隨機(jī)噪聲干擾。該方案不依賴對(duì)象模型,算法簡(jiǎn)單,調(diào)節(jié)參數(shù)少,計(jì)算量小,易于在工程中實(shí)現(xiàn)。通過仿真分析和實(shí)驗(yàn)驗(yàn)證表明,該方案能夠準(zhǔn)確讀取絕對(duì)式編碼器碼值,根據(jù)碼值信息估計(jì)速度信息,轉(zhuǎn)臺(tái)以0.05 (°)/s轉(zhuǎn)動(dòng)時(shí),速度波動(dòng)方差降低了3.46 (″)/s,改善了低速運(yùn)行的平穩(wěn)性。實(shí)驗(yàn)證明了該方法的準(zhǔn)確性和有效性,具有良好的使用價(jià)值。
關(guān)鍵詞: 非線性跟蹤微分器; 絕對(duì)式編碼器; 速度估計(jì); 濾波
中圖分類號(hào): TN762?34; TP273 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 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 引 言
光電編碼器是集光、機(jī)、電于一體的精密位移傳感器,已經(jīng)廣泛用于望遠(yuǎn)鏡轉(zhuǎn)臺(tái)、經(jīng)緯儀等設(shè)備中,其采集精度直接決定設(shè)備的整體性能。常用的光電編碼器主要分為增量式編碼器和絕對(duì)式編碼器兩種,增量式編碼器在系統(tǒng)上電后需要尋零操作,而絕對(duì)式編碼器可以直接讀取當(dāng)前編碼器的位置信息,這一優(yōu)點(diǎn)明顯優(yōu)于增量式編碼器,所以絕對(duì)式編碼器在測(cè)量系統(tǒng)中得到廣泛的應(yīng)用。但絕對(duì)式編碼器廠商還沒有統(tǒng)一的通信協(xié)議,例如,EnDat協(xié)議、Biss協(xié)議以及SSI協(xié)議等,目前的單片機(jī)和數(shù)字信號(hào)處理器等也沒有相應(yīng)的讀取模塊,并且編碼器廠商也不直接提供編碼器讀取模塊,需要花費(fèi)額外的費(fèi)用購買,這在一定程度上也限制了絕對(duì)式編碼器的應(yīng)用。針對(duì)SSI協(xié)議的絕對(duì)式編碼器,國內(nèi)科研院所和高校也做了部分研究,如SSI_485轉(zhuǎn)換器[1]以及基于DSP的串行口設(shè)計(jì)[2]等。
望遠(yuǎn)鏡在跟蹤星體目標(biāo)時(shí),需要較高的低速平穩(wěn)性,所以需要實(shí)時(shí)準(zhǔn)確的速度測(cè)量。針對(duì)低速測(cè)量問題,在M法測(cè)量和T法測(cè)量的基礎(chǔ)上提出了M/T法測(cè)速,變M/T法測(cè)速等[3],但這些方法都需要額外的硬件電路來解決碼盤脈沖信號(hào)的上升沿或下降沿來同步時(shí)間信號(hào)的問題,并且這些方法也只適用于增量式編碼器速度測(cè)量,并不適用于絕對(duì)式編碼器。針對(duì)使用的SSI接口絕對(duì)式編碼器,通過引入非線性跟蹤微分器(NTD)理論進(jìn)行速度估計(jì),從被噪聲污染的信號(hào)中提取原始信號(hào)并估計(jì)其微分信號(hào)。利用FPGA實(shí)現(xiàn)了SSI協(xié)議絕對(duì)式編碼器碼值讀取、利用NTD理論實(shí)現(xiàn)了對(duì)信號(hào)的濾波和測(cè)速的目的,并將其應(yīng)用于望遠(yuǎn)鏡方位轉(zhuǎn)臺(tái)的速度測(cè)量中,有效提高了測(cè)量的實(shí)時(shí)性和準(zhǔn)確性,取得了良好的實(shí)驗(yàn)效果。endprint
1 絕對(duì)式編碼器數(shù)據(jù)采集
1.1 SSI通信協(xié)議
SSI接口絕對(duì)式編碼器利用兩對(duì)差分信號(hào)線傳輸數(shù)據(jù):一對(duì)為數(shù)據(jù)線Data,另一對(duì)為同步時(shí)鐘線Clock,通過上位機(jī)發(fā)送同步時(shí)鐘線Clock控制采樣過程。SSI接口數(shù)據(jù)傳輸時(shí)序圖如圖1所示。其中[T]為每位數(shù)據(jù)讀取周期,[t1]為編碼器發(fā)送數(shù)據(jù)延遲時(shí)間,[t2]為數(shù)據(jù)發(fā)送接收后數(shù)據(jù)線低電平保持時(shí)間。在編碼器沒有數(shù)據(jù)傳輸時(shí),時(shí)鐘線和數(shù)據(jù)線均為高電平。數(shù)據(jù)傳輸起始位為時(shí)鐘信號(hào)第一個(gè)下降沿,當(dāng)檢測(cè)到時(shí)鐘下降沿時(shí),編碼器開始計(jì)算位置值將其保存在緩沖區(qū),在時(shí)鐘信號(hào)上升沿時(shí)將編碼器碼值最高位MSB發(fā)送到數(shù)據(jù)線。在編碼器碼值解碼時(shí)需要注意數(shù)據(jù)發(fā)送的延時(shí)時(shí)間[t1,][t1<]350 ns。經(jīng)過25個(gè)周期后,編碼器碼值從最高位到最低位依次發(fā)送到數(shù)據(jù)線。當(dāng)編碼器數(shù)據(jù)最低位LSB發(fā)送后,數(shù)據(jù)線將保持一段時(shí)間低電平[t2,][t2]時(shí)間為13 μs,此時(shí)需要將時(shí)鐘線拉高,若在[t2]時(shí)間檢測(cè)到時(shí)鐘線的下降沿,會(huì)使緩沖區(qū)的數(shù)據(jù)再次發(fā)送到數(shù)據(jù)線。當(dāng)時(shí)鐘線高電平持續(xù)時(shí)間大于[t2]時(shí),則認(rèn)為當(dāng)前數(shù)據(jù)傳輸完畢,待再次檢測(cè)到時(shí)鐘下降沿時(shí),開始發(fā)送新的數(shù)據(jù)。
1.2 數(shù)據(jù)采集
根據(jù)SSI接口通信協(xié)議特點(diǎn),F(xiàn)PGA讀取編碼器碼值利用有限狀態(tài)機(jī)實(shí)現(xiàn),能夠準(zhǔn)確控制時(shí)序 [4?5],有限狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換圖如圖2所示。
在系統(tǒng)復(fù)位或編碼器碼值讀取結(jié)束時(shí)為State0,即空閑狀態(tài),此時(shí)時(shí)鐘信號(hào)保持高電平,等待接收數(shù)據(jù)讀取的使能信號(hào)。當(dāng)接收到采樣使能信號(hào)Enable時(shí)狀態(tài)機(jī)進(jìn)入State1狀態(tài),State1狀態(tài)發(fā)送數(shù)據(jù)讀取的起始位信號(hào),時(shí)鐘線產(chǎn)生周期為[T2]的低電平信號(hào),觸發(fā)編碼器發(fā)送編碼器位置數(shù)據(jù),此時(shí)編碼器將數(shù)據(jù)存儲(chǔ)在緩沖區(qū)。當(dāng)時(shí)鐘線低電平時(shí)間達(dá)到[T2]時(shí),狀態(tài)機(jī)進(jìn)入State2狀態(tài)讀取編碼器碼值數(shù)據(jù)。State2狀態(tài)需要產(chǎn)生25個(gè)讀取周期[T]的時(shí)鐘激勵(lì)信號(hào),為了讀取數(shù)據(jù)的穩(wěn)定性,本文在讀取周期[T]的下降沿做100 ns延時(shí)后讀取數(shù)據(jù),確保數(shù)據(jù)的穩(wěn)定性。當(dāng)Size信號(hào)為25時(shí),即依次讀取25位數(shù)據(jù)后,狀態(tài)機(jī)進(jìn)入State3狀態(tài),此時(shí)將時(shí)鐘線拉高,大于數(shù)據(jù)傳輸結(jié)束后低電平保持時(shí)間[t2,]作為當(dāng)前編碼器位置數(shù)據(jù)傳輸完成的結(jié)束信號(hào)。當(dāng)高電平保持時(shí)間大于[t2]時(shí),狀態(tài)機(jī)進(jìn)入State4狀態(tài),此狀態(tài)用于完成編碼器碼值的轉(zhuǎn)換。因?yàn)榇诵吞?hào)編碼器輸出碼值為格雷碼,格雷碼具有任意兩個(gè)相鄰位其輸出的格雷碼碼值只有一位不同的特點(diǎn),這種輸出格式也有效提高了絕對(duì)式編碼器數(shù)據(jù)輸出的穩(wěn)定性。根據(jù)格雷碼和二進(jìn)制碼的對(duì)應(yīng)關(guān)系,利用向右異或法將格雷碼轉(zhuǎn)換為二進(jìn)制碼。若二進(jìn)制的格雷碼為[Gn-1Gn-2…G2G1G0,]所對(duì)應(yīng)的普通二進(jìn)制碼值為[Bn-1Bn-2…B2B1B0]。其最高位對(duì)應(yīng)關(guān)系見式(1),其他位對(duì)應(yīng)關(guān)系見式(2)。
[Bn-1=Gn-1] (1)
[Bi-1=Gi-1⊕Bi, i=1,2,…,n-1] (2)
當(dāng)格雷碼向二進(jìn)制碼轉(zhuǎn)換完成時(shí),狀態(tài)機(jī)進(jìn)入State5狀態(tài),此狀態(tài)生成編碼器碼值讀取轉(zhuǎn)換完成的Int信號(hào),用于觸發(fā)DSP讀取編碼器碼值數(shù)據(jù)。當(dāng)產(chǎn)生Int信號(hào)后狀態(tài)機(jī)進(jìn)入State0狀態(tài),等待下一次讀取使能信號(hào),進(jìn)行新周期碼值讀取。
2 非線性跟蹤微分器原理
文獻(xiàn)[6]針對(duì)從非連續(xù)信號(hào)或者帶有噪聲干擾的采集信號(hào)中獲取連續(xù)信號(hào)及其微分信號(hào)的問題,給出了非線性跟蹤微分器(NTD)理論。非線性跟蹤微分器的結(jié)構(gòu)可表述為:對(duì)該結(jié)構(gòu)輸入一個(gè)信號(hào)[v(t)],它將輸出[z1]和[z2]兩個(gè)信號(hào),其中[z1]信號(hào)跟蹤[v(t)]的變化,而[z2]則是[z1]的微分信號(hào)。當(dāng)[z1]信號(hào)快速跟蹤輸入信號(hào)[v(t)]時(shí),[z2]信號(hào)即可作為輸入信號(hào)[v(t)]的“近似微分”。非線性跟蹤微分器定理具有如下定義,若系統(tǒng):
[z1(t)=z2(t)z2(t)=fz1(t),z2(t)] (3)
的任意解均能滿足:[z1(t)→0,][z2(t)→0][(t→∞),]則對(duì)于任意有界可積函數(shù)[v(t)]和任意的時(shí)間常數(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)]的廣義導(dǎo)數(shù)。若把式(4)作為非線性跟蹤微分器,則由式(4)得到的[x1(t)]和[x2(t)]分別是在平均收斂和弱收斂意義下對(duì)原函數(shù)及其導(dǎo)數(shù)的光滑逼近,即狀態(tài)[x1(t)]和[x2(t)]分別跟蹤輸入信號(hào)及其微分。為了應(yīng)用于實(shí)際工程,NTD的離散形勢(shì)表述如下[7]:
[x1(k+1)=x1(k)+T?x2(k)x2(k+1)=x2(k)+T?fste(k),x2(k),R,h] (6)
式中:[T]為積分步長(zhǎng);[e(k)=x1(k)-v(k)]為NTD對(duì)輸入變量[v(k)]誤差的估計(jì)值;[R]為速度因子,影響跟蹤的響應(yīng)時(shí)間;[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(?)]為符號(hào)函數(shù);[δ=Rh;δ1=δh;y(k)=e(k)+h?x2(k)。]endprint
根據(jù)上述NTD的離散化公式可知,離散型NTD只有速度因子[R]和濾波因子[h]兩個(gè)調(diào)節(jié)參數(shù),增加速度因子和濾波因子可以提高響應(yīng)速度和濾波效果。但隨著增加濾波因子來提高噪聲抑制能力的同時(shí),也會(huì)帶來一定的相位延遲,由此帶來的相位延遲問題可采用預(yù)報(bào)補(bǔ)償?shù)姆椒ㄟM(jìn)行相應(yīng)補(bǔ)償[8]。將濾波后的跟蹤信號(hào)加上獲取的微分信號(hào)后乘以預(yù)報(bào)步長(zhǎng)作為輸入信號(hào)的逼近信號(hào):
[x=x1+t?T?x2] (10)
式(10)即為經(jīng)過補(bǔ)償后的輸出信號(hào),式中[t]為預(yù)報(bào)步長(zhǎng)。該方法參數(shù)整定方便,算法簡(jiǎn)單,計(jì)算量小,適合在實(shí)際工程中應(yīng)用[9?10]。
3 NTD仿真分析
通過對(duì)非線性跟蹤微分器理論分析和離散化推導(dǎo)可知,該模型可用于對(duì)輸入信號(hào)的速度測(cè)量,對(duì)受噪聲污染的信號(hào)進(jìn)行濾波處理。本文為驗(yàn)證NTD模型在測(cè)速和濾波中的應(yīng)用效果,利用Matlab/Simulink對(duì)NTD模型進(jìn)行建模仿真分析。NTD階躍響應(yīng)曲線如圖3所示。
由圖3可知,非線性跟蹤微分器模型能夠?qū)斎氲碾A躍信號(hào)實(shí)現(xiàn)快速無超調(diào)跟蹤。隨著速度因子的增加,響應(yīng)時(shí)間明顯減少。
圖4和圖5為對(duì)正弦信號(hào)跟蹤仿真圖。當(dāng)輸入為正弦信號(hào)時(shí),速度信號(hào)為余弦信號(hào)。根據(jù)仿真圖可知,該模型能夠?qū)斎胄盘?hào)快速跟蹤,并準(zhǔn)確地估計(jì)其微分信號(hào)。從圖5中可以看出,其他系數(shù)不變只增加濾波因子,當(dāng)濾波因子達(dá)到一定數(shù)值時(shí),跟蹤信號(hào)會(huì)產(chǎn)生相位延遲現(xiàn)象,利用本文提到的方法進(jìn)行相位補(bǔ)償,可以有效地減少因延遲造成的誤差,補(bǔ)償后的仿真圖如圖6所示,該方法可以解決因?yàn)V波因子過大而帶來的相位延遲問題。
圖7為對(duì)受噪聲污染信號(hào)濾波后與原信號(hào)誤差仿真圖,由圖7可以看出當(dāng)濾波因子為0.006時(shí),濾波后信號(hào)與原信號(hào)的誤差在0.3左右,增加濾波因子,當(dāng)其達(dá)到0.02時(shí),經(jīng)過相位補(bǔ)償后,濾波后信號(hào)與原信號(hào)的誤差基本保持在0.2。通過改變?yōu)V波因子,并做相應(yīng)的相位補(bǔ)償,可以有效改善NTD模型對(duì)噪聲的抑制能力。
4 實(shí)驗(yàn)驗(yàn)證
通過建模仿真分析可知,利用NTD模型提取速度信號(hào)具有可行性。為了檢驗(yàn)NTD模型測(cè)速的實(shí)際應(yīng)用效果,利用某望遠(yuǎn)鏡轉(zhuǎn)臺(tái)做了方位軸的速度測(cè)試。實(shí)驗(yàn)測(cè)試時(shí),將伺服轉(zhuǎn)臺(tái)調(diào)為定速工作模式,速度值定為0.05 (°)/s。首先利用傳統(tǒng)的后項(xiàng)差分法根據(jù)采集到的編碼器位置數(shù)據(jù)計(jì)算出轉(zhuǎn)臺(tái)速度信息;其次不改變?nèi)魏慰刂茀?shù)的情況下利用NTD模型濾波估計(jì)速度值;最后對(duì)采用以上兩種方法測(cè)得的速度值進(jìn)行對(duì)比,如圖8,圖9所示。
由圖可知,當(dāng)轉(zhuǎn)臺(tái)以較低速運(yùn)行時(shí),采用傳統(tǒng)的后項(xiàng)差分測(cè)速法速度波動(dòng)較大,利用NTD模型能夠準(zhǔn)確估計(jì)速度信號(hào),波動(dòng)范圍更集中在設(shè)定值周圍,相比后項(xiàng)差分測(cè)速法能夠獲取更準(zhǔn)確的速度信息。對(duì)上位機(jī)采集到的數(shù)據(jù)處理后發(fā)現(xiàn),速度波動(dòng)方差從原來的9.15 (″)/s降為5.69 (″)/s。所以,使用NTD模型進(jìn)行濾波測(cè)速,能夠獲取更加穩(wěn)定的速度信息,有效提高了轉(zhuǎn)臺(tái)伺服控制系統(tǒng)的低速性能。
圖8 差分測(cè)速
圖9 NTD濾波測(cè)速
5 結(jié) 論
本文給出基于FPGA的SSI接口絕對(duì)式編碼器碼值讀取方案,能夠準(zhǔn)確讀取絕對(duì)式編碼器碼值,將NTD理論應(yīng)用于速度測(cè)量中,根據(jù)編碼器位置采集數(shù)據(jù)準(zhǔn)確快速地估計(jì)速度信號(hào)。此方法也可用于受噪聲干擾信號(hào)的濾波處理中,減少噪聲干擾的負(fù)面影響。NTD模型不依賴對(duì)象模型,可調(diào)參數(shù)只有速度因子和濾波因子兩個(gè)參數(shù),通過改變速度因子和濾波因子有效調(diào)節(jié)響應(yīng)時(shí)間和抑制噪聲干擾,調(diào)節(jié)方法簡(jiǎn)單,易于在工程中實(shí)現(xiàn)。實(shí)驗(yàn)表明,該方案能夠準(zhǔn)確讀取SSI接口絕對(duì)式編碼器碼值,根據(jù)采集到的碼值信息準(zhǔn)確估計(jì)速度信息,當(dāng)轉(zhuǎn)臺(tái)以0.05 (°)/s運(yùn)行時(shí),測(cè)得的速度波動(dòng)方差降低了3.46 (°)/s,有效改善了轉(zhuǎn)臺(tái)的低速平穩(wěn)性,具有良好的使用效果。
參考文獻(xiàn)
[1] 戴蓉,王高鵬,齊向華.SSI?485轉(zhuǎn)換器的研究與應(yīng)用[J].水利水文自動(dòng)化,2008(2):46?51.
[2] 張琴琴,楊建宏,劉琳.基于DSP的絕對(duì)式光電編碼器串行接口設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,35(14):185?188.
[3] 劉益民,李變俠,車嶸,等.轉(zhuǎn)臺(tái)伺服系統(tǒng)中高精度測(cè)速方法的研究與實(shí)現(xiàn)[J].科學(xué)技術(shù)與工程,2007,7(8):1732?1734.
[4] 時(shí)旭,付成偉.基于FPGA的CAN總線通信系統(tǒng)的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2015,38(22):59?61.
[5] 葛澎,王堃.基于FPGA的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,34(15):161?163.
[6] 韓京清,王偉.非線性跟蹤?微分器[J].系統(tǒng)科學(xué)與數(shù)學(xué),1994,14(2):177?183.
[7] 韓京清,袁露林.跟蹤微分器的離散形式[J].系統(tǒng)科學(xué)與數(shù)學(xué),1999,19(3):268?273.
[8] 武利強(qiáng),林浩,韓京清.跟蹤微分器濾波性能研究[J].系統(tǒng)仿真學(xué)報(bào),2004,16(14):651?653.
[9] 朱承元,楊滌,荊武興.跟蹤微分器參數(shù)與輸入輸出信號(hào)幅值頻率關(guān)系[J].電機(jī)與控制學(xué)報(bào),2005,9(4):376?379.
[10] 黃一,張文革.自抗擾控制器的發(fā)展[J].控制理論與應(yīng)用,2002,19(4):485?492.