直流電機的PWM沖(寬度調變)調速控制技術 為調節馬達轉速和方向需要對其直流電壓的大小和方向進行控制。目前,常用大功率晶體管脈寬調制(PWM)調速驅動系統和可控硅直流調速驅動系統兩種方式。可控硅直流(SCR)驅動方式,主要通過調節觸發裝置控制SCR 的導通角來移動觸發脈沖的相位,從而改變整流電壓的大小,使直流電機電樞電壓的變化易平滑調速。由于SCR本身的工作原理和電源的特點,導通后是利用交流過零來關閉的,因此,在低整流電壓時,其輸出是很小的尖峰值的平均值,從而造成電流的不連續性。由于晶體管的開關響應特性遠比SCR 好,因此前者的伺服驅動特性要比后者好得多。 所謂脈沖寬度調變(Pulse Width Modulate 簡稱 PWM)信號就是一連串可以調整脈沖寬度的信號。脈寬調變是一種調變或改變某個方波的簡單方法。在它的基本形式上,方波工作周期(duty cycle)是根據輸入信號的變化而變化。在直流電機控制系統中,為了減少流經電機繞線電流及降低功率消耗等目的,常常使用脈沖寬度調變信號(PWM)來控制交換式功率組件的開與關動作時間。 其最常使用的就是借著改變輸出脈沖寬度或頻率來改變電機的轉速 。
 圖1 PWM 脈沖寬度調變信號圖 若將供應電機的電源在一個固定周期做ON及OFF的控制,則ON的時間越長,電機的轉速越快,反之越慢。此種ON與OFF比例控制速度的方法即稱為脈沖寬度調變,ON的期間稱為工作周期(duty cycle),以百分比表示。若直流電機的供應電源電壓為10伏特,乘以20%的工作周期即得到2伏特的輸出至電機上,不同的工作周期對應出不同電壓讓直流電機轉速產生不同的變化。若直流電機的供應電源電壓為10伏特,乘以20%的工作周期即得到2伏特的輸出至電機上,不同的工作周期對應出不同電壓讓直流電機轉速產生不同的變化。PWM產生器方塊圖如下圖所示,計數器采下數計數器與上數計數器的兩種PWM訊號。
 圖2、PWM 產生器方塊圖 與SCR 調速單元相比,PWM 調速控制有如下的特點: 1. 電機損耗和噪聲小。晶體管開關頻率很高,遠比轉子能跟隨的頻率高,也即避開了機械共振。由于開關頻率高,使得電樞電流僅靠電樞電感或附加較小的電抗器便可連續,所以電機損耗、發熱小。 2. 系統動態特性好,響應頻率寬。PWM 控制方式的速度控制單元與較小慣量的電機匹配時,可以充分發揮系統的性能,從而獲得很寬的頻帶。頻帶越寬,伺服系統校正瞬態負載擾動的能力就越高。新藝圖庫 3. 低速時電流脈動和轉速脈動都很小,穩速精度高。 4. 功率晶體管工作在開關狀態,其損耗小,電源利用率高,并且控制方便。 5. 回應很快。PWM 控制方式,具有四象限的運行能力,即電機能驅動負載,也能制動負載,所以響應快。 6. 功率晶體管承受高峰值電流的能力差。
二、DC 電機的轉向控制 一般在做DC Motor 驅動時,如果只要單一向轉動,只要在電機兩端加上正負電壓即可達成。但是在需要有反向旋轉能力時,就必須在電路運作中將電機電壓反向, 除了H-bridge可以達成外也可以使用繼電器(Relay)來達成。 1.H-bridge 動作原理
 圖3、H-Bridge 電機驅動電路 圖3 為一個典型的H-Bridge 電機驅動電路。其動作原理如下圖: (1) 當Q1,Q4 晶體管ON 而Q3,Q2為OFF,即可使電機正轉。
 圖4、電機正轉 (2) Q3,Q2 為ON 而Q1,Q4為OFF,則會造成電機反轉
 圖5、電機反轉 2. 能控制和方向邏輯驅動電機時,保證H橋上兩個同側的晶體管不會同時導通非常重要。如果晶體管Q1和Q2同時導通,那么電流就會從正極穿過兩個晶體管直接回到負極。此時,電路中除了晶體管外沒有其它任何負載,因此電路上的電流就可能達到最大值(該電流僅受電源性能限制),甚至燒壞晶體管。基于上述原因,在實際驅動電路中通常要用硬件電路方便地控制晶體管的開關。圖6所示就是基于這種考慮的改進電路,它在基本H 橋電路的基礎上增加了4個與門和2個非門。4個與門同一個“致能”導通信號相接,這樣,用這一個信號就能控制整個電路的開關。而2個非門通過提供一種方向輸入,可以保證任何時候在H橋的同側腿上都只有一個晶體管能導通。(圖6所示不是一個完整的電路圖,特別是圖中與門和晶體管直接連接是不能正常工作的。)采用以上方法,電機的運轉就只需要用三個信號控制:兩個方向信號和一個致能信號。如果DIR-L信號為0,DIR-R信號為1,并且使能信號是1,那么晶體管Q1和Q4導通,電流從左至右流經電機(如圖7所示);如果DIR-L信號變為1,而DIR-R信號變為0,那么Q2和Q3將導通,電流則反向流過電機。
 圖6、具有致能控制和方向邏輯的H 橋電路
 圖7、 致能信號與方向信號的使用
實際使用時,用分立組件制作H橋是很麻煩的,現在市面上有很多封裝好的H 橋集成電路,接上電源、電機和控制信號就可以使用了,在額定的電壓和電流內使用非常方便可靠。常用的有L293D、L298N、TA7257P、SN754410 等。8 TA7257P直流電機驅動IC中文資料 TA7279P/TA7279AP直流電機驅動IC中文資料8電 3. ZXMHC3A01T8 ZXMHC3A01T8 是一顆MOSFET H-BRIDGE IC,參數如下 : N-Channel = VDSS = 30V; RDS(on) = 0.12Ω; ID = 3.1A P-Channel = VDSS = -30V; RDS(on) = 0.21Ω; ID = -2.3A P-Channel = Turn-off delay time 12.1 ns
 圖8、 ZXMHC3A01T8 之導通內阻
4. 電機的回授控制 圖14 是本專題的電機控制示意圖。由圖14 可知10kHz 的PWM 是由MCU 內部硬件輸出,再由MOSFET H-bridge 去驅動電機,之后電機會因MOSFET H-bridge 驅動后旋轉,并且會回傳路徑 A 和 B 的兩相訊號到Encoder Count ,Encoder Count 是由一顆CPLD 構成,CPLD 會自動累加計算目前電機所走的格數,以12Bit 為輸出訊號給予MCU 的PID 控制程序,PID 會演算出目前該行走的速度,再加以控制MCU 內部的PWM 硬件緩存器,就這樣一直反復的運算,來達到電機的伺服控制。
 圖14、電機回授控制示意圖 電機回授的兩相訊號A和B會傳遞給CPLD作為判斷,CPLD利用兩相訊號的相位差判斷正轉及反轉,就如圖15所示,假如channel A及 channel B 同時間信號為channel A = 1、 channel B = 0就是正轉。
 圖15、電機的channel A and channel B 信號(正反轉) 判斷正轉反轉數據后再將信號切割成4 份,如圖16 所示,切成4 份就會有相位改變的信號出現,之后CPLD 內會有一個12Bit 的計數器,累加相位改變的次數,去增加或者減少計數器內的數值。
 圖16、電機的channel A and channel B信號(步數) 有了這些判斷信號的方式,再加上多任務器能夠一次判斷兩顆電機數據,如圖17所示,SWDATA 為多任務器,能夠將分別不同組的電機輸入信號所計數的數據,傳遞至相同的輸出埠給予MCU,即可達成直流電機的速度控制。
 圖17、CPLD 內部規劃程序圖 4.1 電機控制器的設計
 (1) 比例控制器 電機的驅動力與誤差成正比的回授控制方式如圖18所示,比例控制的缺點是一定會存在穩態誤差。此外,當比例因子k太小時,上升時間太長;比例因子太大時則會產生如圖19所示的振蕩現象。
 圖18、比例控制器的驅動力與誤差之間的關系
 圖19、不同比例因子下,比例控制器的響應圖與穩態誤差 (2) PD控制器 PD 控制器在電機的驅動力與誤差關系中加入微分項,如下:
 PD 控制器可以有效的提升系統響應的速度,但是仍然存在穩態誤差的問題。
(3) PID 控制器 本計劃采用如圖20 所示的PID 控制器,電機的驅動力與誤差的關系如下:
 或表示成離散的形式 
 圖20、電機PID 控制之示意圖 采用PID 控制可以有效改善穩態誤差,同時降低系統達到穩態的時間,典型的P、PD 及PID 控制的響應如圖21 所示。

圖21、P、PD 及PID 控制器的響應圖與穩態誤差 4.2 輸出的分辨率 由于計算機鼠是采用脈寬調制(PWM)控制的,輸出是PWM 信號的一個調整的工作周期。因此,輸出的真正的分辨率是由PWM 的分辨率決定的。顯然,1位的分辨率(開關控制)是不夠的。在另一方面,1024 的分辨率(10 位元)是太多了,因為大多數機械系統的誤差超過0.1%。對于機械系統,其內在誤差約為 1%,因此作為PWM 的分辨率設定為128 (7位)就足夠了。我們將使用kτ代表輸出的分辨率的位數。 4.2.1 e(t)和Kp的分辨率 我們需要確定誤差項e(t) 的分辨率。讓我們考慮現行系統下,速度可達到x 脈沖/秒(pps)。這意味著誤差項可達到2x (pps),因為電機可向前轉或向后轉。接下來的因素是PID 回路邏輯的運行速度。設PID 回路的頻率f。雖然實際的誤差最多可以有2x (pps),由于每一次f 次執行PID,因此誤差只有2x/f (pps)。例如,如果最高速度的可逆系統是1200 (pps),PID 回路的頻率50Hz,范圍只從-48到48,故可以用一個7 位帶符號整數表示。因此,e(t)需要的位數為

如果eτ 接近kτ ,則Kp值必須不能太大。這意謂你需要依靠Kp的分數以微調此項。因此,Kp是PID 回路的一個重要的系數。許多小型的微控制器為了加速計算,通常不使用浮點數運算,而是采用 整數/常數 的計算。例如,即使我們知道Kp值不超過4, 我們可以用8位來表示。最不顯著的(右邊的) 6位成為小數部分。對于一個整數的二位模式101101012,代表的值為 。除數26可以用快速的右移運算執行。
4.2.2 Ki 的分辨率
積分項Ki 是非常重要,因為它使得系統得以到達設定值。如果沒有積分項, PID回路根本無法到達設定的參考信號。積分項與誤差的總和成正比。誤差的總和可以遠大于誤差項本身。因此最好限制誤差的總和(上限)。積分項的范圍應約為20倍誤差的范圍。由誤差的幅度來看,積分項沒有分辨率的問題。由于剛開始時誤差的總和是較大的值,所以Ki 系數必須是較小的數字。這是容易做到的,只要讓二進制左側(最重要的)位代表Ki。麻煩的是,我們現在有一個很大的數字乘以另一個大數字。對于8位系統,這可能需要多費一點時間。因此,一些控制系統選擇忽略一些次要數字來加快計算。 4.2.2 KD 的分辨率 微分項是誤差的改變。雖然此項的大小可以和誤差項本身有相同幅度,但通常它是非常小的(誤差項的十分之一或更小)。在一個連續系統,這不是一個問題,因為有無限的精度。然而,在數位系統,在量化微分項的值時產生問題。除了依靠行使PID 期間的脈沖數外,我們也可以依靠脈沖之間的周期。雖然周期與速度成反比,但在慢速時,和采用脈沖數比較它仍然較為準確。
考慮實際的例子,某系統預計為1000pps,這相當于每毫秒執行1次脈沖。然而當系統速度下降依靠摩擦來完全停止,其速度會下降到一個小數目(如1)的脈沖/秒。它成為不可能知道實際的速度。但是使用定時器我們可以追蹤脈沖之間的周期,并使用此周期推導出的實際速度。如果考慮在最壞情況下,16位的計數器和50Hz的PID執行頻率,最低頻率為50Hz,而下一個最低的頻率(由于數字化)是
。分辨率增加 7%,即使在依靠行使PID 期間的脈沖數的方法失敗的情況下。
|