掌握MCU軟件設計準則 實現直流馬達控制精準度提升
MCU軟件襄助 永磁DC馬達更適于反轉應用
永磁DC馬達通常被用于須要反轉馬達方向的應用中。為了反轉旋轉方向,須要反轉馬達上電壓的極性。這須要使用H橋電路(圖3),H橋電路有四個晶體管。當在正方向驅動馬達時,Q4打開,PWM信號應用于晶體管Q1。在反方向上驅動馬達,Q3打開,PWM信號應用于晶體管Q2。在這個范例中,下部的晶體管被用于PWM速度控制;上部的晶體管被用于轉向,使用這種拓撲結構,可以在兩個方向上提供變速控制。

圖3 DC馬達全橋電路
在圖3中,N通道功率MOSFET被用于低壓側晶體管,P通道功率MOSFET被用于高壓側晶體管。對于驅動20V以下的DC馬達來說,利用互補功率MOSFET是非常符合成本效益的。如圖3所示,低壓側閘極驅動器帶有反相器;而高壓側閘極驅動器沒有反相器。閘極驅動器極性被選擇,以確保當端口引腳在弱上拉?動的重置配置模式下,功率晶體管處于關閉狀態(tài)。
該范例軟件建構在基本范例代碼上。主回路現在包括一個if語句檢查反轉開關SW1的狀態(tài)。當反轉按鍵被按下,PWM停止運作,同時所有P0輸出也同樣被禁止。當按鍵釋放后,馬達將反轉方向。范例軟件中的初始化函數類似于DC有刷馬達控制,只是除了增加額外的推挽式輸出引腳配置之外。
調用reverse()函數反轉馬達方向。標志位Fwd用于保存馬達狀態(tài),Fwd位被切換用于判斷哪些輸出須要啟動。
反轉馬達還存在一個潛在的問題。當反轉開關SW1被按下時,馬達可能由于馬達慣性而繼續(xù)旋轉一段時間。當馬達正在轉動時,它將產生與馬達速度成比例關系的反向電動勢;如果馬達停止旋轉之前反向按鍵被釋放,馬達反向電動勢將透過上部晶體管而短路,如下所述。
參考圖4,假設開始時Q4處于打開狀態(tài),馬達正在正方向上旋轉;假設馬達正在運行,并且反向電動勢大約為6V。現在反轉開關被按下,所有四個晶體管被關閉,馬達右側將比左側高約6V;然后開關釋放,打開Q3,馬達左側被上拉到電源電壓,馬達的反向電動勢必透過Q4的內部二極管而短路。

圖4 DC馬達反轉危害
最終的結果是,馬達停止,在馬達機械慣性中儲存的所有能量被注入Q4。反轉過程中很容易損壞上部晶體管,在一些具有較大摩擦力負載的應用中,一個固定延遲時間可以確保馬達有足夠時間停止。而在其他應用中,馬達可能須要花費幾秒鐘才完全停止,這個問題的通用解決方案,如圖4所示。
軟件防護法助力 DC馬達反轉控制更安全
這個用于DC馬達的軟件范例基于第二個范例,提供軟件防護方法。為了安全的反轉DC馬達,我們須要判斷馬達是否還處于運轉中。
確定馬達是否仍然處于旋轉狀態(tài)的簡單而有效方法,是測量跨接在馬達端子上的電壓差。ADC能夠被配置,去測量模擬多路選擇器中的任意兩個輸入引腳上的差動電壓??沙绦蛟O計的窗口檢測器也可以用于判斷差動電壓是否屬于默認極限。在這個范例軟件中,如果差動馬達電壓在100毫秒(ms)內保持在滿量程的3%以下,那么馬達即開始反轉。具備電壓感應功能的DC馬達驅動的硬件實現,類似于在馬達端子上分別添加兩個電阻分壓器(圖5)。

圖5 帶有電壓感應能力的DC馬達驅動
主回路已經被改進用來檢測馬達是否停止。detectStop()函數首先配置ADC去測量差動電壓,ADC和窗口檢測器都適用于查詢模式。如果ADC值在默認窗口范圍內,那么計數器增加。使用實現10ms延遲的定時器T0設置采樣時間,任何在窗口之外的采樣值將重置定時器,退出while回路之前,它將使用十個連續(xù)的采樣值;返回到主回路之前,detectStop()函數將重新配置ADC去測量速度電位器。
評論