王傳博 王溪文


摘要:直流電機閉環調速控制系統主體是由主控電路、測速模塊及電動機組成。該系統通過PID與PWM之間的關系控制脈沖序列,由速度傳感器測出電動機的轉速反饋給單片機,從而構成閉環反饋控制系統,在單片機處理信號時采用PID算法對輸出信號進行校正,改變輸出脈沖的占空比使其更加準確的控制電動機轉速。這種閉環控制系統提高了系統運行時的穩定性和調速的精度,增強了對直流電機速度的可控性,能夠有效的實現對直流電動機轉速的控制。
關鍵詞:電機;測速傳感器;PWM控制;PID算法
0引言
隨著科學技術的發展和進步,自動化控制技術的需求不斷擴大,以單片機為核心的電機調速系統以其良好的調速特性和制動性能,使得在各個領域中的應用越加廣泛[1-2]。本次設計以STM32單片機作為控制核心,采用增量式PID算法和PWM技術通過霍爾傳感器的反饋構成閉環控制系統,更好的保證電機調速系統在各個領域的應用與發展。
1系統總體方案設計
本次設計一共設置了四個按鍵,分別對應電機啟動,加速,減速,停止四種運行狀態。上位機將相對應的程序寫入STM32單片機,由STM32單片機輸出脈沖序列通過占空比的改變控制電動機的轉速,霍爾傳感器采集電動機的轉速轉換成數字信號反饋給單片機,單片機內部程序通過PID算法對反饋信號加以校正在重新輸出,使系統形成一個閉環反饋。系統結構框圖如圖1所示。
圖1 系統結構框圖
2硬件設計
2.1電機控制模塊設計
本次設計中采用的電機控制模塊是L298N雙H橋直流電機驅動芯片,該芯片具有ENA和ENB兩個使能控制端,采用邏輯電平信號控制電機轉動[3]。芯片工作時端子懸空,VMS驅動部分由單片機通過杜邦線供電,這種供電方式簡化了電路的設計,大幅提高了系統的運行效率。
L298N控制芯片的端子左右兩排插針IN1~IN4分別接在STM32單片機接口的GPIOF1~4,OUT1~OUT2連接直流電動機,用來控制電動機旋轉方向和轉速。ENA和ENB接高電平時芯片使能,在本次設計中由單片機輸出信號拉高。
2.2測速傳感器模塊設計
本文采用的測速傳感器為霍爾測速傳感器ES3144,該傳感器主要由傳感頭和齒圈組成,其工作原理為霍爾效應,當轉動的金屬部件通過霍爾傳感器的磁場時引起電勢變化,通過對電勢的測量就可以得到被測量對象的轉速值。當信號盤隨電機轉軸旋轉時,信號盤的每個齒經過探頭正前方時產生感應,探頭就輸出一個標準的脈沖信號。因此,脈沖信號的頻率大小就反映了直流電動機的轉速。
對于轉速的測量方法很多種,本次設計中采用的是根據脈沖計數來實現轉速測量的定數計時法也稱測周期法。定數計時法是指電機轉速以單位時間內轉數來衡量,在變換過程中多數是有規律的重復運動本次設計中采用定數計時法,在被測信號的一個周期內,計數時鐘脈沖數為m,fc為時鐘頻率,則被測信號的頻率fx的計算公式可見式(2.1)。
(2.1)
霍爾轉速傳感器通過磁力線密度的變化,在磁力線穿過傳感器上的感應元件時,產生霍爾電勢并將其轉換為交變電信號,最后傳感器的內置電路會將信號調整和放大,輸出矩形脈沖信號傳遞給單片機。
3軟件設計
3.1 PWM調速設計
在本次設計中將電動機的工作頻率設為1000HZ,則周期為1ms。在輸出PWM波時,利用定時器確定PWM的周期及占空比。其計算公式見式(3.1)。
(3.1)
式中的T為PWM的周期,D為占空比,t是由定時器產生一個時間基準,定時器溢出的次數為n。周期與占空比相乘所得的時間也就是單片機輸出高電平的時間。系統運行時,規定電動機最大轉速為Vmax,占空比為D,則電機的平均速度其中Va指的是電機的平均速度;Vmax是指電動機在全通電時的最大速度;占空比。當占空比不同時,會得到不同的平均速度Vd,達到調速目的。一個周期加在直流電動機兩端的電壓的大小就是高電平脈沖的個數乘上占空比的大小,電機的平均速度等于在指定的占空比下直流電動機的最大速度乘上占空比,因此當改變脈沖序列里的占空比時,電動機就會產生不同的速度。
單片機產生的周期為1ms(10000HZ)的PWM,所以可設置中斷的時間間隔為0.01ms,,然后中斷100次即為1ms。在中斷子程序內,可設置一個變量time,在中斷子程序內,當time>=100時,time清零(此語句保證頻率為10000HZ),time>n(n在0-100之間)時單片相應的I/O口輸出高電平,反之,單片相應的I/O口輸出低電平,此時占空比就為n%。占空比通過time的值進行變化,time<=20時 PWM1=0; 是指%20的時間輸出低電平,80%的時間輸出高電平,即占空比為80%。頻率是由11.0592M晶振,10KHZ PWM輸出頻率,定時器0.01ms中斷一次,中斷次數100次即為10KHZ( 0.01ms*100=1ms,即為10000HZ,此時,定時器計數器賦初值為FF。
另需要定義一個標志位flag,根據flag的狀態決定輸出高平還是低電平,定義flag=1的時候輸出高電平,用變量記錄定時器中斷的次數,每次中斷就讓記錄中斷次數的變量加1,在中斷程序里面判斷這個變量的值是否到n值。當達到了高電平的時間,此時改變將0值賦給flag,輸出低電平,同時記錄中斷變量的值清零,每次中斷的時候依舊加1,根據flag=0的情況跳去判斷記錄變量的值是否達到n,如果符合,flag值會改成1,輸出改高電平,同時記錄次數變量清零,重新開始,通過子程序的不斷循環來得到設計需要的PWM波形。
3.2 PID控制算法設計
PID控制算法其實是對設置的預定參數進行跟蹤。在控制領域,先采集目前的實時參數,與設定的參數進行比較,計算出誤差,然后進行積分微分運算,計算出控制器需要的增量然后與實際參數相加,使其盡可能的接近設定值 。PID控制算法一共有三種,分別是增量式算法、位置式算法和微分先行,在本次設計中采用增量式算法,其計算公式見式(3.2)。
(3.2)
在本次設計中為了加快開始的動態過程,設定了一個偏差范圍v,當偏差|e(t)|< β時,即被控量接近給定值時,就按正常規律調節,而當|e(t)|>= β時,則不管比例作用為正或為負,都使它向有利于接近給定值的方向調整,即取其值為|e(t)-e(t-1)|,加快了控制的動態過程。增量式算法中比例積分Kp越大時,電機轉速回歸到輸入值的速度將更快,及調節靈敏度就越高,可以增加P值來減少調節時間,但造成了電機轉速在預設值附近振蕩的情形,因此引入積分Ki環節消除穩態誤差,但系統趨于穩定的時間不應過長,因此在本次設計的系統中將時間常數設置很小。具體PID算法程序流程圖如圖2所示。
4結語
本文主要對基于STM32單片機的直流電機調速系統的設計進行了詳細的闡述。以單片機作為核心控制芯片,采用閉環的數字控制,用組合邏輯電路實現脈沖信號輸出,配合控制芯片對電動機驅動的控制,通過霍爾測速傳感器對直流電機的速度采樣,由PID控制算法對輸出信號進行校正提高測量電機轉速的精度。
參考文獻:
[1]陸麗婷,項巖.基于單片機的電機測速系統設計[J].無線互聯科技,2017 (17):35-36.
[2]蔡述庭.智能汽車競賽設計與實踐[M].北京:北京航空航天大學出版社,2012.
[3]張小鳴,盧方民.基于 IR2110 的 H 橋可逆 PWM 驅動電路應用[J].
作者簡介: 王傳博(1996.10—),男,遼寧,碩士,主要研究方向:控制系統與應用
圖2.PID算法程序流程圖