基于ATmega8的直流電機PWM調速控制系統設計與實現
本文將介紹一款以ATmega8為基礎,采用數字PID算法的受限單極性可逆PWM系統實現的直流電機調速控制系統,克服了上述難點。
本文引用地址:http://www.104case.com/article/162036.htm一、引言
直流電機因具有良好的線性調速特性、效率高、控制簡單、調速性能好及體積小等優點得到了廣泛使用。常規電機調速控制方法中,電機工作不穩定,損耗較大,尤其在低電壓輕負荷時情況更為嚴重,且工作頻率受電源頻率的限制,難以滿足高精度的調速要求,不利于廣泛推廣[1]。
如何才能使電路具有成本低、控制精度高、調試修改參數方便,且能方便和靈活地適用于大功率、可靠性高的直流電機控制系統中,是我們研究的目的。
文獻[2]和文獻[3]中采用了先進算法,用LTM18200和L298作電機控制電路,具有控制精度高、穩定性好、響應速度快等優點,但其驅動能力較低、成本較高。
二、直流電機PWM調速原理
直流電機轉速表達式為:
式中:U—電樞端電壓;I—電樞電流;R—電樞電路總阻;—每極磁通量;K—電機結構參數。
對直流電機的轉速控制方法可分為對勵磁磁通進行控制的勵磁控制法和對電樞電壓進行控制的電樞控制方法。目前絕大多數直流電機采用開關驅動方式,它是使半導體功率器件工作在開關狀態,通過脈寬調制PWM來控制電機電樞電壓,實現調速。
PWM(PulseWidthModulation)—脈沖寬度調制技術通過對一系列數字脈沖的寬度進行調制,在脈沖作用下,當電機通電時速度加快,斷電時速度逐漸變慢,只要按一定規律改變通斷電時間,即可對電機的轉速控制,實現直流電機調速數字化[4],如圖1。
三、控制系統硬件設計
本調速控制系統,主要由ATmega8單片機、驅動電路、轉速檢測電路和通信接口電路等部分組成,如圖2所示。
1.ATmega8單片機簡介[5]
ATmega8是增強的AVRRISC結構的CMOS微控制器,具有高速度、低功耗、片內資源豐富、電源抗干擾能力強等優點。ATmega8具有32個通用工作寄存器及豐富的指令集,帶有硬件乘法器以及8K的FLASH和1K的SRAM,還帶有8路10位ADC以及三通道的PWM輸出,支持ISP功能,可以很方便地對器件進行在線編程及修改。
2.ATmega8實現PWM控制
ATmega8的16位T/C可以實現精確的程序定時、波形產生和信號測量。ATmega8波形發生器利用雙緩沖輸出比較寄存器OCR1A/B與T/C的值做比較,產生PWM信號,通過輸出比較引腳OC1A/B輸出無干擾脈沖、相位正確、可變頻率的PWM信號。
PWM將占空比(電機電樞電壓接通時間與通電周期的比值)不同的脈沖變成不同的電壓來驅動直流電機轉動,通過改變占空比,得到不同的轉速,實現電機啟動、停止、和反轉等功能。
單片機通過比較預設速度與實測速度的偏差,經PID算法得出控制量,根據控制量改變PWM信號的輸出脈寬,經驅動電路功率放大后實現對電機速度的控制,然后循環進入下一個控制周期。
3.驅動電路原理
直流電機常要求工作在正反轉的場合中,就需要合用可逆PWM系統,可逆PWM系統可分為雙極性驅動可逆PWM系統和單極性驅動可逆PWM系統。雙極性可逆系統在低速時運行平穩,但電流波動大,功率損耗較大,尤其是必須增加死區來避免開關管直通的危險,限制了開關頻率的提高;單極性驅動方式能夠避免開關管直通,可以大大提高系統的可靠性,盡管輕載時會出現斷流,但可以通過提高開關頻率的方法或改進電路設計來克服。
該系統采用受限倍頻單極性可逆PWM驅動控制,如圖3所示。它可以通過改變對開關管的控制方式,而使直流電機電樞兩端獲得比PWM控制信號頻率高1倍的電壓波,可以彌補受限單極驅動所產生的電流斷流的問題,具有驅動能力強、控制簡單、可靠性高且成本低等優點。
PWM接ATmega8的OCR1A腳PWM信號輸出,IN1、IN2接電機正反轉控制信號;PWM、IN1和IN2具體邏輯功能見表1:
四、控制系統程序設計
控制程序采用C語言模塊化結構。主要包括主程序、PID控制程序、中斷服務程序和電機正反轉控制程序等部分。
1.主程序流程圖
主程序主要完成相關中斷初始化、調用顯示、判斷中斷類型和執行相應中斷服務程序等功能,其結構如圖4所示:
2.數字PID控制器[1]
在控制系統中,將輸出量與給定量之間的偏差的比例P、積分I、微分D通過線性組合構成控制量的PID控制器獲得了廣泛的應用,它參數整定方便,結構更改靈活。
PID表達式:
其中:u(t)——控制量;KP——比例放大系數;TI——積分時間;TD——微分時間。
本系統采用轉子位置傳感器,利用傳感器輸出的脈沖信號來反映電機的轉速。將傳感器輸出的信號經過采樣調理電路后送至單片機,該引腳作為外部中斷源的輸入口,隨著電機的轉動,單片機將不斷接收到脈沖信號,當接收到一個上升沿時將啟動定時器T0以開始計時,直至接收到下一個相鄰的上升沿為止,定時器T0的計時結果便是電機轉動一圈所需的時間,據此即可計算出電機的轉速。利用PID算法,將實時采集的電機轉速值與設定值進行比較,得出偏差,利用軟件編程實現轉速調節。
本系統采用位置式數字PID算法,其控制算法簡化示意圖如圖5:
采用全量算法,通過差分代微分,可將表達式化簡為:
其中:;;
u(k)——第K個采樣時刻的控制量;KP——比例放大系數;kI——積分放大系數;kD——微分放大系統;TS——采樣周期;u0——控制量的基值,即k=0時的控制。
PID算法流程圖如圖6所示:
pid控制器相關文章:pid控制器原理
pwm相關文章:pwm原理
脈寬調制相關文章:脈寬調制原理
評論