楊磊
編者按:1820年7月21日,丹麥物理學家漢斯·克里斯蒂安·奧斯特(Hans Christian Oersted)發表了題為《關于磁針上電沖突作用的實驗》的文章,闡述其發現的電流磁效應現象。這篇短短的論文在歐洲物理學界產生了極大震動,使得大批實驗成果出現,由此開辟了物理學的新領域——電磁學。法拉利受此啟發,于1821年完成其第一項重大的電發明——世界上第一臺電動機。1873年,比利時人格拉姆發明大功率電動機,電動機從此開始大規模用于工業生產。進入二十一世紀,電動機的應用已經和人們生產生活融為一體。電動機是電動舵機的核心組件。舵機是指在自動駕駛儀中操縱飛機舵面(操縱面)轉動的一種執行部件,分為電動舵機和液壓舵機,電動舵機由電動機、傳動部件和離合器組成,適用于那些需要角度不斷變化并可以保持的控制系統。目前,在高檔遙控玩具,如飛機模型、潛艇模型、遙控機器人中已經得到了普遍應用。
電動機(Motor)是一種把電能轉換成機械能的旋轉式電動設備。它主要由一個用以產生磁場的定子繞組(即通電線圈)和一個旋轉電樞或轉子(如鼠籠式閉合鋁框)組成。定子繞組在通電情況下產生旋轉磁場,通電情況下的轉子受旋轉磁場作用發生轉動,因此電流方向和磁場方向決定轉子的受力方向。簡而言之,電動機的工作原理是磁場對電流受力,使電動機轉動。
電動機根據工作電源的不同,可分為直流電動機和交流電動機;按用途可分為驅動用電動機和控制用電動機。驅動用電動機又分為電動工具用的電動機、家用的電動機和其他通用小型機械設備用的電動機。控制用電動機則分為步進電動機和伺服電動機等。
控制用電動機是根據使用場合、使用目的、電動機類型的不同,通過在電動機組件中安插測量和比較元件、放大元件、執行和計算元件等功能元件,實現電動機按照設定的方向、速度、角度和響應時間的指令進行工作的功能,達到電動機快速啟動、快速響應、高效率、高轉矩輸出及高過載能力的目的。其分為步進電動機和伺服電動機。
1.步進電動機(Stepping Motor)
步進電動機是一款將接收到的數字控制信號(即電脈沖信號)轉變為角位移或直線位移的開環控制感應電機,它是現代數字程序控制系統中的主要執行元件,應用極為廣泛。它由一個驅動器和一個步進電機組成(如圖1)。驅動器是步進電動機的控制器,它是一塊將脈沖發生器、脈沖分配器和脈沖放大器(也稱功率放大器)集合在一起的電路板(如圖2)。步進電動機主要包括轉子(齒輪)和定子(繞有線圈)。
驅動器將輸入的直流電分解成可分時供電的、多相時序控制的電流(即多個脈沖信號),然后將多個脈沖信號依次輸入電機中的定子繞組中的不同相對電線圈,通電線圈產生一定方向的磁場,磁場吸引轉子轉動,當轉子的齒與該相定子磁極上的齒對齊時,轉子完成一個固定角度(也稱為“步距角”)的轉動。定子每收到一個脈沖信號,定子中指定的相對線圈得電,轉子轉動一個角度,如此每相不停地輪流通電,轉子不停地轉動,實現由電脈沖信號轉換成離散的機械運動的功能。在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響,因為它的旋轉是以固定的角度一步一步運行的,可以通過控制脈沖個數來控制角位移量,從而達到準確定位的目的;同時,可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。因為步進電動機沒有積累誤差,具有很好的數據控制特性,所以它被廣泛應用于各種開環控制設備中,如數控機床、自動送料機中的馬達,作為通用的軟盤驅動器的馬達等。
那什么是開環控制?它對步進電動機的性能產生何種影響?
開環控制是指無反饋信息的系統控制方式。當操作者啟動系統,使之進入運行狀態后,系統將操作者的指令一次性輸向受控對象。此后,操作者對受控對象的變化便不能做進一步的控制。由于開環控制一般是在瞬間就完成的控制活動,所以采用開環控制設計的人機系統,操作指令的設計十分重要,一旦出錯,將產生無法挽回的損失。
因步進電動機具有開環控制的特點,所以它在脈沖頻率過高或者負載較大情況下,容易造成失步,即沒有轉到位;低轉速運行時,容易發生異常抖動。對比伺服電機來說,步進電動機精確度較低。這個缺點決定了步進電機的工作轉速不能太高,一般都是在300~500轉/分鐘。因此步進電動機適用場合,要么不需要位置反饋,對精準度要求不高,要么通過其他設備進行位置反饋,提高精準度。
2.伺服電動機 (Servo Motor)
也稱執行電動機,它具有一種服從控制信號的要求而動作的職能。在信號來到之前,轉子靜止不動;信號來到之后,轉子立即轉動;當信號消失,轉子能及時自行停轉。按照自動控制系統的功能要求,伺服電動機必須具備可控性好、穩定性高和適應性強等基本性能。常用的伺服電動機有兩大類,以直流電源工作的稱為直流伺服電動機,以交流電源工作的稱為交流伺服電動機。
伺服電動機通常由驅動器、電機和傳感器組成(如圖3)。伺服電動機的驅動器除具備步進電動機驅動器的功能外,還負責接收電機自帶的編碼器發出的關于電機執行結果的反饋信號,并將反饋值與目標值進行比較,隨時調整轉子轉動的角度。相比步進電機,伺服電機因自帶編碼器,使得電機本身具備發出脈沖的功能,它每旋轉一個角度后,都會發出對應數量的脈沖,這樣伺服驅動器和伺服電機各自發出的脈沖彼此呼應,形成閉環控制。編碼器的精度決定了伺服電機的精度。傳感器負責采集同電機執行結果有關的物理機械參數,如速度、位置和力矩,然后將采集到的數據輸入電機中的編碼器中,從而讓電機發出反饋脈沖信號。正是由于伺服電動機具有閉合控制的特點,使得由電機輸出的關于物體的位置、方位、狀態等被控量能夠跟隨輸入目標值(或給定值)的變化而變化。因此,伺服電動機只要負載在額定范圍內,就能達到很高的精度,主要用于比較精準的位置、速度或力矩輸出,如機床、工業機械臂、機器人等,定位的精確度可以達到0.001mm。
伺服電動機的閉合控制性在算法上是怎樣實現的呢?
當前交流伺服電動機的閉環控制原理主要是基于矢量控制的電流、速度、位置三個閉環控制算法來實現的,其中速度閉環設計合理與否,對于整個伺服控制系統,特別是速度控制性能的發揮起著關鍵作用。
1.什么是舵機
舵機(Servo),從英文名稱看,就是一款伺服電動機。它具備伺服電動機所具有的閉環控制特性,只是作為簡化版,它將原本伺服電動機的三環控制(即速度、位置和電流)簡化成一環控制,也就是只有檢測位置環。除此之外,舵機內部增加了一個減速齒輪組,這是伺服電動機所不具備的。其內部控制器一般是接收PWM信號(舵機提升內部配置后,也可輸入數字信號)來控制旋轉角度。因此,舵機也被視為低配版的小型直流的位置(角度)伺服的電機。舵機最早是被人們用來稱呼輪船甲板上的一種大型機械,后來國內把應用在船模、航模和小型機器人中的伺服電動機也稱為“舵機”,“舵機”因此而得名。
2.舵機的內部構成及工作原理
舵機主要是由外殼、電路板、電機、減速齒輪組與位置檢測器所構成(如圖4)。其工作原理是由接收機發出信號給舵機,經由舵機內部電路板上的芯片判斷轉動方向,再驅動無核心馬達開始轉動,通過減速齒輪組將動力傳至擺臂,同時由位置檢測器送回訊號,判斷是否已經到達定位(如圖5)。齒輪組的作用主要是將力量放大,使小功率電機產生大扭矩。位置檢測器其實就是可變電阻,當舵機轉動時電阻值也會隨之改變,藉由檢測電阻值便可知轉動的角度。低配版的位置檢測器使用的是電位器,高配版則使用霍爾傳感器或光柵編碼器來增強精度控制。
通常廠商所提供的舵機規格資料,都會包含外形尺寸(mm)、扭力(kg/cm)、速度(秒/60度)、測試電壓(V)及重量(g)等基本資料。扭力的單位是kg/cm,意思是在擺臂長度1厘米處,能吊起幾千克重的物體。這就是力臂的概念,因此擺臂長度愈長,則扭力愈小。速度的單位是秒/60度,意思是舵機轉動60度所需要的時間。一般舵機旋轉的角度范圍是0度到180度。
3.舵機的控制原理概述
舵機的接收機將接收到的控制信號傳入電路板中的信號調制芯片,信號調制芯片將其轉換成相應的直流偏置電壓。電路板的內置電路先將獲得的直流偏置電壓與位置檢測器的電壓進行比較,再將所得正(或負)電壓差輸出到電機驅動芯片來驅動電機向正(或反)轉。在電機轉速一定的情況下,減速齒輪帶動位置檢測器旋轉。由于位置檢測器是個可變電阻,其阻值大小隨電機旋轉角度的變化而發生變化,相應地,可變電阻兩端的電壓也隨之改變,直至電機旋轉到指定角度后,電壓差為零,電機才停止轉動。
4.舵機的PWM信號及其工作原理
PWM(Pulse Width Modulation),即脈沖寬度調制,簡稱脈寬調制。它是一種對模擬信號電平進行數字編碼的方法,并廣泛應用在從測量、通信到功率控制與變換的許多領域中。其工作原理是通過使用高分辨率計數器,對一系列脈沖的寬度進行調制,來等效地獲得所需的波形(含形狀和幅值)。如圖6正弦半波轉換PWM波示例,a)圖正弦半波被N等分,這樣整個正弦半波被看成N個相連的脈沖序列,脈沖寬度相等,但幅值不等;b)圖中矩形脈沖代替a)圖中對應的等分部分,這些矩形等幅,不等寬,中點重合,面積(沖量)相等,寬度可按正弦規律變化。按一定的規則對各脈沖的寬度進行調制,既可改變逆變電路輸出電壓的大小,也可改變輸出頻率、它具有諧波小、響應快的優點。
舵機的伺服系統就是由可變寬度的脈沖(即PWM)來進行控制。其外接三根控制線來傳送脈沖,這三根線,分別用棕、紅、橙三種顏色進行區分,由于舵機品牌不同,顏色也會有所差異,棕色為接地線,紅色為電源正極線,橙色為信號線。一般而言,舵機的基準信號都是周期為20ms,高電平寬度為1.5ms。這個基準信號定義的位置為中間位置。比較信號線的PWM信號與基準信號,內部的電機控制板得出一個電壓差值,將這個差值加到電機上控制舵機轉動。控制舵機的高電平范圍為0.5ms到2.5ms,0.5ms為最小角度,2.5ms為最大角度。另外,不同舵機的最大轉動角度可能不相同,但是其中間位置的脈沖寬度是一定的,那就是1.5ms。
角度是由來自控制線的持續的脈沖所產生,這種控制方法叫做脈沖調制。脈沖的長短決定舵機轉動多大角度,例如,1.5ms脈沖會轉動到中間位置(對于180度舵機來說,就是90度的位置)。當控制系統發出指令,讓舵機移動到某一位置,并讓它保持這個角度,這時外力的影響不會讓角度產生變化,但這個外力是有上限的,上限就是它的最大扭力。除非控制系統不停地發出脈沖穩定舵機的角度,否則舵機的角度不會一直不變。當舵機接收到一個小于1.5ms的脈沖,輸出軸會以中間位置為標準,逆時針旋轉一定角度;接收到的脈沖大于1.5ms,則情況相反。通常不同品牌甚至同一品牌的不同舵機,都會有不同的最大值和最小值。
5.180度舵機和360度舵機
我們知道,所有的舵機(特殊定制舵機除外)都是由PWM控制的,也就是說舵機控制板輸出的是PWM信號。但在實際使用中,根據具體需要,舵機有旋轉180度和360度之分。二者的PWM信號的控制對象卻大不相同。
①180度舵機的PWM信號控制的是旋轉角度。
0.5ms——0度;1ms——45度;1.5ms——90度;2ms——135度;2.5ms——180度。
500~2500μs的PWM對應控制180度舵機的0~180度,是一一對應的,一個PWM值對應舵機的一個角度。具體1DIV=8μs;250DIV=2ms時基址寄存器內的數值為:(#01H)01—(#0FAH)250。共185度,分為250個位置,每個位置叫1DIV。則185÷250=0.74度/DIV,PWM上升沿函數:0.5ms+N×DIV,0μs≤N×DIV≤2ms,0.5ms≤0.5ms+N×DIV≤2.5ms。
②360度舵機的PWM信號控制的是旋轉速度和旋轉方向。
0.5ms——正向最大轉速;1.5ms——速度為0;2.5ms——反向最大轉速。
500~1500μs的PWM控制它正轉,值越小,旋轉速度越大;1500~2500μs的PWM控制它反轉,值越大,旋轉速度越大。1500μs的PWM控制它停止(由于每一個舵機的中位可能會不一樣,有些舵機可能是1520μs的PWM,舵機才會停下來,所以需要自己實際測試出舵機的中位)。360度舵機就是一個普通的直流電機和一個電機驅動板的組合,所以它只能連續旋轉,不能定位,也沒法知道它的角度和圈數(除非自己在舵機外面加裝其他傳感器)。
1.舵機的隨動機構
舵機為隨動機構,所以:①當其未轉到目標位置時,將全速向目標位置轉動。②當其到達目標位置時,將自動保持該位置。所以對于數字舵機而言,PWM信號提供的是目標位置,跟蹤運動要靠舵機本身。③像HG0680這樣的模擬舵機需要時刻供給PWM信號,舵機自己不能鎖定目標位置。所以控制系統是一個目標規劃系統。
(1)HG14-M舵機的位置控制方法
舵機的轉角達到185度,由于采用8為CPM控制,所以控制精度最大為256份。目前經過實際測試和規劃,分了250份。將0~185分為250份,每份0.74度。控制所需的PWM寬度為0.5ms~2.5ms,寬度2ms。2ms÷250=8μs,所以得出:PWM信號=1度/8μs(如圖7及表1)。
(2)HG14-M舵機的運動協議
運動時可以外接較大的轉動負載,舵機輸出扭矩較大,而且抗抖動性很好,電位器的線性度較高,達到極限位置時也不會偏離目標。
2.目標規劃系統的特征
(1)舵機的追隨特性
角度與時間函數關系如圖8所示:
①舵機穩定在A點不動。
②CPM發出B點位置坐標的PWM信號。
③舵機全速由A點轉向B點。
△ф=фB-фA
△T=△ф÷ω
④CPM發出B點PWM信號后,應該等待一段時間,利用此時間舵機才能轉動至B點。
那么,具體的保持(等待)時間如何計算,講解如下:
令:保持時間為Tw。當Tw≥△T時,舵機能夠到達目標,并有剩余時間;當Tw≤△T時,舵機不能到達目標。理論上:當Tw=△T時,系統最連貫,而且舵機運動得最快。實際過程中由于兩個因素:①1個機器人身上有多個舵機,負載各不相同,所以ω不同。②某個舵機在不同時刻的外界環境負載也不同,所以ω不同。則連貫運動時的極限△T難以計算出來。目前采取的方法是經驗選取ω值。
(2)舵機ω值測定
舵機的ω值隨時變化,所以只能測定一個平均值。或稱出現概率最高的點。
依據:①廠商的經驗值;②采用HG14-M具體進行測試。
測試實驗:①將CPΜ開通,并開始延時Tw。②當延時Tw到達后,觀察舵機是否到達目標。測定時采用一段雙擺程序,伴隨示波器用肉眼觀察Tw與△T的關系。
(3)舵機ω值計算
一般舵機定為0.16~0.22秒/60度;取0.2秒/60度>>1.2秒/360度>>0.617秒/185度,則ω為360度/1.2秒,2π/1.2秒。ω=300度/秒,那么185度轉動的時間為185度÷360度/1.2秒=0.6167秒。
(4)采用雙擺實驗驗證(如圖9)
3.DAV的定義
將185度的轉角分為250個平均小份,則每小份為0.74度。定義:DAV=0.74度。由于ω=0.2秒/60度,則運行1DAV所需時間為:0.72度÷0.2秒/60度=2.4ms。
4.DIV的定義
舵機電路支持的PWM信號為0.5ms~2.5ms,總間隔為2ms。若分為250小份,則2ms÷250=0.008ms=8μs,定義:DIV=8μs。那么1DAV(0.74度)對應的△T為:0.74度÷60度/0.2秒=2.467ms。
5.單舵機調速算法
測試內容:①將后部下降沿的時間拉至30ms沒有問題,舵機照樣工作。②將后部下降沿的時間拉至10ms沒有問題,舵機照樣工作。③將后部下降沿的時間拉至2.6ms沒有問題,舵機照樣工作。④將后部下降沿的時間拉至500μs沒有問題,舵機照樣工作(如圖10)。
實踐檢驗出:下降沿時間參數可以做得很小。目前實驗降至500μs,依然工作正常。
原因:①舵機電路自動檢測上升沿,遇上升沿就觸發,以此監測PWM脈寬“頭”。②舵機電路自動檢測下降沿,遇下降沿就觸發,以此監測PWM脈寬“尾”。
△T:舵機運轉1DAV(7.4度)所需要的最小時間,目前計算出的數值為2.467ms;△T前面的20ms等待時間可以省略,舵機依然工作(如圖11);得出舵機跟隨的最快驅動方式,如圖12所示。
1.1ms時得出的Tw≈△T;也就是說1.1ms=2.467ms,顯然存在問題。經過考慮、重新觀察PWM波形圖發現,電機真正的啟動點如圖13,A到B的運動時間為:△T=Tw+B點的PWM。
1.控制要求
要求同時發給8個舵機位置目標值,該指令的執行周期盡量短,目的有兩個:其一,為了將來擴充至24舵機;其二,目標越快,舵機的轉動速度越快。以8路為1組或稱1個單位,連續發出目標位置,形成連續的目標規劃曲線,電機在跟隨過程中自然形成了位置與速度的雙指標曲線,實現8路舵機聯動。
2.注意事項
24個端口,P0.0、P1.0到P2.0,單DIV循環的最小時間只有8μs,所以串行運算是不行的,那么就采用并行運算(如下頁圖14)。目前采用的并行算法是P0.0~P0.7為一個基本單位,8位一并。
3.8路PWM信號發生算法解析
我們預計將整個周期控制在3.5~5ms內,由圖14得知:P1口的8個端在不同時間產生下降沿。那么假設P1.5口的N為125,那么就需要它在125個DIV后產生下降沿,時間為125×8μs=1000μs。
我們在其中發現兩個關鍵參數:時間參數N=125、邏輯參數P1.5=#0DFH。邏輯參數的定義如表3,采用ANL指令,操作P1口。
例如,將P1.5口產生下降沿,就將#0DFH去“ANL”P1口。邏輯“ANL”指令,逢“0”得“0”,不影響其他位。
4.N排序子程序RAM的制定(如表4、表5)
5.N差子程序解析
所謂N差子程序,要觀察PWM口的邏輯時序特性,要求連續將8位端口分別產生下降沿。所以有個先后問題,解決的方法有兩種:①打開8個時間中斷。②按先后順序排列,先后觸發。由于CPΜ不能開啟8個中斷,所以采用后者方法,就可以得出以下結論:第1個觸發位所用的時間為N1-0=M1;第2個觸發位所用的時間為N2-N1=M2;第3個觸發位所用的時間為N3-N2=M3……第8個觸發位所用的時間為N8-N7=M8。
由于上接排序子程序,已經按照從大到小排列,所以做減法后差全為正數。調用延時程序時,37H最先出,30H最后出(如表6)。
以上是對電動機、舵機原理及舵機調速的簡單介紹。舵機世界豐富多彩,希望本文的介紹能起到拋磚引玉的作用,讓我們更好地認識舵機,利用舵機,走進舵機的世界。