基于STM32的雙相步進電機細分驅動器設計
3.2 系統電源
驅動系統的電源由一個外部輸入的24~48V的直流電源輸入接線端,然后通過BUCK降壓芯片至5 V為內部光耦、比較器和運放供電,然后將5 V通過LDO降至3.3 V給MCU供電,這樣MCU能獲得相對干凈的電源。另一路外部電源經過電阻分壓,產生一個15 V電源用于MOSFET驅動芯片IR2010的供電。
3.3 驅動電路
MOSFET驅動部分采用IR公司的IR2101S驅動芯片來驅動雙H橋,從而靠雙H橋來控制一個四線制步進電機。IR2101是IR公司生產的一款高性價比驅動器,使用方法非常簡單,性價比高,能輸出100~210 mA電流。IR2101驅動器可驅動一組功率管,整個功率電路需4片即可,這樣不但節約制造成本,而且還提高系統穩定性。其驅動電路如圖4所示。
3.4 電流檢測和過流保護
本系統使用采樣電阻來采集經過H橋(即電機的定子電流)。此處采樣電阻阻值比較大時,會使電阻分壓過大,造成H橋的低端電壓高于地電壓,影響系統的穩定性,而阻值太小又會使信號過小影響檢測精度,所以本系統選用0.1Ω電阻作為采樣電阻。然后經過LMV358放大后,成為0~3 V的電壓信號,在經過一個跟隨器后,進入MCU片上AD,進行數模轉換,放大后的信號還連接一個比較器用于過流保護。
4 系統軟件設計
系統軟件主程序框圖如圖5和圖6所示,圖5為主程序軟件框圖,圖6為ADC中斷軟件流程圖。
主程序處于死循環狀態,每次外部信號Enable后,就會鎖存外部的控制頻率,方向,限流值,細分度等信號,然后進行內部參數初始化,等待刷新定時器計時完畢后就開始按照計時中的ADC中斷及定時器中斷完成的參數計算進行調節位置和速度。
其中ADC在每個PWM的上升沿觸發,采樣兩相電流進行處理,并且將其送給PI調節器調節PWM占空比,并且每次都會與限流值進行比較,一旦電流超過限流值,則自行執行脫機。這些程序在中斷中完成,可以是系統更具有實時性。另外,每次走完一個階梯的波形后,程序將觸發timer3計數器,進行細分步數的計算,從而快的調整個周期的細分數。Timer3程序流程圖如圖7所示。
電機的細分步數為每次Enable之后方能調整,而細分值表則由計算好的正余弦參數存于MCU Flash中。
5 結論
本系統采用電流實時采樣并進行PI調節,使兩相混合式步進電機的恒轉矩運行,真正達到了電流矢量不變控制,在測試中能夠有效的降低低頻振蕩,并且,在16細分的狀態下控制工作,大幅度的減小了噪聲和阻尼振蕩,是一種有效的控制步進電機的手段。
伺服電機相關文章:伺服電機工作原理
評論