王國(guó)義,袁 濤,余興國(guó),李 昊
(安徽機(jī)電職業(yè)技術(shù)學(xué)院互聯(lián)網(wǎng)與通信學(xué)院,安徽 蕪湖 241002)
電動(dòng)汽車(chē)以其節(jié)能環(huán)保、高效率、低污染、安全的優(yōu)點(diǎn)受到人們的喜愛(ài),成為人們出行的重要交通工具之一.電機(jī)、電池、控制器是電動(dòng)車(chē)的3大部件,其中控制器是電動(dòng)車(chē)的大腦,控制著整個(gè)電動(dòng)車(chē)的運(yùn)行.為了統(tǒng)籌管理電動(dòng)汽車(chē)控制系統(tǒng)中的各個(gè)電子控制部件,需要一個(gè)整車(chē)控制器來(lái)完成這些工作,控制器的性能直接影響電動(dòng)汽車(chē)的運(yùn)行情況.目前,市面上的控制器只是完成整車(chē)的控制工作,不能根據(jù)路況的好壞平滑地調(diào)節(jié)驅(qū)動(dòng)電機(jī)速度[1-3],使電動(dòng)車(chē)達(dá)到最佳運(yùn)行狀態(tài).因此,筆者擬分析電動(dòng)客車(chē)的運(yùn)行特性,研發(fā)一款性能優(yōu)越、安全高效的電動(dòng)車(chē)控制器,以期電動(dòng)車(chē)可以在不同的路況上調(diào)節(jié)驅(qū)動(dòng)電機(jī)速度.
考慮電動(dòng)客車(chē)的控制單元、實(shí)現(xiàn)功能、后續(xù)升級(jí)等因素,以及系統(tǒng)的可靠性、安全性和連續(xù)性保證,選擇STM32系列的芯片作為控制器的微控制單元.該芯片是嵌入式應(yīng)用設(shè)計(jì)的Cortex-M3內(nèi)核,有支持位帶操作,內(nèi)部集成了高度的模數(shù)轉(zhuǎn)換器 (Analog to Digital Converter,ADC)、編碼器接口電路、定時(shí)器等豐富的資源.芯片上有上電復(fù)位、看門(mén)狗定時(shí)器及掉電檢測(cè)單元等監(jiān)控單元,可以滿(mǎn)足低成本、低功耗的不同場(chǎng)合的開(kāi)發(fā)應(yīng)用需求.
如圖1所示,純電動(dòng)客車(chē)控制器主要由電機(jī)驅(qū)動(dòng)系統(tǒng)、電池及電池管理系統(tǒng)、儀表顯示系統(tǒng)和控制器局域網(wǎng) (Controller Area Network,CAN)總線(xiàn)系統(tǒng)構(gòu)成.純電動(dòng)客車(chē)控制系統(tǒng)中用電機(jī)取代發(fā)動(dòng)機(jī),通過(guò)微處理器輸出信號(hào)控制逆變電路中的功率開(kāi)關(guān)管,從而實(shí)現(xiàn)電機(jī)運(yùn)行狀態(tài)的有效控制;電池是純電動(dòng)客車(chē)控制系統(tǒng)的動(dòng)力源,電池管理系統(tǒng)主要檢測(cè)和管理電池的電壓、電流及溫度;CAN總線(xiàn)將分布在純電動(dòng)客車(chē)車(chē)身上的各種模塊信號(hào)傳送給微處理器,微處理器發(fā)出的控制信號(hào)又通過(guò)CAN總線(xiàn)傳遞給車(chē)身上的各種模塊;儀表顯示系統(tǒng)對(duì)開(kāi)關(guān)量、模擬量、電機(jī)轉(zhuǎn)速、車(chē)速及各種監(jiān)測(cè)節(jié)點(diǎn)信息進(jìn)行實(shí)時(shí)顯示[4-5].
圖1 控制器的整體結(jié)構(gòu)Fig. 1 Overall Structure of Controller
根據(jù)實(shí)現(xiàn)功能和控制要求,控制器采用模塊化的設(shè)計(jì)思想.傳感器采集各種信息并接收CAN總線(xiàn)上的信息,微處理器分析處理采集的數(shù)據(jù)信息,再以命令信號(hào)的方式通過(guò)CAN 總線(xiàn)傳送到相應(yīng)的控制單元系統(tǒng),完成相應(yīng)的動(dòng)作[6-8].
STM32系統(tǒng)的時(shí)鐘電路如圖2所示.系統(tǒng)工作時(shí)需要2個(gè)晶振:一個(gè)是高速外部時(shí)鐘(圖2(a)),頻率范圍為4~16 MHz,PLL倍頻用,一般為8 MHz;另一個(gè)是低速外部時(shí)鐘(圖2(b)),系統(tǒng)待機(jī)或低功耗使用,使用頻率為32.6 kHz,用于RTC及看門(mén)狗.
圖2 時(shí)鐘電路Fig. 2 Clock Circuit
STM32系統(tǒng)的復(fù)位電路如圖3所示.由于STM32是低電平復(fù)位,因此在硬件電路設(shè)計(jì)時(shí)也是低電平復(fù)位.圖3中R5和C5構(gòu)成上電復(fù)位電路.
圖3 復(fù)位電路Fig. 3 Reset Circuit
STM32系統(tǒng)中的+48 V電壓由外部的蓄電池提供,用于整個(gè)無(wú)刷直流電機(jī)的控制系統(tǒng),其中+15 V為功率開(kāi)關(guān)管和驅(qū)動(dòng)電路提供工作電壓,+5 V為各種檢測(cè)電路供電,+3.3 V為系統(tǒng)提供工作電壓.STM32系統(tǒng)的電源電路如圖4所示.
圖4 電源電路Fig. 4 Power Supply Circuit
圖4中:系統(tǒng)的+15 V電壓經(jīng)三端穩(wěn)壓調(diào)節(jié)器AMS1117-3.3穩(wěn)壓得到+3.3 V電壓,供微處理器STM32工作使用;C6和C7起到濾波去噪作用;輸出端的C8和C9對(duì)輸出的電壓進(jìn)行濾波去噪,得到穩(wěn)定的+3.3 V電壓;R1和發(fā)光二極管D1組成串聯(lián)電路,是+3.3 V電壓輸出的提示電路.
純電動(dòng)客車(chē)在行駛的過(guò)程中逐漸消耗電能,如果電量不足以繼續(xù)行駛,那么不僅會(huì)影響行駛速度和運(yùn)行狀態(tài),而且蓄電池因過(guò)度消耗電能還會(huì)導(dǎo)致?lián)p壞,因此有必要對(duì)蓄電池的剩余電量進(jìn)行實(shí)時(shí)監(jiān)測(cè),一旦出現(xiàn)低于設(shè)定的電壓就采取相應(yīng)的解決措施.車(chē)載低壓控制系統(tǒng)的蓄電池為+48 V,而STM32微處理器控制系統(tǒng)采用的是+3.3 V,所以需要通過(guò)轉(zhuǎn)換電路將+48 V的電壓轉(zhuǎn)換為STM32微處理器能夠識(shí)別的電壓.這里采用精密電阻分壓的方式,將蓄電池的+48 V分壓到3.3 V以?xún)?nèi),便于微處理器采集和分析.STM32系統(tǒng)的電壓檢測(cè)電路如圖5所示.
圖5 電壓檢測(cè)電路Fig. 5 Voltage Detection Circuit
圖5中:R42和R45構(gòu)成分壓電路,采集的電壓送給微處理器的PC3端口,若檢測(cè)到電壓低于設(shè)定的保護(hù)電壓閥值,則控制器關(guān)閉輸出,極性電容C32最高耐壓值100 V.
廣泛采用脈寬調(diào)制(Pulse Width Modulation,PWM)技術(shù)控制直流電機(jī)電樞的電壓,再通過(guò)改變電機(jī)電樞電壓的接通時(shí)間和通電周期的占空比來(lái)調(diào)節(jié)電機(jī)速度.STM32微處理器通過(guò)改變脈沖的時(shí)序來(lái)控制電機(jī)的速度,即脈沖“ON”的時(shí)間越長(zhǎng),電機(jī)旋轉(zhuǎn)的速度越快,脈沖“ON”的時(shí)間越短,電機(jī)旋轉(zhuǎn)的速度越慢;再通過(guò)控制輸出電壓“ON”的時(shí)間與脈沖 “OFF”的時(shí)間的比例,同時(shí)保持頻率恒定,來(lái)改變加在電機(jī)端子上的平均直流電壓.直流電機(jī)PWM調(diào)速系統(tǒng)如圖6所示.
圖6 直流電機(jī)PWM調(diào)速系統(tǒng)Fig. 6 Speed Regulation System of DC Motor PWM
在硬件電路的基礎(chǔ)上,依據(jù)控制需求按照結(jié)構(gòu)化、模塊化思路進(jìn)行軟件開(kāi)發(fā),采用功能獨(dú)立的方式進(jìn)行編程.系統(tǒng)軟件主要由主程序和子程序組成.首先,系統(tǒng)開(kāi)啟上電,初始化各個(gè)模塊,主要是初始化定時(shí)器 T0、定時(shí)器T1、uart數(shù)據(jù)結(jié)構(gòu)、GPIO、時(shí)鐘等;然后控制器開(kāi)啟中斷,檢測(cè)電壓、電流、客車(chē)速度、電機(jī)轉(zhuǎn)速等信號(hào),當(dāng)檢測(cè)到客車(chē)啟動(dòng)信號(hào)時(shí)就開(kāi)啟PWM定時(shí)器,執(zhí)行對(duì)應(yīng)的PWM子程序,輸出不同百分比的PWM,當(dāng)檢測(cè)到客車(chē)停止信號(hào)時(shí)就關(guān)閉PWM子程序,使客車(chē)停止.系統(tǒng)軟件主程序流程如圖7所示.
圖7 系統(tǒng)軟件主程序流程Fig. 7 Main Program Flow of System Software
對(duì)STM32微處理器相關(guān)寄存器進(jìn)行設(shè)置,通過(guò)控制器輸出不同占空比的PWM,進(jìn)而改變電機(jī)電樞上的電壓,實(shí)現(xiàn)直流電機(jī)速度調(diào)節(jié).不同百分比的PWM波形如圖8所示.
圖8 不同百分比的PWM波形截圖Fig. 8 PWM Waveforms with Different Percentages
代碼實(shí)現(xiàn)過(guò)程如下:
Void PWM2_2_Init(u16 arr2,u16 psc2)
{
RCC→APB1ENR|=1?1;∥TIM3時(shí)鐘使能
GPIOA→CRL&=0XF0FFFFFE;∥PA6輸出
GPIOA→ODR|=1?6;∥PA6上拉
TIM3→ARR=arr2;∥設(shè)定計(jì)數(shù)器自動(dòng)重裝值
TIM3→PSC=psc2;∥預(yù)分頻器不分頻
TIM3→CCMR1|=7?4;∥CH1 PWM2模式
TIM3→CCER|=1?0;∥OC1輸出使能
TIM3→CR1=0x8000;∥ARPE使能
TIM3→CR1|=0x01;∥使能定時(shí)器3
}
通過(guò)分析純電動(dòng)客車(chē)控制功能,設(shè)計(jì)了一款基于STM32的純電動(dòng)客車(chē)控制器,并在硬件電路的基礎(chǔ)上編制出符合控制需求的軟件算法程序.控制器通過(guò)輸出不同百分比的PWM來(lái)調(diào)節(jié)直流電機(jī)的速度,傳感器采集的信息通過(guò)CAN總線(xiàn)實(shí)時(shí)傳遞到微處理器STM32中,控制器進(jìn)行分析判斷后發(fā)出相應(yīng)的命令執(zhí)行對(duì)應(yīng)的程序,從而實(shí)現(xiàn)準(zhǔn)確、高效的控制.雖然控制器可以輸出不同百分比的PWM波形,但是還不能從1%~100%連續(xù)輸出PWM波形,因此在推廣應(yīng)用控制器的同時(shí),應(yīng)繼續(xù)對(duì)其作改進(jìn)以實(shí)現(xiàn)連續(xù)可調(diào).