舵機臨界點鎖位方法和裝置與流程
2023-06-21 16:03:21 4

本發明涉及舵機領域,特別涉及舵機控制。
背景技術:
現有的舵機一般不能實現360度全位置鎖位,這就意味著舵機上存在著較大的鎖位死區,特別是在位置傳感器的角度臨界區域,舵機可能不能正常鎖位。如果目標位置正好在鎖位死區範圍內,則舵機就可能不會在正轉/反轉一個任意角度後鎖位於目標位置,從而導致舵機的應用受到一定的限制。
圖1所示為一個12位數字式磁編碼器坐標圖,圖中直線處為磁編碼器角度跳變點,直線左邊臨近位置值為4095,直線位置值為0,當舵機要鎖位在直線附近位置區域的某一角度時傳統的控制方式可能會使舵機的運動方向出錯或舵機直接失控制。比如想讓舵機鎖位在位置0處,假設起始時舵機已很好的停在了位置0處,當舵機受到一個外界的力使得舵機的實際角度位置由起始的0變為4090時,傳統的偏差計算方式計算出來偏差(-4090)=目標值(0)–當前實際值(4090),在PID控制方法下將會產生一個很激進的響應,同時舵機的運轉方向也可能是錯的,即舵機轉動一整圈才能回到原來的目標位置。
技術實現要素:
為了克服現有技術的不足,本發明的目的在於提供舵機臨界點鎖位方法和裝置,其能解決現有的舵機上存在著較大的鎖位死區,如果目標位置正好在鎖位死區範圍內,則舵機就可能不會在正轉/反轉一個任意角度後鎖位於目標位置,從而導致舵機的整體應用受到一定的限制的問題。
本發明的目的採用以下技術方案實現:
舵機臨界點鎖位方法,包括以下步驟:
根據目標位置值和實際位置值計算當前目標偏差;
根據所述當前目標偏差與上次目標偏差計算偏差變化值;
判斷所述偏差變化值與約束值的關係是否滿足預設條件;
若滿足所述預設條件,則根據當前目標偏差和預設值的大小關係修正所述當前目標偏差,將修正後的當前目標偏差作為當前控制偏差;
根據所述當前控制偏差控制舵機向所述目標位置運行。
優選的,所述根據目標位置值和實際位置值計算當前目標偏差,具體為,所述當前目標偏差等於所述目標位置值減去所述實際位置值;
所述根據當前目標偏差和預設值的大小關係將所述當前目標偏差修正當前目標偏差,將修正後的當前目標偏差作為當前控制偏差,具體為:
若所述當前目標偏差小於所述預設值,則所述當前控制偏差等於所述當前目標偏差加上所述最大位置編碼值;
若所述當前目標偏差大於所述預設值,則所述當前控制偏差等於所述當前目標偏差減去所述最大位置編碼值;
若所述當前目標偏差等於所述預設值,則將所述當前控制偏差置為上次目標偏差的值。
優選的,所述根據所述當前目標偏差與上次目標偏差計算偏差變化值,具體為,所述偏差變化值等於所述當前目標偏差與上次目標偏差的差值的絕對值;
所述判斷所述偏差變化值與約束值的關係是否滿足預設條件,具體為,判斷偏差變化值是否大於所述約束值。
優選的,所述約束值根據最大位置編碼值確定。
優選的,所述約束值等於所述最大位置編碼值的二分之一。
優選的,所述預設值為0。
舵機臨界點鎖位裝置,包括:
第一計算模塊,用於根據目標位置值和實際位置值計算當前目標偏差;
第二計算模塊,用於根據所述當前目標偏差與上次目標偏差計算偏差變化值;
預設條件判斷模塊,用於判斷所述偏差變化值與約束值的關係是否滿足預設條件;
修正模塊,用於當所述偏差變化值與約束值的關係若滿足所述預設條件,則根據當前目標偏差和預設值的大小關係修正所述當前目標偏差,將修正後的當前目標偏差作為當前控制偏差;
控制模塊,用於根據所述當前控制偏差控制舵機向所述目標位置運行。
優選的,所述第一計算模塊包括:
第一差值單元,具體被配置為所述當前目標偏差等於所述目標位置值減去所述實際位置值;
所述修正模塊包括:
第一判斷單元,用於判斷當前目標偏差和預設值的大小關係;
第一計算單元,用於若所述當前目標偏差小於預設值,則所述當前控制偏差等於所述當前目標偏差加上所述最大位置編碼值;
第二計算單元,用於若所述當前目標偏差大於預設值,則所述當前控制偏差等於所述當前目標偏差減去所述最大位置編碼值;
第三計算單元,用於若所述當前目標偏差等於預設值,則將所述當前控制偏差置為上次目標偏差的值。
優選的,所述第二計算模塊具體被配置為:所述偏差變化值等於所述當前目標偏差與上次目標偏差的差值的絕對值;
所述預設條件判斷模塊具體用於判斷:所述偏差變化值是否大於所述約束值。
舵機臨界點鎖位裝置,包括:
處理器以及用於存儲處理器可執行的指令的存儲器;
所述處理器被配置為:
根據目標位置值和實際位置值計算當前目標偏差;
根據所述當前目標偏差與上次目標偏差計算偏差變化值;
判斷所述偏差變化值與約束值的關係是否滿足預設條件;
若滿足所述預設條件,則根據當前目標偏差和預設值的大小關係修正所述當前目標偏差,將修正後的當前目標偏差作為當前控制偏差;
根據所述當前控制偏差控制舵機向所述目標位置運行。相比現有技術,本發明的有益效果在於:通過在舵機的控制過程中給舵機的控制偏差值加入預設條件,以判斷目標偏差是否突變。如果目標偏差發生了突變,通過對當前目標偏差修正,避免因角度值急劇跳變而產生的控制偏差急劇跳變。尤其對於PID控制的舵機,對偏差值進行了連續性約束,在不外加任何外部電路及更換位置傳感器的基礎上實現了磁編碼傳感舵機的360度全位置鎖位功能,提高了舵機的鎖位行程,擴大了舵機的應用場景。
附圖說明
圖1圖是一個12位數字式磁編碼器坐標圖。
圖2是本發明實施例一提供的舵機臨界點鎖位方法的流程示意圖。
圖3是本發明實施例二提供的舵機臨界點鎖位方法的流程示意圖。
圖4是本發明實施例三提供的舵機臨界點鎖位裝置的結構示意圖。
圖5是圖4中修正模塊的結構示意圖。
圖6是本發明實施例四提供的舵機臨界點鎖位裝置的結構示意圖。
具體實施方式
上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,並且為了讓本發明的上述和其他目的、特徵和優點能夠更明顯易懂,以下特舉較佳實施例,並配合附圖,詳細說明如下。
實施例一:
如圖2所示的舵機臨界點鎖位方法包括以下步驟:
S101,根據目標位置值和實際位置值計算當前目標偏差。典型的,所述根據目標位置值和實際位置值計算當前目標偏差,具體為,所述當前目標偏差等於所述目標位置值減去所述實際位置值。
S102,根據所述當前目標偏差與上次目標偏差計算偏差變化值。典型的,所述根據所述當前目標偏差與上次目標偏差計算偏差變化值,具體為,所述偏差變化值等於所述當前目標偏差與上次目標偏差的差值的絕對值。
S103,判斷所述偏差變化值與約束值的關係是否滿足預設條件。典型的,所述判斷所述偏差變化值與約束值的關係是否滿足預設條件,具體為,判斷偏差變化值是否大於所述約束值。所述約束值可以根據最大位置編碼值確定,如所述約束值等於所述最大位置編碼值的二分之一。
導致旋轉編碼傳感舵機在旋轉編碼器位置跳變點附近不能很好鎖位的根本原因是在該區域角度值存在急劇跳變,但直接原因則是因角度值急劇跳變而產生的控制偏差急劇跳變。根據舵機的實際運動情況可知,舵機的運行速度是不能突變的,舵機位移量等於速度在時間上的積分同樣不應有突變。而舵機實際位置值與目標位置值之間的偏差可以看作為舵機還未完成的位移量,同樣該值也應該是不能突變的。因此通過在舵機的控制過程中給舵機的控制偏差值加入預設條件,以判斷目標偏差是否突變。
若偏差變化值大於所述約束值,則表示目標偏差發生了突變,通過對當前目標偏差修正,避免因角度值急劇跳變而產生的控制偏差急劇跳變。尤其對於PID控制的舵機,對偏差值進行了連續性約束,在不外加任何外部電路及更換位置傳感器的基礎上實現了磁編碼傳感舵機的360度全位置鎖位功能,提高了舵機的鎖位行程,擴大了舵機的應用場景。
S104,若滿足所述預設條件,則根據當前目標偏差和預設值的大小關係修正所述當前目標偏差,將修正後的當前目標偏差作為當前控制偏差。當發現計算出來的當前目標偏差存在較大的突變情況下則認定當前的當前目標偏差計算結果有誤,就需要採用一個新的計算公式重新計算當前目標偏差,以保證控制偏差的連續性。
優選的,所述根據當前目標偏差和預設值的大小關係將所述當前目標偏差修正當前目標偏差,將修正後的當前目標偏差作為當前控制偏差,具體為:
若所述當前目標偏差小於所述預設值,則所述當前控制偏差等於所述當前目標偏差加上所述最大位置編碼值;
若所述當前目標偏差大於所述預設值,則所述當前控制偏差等於所述當前目標偏差減去所述最大位置編碼值;
若所述當前目標偏差等於所述預設值,則將所述當前控制偏差置為上次目標偏差的值。
參見圖1,直線處為磁編碼器角度跳變點,當舵機要鎖位在直線附近位置區域的某一角度時傳統的控制方式可能會使舵機的運動方向出錯或舵機直接失去控制。直線左邊臨近位置值為4095,直線位置值為0,因此優選的,所述預設值為0。如果當前目標偏差存在較大的突變,就將當前目標偏差通過與最大位置編碼值的運算修正得到當前控制偏差。尤其在鎖位死區範圍內,通過對當前目標偏差的修正可以避免使舵機的運動方向出錯或舵機直接失控制。
S105,根據所述當前控制偏差控制舵機向所述目標位置運行。用加了約束條件後的偏差去進行PID運行控制舵機輸出,使磁編碼傳感舵機在磁編碼器位置跳變點區域也能實現良好鎖位功能。
本發明所示的舵機臨界點鎖位方法,通過在舵機的控制過程中給舵機的控制偏差值加入預設條件,以判斷目標偏差是否突變。如果目標偏差發生了突變,通過對當前目標偏差修正,避免因角度值急劇跳變而產生的控制偏差急劇跳變。尤其對於PID控制的舵機,對偏差值進行了連續性約束,在不外加任何外部電路及更換位置傳感器的基礎上實現了磁編碼傳感舵機的360度全位置鎖位功能,提高了舵機的鎖位行程,擴大了舵機的應用場景。
實施例二
為了更好的理解本發明實施例中舵機臨界點鎖位方法,實施例二提供一具體應用場景,參考圖3。如圖3所示的舵機臨界點鎖位方法,舵機利用旋轉編碼器控制,所述旋轉編碼器為絕對式編碼器或旋轉增量式編碼器。所述旋轉編碼器為12位,因此最大位置編碼值為4096。優選的,約束值取2048,預設值為0。典型的,在本實施例中若所述偏差變化值與約束值的關係不滿足所述預設條件,則當前控制偏差等於所述當前目標偏差。
比如想讓舵機鎖位在位置0處,假設起始時舵機已很好的停在了位置0處,目標偏差為0。當舵機受到一個外界的力使得舵機的實際角度位置由起始的0變為4090時,傳統的偏差計算方式計算出來控制偏差(-4090)=目標值(0)–當前實際值(4090),在PID控制方法下將會產生一個很激進的響應,同時舵機的運轉方向也可能是錯的,即舵機轉動一整圈才能回到原來的目標位置。
在本發明的舵機臨界點鎖位方法中,當前目標偏差為(-4090)=目標值(0)–當前實際值(4090)。上次目標偏差為0,偏差變化值為4090,大於約束值2048,表示目標偏差出現了突變。需要對當前目標偏差進行修正。由於當前目標偏差小於0,所以當前控制偏差=-4090+4096=6。此時舵機只需要轉動很小的角度就可以回到原來的目標位置。
在另一實施例中,所述當前目標偏差等於所述實際位置值減去所述目標位置值。所述根據所述當前目標偏差和預設值的大小關係將所述當前目標偏差修正為當前控制偏差,具體為:
若所述當前目標偏差大於預設值,則所述當前控制偏差等於所述當前目標偏差加上所述最大位置編碼值;
若所述當前目標偏差小於預設值,則所述當前控制偏差等於所述當前目標偏差減去所述最大位置編碼值;
若所述當前目標偏差等於預設值,則將所述當前控制偏差置為上次目標偏差的值。
實施例三:
如圖4所示的舵機臨界點鎖位裝置,包括:
第一計算模塊101,用於根據目標位置值和實際位置值計算當前目標偏差;
第二計算模塊102,用於根據所述當前目標偏差與上次目標偏差計算偏差變化值;典型的,第二計算模塊102具體被配置為:所述偏差變化值等於所述當前目標偏差與上次目標偏差的差值的絕對值;
預設條件判斷模塊103,用於判斷所述偏差變化值與約束值的關係是否滿足預設條件;典型的,預設條件判斷模塊103具體用於判斷:所述偏差變化值是否大於所述約束值。
修正模塊104,用於當所述偏差變化值與約束值的關係若滿足所述預設條件,則根據當前目標偏差和預設值的大小關係修正所述當前目標偏差,將修正後的當前目標偏差作為當前控制偏差;
控制模塊105,用於根據所述當前控制偏差控制舵機向所述目標位置運行。
典型的,在另一實施例中,舵機臨界點鎖位裝置還包括維持模塊(圖未示),用於若不滿足所述預設條件,則當前控制偏差等於所述當前目標偏差。
具體的,第一計算模塊101包括:
第一差值單元1011,具體被配置為所述當前目標偏差等於所述目標位置值減去所述實際位置值;
如圖5,修正模塊104包括:
第一判斷單元1041,用於判斷當前目標偏差和預設值的大小關係;
第一計算單元1042,用於若所述當前目標偏差小於預設值,則所述當前控制偏差等於所述當前目標偏差加上所述最大位置編碼值;
第二計算單元1043,用於若所述當前目標偏差大於預設值,則所述當前控制偏差等於所述當前目標偏差減去所述最大位置編碼值;
第三計算單元1044,用於若所述當前目標偏差等於預設值,則將所述當前控制偏差置為上次目標偏差的值。
本實施例中的裝置與前述實施例中的方法是基於同一發明構思下的兩個方面,在前面已經對方法實施過程作了詳細的描述,所以本領域技術人員可根據前述描述清楚地了解本實施中的系統的結構及實施過程,為了說明書的簡潔,在此就不再贅述。
為了描述的方便,描述以上裝置時以功能分為各種模塊分別描述。當然,在實施本發明時可以把各模塊的功能在同一個或多個軟體和/或硬體中實現。
通過以上的實施方式的描述可知,本領域的技術人員可以清楚地了解到本發明可藉助軟體加必需的通用硬體平臺的方式來實現。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品可以存儲在存儲介質中,如ROM/RAM、磁碟、光碟等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本發明各個實施例或者實施例的某些部分所述的方法。
描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的模塊或單元可以是或者也可以不是物理上分開的,作為模塊或單元示意的部件可以是或者也可以不是物理模塊,既可以位於一個地方,或者也可以分布到多個網絡模塊上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
本發明可用於眾多通用或專用的計算系統環境或配置中。例如:個人計算機、伺服器計算機、手持設備或可攜式設備、平板型設備、多處理器系統、基於微處理器的系統、機頂盒、可編程的消費電子設備、網絡PC、小型計算機、大型計算機、包括以上任何系統或設備的分布式計算環境等等,如實施例四。
實施例四
如圖6所示的舵機臨界點鎖位裝置,包括:
處理器200以及用於存儲處理器200可執行的指令的存儲器300;
處理器200被配置為:
根據目標位置值和實際位置值計算當前目標偏差;
根據所述當前目標偏差與上次目標偏差計算偏差變化值;
判斷所述偏差變化值與約束值的關係是否滿足預設條件;
若滿足所述預設條件,則根據當前目標偏差和預設值的大小關係修正所述當前目標偏差,將修正後的當前目標偏差作為當前控制偏差;
根據所述當前控制偏差控制舵機向所述目標位置運行。
典型的,處理器200還被配置為:若所述偏差變化值與約束值的關係不滿足所述預設條件,則當前控制偏差等於所述當前目標偏差。
本實施例中的裝置與前述實施例中的方法是基於同一發明構思下的兩個方面,在前面已經對方法實施過程作了詳細的描述,所以本領域技術人員可根據前述描述清楚地了解本實施中的系統的結構及實施過程,為了說明書的簡潔,在此就不再贅述。
本發明實施例提供的裝置,通過在舵機的控制過程中給舵機的控制偏差值加入預設條件,以判斷目標偏差是否突變。如果目標偏差發生了突變,通過對當前目標偏差修正,避免因角度值急劇跳變而產生的控制偏差急劇跳變。尤其對於PID控制的舵機,對偏差值進行了連續性約束,在不外加任何外部電路及更換位置傳感器的基礎上實現了磁編碼傳感舵機的360度全位置鎖位功能,提高了舵機的鎖位行程,擴大了舵機的應用場景。
對於本領域的技術人員來說,可根據以上描述的技術方案以及構思,做出其它各種相應的改變以及變形,而所有的這些改變以及變形都應該屬於本發明權利要求的保護範圍之內。