本發明涉及伺服控制技術領域,特別涉及一種編碼器的濾波方法及裝置。
背景技術:
在伺服電機控制中,編碼器是電機轉子的位置和轉速的檢測裝置,對于伺服系統的閉環控制至關重要。常見的編碼器可以分為增量型編碼器和絕對值型編碼器。絕對值型編碼器就是對應一圈,每個基準的角度發出一個唯一與該角度對應的二進制數值,通過外部記圈器件可以進行多個位置的記錄和測量。絕對值型編碼器分辨率高,控制準確,但是由于其價格較高,所以不能完全取代增量型編碼器。
增量型編碼器就是電機轉子每轉過單位的角度時就發出一個脈沖信號,通常為A相、B相、Z相輸出。其中,Z相為單圈脈沖,即每圈發出一個脈沖。由于增量型編碼器單圈分辨率較低,所以導致電機在運行過程中容易產生抖動,特別是在低速運行的情況下。為了消除電機低速抖動,現在比較常用的濾波方法比如有三二濾波。該方法是取相鄰的三個點,如果兩個點為高則脈沖輸出高,如果為低則輸出低。然而,本申請的發明人發現:這種方法可以濾掉比較窄的脈沖,但是對于稍寬的脈沖的話,該方法就不能濾除。因此,現有技術中,對于使用增量型編碼器的伺服控制系統,仍然無法有效消除電機低速抖動的問題。
技術實現要素:
本發明部分實施方式的目的在于提供一種編碼器的濾波方法及裝置,使得可以有效濾除電機低速抖動時的波形,從而可以提高伺服的控制精度和穩定性。
為解決上述技術問題,本發明的實施方式提供了一種編碼器的濾波方法,包括:檢測電機當前的整體運轉方向;根據電機當前的整體運轉方向將編碼器在即將到來的第一預設時間段內輸出的特定波形濾除;其中所述特定波形為與所述當前的整體運轉方向不相符的波形。
本發明的實施方式還提供了一種編碼器的濾波裝置,包括:檢測模塊,用于檢測電機當前的整體運轉方向;濾波模塊,用于根據電機當前的整體運轉方向將編碼器在即將到來的第一預設時間段內輸出的特定波形濾除;其中所述特定波形為與所述當前的整體運轉方向不相符的波形。
本發明實施方式相對于現有技術而言,由于電機在低速運轉時,容易出現抖動,進而導致編碼器輸出一些反轉波形,而該些反轉波形的存在容易影響伺服的控制精度以及電機運轉的穩定性,并且采用現有的三二濾波方法難以有效濾除該種低速抖動產生的反轉波形,而本實施方式基于電機在運轉過程中通常不會發生加速度突變的情況,通過預先判斷出電機當前的整體運轉方向再對接下來的反轉波形進行濾除,從而可以準確、有效地排除電機低速抖動對伺服控制精度的影響,有利于電機的穩定性。
另外,所述檢測電機當前的整體運轉方向,具體包括:統計當前時刻之前的第二預設時間段內所述電機正向運轉的總時間和反向運轉的總時間;其中,所述第二預設時間段和所述第一預設時間段相連續;根據所述正向運轉的總時間和所述反向運轉的總時間判斷所述電機當前的整體運轉方向。通過統計一段時間內電機正向運轉的總時間和反向運轉的總時間,并根據正向運轉的總時間和反向運轉的總時間,可以準確判斷出電機當前的整體運轉方向。
另外,根據所述正向運轉的總時間和所述反向運轉的總時間判斷所述電機當前的整體運轉方向,具體包括:如果所述正向運轉的總時間與所述反向運轉的總時間之比大于第一預設閾值,則判定所述當前的整體運轉方向為正向運轉;如果所述正向運轉的總時間和所述反向運轉的總時間之比小于第二預設閾值,則判定所述當前的整體運轉方向為反向運轉。由此,可以方便地判斷出電機當前的整體運轉方向。
另外,所述統計當前時刻之前的第二預設時間段內所述電機正向運轉的總時間和反向運轉的總時間,具體包括:在所述第二預設時間段內,根據所述編碼器輸出的A相、B相脈沖的延遲關系判斷所述電機的實際運轉方向;其中所述A相脈沖超前所述B相脈沖四分之一周期時,判定所述電機的實際運轉方向為正向運轉;所述A相脈沖落后所述B相脈沖四分之一周期時,判定所述電機的實際運轉方向為反向運轉;統計所述第二預設時間段內電機的實際運轉方向以及與所述實際運轉方向對應的運轉時長。由此,可以高效地計算出電機當前的實際運轉方向。
另外,所述第二預設時間段為兩個脈沖周期。通過統計兩個脈沖周期內電機正向運轉的總時間和反向運轉的總時間,從而可以準確判斷電機當前的整體運轉方向。
另外,當所述第二預設時間段的起始時間為所述電機的初始運行時間時,在所述第二預設時間段內,根據所述電機的初始運轉方向,將編碼器在所述第二預設時間段內實際輸出的特定波形濾除;其中,所述特定波形為與所述初始運轉方向不相符的波形。從而,可以消除電機在初始運行時間出現抖動時對伺服控制精度的影響。
附圖說明
圖1是根據本發明第一實施方式編碼器的濾波方法的流程圖;
圖2是根據本發明第二實施方式編碼器的濾波方法的流程圖;
圖3是根據本發明第二實施方式編碼器的濾波方法中電機正向運轉時編碼器輸出的A相、B相脈沖的轉換順序示意圖;
圖4是根據本發明第二實施方式編碼器的濾波方法中電機反向運轉時編碼器輸出的A相、B相脈沖的轉換順序示意圖;
圖5是根據本發明第二實施方式編碼器的濾波方法的濾波示意圖;
圖6是根據本發明第三實施方式編碼器的濾波裝置的結構示意圖;
圖7是根據本發明第四實施方式編碼器的濾波裝置中檢測模塊的結構示意圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明的各實施方式進行詳細的闡述。然而,本領域的普通技術人員可以理解,在本發明各實施方式中,為了使讀者更好地理解本申請而提出了許多技術細節。但是,即使沒有這些技術細節和基于以下各實施方式的種種變化和修改,也可以實現本申請所要求保護的技術方案。
本發明的第一實施方式涉及一種編碼器的濾波方法,舉例而言,該濾波方法可以應用于增量型編碼器的濾波。
如圖1所示,該濾波方法包括如下步驟:
步驟102:檢測電機當前的整體運轉方向。
步驟104:根據電機當前的整體運轉方向將編碼器在即將到來的第一預設時間段內輸出的特定波形濾除。其中特定波形為與當前的整體運轉方向不相符的波形。
通常,在電機運行過程中,不會發生加速度突變,電機不會突然發生反轉,即電機的整體運轉方向是穩定的。所謂電機的整體運轉方向,對于增量型編碼器而言,例如可以是指若干個脈沖周期內電機的運轉方向。因此,在步驟102中,檢測電機當前的整體運轉方向,即可作為電機下一時間段內的運轉方向。從而,在步驟104中,當在第一預設時間段內,根據編碼器輸出的脈沖,實際判斷出電機瞬時的運轉方向與電機當前的整體運轉方向相反時,不輸出該運轉方向相反的瞬時脈沖。比如說,電機當前的整體運轉方向是正向運轉,當前時刻為t,在t時刻之后的第一個脈沖周期內,例如在t1時刻至t2時刻之間,檢測到一個A相脈沖P1,且根據t1時刻脈沖P1的跳變關系判斷出電機的實際運轉方向為反向運轉,此時,在第一預設時間段內,則不輸出該脈沖P1,即當t1時刻之前的A相脈沖為低時,在t1至t2時刻之間繼續輸出低,或者,當t1時刻之前的A相脈沖為高時,在t1至t2時刻之間繼續輸出高。
本實施方式與現有技術相比,利用電機運行時電機運轉方向不會發生突變的規律,根據檢測出的電機當前的整體運轉方向,將即將到來的第一預設時間段內的,與當前的整體運轉方向相反的波形濾除,從而使得伺服控制系統可以在消除電機低速抖動的影響的前提下對電機提供更為精確的控制,有利于提高電機運轉的穩定性。
本發明的第二實施方式涉及一種編碼器的濾波方法。第二實施方式在第一實施方式的基礎上做出改進,主要改進之處在于:在第二實施方式中,進一步限定了電機當前的整體運轉方向的檢測的方法,使得檢測到的電機當前的整體運轉方向較為準確。
如圖2所示,本實施方式的濾波方法包括如下步驟:
步驟202:檢測電機當前的整體運轉方向。
步驟202中,包括如下子步驟:
子步驟2022:統計當前時刻之前的第二預設時間段內電機正向運轉的總時間和反向運轉的總時間。
子步驟2022中,第二預設時間段和第一預設時間段在時間上相連續。
為了準確地判斷電機當前的整體運轉方向,需要合理設定第二預設時間段的時長,舉例而言,第二預設時間段可以設定為兩個脈沖周期,即在每兩個脈沖周期內,分別統計電機正向運轉的總時間和反向運轉的總時間。第一預設時間段可以為一個脈沖周期。這樣,在當前時刻,由當前時刻起,取早于當前時刻的兩個脈沖周期作為第二預設時間段,由當前時刻起,取下一個脈沖周期作為第一預設時間段。子步驟2022中,統計當前時刻之前的第二預設時間段內電機正向運轉的總時間和反向運轉的總時間具體包括:
在第二預設時間段內,根據編碼器輸出的A相、B相脈沖的延遲關系判斷電機的實際運轉方向。以增量型編碼器為例,增量型編碼器輸出A相、B相、Z相脈沖,其中,當A相脈沖超前B相脈沖四分之一周期時,判定電機的實際運轉方向為正向運轉。當A相脈沖落后B相脈沖四分之一周期時,判定電機的實際運轉方向為反向運轉。根據該延遲關系,可以得到如圖3、圖4所示,電機正向運轉、反向運轉時,A相脈沖和B相脈沖的轉換順序。根據圖3、圖4所示的A相脈沖、B相脈沖的轉換順序,可以在編碼器中預設脈沖轉換與電機實際運轉方向的對應關系,該對應關系如表一所示。
表一
再根據表一所示的對應關系可以判斷出電機瞬時的實際運轉方向。在判斷出電機的實際運轉方向之后,可以統計與實際運轉方向對應的運轉時長,本實施方式中,統計第二預設時間段內電機的實際運轉方向以及與實際運轉方向對應的運轉時長。例如,當A相脈沖或者B相脈沖發生跳變時,開始計時,當A相脈沖和B相脈沖再次發生跳變時,可以統計出兩次跳變之間的時長,并且可以判斷出兩次跳變之間的電機的實際運轉方向。
子步驟2024:根據正向運轉的總時間和反向運轉的總時間判斷電機當前的整體運轉方向。
具體而言,如果正向運轉的總時間與反向運轉的總時間之比大于第一預設閾值,則判定當前的整體運轉方向為正向運轉。如果正向運轉的總時間和反向運轉的總時間之比小于第二預設閾值,則判定當前的整體運轉方向為反向運轉。第一預設閾值和第二預設閾值可以根據實際需要進行設定。例如,當電機是由反向運轉向正向運轉轉換時,該第一預設閾值例如可以設置為20%,由于電機低速抖動的時間非常短,所以電機由反向運轉切向正向運轉時,由抖動而導致的正向運轉時間通常不會大于20%。同樣,當反向運轉的總時間遠大于正向運轉的總時間時,即正向運轉的總時間和反向運轉的總時間之比小于第二預設閾值,第二預設閾值例如為5%,而5%這個數值可以根據電機低速運轉產生抖動的經驗得出,則判斷出電機的運轉方向為反向運轉。
步驟204:根據電機當前的整體運轉方向將編碼器在即將到來的第一預設時間段內輸出的特定波形濾除。
值得一提的是,本實施方式中,當第二預設時間段的起始時間為電機的初始運行時間時,在第二預設時間段內,還可以根據電機的初始運轉方向,將編碼器在第二預設時間段內實際輸出的特定波形濾除。該特定波形為與初始運轉方向不相符的波形。
結合圖5所示,對本實施方式的濾波方法進行舉例說明如下:
圖5中,Direct示出了電機的實際運轉方向,包括電機發生抖動時的運轉方向,其中,當Direct為高時,表示電機正向運轉,當Direct為低時,表示電機反向運轉。Real_A、Real_B分別為編碼器實際輸出的A相、B相脈沖,Filter_A、Filter_B為采取本實施方式的濾波方法濾波后輸出的波形。如表二所示,為根據Real_A、Real_B的輸出以及表一確定出的電機的實際運轉方向Direct。
表二
由圖5可知,在t0至t1的脈沖周期內,A相脈沖出現了一個反轉,實際為電機出現了一次抖動,在t1至t2的脈沖周期內,B相脈沖出現了一個反轉,實際為電機出現了一次抖動。由于抖動造成的反轉時間并不會很長,所以t0至t2兩個脈沖周期內電機正向運轉的總時間遠大于反向運轉的總時間,所以在t2時刻,可以判斷出,電機當前的整體運轉方向為正向運轉,接下來,在t2至t3時間段內,當電機出現抖動時,出現了一個反轉脈沖,由于當前時間段內電機的整體運轉方向為正向,所以可以輸出濾除掉該反轉脈沖的波形給伺服系統,從而實現對于電機的精確控制,提高電機運行的穩定性。
上面各種方法的步驟劃分,只是為了描述清楚,實現時可以合并為一個步驟或者對某些步驟進行拆分,分解為多個步驟,只要包含相同的邏輯關系,都在本專利的保護范圍內;對算法中或者流程中添加無關緊要的修改或者引入無關緊要的設計,但不改變其算法和流程的核心設計都在該專利的保護范圍內。
本發明第三實施方式涉及一種編碼器的濾波裝置。
如圖6所示,該濾波裝置6包括:
檢測模塊60,用于檢測電機當前的整體運轉方向。
濾波模塊61,用于根據電機當前的整體運轉方向將編碼器在即將到來的第一預設時間段內輸出的特定波形濾除。其中特定波形為與當前的整體運轉方向不相符的波形。
通常,在電機運行過程中,不會發生加速度突變,電機不會突然發生反轉,即電機的整體運轉方向是穩定的。所謂電機的整體運轉方向,對于增量型編碼器而言,例如可以是指若干個脈沖周期內電機的運轉方向。因此,可以將檢測模塊60檢測到的電機當前的整體運轉方向,作為電機下一時間段內的運轉方向。從而,濾波模塊61在第一預設時間段內,根據編碼器輸出的脈沖,實際判斷出電機瞬時的運轉方向與電機當前的整體運轉方向相反時,可以輸出將該脈沖濾除后的波形。
本實施方式與現有技術相比,利用電機運行時電機運轉方向不會發生突變的規律,根據檢測出的電機當前的整體運轉方向,將即將到來的第一預設時間段內的,與當前的整體運轉方向相反的波形濾除,從而使得伺服控制系統可以在消除電機低速抖動的影響的前提下對電機提供更為精確的控制,有利于提高電機運轉的穩定性。
不難發現,本實施方式為與第一實施方式相對應的裝置實施例,本實施方式可與第一實施方式互相配合實施。第一實施方式中提到的相關技術細節在本實施方式中依然有效,為了減少重復,這里不再贅述。相應地,本實施方式中提到的相關技術細節也可應用在第一實施方式中。
值得一提的是,本實施方式中所涉及到的各模塊均為邏輯模塊,在實際應用中,一個邏輯單元可以是一個物理單元,也可以是一個物理單元的一部分,還可以以多個物理單元的組合實現。此外,為了突出本發明的創新部分,本實施方式中并沒有將與解決本發明所提出的技術問題關系不太密切的單元引入,但這并不表明本實施方式中不存在其它的單元。
本發明第四實施方式涉及一種編碼器濾波裝置。第四實施方式在第三實施方式的基礎上做出改進,主要改進之處在于:在第四實施方式中,對檢測模塊做出了進一步限定,使得檢測到的電機當前的整體運轉方向較為準確。
如圖7所示,第四實施方式的檢測模塊60包括:
運轉時長統計子模塊601,用于統計當前時刻之前的第二預設時間段內電機正向運轉的總時間和反向運轉的總時間。其中,第二預設時間段和第一預設時間段相連續,
整體運轉方向判斷子模塊602,用于根據正向運轉的總時間和反向運轉的總時間判斷電機當前的整體運轉方向。
其中,運轉時長統計子模塊還包括:
實際運轉方向判斷子單元,用于在第二預設時間段內,根據編碼器輸出的A相、B相脈沖的延遲關系判斷電機的實際運轉方向。其中A相脈沖超前B相脈沖四分之一周期時,判定電機的實際運轉方向為正向運轉。A相脈沖落后B相脈沖四分之一周期時,判定電機的實際運轉方向為反向運轉。統計子單元,用于統計第二預設時間段內電機的實際運轉方向以及與實際運轉方向對應的運轉時長。
本實施方式與現有技術相比,可以實時、準確、有效地將電機低速運行時由于抖動產生的異常波形濾除,從而提高伺服系統的控制精度以及電機運行的穩定性。
由于第二實施方式與本實施方式相互對應,因此本實施方式可與第二實施方式互相配合實施。第二實施方式中提到的相關技術細節在本實施方式中依然有效,在第二實施方式中所能達到的技術效果在本實施方式中也同樣可以實現,為了減少重復,這里不再贅述。相應地,本實施方式中提到的相關技術細節也可應用在第二實施方式中。
本領域技術人員可以理解實現上述實施例方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,該程序存儲在一個存儲介質中,包括若干指令用以使得一個設備(可以是單片機,芯片等)或處理器(processor)執行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
本領域的普通技術人員可以理解,上述各實施方式是實現本發明的具體實施例,而在實際應用中,可以在形式上和細節上對其作各種改變,而不偏離本發明的精神和范圍。