本發(fā)明提出了一種新的雷達碼盤方位的計算方法,該方法可以有效提高方位向采用機械掃描雷達的方位精度。
背景技術(shù):
檢測并給出目標的方位信息是雷達的基本功能。對于方位上采用機械掃描的雷達,目標的方位信息是通過方位絕對編碼加上角誤差得到的。方位絕對編碼由碼盤發(fā)送的清零脈沖,增量脈沖a和增量脈沖b通過計數(shù)得到,通常他們的時序關(guān)系如圖1所示。當增量脈沖a相位超前增量脈沖b四分之一周期時,雷達正轉(zhuǎn);當增量脈沖a相位落后增量脈沖b四分之一周期時,雷達反轉(zhuǎn)。標準的增量脈沖都是占空比為50%的方波信號。碼盤會在雷達轉(zhuǎn)過一圈發(fā)送1個清零脈沖和固定個數(shù)的增量脈沖,常見的增量脈沖個數(shù)為4096。
常規(guī)的絕對編碼計算方法是:清零脈沖上升沿到來,絕對編碼清零。當增量脈沖a的上升沿到來時,判斷當前增量脈沖b的值,如果b=0,則編碼值加1;如果b=1,則編碼值減1。以增量脈沖個數(shù)4096為例,編碼值的變化范圍在0到4095之間,相當于將一周360度的范圍平均分成4096份,每一份代表一個絕對編碼值。
常規(guī)的絕對編碼計算方法精度較低,并且最大的缺點是:當出現(xiàn)編碼計算錯誤時,沒有自糾錯能力。由于增量脈沖往往會受到干擾出現(xiàn)毛刺,導(dǎo)致增量脈沖不再是占空比為50%的標準方波,假如圖1(a)中的k處出現(xiàn)了一個能被時鐘采到毛刺,編碼值就會誤減1,一直到下一個清零脈沖到來才能重新正確計算編碼。這樣就會導(dǎo)致錯誤的方位信息。
技術(shù)實現(xiàn)要素:
要解決的技術(shù)問題
本發(fā)明的目的在于針對常規(guī)方位絕對編碼計算方法的不足,在雷達轉(zhuǎn)動一圈增量脈沖個數(shù)不變的前提下,提出一種高精度的,具有自糾錯能力的絕對編碼計算方法,以提高雷達在方位向的精度。
技術(shù)方案
一種高精度雷達碼盤方位的計算方法,其特征在于步驟如下:
步驟1:設(shè)置狀態(tài)機的四種不同狀態(tài):state1,state2,state3,state4;設(shè)置絕對編碼值m的位寬為n+2,其中n與碼盤在雷達轉(zhuǎn)動一圈發(fā)送的增量脈沖個數(shù)有關(guān),碼盤在雷達轉(zhuǎn)動一圈發(fā)送的增量脈沖個數(shù)可以表示為2的n次方;
步驟2:當清零脈沖上升沿到來時,令工作狀態(tài)state=state1,絕對編碼值m=0;
步驟3:在時鐘上升沿到來時,判斷工作狀態(tài)state:
如果state=state1,在工作狀態(tài)為state1的情況下判斷c值,當c=11,此時再判斷d的值:如果d=10,則m=m+1,state=state2;如果d=01,則m=m-1,state=state2;當c不等于11或者c=11情況下d不是10或01,保持m=0,state=state1;所述的c為增量脈沖a和增量脈沖b按位拼成一個2比特數(shù),即c={a,b},將c延時兩個時鐘周期記為d;
如果state=state2,在工作狀態(tài)為state2的情況下判斷c值,當c=01,m=m+1,state=state3;當c=10,m=m-1,state=state3;其他情況都保持m=m,state=state2;
如果state=state3,在工作狀態(tài)為state3的情況下判斷c值,當c=00,此時再判斷d的值,如果d=01,則m=m+1,state=state4;如果d=10,則m=m-1,state=state4;當c不等于00或者c=00情況下d不是01或10,保持m=m,state=state3;
如果state=state4,在工作狀態(tài)為state4的情況下判斷c的值,當c=10,m=m+1,state=state1;當c=01,m=m-1,state=state1;其他條件保持m=m,state=state4。
有益效果
本發(fā)明提出的一種高精度雷達碼盤方位的計算方法,由于充分利用了增量脈沖a和增量脈沖b拼成的2進制數(shù)c在雷達正轉(zhuǎn)和反轉(zhuǎn)下的變化規(guī)律,在一個完整的增量脈沖周期有4次加1(正轉(zhuǎn))或減1(反轉(zhuǎn))運算,使得雷達在方位向的絕對編碼精度能夠提高4倍,并且在增量脈沖出現(xiàn)毛刺時有很好的糾錯能力。
附圖說明
圖1是雷達在正轉(zhuǎn)和反轉(zhuǎn)時清零脈沖和兩個增量脈沖關(guān)系示意圖;(a)雷達正向轉(zhuǎn)動;(b)雷達反向轉(zhuǎn)動
圖2是本發(fā)明的實現(xiàn)流程圖;
具體實施方式
現(xiàn)結(jié)合實施例、附圖對本發(fā)明作進一步描述:
實現(xiàn)本發(fā)明的技術(shù)思路是:首先設(shè)置狀態(tài)機的四種不同狀態(tài):state1,state2,state3,和state4,將增量碼a和增量碼b按位拼成一個2比特數(shù)c={a,b},同時將c延時兩個時鐘周期記為d,當清零脈沖上升沿到來時,絕對編碼值m清零。時鐘上升沿到來時,判斷當前c的值,如果c值符合10,11,01,00,10……的變化規(guī)律,則絕對編碼值m在每次c值發(fā)生變化時加1,而如果c值符合01,11,10,00,01……的變化規(guī)律,則絕對編碼值m在每次c值發(fā)生變化時減1。具體在fpga中實現(xiàn),參照圖2,本發(fā)明的實現(xiàn)步驟如下:
步驟1,參數(shù)設(shè)置:
1a)狀態(tài)個數(shù)設(shè)置的準則:增量脈沖a和增量脈沖b拼成的二進制數(shù)c,在雷達正向轉(zhuǎn)動時變化規(guī)律為10,11,01,00,10……,反向轉(zhuǎn)動時的變化規(guī)律為01,11,10,00,01……。不論正轉(zhuǎn)反轉(zhuǎn),總是00,01,10,11中的一種,因此設(shè)置state1,state2,state3,state4四種不同狀態(tài)能夠表示所有情況,例如:state1=00,state2=01,state3=10,state4=11或者state1=0001,state2=0010,state3=0100,state4=1000。
1b)絕對編碼位寬設(shè)置準則:絕對編碼位的寬取決于碼盤在雷達轉(zhuǎn)動一圈發(fā)送的增量脈沖的個數(shù)。通常情況下,碼盤在雷達轉(zhuǎn)動一圈發(fā)送的增量脈沖個數(shù)可以表示為2的n次方,那么絕對編碼的位寬取n+2。以一圈4096個增量脈沖為例,則n=12,絕對編碼位寬取14。
步驟2,初次上電初始化工作狀態(tài)和絕對編碼值:
將清零脈沖p延時一個時鐘周期,記為p0,判斷當p=1&&p0=0時,表明清零脈沖的上升沿到來。初次上電到清零脈沖上升沿到來之前這段時間內(nèi),編碼值m和當前狀態(tài)state都是未定值。當清零脈沖上升沿到來時,令m=0,工作狀態(tài)state=state1,進入步驟3,開始狀態(tài)機的邏輯判斷。
步驟3,工作狀態(tài)state=state1:
如果c=11,此時再判斷d的值。如果d=10,則m=m+1,state=state2;如果d=01,則m=m-1,state=state2。其他條件(當c不等于11或者c=11情況下d不是10或01)保持m=0,state=state1。
步驟4,工作狀態(tài)state=state2:
若c=01,則m=m+1,state=state3;若c=10,則m=m-1,state=state3。其他條件保持m=m,state=state2;
步驟5,工作狀態(tài)state=state3:
如果c=00,此時再判斷d的值。若d=01,則m=m+1,state=state4;若d=10,則m=m-1,state=state4。其他條件(當c不等于00或者c=00情況下d不是01或10)保持m=m,state=state3;
步驟6,工作狀態(tài)state=state4:
若c=10,則m=m+1,state=state1;若c=01,則m=m-1,state=state1。其他條件保持m=m,state=state4。
上述所有判斷都是在時鐘上升沿到來時做出的。
由于充分利用了兩個增量碼的組合數(shù)c在完整周期內(nèi)的變化規(guī)律,使得原來只有在增量脈沖上升沿到來時進行一次加1(正轉(zhuǎn))或減1(反轉(zhuǎn))運算變成了4次加1(正轉(zhuǎn))或減1(反轉(zhuǎn))運算,將方位向的編碼精度提高為常規(guī)方法的4倍。并且由于狀態(tài)機的邏輯設(shè)計對增量碼出現(xiàn)的毛刺有很強的糾錯能力,如:圖1(a)中的k處出現(xiàn)了一個能被時鐘采到的毛刺,常規(guī)計算方法會誤減1,并且這個錯誤會一直持續(xù)到下一個清零脈沖到來。而本發(fā)明中的方法則不會,分析如下:從清零脈沖p到來一直到c=10這段時間,m=0,工作狀態(tài)state=state1。當c從10跳變到11時,編碼進行一次加1運算,工作狀態(tài)state跳變一次,m=1,state=state2,之后維持當前狀態(tài)。當c從11跳變到01時,編碼進行一次加1運算,工作狀態(tài)state跳變一次,m=2,state=state3,如果在k點采到一個毛刺,即此時c=11,而根據(jù)狀態(tài)機設(shè)計,只有在c=00時,編碼值m才會改變,因此,雖然此時增量脈沖有毛刺,但并不影響編碼計算結(jié)果。上述分析表明,本發(fā)明的計算方法對增量脈沖的毛刺有很強的糾錯能力。