西藏宰位餐饮管理有限公司

登錄  |  注冊
河北華利機械配件有限公司

手輪控制式步進電機的數(shù)字倍頻

2014/11/5 14:39:56
        1    引言
        采用手輪驅動步進電機時,經常需要改變手輪和電機的傳動比。當手輪輸出的脈沖頻率小于電機需要的脈沖頻率時,需要對手輪的輸出信號進行倍頻。目前已有多種倍頻方法,如利用鎖相環(huán)電路倍頻。
        步定電機為脈沖驅動,即輸入一個脈沖電機走一步。鎖相環(huán)實現(xiàn)的倍頻是頻率上的加倍,有可能引起脈沖數(shù)目的差錯,從而引起電機移動距離的誤差。
        另外為了保證脈沖個數(shù)的準確,可以采用輸出脈沖序列的方式進行倍頻。此方法每接收到一個輸入脈沖,便輸出一個與倍頻倍數(shù)相同頻率一定的脈沖序列,以達到倍頻的目的。但由于輸出脈沖串的頻率是固定不變的,利用于手輪控制式步進電機時,因手輪輸入頻率不定,在輸入脈沖間隔較長時,會出現(xiàn)較長的零輸出狀態(tài),使輸出不均勻,引起電機的抖動。
        鑒于以上兩種倍頻方法的優(yōu)點與不足,提出了“變頻脈沖串倍頻法”。該方法不僅考慮脈沖頻率,同時考慮脈沖的數(shù)量。它可以用于對速度和移動距離都敏感的場合,保證改變手輪和電機的傳動比時,步進電機移動距離的準確。
        2    變頻脈沖串倍頻法原理
        2.1    變頻脈沖串倍頻法原理
        變頻脈沖串倍頻法通過延遲一個輸入脈沖的變頻脈沖序列輸出實現(xiàn)。每檢驗到一個輸入脈沖,不對其進行倍頻處理,當下一個輸入脈沖到來后,根據兩輸入脈沖的間隔時間(以下稱輸入脈沖周期)確定倍頻脈沖序列的脈沖間隔時間,并輸出前一個輸入脈沖的倍頻脈沖序列。其中脈沖串X為輸入脈沖X對應的倍頻序列。在第一個輸入周期以一定的頻率輸出一個倍頻脈沖序列,以保證脈沖個數(shù)的正確。
        2.2    倍頻脈沖序列脈沖間隔時間的確定
        手輪控制式電機的轉速不定,做倍頻處理需根據手輪轉速的變化而變化。倍頻脈沖序列脈沖間隔時間以延遲一個脈沖的方法來實現(xiàn)。以八倍頻為例,每檢測到一個脈沖輸入,先不作處理,等待下一個輸入脈沖到來,并進行計時,當下一個輸入脈沖到來時,以計時值的八分之一作為倍頻脈沖序列的脈沖時間間隔,輸出一個脈沖序列。
        對輸入脈沖之間的時間間隔計時可以通過對倍頻器系統(tǒng)時鐘(clk)的計數(shù)來實現(xiàn)。倍頻器的系統(tǒng)時鐘設置為2ns,比輸入信號快幾個數(shù)量級,可以達到實際需求。
        以HEDSS的一百線手輪脈沖編碼器為例,根據實驗測量可發(fā)現(xiàn),以手搖動手輪所得到的兩路正交信號的最小周期大致在2ms左右。在一個周期內會出現(xiàn)四個邊緣信號,即邊緣提取信號的周期為0.5ms。在第一個周期內由于沒有前一個周期作參考,倍頻脈沖序列以轉速最快的情況來考慮,設其周期為0.5ms。當手輪輸出正交信號的周期為200ms左右時,手輪轉動很慢,這時,便將其視為單步轉動,而非連續(xù)轉動。即設定若等待50ms后仍然沒有邊緣信號輸入,則視為手輪停止轉動。
        2.3.1    隊列的應用
        在倍頻處理中,每當檢測到一個輸入脈沖,便開始進行計時,并輸出對上一個輸入脈沖進行倍頻的脈沖序列。有時下個輸入脈沖到來時倍頻脈沖序列輸出還未結束,這時便需要進行延遲,等待上一個脈沖序列輸出結束。如果連續(xù)幾個脈沖序列,都在輸出結束前下個輸入脈沖已經到來,便會出現(xiàn)延遲積累,可能輸出一個脈沖序列期間,有多個輸入脈沖,若直接根據計時器中的值進行倍頻序列輸出,便有輸入脈沖被忽略掉。這里,利用一個隊列來對每個輸入脈沖的計時值進行緩存,盡量降低輸入脈沖被忽略的概率。
        2.3.2    隊列長度討論
        手輪轉動處于減速狀態(tài)時,后一個輸入周期大于前一個周期,有足夠的時間進行倍頻序列輸出,不會出現(xiàn)延遲。當手輪轉動處于加速狀態(tài),即每個輸入周期都小于前一個輸入周期時,可能在輸入周期內并不能將前一個輸入脈沖的倍頻序列輸出結束,便會產生延遲。以八倍頻為例,若每個輸入周期小于前一個輸入周期的八分之七,便會產生延遲積累現(xiàn)象,這時便應當利用隊列進行緩存,以保證數(shù)據不丟失。手輪輸入的加速度越大,需要的隊列越長。
        當每個輸入周期等于前一個輸入周期的八分之七時,由50ms的周期(最單步轉動情況)加速到0.5ms(最快情況),需要80個周期左右。以一百線的手輪為例,其每一步輸出一個周期的正交信號,對應有四個邊緣。因而經過二十個以上的步距由靜止均勻加速到最快時,即使不利用隊列也不會出現(xiàn)輸入脈沖被忽略的現(xiàn)象,而若在二十個步距內便達到最快轉速,則必須利用隊列才能避免輸入脈沖的忽略。
        用手控制手輪轉動,速度并非均勻變化,有時會突然增大或突然減小,有可能加速度很大。假設在手輪的三個步距(12個輸入周期)內,便由周期50ms加速到0.5ms,由計算可得出,需要長度為9的隊列才不會出現(xiàn)輸入脈沖的忽略現(xiàn)象。實踐中,由手控制手輪轉動時,即使是突然的加速,三個步距以內也幾乎達不到最快轉速,因而以三個步距加速到最快時的情況來設定隊列的大小,即設置隊列長度為9,在實際應用中可以達到要求。
        3    倍頻器的邏輯實現(xiàn)
        以手輪控制步進電機運動,為了提高手輪和電機的傳動比,首先要利用CPLD對手輪輸出的兩路正交信號進行方向識別及邊緣提取。而后將邊緣提取后的信號利用變頻脈沖串倍頻法進行倍頻,以進一步的提高手輪和電機的傳動比。
        3.1    手輪輸出信號邊緣提取和手輪轉動方向識別
        手輪輸出信號邊緣提取采用移位寄存器和異或門實現(xiàn)。手輪輸出的A、B兩路信號是相位差/2的正交方波。每檢測到A或B的邊緣信號便輸出一個脈沖,從而實現(xiàn)信號的邊緣提取。當手輪控制電機正轉時,在一個周期內A、B信號的狀態(tài)變化為’AB’:’10’->’11’->’01’->’00’(->’10’),反轉時其狀態(tài)變化為’11’->’10’->’00’->’01’(->’11’)。因此,只需要檢驗A、B狀態(tài)的變化,便可檢驗并提取A、B兩信號的邊緣,同時進行方向識別。在t0時刻檢驗到的AB狀態(tài)為’01’,而下一時刻t1所檢驗到的AB狀態(tài)為’11’,根據兩時刻的狀態(tài)變化可以發(fā)現(xiàn)此兩時刻之間為A、B中某一信號的邊緣,并且由于狀態(tài)是由’01’變化為’11’,符合電機反轉時的A、B狀態(tài)變化,從而可以判斷出轉動的方向為反向。
        3.2    變頻脈沖串倍頻法的邏輯實現(xiàn)
        根據手輪的運動情況,將倍頻處理分為兩個進程:周期測量進程(timer)、倍頻脈沖序列輸出進程(output),并利用了一個元件:隊列(queue)。隊列及兩個進程內部邏輯都以狀態(tài)機的形式實現(xiàn)。周期測量進程完成對手輪輸入脈沖邊緣信號周期的測量。分為空閑、計時、處理三個狀態(tài)。加電后,進入“空閑”狀態(tài)。當?shù)谝粋€邊緣信號輸入時,進程切換到“計時”狀態(tài)。若再次檢驗到邊緣信號的下降沿時,進入“處理”狀態(tài);若計時值大于最大等待時間,則進入“空閑狀態(tài)”。“處理”狀態(tài)對計時值進行處理:若隊列“非空非滿”,將計時值插入到隊列中,并將計時器清零;若隊列為“滿”,則拋棄該次計時值,并將計時器清零。完成上述操作后切換到“計時”狀態(tài)。
        倍頻脈沖序列輸出進程進行倍頻序列的輸出。其有四個狀態(tài):定時狀態(tài)、定時器設置狀態(tài)、空閑狀態(tài)、脈沖輸出狀態(tài)。加電后,進入“空閑”狀態(tài)。當隊列不為空時,系統(tǒng)進入“定時器設置”狀態(tài),該狀態(tài)讀取隊列,設置定時器的定時值,并將脈沖計數(shù)器清零。完成定時器設置后,進入定時狀態(tài)。達到定時值時,進入“脈沖輸出”狀態(tài),輸出一個脈沖,并記錄脈沖輸出個數(shù)。若脈沖個數(shù)小于八,則進入“定時”狀態(tài),準備輸出下一個脈沖;若輸出脈沖個數(shù)已達到八個,并且隊列非空,則進入“定時器設置”狀態(tài),開始下一個倍頻脈沖序列的輸出;若輸出脈沖個數(shù)已達到八個,且隊列為空,則進入“空閑”狀態(tài),等待新的手輪邊緣信號的輸入。
        隊列用來緩存脈沖間隔的計時值。隊列控制進程分為“空閑”、“非空非滿”、“滿”、“空”四個狀態(tài)。加電后,隊列控制進程進入“空閑”狀態(tài)。當計時器進入“計時”狀態(tài)時,隊列控制進程始化為“空”狀態(tài)。當隊列中至少有一個數(shù)據時,進入“非空非滿”。隊列中數(shù)據個數(shù)等于對規(guī)定長度時,進入“滿”狀態(tài)。
        4    仿真結果
        采用ALTERA公司的EPM240T100C5芯片,在QuartusII環(huán)境下仿真所得結果:clk為倍頻器的系統(tǒng)時鐘;A、B為手輪輸出的兩路正交信號;Direction為方向標記(Direction=’1’為正向);AB_iterance4為對A、B進行邊緣提取后的邊緣信號;AB_iterance32為對AB_iterance4以變頻脈沖串倍頻法進行八倍頻的輸出;idle_observe為空閑標志(idle_observe=’1’為空閑狀態(tài),即手輪靜止)。倍頻信號零輸出時間較少,仿真達到預期效果。
        5    結論
        基于CPLD的“變頻脈沖串倍頻法”倍頻器以延遲一個輸入脈沖的方式實現(xiàn)。此方法可保證倍頻時步進電機移動距離準確,是較其他倍頻法更適合手輪控制式步進電機的一種數(shù)字倍頻方法。同時,利用此法的倍頻器可以作為數(shù)字齒輪來使用。
        本文創(chuàng)新點:變頻脈沖串倍頻法不僅考慮頻率,同時保證脈沖個數(shù)準確,并利用隊列進行緩存,為時間和脈沖個數(shù)上精度度都較高的數(shù)字倍頻方式。
華利膠木手輪
新晃| 汉川市| 达拉特旗| 建始县| 连城县| 梁河县| 永清县| 忻州市| 阿坝县| 平江县| 连平县| 陇南市| 安福县| 龙州县| 和林格尔县| 仪陇县| 哈巴河县| 洛宁县| 寻甸| 鄂伦春自治旗| 华安县| 望江县| 太仓市| 澄江县| 遂宁市| 桓台县| 醴陵市| 兖州市| 息烽县| 定州市| 越西县| 宁国市| 荣昌县| 安阳市| 建宁县| 横峰县| 视频| 凤庆县| 方城县| 中山市| 江安县|