專利名稱:舵機控制器、舵機控制方法以及控制系統的制作方法
技術領域:
本發明涉及自動控制技術領域,尤其涉及一種可以同時對多個舵機進行控制的舵機控制器、舵機控制方法以及控制系統。
背景技術:
舵機在航模、車模、船模以及機器人等領域有廣泛的應用。舵機的工作原理就是控制一個電機,讓它轉過設定的角度然后停在這個位置。目前舵機作為單獨的一個控制系統存在,控制端一般通過PWM (Pulse Width Modulation,脈沖寬度調制)控制協議對其進行控制。參考附圖1,現有技術中的舵機結構示意圖,舵機可以分為幾部分轉速控制模塊
11、電機12、減速齒輪13、轉動力臂14和電位器15。轉速控制模塊11分別與電機12以及電位器15相連,根據外部輸入的P麗信號計算出目標角度,并接收電位器15的反饋值來確定當前角度,然后根據目標角度和反饋值這兩個數值計算出誤差信號,再根據誤差信號產生電機12的驅動信號。電機12進一步與減速齒輪13相連,其轉速快慢由轉速控制模塊11輸入的驅動信號控制。電機12可以為直流或交流電機。減速齒輪13進一步與轉動力臂14相連,用于將電機12的快速轉動轉換為相應的角度。比如減速齒輪13比為400:1,則意味著電機12轉過400圈,經過減速齒輪13后轉動力臂14轉I圈,對應360度。轉動力臂14進一步與電位器15相連,轉動力臂14是一個傳動裝置,可以帶動負載轉到設定的角度。電位器15是一個反饋裝置,轉動力臂14在轉動的同時會在電位器15上滑動產生不同的電壓值,電位器15將所產生的電壓值反饋給轉速控制模塊11。舵機的轉速控制模塊對轉速的控制可以參考附圖2。將外部輸入的PWM信號進行目標值計算;將計算出目標角度以及接收到的電位器反饋值輸入比較器;通過比較器比較后由電機驅動產生模塊產生電機驅動信號。按照舵機的控制方式,舵機可以分為模擬舵機和數字舵機兩種。這兩種舵機的主要區別在比較器和電機驅動產生模塊。模擬舵機主要是用模擬電路的方式來實現電位器和設定位置的電位比較,然后產生控制信號來讓電機轉動;數字舵機則將電位器反饋的電壓量經過模數轉換器(ADC)采樣為數字信號后對其進行處理,用一些算法來計算出電機的控制信號讓電機轉動以達到設定位置。通常一個大的控制系統里面會有多個舵機,每個舵機以單獨的系統形式存在,舵機控制器可以通過PWM信號對多個舵機進行控制,如圖3所示現有技術中一個舵機控制器對N個舵機進行控制的系統框圖。但是現有技術的不足之處在于舵機包括轉速控制模塊、電機、減速齒輪、轉動力臂以及電位器,結構復雜;存在多個舵機時,每個舵機以單獨的系統形式存在,增加了系統成本和系統復雜度。因此需要一種新的舵機控制系統,可以簡化舵機的結構,同時大大簡化對多個舵機進行控制的系統的復雜度。
發明內容
本發明所要解決的技術問題是,提供一種舵機控制器、舵機控制方法以及控制系統,解決現有技術中舵機結構復雜;多個舵機中每個舵機以單獨的系統形式存在,增加了系統成本和系統復雜度的問題。為了解決上述問題,本發明提供了一種舵機控制器,包括一輸入輸出單元、一模數轉換單元以及一中央處理單元;所述輸入輸出單元用于接收至少一舵機的電位器所傳送的電位;所述模數轉換單元與所述輸入輸出單元相連,用于對每一所述電位進行采樣,分別獲得相應舵機的電機當前轉過的角度;所述中央處理單元與所述模數轉換單元相連,用于根據所獲得的電機當前轉過的角度,通過電機控制算法獲取相應電機需要的驅動信號;所述輸入輸出單元進一步與所述中央處理單元相連,用于將所述驅動信號傳送至相應的電機,控制此電機轉動,從而驅動相應的舵機達到設定位置。進一步,所述輸入輸出單元采用分時復用的方式接收相應的電位,以及輸出相應的電機驅動信號。進一步,所述輸入輸出單兀包括一輸入選擇模塊、輸出選擇模塊以及狀態控制模塊;所述輸入選擇模塊與所述狀態控制模塊相連,用于根據所述狀態控制模塊產生的選擇信號從所述輸入輸出單元接收的多個電位中選擇相應的電位;所述模數轉換單元與所述輸入選擇模塊相連,用于對所述輸入選擇模塊所選擇的電位進行采樣,獲得相應電機當前轉過的角度;所述輸出選擇模塊分別與所述模數轉換單元以及所述中央處理單元相連,用于根據所述模數轉換單元獲得的相應電機當前轉過的角度進行輸出選擇,通過所述中央處理單元采樣相應的電機控制算法產生驅動信號;所述狀態控制模塊進一步與所述輸出選擇模塊相連,用于在所述輸出選擇模塊產生驅動信號后,產生新的選擇信號。所述中央處理單元進一步包括誤差處理模塊、驅動信號產生模塊所述誤差處理模塊用于計算目標電位和電位器傳送的實際電位的誤差,并經過誤差處理算法對誤差進行處理;所述驅動信號產生模塊與所述誤差處理模塊相連,用于根據處理后的誤差、預先設定電機啟動轉速以及預先設定最大轉速的對應關系,產生相應轉速的驅動信號。為了解決上述問題,本發明還提供了一種舵機控制方法,包括如下步驟(I)接收至少一舵機的電位器所傳送的電位;(2)采用分時復用的方式對每一所述電位進行采樣,獲得相應舵機的電機當前轉過的角度;(3)根據所述電機當前轉過的角度,通過電機控制算法獲取所述電機需要的驅動信號;(4)將所述驅動信號傳送至所述電機,控制所述電機轉動以達到設定位置。步驟(2)進一步包括(21)產生一選擇信號,所述選擇信號對應一接收到的電位;
(22)根據所述選擇信號選擇相應的電位;(23)對所選擇的電位進行采樣,獲得相應電機當前轉過的角度;步驟(3)之后進一步包括(31)在獲取相應的驅動信號后,產生一新的選擇信號,并返回執行步驟(22)。所述電機控制算法進一步采用(a)計算目標電位和電位器傳送的實際電位的誤差,并經過誤差處理算法對誤差進行處理;(b)預先設定電機啟動轉速和最大轉速,根據處理后的誤差、電機啟動轉速以及最大轉速的對應關系,產生相應轉速的驅動信號。為了解決上述問題,本發明還提供了一種舵機控制系統,包括一個舵機控制器、多個電位器以及多個電機,每一所述電位器分別與一電機相連,所述電位器根據所連接的電機轉過的角度產生一電位;所述多個電位器進一步連接至所述舵機控制器,將產生的電位信號傳送至所述舵機控制器;所述舵機控制器進一步與多個電機相連,根據電位器傳送的電位信號生成相應的驅動信號,控制所連接的電機轉動以驅動舵機達到設定位置。進一步,所述舵機控制器采用分時復用的方式對輸入的所述多個電位器的電位進行采樣,分別獲得所述多個電機當前轉過的角度,并通過電機控制算法獲得所述多個電機需要的驅動信號。本發明的優點在于,通過本發明提供的舵機控制器,舵機控制器直接對N個電機進行控制,同時也接收N個電位器傳送的電位,舵機控制器同時驅動N個電機來實現舵機的功能,本發明所述舵機控制器可通過專用的DSP/ASIC實現,也可通過軟件實現,大大簡化了多個舵機控制系統的復雜度。
圖1,現有技術中的舵機結構示意 圖2,現有技術中舵機的轉速控制模塊對轉速的控制架構 圖3,現有技術中一個舵機控制器對N個舵機進行控制的系統框 圖4,本發明舵機控制器一實施方式的架構 圖5,本發明舵機控制器另一實施方式的架構 圖6,本發明舵機控制系統一實施方式的架構 圖7,本發明舵機控制方法的流 程 圖8,本發明舵機控制方法中電機控制算法的流程 圖9,本發明舵機控制方法中所選擇的電機轉速與電機啟動轉速、最大轉速和誤差的關系的不意 圖10,本發明舵機控制方法中誤差處理算法一實施例的示意 圖11-15,本發明舵機控制系統一實施例的控制效果示意圖。主要組件符號說明:
11、轉速控制模塊; 12、電機;13、減速齒輪;
14、轉動力臂;15、電位器;40、舵機控制器;
41、輸入輸出單元;42、模數轉換單元;43、中央處理單元;
411、輸入選擇模塊;412、輸出選擇模塊;413、狀態控制模塊;
431、誤差處理模塊;432、驅動信號產生模塊;61、舵機控制器;
62、電機;63、電位器。
具體實施例方式下面結合附圖對本發明提供的舵機控制器、舵機控制方法以及控制系統的具體實施方式
做詳細說明。首先結合附圖給出本發明所述舵機控制器的一實施方式。附圖4所示是本實施方式所述舵機控制器40的架構圖,所述舵機控制器40包括一輸入輸出單元41、一模數轉換單元42以及一中央處理單元43。其中,上述輸入輸出單元41、模數轉換單元42以及中央處理單元43可以采用DSP (Digital Signal Processing,數字信號處理)芯片或專用集成電路(Application Specific Integrated Circuit,簡稱ASIC)芯片。即本發明所述舵機控制器40的功能可通過專用的DSP/ASIC實現,也可通過軟件實現。所述輸入輸出單元41用于接收至少一舵機的電位器所傳送的電位。電位器所傳送的電位即為相應電機轉過角度的反饋值,如圖4中電位-1、電位-2,...,電位-N(N ^ 3)。所述模數轉換單元42與所述輸入輸出單元41相連,用于對所述輸入輸出單元41接收到的每一所述電位進行采樣,分別獲得相應舵機的電機當前轉過的角度。所述中央處理單元43與所述模數轉換單元42相連,用于根據所述模數轉換單元42所獲得的電機當前轉過的角度,通過電機控制算法獲取相應電機需要的驅動信號(如圖4中所示輸出的電機驅動-1、電機驅動_2,…,電機驅動-N,N彡3)。所述中央處理單元43可以進一步包括誤差處理模塊431、驅動信號產生模塊432。所述誤差處理模塊431用于計算目標電位和電位器傳送的實際電位的誤差,并經過誤差處理算法對誤差進行處理;其中,所述誤差處理算法可以采用PID算法、PD算法、PI算法或者自適應濾波算法等;其中,P表示Proportion (比例)、I表示Integral (積分)、D表不 Differential (微分)。所述驅動信號產生模塊432與所述誤差處理模塊431相連,用于根據處理后的誤差、預先設定電機啟動轉速以及預先設定最大轉速的對應關系,產生相應轉速的驅動信號。所述輸入輸出單元41進一步與所述中央處理單元43相連,用于將所述中央處理單元43所獲取的所述驅動信號傳送至相應的電機,控制此電機轉動,從而驅動相應的舵機達到設定位置。其中,所述 輸入輸出單元41可以采用分時復用的方式接收相應的電位,并通過所述模數轉換單元42對接收到的電位進行采樣,分別獲得每一電機當前轉過的角度;通過所述中央處理單元43采用相應的電機控制算法獲取每一電機需要的驅動信號,并通過所述輸入輸出單元41采用分時復用的方式傳送至對應的電機。本發明提供的舵機控制器40直接對N個電機進行控制,同時也接收N個電位器傳送的電位,舵機控制器40同時驅動N個電機來實現舵機的功能;本發明所述舵機控制器40的功能可通過專用的DSP/ASIC實現,大大簡化了對多個舵機進行控制的復雜度。接下來結合附圖給出本發明所述舵機控制器的另一實施方式。附圖5所示是本實施方式所述舵機控制器的架構圖,與前一實施方式不同的是,本實施方式中所述輸入輸出單兀41包括一輸入選擇模塊411、輸出選擇模塊412以及狀態控制模塊413。所述輸入選擇模塊411與所述狀態控制模塊413相連,用于根據所述狀態控制模塊413產生的選擇信號從所述輸入輸出單兀41接收的多個電位中(如圖5中電位-1、電位-2,...,電位-N, N > 3)選擇相應的電位。所述模數轉換單元42與所述輸入選擇模塊411相連,用于對所述輸入選擇模塊411所選擇的電位進行采樣,獲得相應電機當前轉過的角度。所述輸出選擇模塊412分別與所述模數轉換單元42以及所述中央處理單元43相連,用于根據所述模數轉換單元42獲得的相應電機當前轉過的角度進行輸出選擇,通過所述中央處理單元43采樣相應的電機控制算法(如圖5中電機控制算法1、電機控制算法2、...,電機控制算法-Ν,Ν ^ 3)產生相應的驅動信號后輸出(如圖5中電機驅動輸出1、電機驅動輸出2、…,電機驅動輸出-N,N ^ 3),從而驅動相應的電機轉動,使得相應的舵機達到設定位置。所述狀態控制模塊413進一步與所述輸出選擇模塊412相連,用于在所述輸出選擇模塊412產生驅動信號輸出后,產生新的選擇信號,進行下一個電機驅動輸出的產生。接下來結合附圖給出本發明所述舵機控制系統的一實施方式。附圖6所示是本實施方式所述舵機控制系統的架構圖,包括一個舵機控制器61、多個電機62 (如圖6中電機-1、電機-2,...,電機-N, N > 3)以及多個電位器63 (如圖6中電位器-1、電位器-2,...,電位器-N, N彡3),其中電機62與電位器63的數量相等。每一所述電位器63分別與一電機62相連,所述電位器63根據所連接的電機62轉過的角度產生一電位。所述多個電位器63進一步連接至所述舵機控制器61,將產生的電位信號傳送至所述舵機控制器。所述舵機控制器進一步與多個電機62相連,根據電位器63傳送的電位信號生成相應的驅動信號,控制所連接的電機62轉動以驅動舵機達到設定位置。其中,所述舵機控制器可以采用分時復用的方式對輸入的所述多個電位器63的電位進行采樣,分別獲得所述多個電機62的當前角度,并通過電機控制算法獲得所述多個電機62需要的驅動信號。所述舵機控制器61同時驅動N個電機62來實現舵機的功能,在這個控制系統中舵機控制器61直接對N個電機62進行控制,同時也接收N個電位器63傳送的相應的電機轉過角度的反饋值(即每一所述電機62轉過的角度在相應電位器63上產生一電位,通過相應的電位器63傳送至舵機控制器61)。所述舵機控制器61可以采用DSP芯片或專用集成電路芯片。 接下來結合附圖給出本發明所述舵機控制方法的具體實施方式
。附圖7所示是本具體實施方式
所述舵機控制方法的流程圖,接下來對附圖7所示的步驟做詳細說明。S71:接收至少一舵機的電位器所傳送的電位。S72:采用分時復用的方式對每一所述電位進行采樣,獲得相應舵機的電機當前轉過的角度。分時復用可以采用以下方式實現:21)產生一選擇信號,所述選擇信號對應一接收到的電位;22)根據所述選擇信號從輸入的多個電位中選擇相應的電位;23)對所選擇的電位進行采樣,獲得相應電機當前轉過的角度;之后執行步驟S73,并在獲取相應的驅動信號后,產生一新的選擇信號,并返回執行步驟22),即一個輸入輸出選擇完成后,產生新的選擇信號,重新開始選擇新的電位進行采樣,直到完成所有電位的采樣,驅動所有舵機的電機轉動到設定位置。S73:根據所述電機當前轉過的角度,通過電機控制算法獲取所述電機需要的驅動信號。S74:將所述驅動信號傳送至所述電機,控制所述電機轉動以達到設定位置。參考附圖8,本發明舵機控制方法中電機控制算法的流程圖;所述電機控制算法可以采用以下方式實現。S801:計算目標電位和電位器傳送的實際電位的誤差;S802:經過誤差處理算法對誤差進行處理;S803 :預先設定電機啟動轉速和最大轉速,根據處理后的誤差、電機啟動轉速以及最大轉速的對應關系,進行電機轉速選擇;S804 :根據所選擇的電機轉速產生相應的驅動信號,并輸出至相應的電機。所選擇的電機轉速與電機啟動轉速、最大轉速和誤差的關系可參照附圖9所示。其中附圖9僅示例出其中一種所選擇的電機轉速對應的曲線圖;所選擇的電機轉速對應的線形包含但不局限于下列線形直線、拋物線、指數曲線等。本發明舵機控制方法中電機控制算法里誤差處理算法可以采用PID算法、ro算法、PI算法或者自適應濾波算法等。參考附圖10,本發明舵機控制方法中誤差處理算法一實施例的示意圖;WPID算法為例,PID算法為通用的結構,有三個支路,包括比例支路、積分支路和微分支路。實現的算法可以描述為
_ = +會卜+ ,
其中t為比例系數τ力積分時間常數τ力微分時間常數。接下來結合附圖給出本發明舵機控制系統的實施例,仍以PID算法為例。圖11-15,本發明舵機控制系統一實施例的控制效果示意圖,其中圖11為舵機的特性曲線、圖12為電機特性曲線、圖13為經過PID算法處理后的誤差信號、圖14為電機轉速示意圖、圖15為舵機轉過的角度示意圖。由圖11所示可知,舵機轉過的角度和電位器的電壓成線性關系。圖12中,電機為PWM信號驅動的直流電機,由圖12所示可知,在占空比為30%的位置,電機開始啟動;占空比100%的位置,電機轉速達到90轉/秒。由圖13所示可知,經過PID算法處理后的誤差逐漸趨向O。由圖14所示可知,在誤差較大時,電機以全速90轉/秒轉向目標位置,在接近目標位置后,轉速降低,并在誤差達到最小時轉速也到0,停止轉動。由圖15所示可知,在電機全速轉向目標位置的過程中,轉過的角度與時間軸成比例關系。在逼近目標位置后,由于電機轉速變慢,舵機的角速度也放緩,最后慢慢逼近目標值90度,并停在該位置。以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。
權利要求
1.一種舵機控制器,其特征在于,包括一輸入輸出單元、一模數轉換單元以及一中央處理單元;所述輸入輸出單元用于接收至少一舵機的電位器所傳送的電位;所述模數轉換單元與所述輸入輸出單元相連,用于對每一所述電位進行采樣,分別獲得相應舵機的電機當前轉過的角度;所述中央處理單元與所述模數轉換單元相連,用于根據所獲得的電機當前轉過的角度,通過電機控制算法獲取相應電機需要的驅動信號;所述輸入輸出單元進一步與所述中央處理單元相連,用于將所述驅動信號傳送至相應的電機,控制此電機轉動,從而驅動相應的舵機達到設定位置。
2.根據權利要求1所述的舵機控制器,其特征在于,所述輸入輸出單元采用分時復用的方式接收相應的電位,以及輸出相應的電機驅動信號。
3.根據權利要求2所述的舵機控制器,其特征在于,所述輸入輸出單元包括一輸入選擇模塊、輸出選擇模塊以及狀態控制模塊;所述輸入選擇模塊與所述狀態控制模塊相連,用于根據所述狀態控制模塊產生的選擇信號從所述輸入輸出單元接收的多個電位中選擇相應的電位;所述模數轉換單元與所述輸入選擇模塊相連,用于對所述輸入選擇模塊所選擇的電位進行采樣,獲得相應電機當前轉過的角度;所述輸出選擇模塊分別與所述模數轉換單元以及所述中央處理單元相連,用于根據所述模數轉換單元獲得的相應電機當前轉過的角度進行輸出選擇,通過所述中央處理單元采樣相應的電機控制算法產生驅動信號;所述狀態控制模塊進一步與所述輸出選擇模塊相連,用于在所述輸出選擇模塊產生驅動信號后,產生新的選擇信號。
4.根據權利要求1或3所述的舵機控制器,其特征在于,所述中央處理單元進一步包括誤差處理模塊、驅動信號產生模塊:所述誤差處理模塊用于計算目標電位和電位器傳送的實際電位的誤差,并經過誤差處理算法對誤差進行處理;所述驅動信號產生模塊與所述誤差處理模塊相連,用于根據處理后的誤差、預先設定電機啟動轉速以及預先設定最大轉速的對應關系,產生相應轉速的驅動信號。
5.一種舵機控制方法,其特征在于,包括如下步驟:(I)接收至少一舵機的電位器所傳送的電位;(2)采用分時復用的方式對每一所述電位進行采樣,獲得相應舵機的電機當前轉過的角度;(3)根據所述電機當前轉過的角度,通過電機控制算法獲取所述電機需要的驅動信號;(4)將所述驅動信號傳送至所述電機,控制所述電機轉動以達到設定位置。
6.根據權利要求5所述的舵機控制方法,其特征在于,步驟(2)進一步包括:(21)產生一選擇信號,所述選擇信號對應一接收到的電位;(22)根據所述選擇信號選擇相應的電位;(23)對所選擇的電位進行采樣,獲得相應電機當前轉過的角度;步驟(3)之后進一步包括:(31)在獲取相應的驅動信號后,產生一新的選擇信號,并返回執行步驟(22)。
7.根據權利要求5或6所述的舵機控制方法,其特征在于,所述電機控制算法進一步采用:(a)計算目標電位和電位器傳送的實際電位的誤差,并經過誤差處理算法對誤差進行處理;(b)預先設定電機啟動轉速和最大轉速,根據處理后的誤差、電機啟動轉速以及最大轉速的對應關系,產生相應轉速的驅動信號。
8.一種舵機控制系統,包括一個舵機控制器、多個電位器以及多個電機,其特征在于,每一所述電位器分別與一電機相連,所述電位器根據所連接的電機轉過的角度產生一電位;所述多個電位器進一步連接至所述舵機控制器,將產生的電位信號傳送至所述舵機控制器;所述舵機控制器進一步與多個電機相連,根據電位器傳送的電位信號生成相應的驅動信號,控制所連接的電機轉動以驅動舵機達到設定位置。
9.根據權利要求8所述的舵機控制系統,其特征在于,所述舵機控制器采用分時復用的方式對輸入的所述多個電位器的電位進行采樣,分別獲得所述多個電機當前轉過的角度,并通過電機控制 算法獲得所述多個電機需要的驅動信號。
全文摘要
本發明涉及自動控制技術領域,尤其涉及一種可以同時對多個舵機進行控制的舵機控制器、舵機控制方法以及控制系統。所述舵機控制器包括輸入輸出單元用于接收至少一舵機的電位器所傳送的電位;模數轉換單元用于對每一所述電位進行采樣,分別獲得相應舵機的電機當前轉過的角度;中央處理單元用于根據所獲得的電機當前轉過的角度,通過電機控制算法獲取相應電機需要的驅動信號;所述輸入輸出單元進一步與所述中央處理單元相連,用于將所述驅動信號傳送至相應的電機,控制此電機轉動,從而驅動相應的舵機達到設定位置。本發明中舵機控制器同時驅動N個電機來實現舵機的功能,大大簡化了多個舵機控制系統的復雜度。
文檔編號G05B19/042GK103076752SQ20121057188
公開日2013年5月1日 申請日期2012年12月26日 優先權日2012年12月26日
發明者喬俊杰, 顧正付, 陳建, 宋戈, 倪偉平 申請人:上海云杉信息科技有限公司