采用OSEK/VDX的電動(dòng)助力系統(tǒng)設(shè)計(jì)
詳細(xì)分析電動(dòng)助力轉(zhuǎn)向系統(tǒng)(EPS)的原理及其工作流程,采用PIC18F458單片機(jī)作為控制器,通過(guò)其增強(qiáng)型的PWM脈寬調(diào)制模塊ECCP控制助力電機(jī),實(shí)現(xiàn)EPS系統(tǒng)的助力控制、回正控制、阻尼控制等方式。應(yīng)用軟件采用OSEK OS嵌入式操作系統(tǒng)為平臺(tái),將EPS系統(tǒng)進(jìn)行多任務(wù)劃分,通過(guò)優(yōu)先級(jí)調(diào)度達(dá)到系統(tǒng)協(xié)調(diào)運(yùn)行的目的。
關(guān)鍵詞? 單片機(jī)? 電動(dòng)助力控制? PWM? OSEK/VDX? PIC18F458? PICOS18
隨著電子技術(shù)和電機(jī)控制技術(shù)的發(fā)展,電動(dòng)助力轉(zhuǎn)向(Electronic Power Steering,EPS)系統(tǒng)的研究取得了很大進(jìn)步。目前,汽車電動(dòng)助力轉(zhuǎn)向已部分取代傳統(tǒng)液壓動(dòng)力轉(zhuǎn)向(Hydraulic Power Steering,HPS)。經(jīng)過(guò)20多年的發(fā)展,EPS技術(shù)日趨完善,已經(jīng)取得了相當(dāng)大的成果,在輕型轎車、廂式車上得到了廣泛應(yīng)用[1]。
傳統(tǒng)的軟件設(shè)計(jì)不容易維護(hù),移植性差,且實(shí)時(shí)性得不到保證。隨著汽車工業(yè)的不斷發(fā)展,電子技術(shù)在汽車上得到越來(lái)越多的應(yīng)用。為了滿足日益復(fù)雜的汽車電子控制軟件的開(kāi)發(fā)需要,實(shí)現(xiàn)應(yīng)用軟件的可移植性和不同廠商的控制模塊間的可兼容性,1993年德國(guó)汽車工業(yè)界聯(lián)合推出了“汽車電子的開(kāi)放式系統(tǒng)及接口軟件規(guī)范”,即OSEK(open systems and the corresponding interfaces for automotive electronics)規(guī)范,旨在為汽車上的分布控制單元提供一個(gè)開(kāi)放結(jié)構(gòu)的工業(yè)標(biāo)準(zhǔn)。1994年法國(guó)汽車工業(yè)界使用的汽車分布式運(yùn)行系統(tǒng)VDX(Vehicle Distributed Executive)和OSEK規(guī)范合并,形成OSEK/VDX規(guī)范[2]。目前該規(guī)范已經(jīng)成為ISO國(guó)際標(biāo)準(zhǔn)(ISO17356)?;诖?,本文提出了基于嵌入式實(shí)時(shí)操作系統(tǒng)的EPS軟件設(shè)計(jì)方法。
1? EPS系統(tǒng)的結(jié)構(gòu)和工作原理
1.1? EPS系統(tǒng)的結(jié)構(gòu)
根據(jù)電機(jī)安裝位置的不同,EPS可分為轉(zhuǎn)向軸助力式、小齒輪助力式和齒條助力式。圖1是一個(gè)典型電動(dòng)助力轉(zhuǎn)向系統(tǒng)的示意圖。EPS控制系統(tǒng)的主要組成部件[3]:
圖1? 電動(dòng)助力轉(zhuǎn)向系統(tǒng)示意圖
① 扭矩信號(hào)傳感器,測(cè)量駕駛員作用在轉(zhuǎn)向盤上的力矩大小和方向。
?、?車速信號(hào)傳感器,測(cè)量汽車的行駛速度,在不同的車速和方向盤轉(zhuǎn)矩的情況下,會(huì)提供不同的助力,以保證EPS系統(tǒng)在低速下靈活,高速下具有較好的“路感”。
?、?助力電動(dòng)機(jī),是EPS系統(tǒng)最關(guān)鍵的部件之一,助力電動(dòng)機(jī)要求低轉(zhuǎn)速大扭距、轉(zhuǎn)動(dòng)慣量小、可靠性高、振動(dòng)小、噪聲小,且尺寸小、質(zhì)量輕。
④ 電磁離合器,主要起安全保護(hù)的作用,當(dāng)EPS發(fā)生故障時(shí),電磁離合器會(huì)及時(shí)切斷電動(dòng)機(jī)和轉(zhuǎn)向柱的連接,汽車以傳統(tǒng)的機(jī)械轉(zhuǎn)向裝置進(jìn)行工作,從而保證行車安全。
?、?減速機(jī)構(gòu),是EPS系統(tǒng)不可缺少的部分,用來(lái)產(chǎn)生減速增扭的作用。
⑥ 電子控制單元ECU,主要包括信息處理單元及其外圍電路。它是EPS系統(tǒng)的控制核心??刂茊卧鶕?jù)方向盤轉(zhuǎn)矩傳感器和車速傳感器的信號(hào),經(jīng)過(guò)A/D轉(zhuǎn)換和邏輯分析與計(jì)算后,發(fā)出指令控制電機(jī)工作。
1.2? EPS系統(tǒng)的工作原理
雖然EPS的有3種類型,但工作原理是一樣的:通過(guò)扭矩傳感器和車速傳感器,進(jìn)行信號(hào)采集,經(jīng)A/D轉(zhuǎn)換,將信號(hào)發(fā)送到電子控制單元(ECU)中,單片機(jī)根據(jù)采集到的車速信號(hào)與扭矩信號(hào),并根據(jù)相應(yīng)的控制策略對(duì)直流伺服電動(dòng)機(jī)進(jìn)行實(shí)時(shí)控制。
根據(jù)汽車轉(zhuǎn)向行駛的不同情況要求,EPS按不同的控制方式進(jìn)行控制,通常有3種基本控制方式。
(1) 助力控制
汽車在低速范圍內(nèi)行駛,方向盤進(jìn)行轉(zhuǎn)向并離開(kāi)中間位置時(shí)電控單元對(duì)電動(dòng)機(jī)進(jìn)行常規(guī)控制;通過(guò)計(jì)算確定助力電動(dòng)機(jī)的電流,以獲得合適的助力轉(zhuǎn)矩,使轉(zhuǎn)向操縱輕便靈敏。
(2) 回正控制
回正控制可以改善汽車的回正性能。汽車在低速范圍內(nèi)行駛轉(zhuǎn)向后方向盤回到中間位置附近時(shí),電控單元使電動(dòng)機(jī)電流迅速減小,以便轉(zhuǎn)向輪迅速回正;在高速時(shí),采用阻尼控制,使電機(jī)兩端短路,產(chǎn)生與回正力矩相反的回正阻尼,改善轉(zhuǎn)向盤的回正超調(diào)。
(3) 阻尼控制
阻尼控制可以衰減汽車高速行駛時(shí)出現(xiàn)的方向盤抖動(dòng)現(xiàn)象,消除轉(zhuǎn)向輪因路面輸入而引起的擺振。其原理很簡(jiǎn)單,即汽車處于高速行駛時(shí),使電動(dòng)機(jī)短路,其端電壓變?yōu)榱?,電?dòng)機(jī)將不提供助力,但由于感應(yīng)電動(dòng)勢(shì)的作用,電動(dòng)機(jī)將產(chǎn)生與其轉(zhuǎn)動(dòng)方向相反的轉(zhuǎn)矩。此過(guò)程等于增加了轉(zhuǎn)向系統(tǒng)的阻尼,駕駛員能夠獲得適當(dāng)?shù)穆犯?,不致有發(fā)飄的感覺(jué)。
2? EPS控制系統(tǒng)ECU設(shè)計(jì)
EPS系統(tǒng)實(shí)現(xiàn)的主要功能是采集扭矩傳感器信號(hào)、車速傳感器信號(hào)和電動(dòng)機(jī)反饋電流信號(hào),經(jīng)控制器中的控制策略和控制算法,通過(guò)脈寬調(diào)制控制伺服電動(dòng)機(jī)為駕駛員提供轉(zhuǎn)向輔助力。另外,考慮到其應(yīng)用對(duì)象的特殊性,其安全性要求的絕對(duì)地位,系統(tǒng)還需要提供許多應(yīng)急處理方案。
EPS系統(tǒng)的硬件設(shè)計(jì)主要包括以下一些主要模塊:控制器核心系統(tǒng)設(shè)計(jì)、控制單元接口電路、電動(dòng)機(jī)驅(qū)動(dòng)及其保護(hù)電路、電磁離合器控制電路、傳感器信號(hào)處理電路以及電源系統(tǒng)電路的設(shè)計(jì)等,如圖2所示。在這里主要介紹一下控制器和電機(jī)驅(qū)動(dòng)電路。
2.1? 控制器
EPS系統(tǒng)的微控制器采用的是Microchip公司的PIC18F458芯片。該系列芯片具有以下性能:
?、?16位寬指令,8位寬數(shù)據(jù)通道,2 MB的程序存儲(chǔ)器、4 KB的數(shù)據(jù)存儲(chǔ)器,高達(dá)10 MIPS的執(zhí)行速度。
?、?40 MHz時(shí)鐘輸入,4~10 MHz帶PLL鎖相環(huán)有源晶振/時(shí)鐘輸入。
?、?帶優(yōu)先級(jí)的中斷和8×8單周期硬件乘法器。
④ 捕捉/比較/脈寬調(diào)制(CCP)模塊:
◆ 捕捉輸入——16位,最大分辨率為6.25 ns;
◆ 比較單元——16位,最大分辨率為100 ns;
◆ 脈寬調(diào)制(PWM)輸出——分辨率為1~10位;
◆ 最高PWM頻率——8位時(shí)頻率為156 kHz,10位時(shí)頻率為39 kHz。
?、?增強(qiáng)型CCP模塊除具有以上CCP特性外,還具有1、2、4路的PWM輸出,可選擇PWM極性,可編程的PWM死區(qū)時(shí)間。
?、?10位,8通道的A/D轉(zhuǎn)換。
?、?CAN總線模塊。
2.2? 驅(qū)動(dòng)電路設(shè)計(jì)
電動(dòng)機(jī)控制電路的設(shè)計(jì)在電動(dòng)助力轉(zhuǎn)向系統(tǒng)的設(shè)計(jì)中是比較關(guān)鍵的部分。隨著計(jì)算機(jī)進(jìn)入控制領(lǐng)域,以及新型的電力電子功率元器件的不斷出現(xiàn),直流電動(dòng)機(jī)的結(jié)構(gòu)和控制方式都發(fā)生了很大的變化,采用全控型的開(kāi)關(guān)功率元件進(jìn)行脈寬調(diào)制(Pulse Width Modulation,PWM)的控制方式已成為絕對(duì)主流。在本系統(tǒng)中,電機(jī)的控制就是采用的PWM脈寬調(diào)制控制方式。全橋雙極性驅(qū)動(dòng)電路如圖3所示。
PIC18F458單片機(jī)的ECCP引腳連接2個(gè)驅(qū)動(dòng)芯片IR2110(每個(gè)IR2110可控制2個(gè)MOSFET),來(lái)控制4個(gè)MOSFET的導(dǎo)通和截止,從而實(shí)現(xiàn)對(duì)助力電機(jī)的控制。EPS系統(tǒng)需要實(shí)現(xiàn)3種控制方式:常規(guī)控制、回正控制和阻尼控制。
3? EPS軟件設(shè)計(jì)
隨著嵌入式應(yīng)用進(jìn)一步復(fù)雜化和對(duì)實(shí)時(shí)性、可靠性要求的提高,為了合理調(diào)度多種任務(wù)并利用系統(tǒng)資源,基于嵌入式實(shí)時(shí)操作系統(tǒng)進(jìn)行嵌入式軟件設(shè)計(jì)逐漸成為了嵌入式系統(tǒng)設(shè)計(jì)開(kāi)發(fā)的主流。當(dāng)前嵌入式實(shí)時(shí)操作系統(tǒng)有數(shù)百種,它們各具特色。開(kāi)放源碼的嵌入式實(shí)時(shí)操作系統(tǒng)在成本和技術(shù)上具有獨(dú)特的優(yōu)勢(shì),并占有越來(lái)越重要的地位。本文選擇開(kāi)源的嵌入式實(shí)時(shí)操作系統(tǒng)PICOS18作為EPS的軟件開(kāi)發(fā)平臺(tái)。PICOS18是按照OSEK/VDX標(biāo)準(zhǔn)實(shí)現(xiàn)的實(shí)時(shí)操作系統(tǒng)。PICOS18是一個(gè)多任務(wù)可剝奪型微實(shí)時(shí)內(nèi)核,非常小巧,占程序空間(ROM)小于1 KB,占數(shù)據(jù)空間(RAM)僅為7 B,系統(tǒng)代碼容量及運(yùn)行所需的ROM和RAM也非常少;提供了任務(wù)管理、定時(shí)器管理、事件管理、中斷管理等功能;基于優(yōu)先級(jí)進(jìn)行任務(wù)調(diào)度,具有16個(gè)優(yōu)先級(jí),系統(tǒng)占用1個(gè),用戶可創(chuàng)建15個(gè)任務(wù),每個(gè)任務(wù)最多還可以擁有8個(gè)事件[4]。
3.1? 應(yīng)用軟件開(kāi)發(fā)
嵌入式實(shí)時(shí)操作系統(tǒng)將面向功能的應(yīng)用開(kāi)發(fā)轉(zhuǎn)化為面向任務(wù)的應(yīng)用開(kāi)發(fā),因此軟件開(kāi)發(fā)的過(guò)程就是將應(yīng)用系統(tǒng)按照功能細(xì)分為多個(gè)任務(wù),然后實(shí)現(xiàn)每個(gè)任務(wù),并為任務(wù)確定合適的優(yōu)先級(jí);對(duì)于實(shí)時(shí)性要求高的操作,需要編寫相關(guān)的中斷服務(wù)程序。
根據(jù)EPS的工作原理,可分為8個(gè)任務(wù)。
?。?) Task1——車速信號(hào)采集
擴(kuò)展任務(wù),用于計(jì)算車速。上電運(yùn)行后Task1處于等待狀態(tài), 等待車速計(jì)算事件EventSpeed。利用定時(shí)器/計(jì)數(shù)器TMR0模塊當(dāng)計(jì)數(shù)器溢出時(shí)(數(shù)量的轉(zhuǎn)速信號(hào)脈沖后)產(chǎn)生中斷,進(jìn)入轉(zhuǎn)速中斷服務(wù)程序,記錄脈沖周期總時(shí)間,然后設(shè)置事件EventSpeed,激活Task1。這時(shí)Task1處于就緒狀態(tài),在操作系統(tǒng)調(diào)度機(jī)制(完全搶占式)的管理下,等到就緒隊(duì)列中優(yōu)先級(jí)高于Task1的任務(wù)都運(yùn)行完成時(shí),Task1運(yùn)行,根據(jù)所記錄的脈沖時(shí)間和脈沖個(gè)數(shù),計(jì)算出車速,并進(jìn)行濾波。執(zhí)行完后,激活Task2,清除事件EventSpeed,Task1又處于等待狀態(tài)。
(2) Task2——扭矩信號(hào)采集
基本任務(wù),用于采集扭矩信號(hào)。該任務(wù)由Task1激活,執(zhí)行頻率與Task1相同。因?yàn)檐囁傩盘?hào)和扭矩信號(hào)是EPS系統(tǒng)最重要的兩個(gè)參數(shù),所以必須使這兩個(gè)參數(shù)及時(shí)地更新,以保證助力模式的選擇和助力大小的確定得到及時(shí)準(zhǔn)確的控制。
(3) Task3——電流反饋信號(hào)采集
基本任務(wù),用于采集電機(jī)反饋電流。該任務(wù)由Task5激活,系統(tǒng)只有在助力控制時(shí)才會(huì)激活此任務(wù)。該參數(shù)與目標(biāo)電流的差值,通過(guò)PID調(diào)節(jié)器的控制,使電機(jī)迅速提供相應(yīng)的扭矩,達(dá)到助力的目的。
?。?) Task4——故障診斷
擴(kuò)展任務(wù),用于故障的監(jiān)測(cè)和診斷。上電運(yùn)行后,等待消息MsgSpeedErr,確定車速正常;等待消息MsgVoltErr,確定電壓正常;等待消息MsgTorqueErr,確定扭矩正常。一旦發(fā)生故障,該任務(wù)將立即斷開(kāi)繼電器,使轉(zhuǎn)向系統(tǒng)處于機(jī)械轉(zhuǎn)向狀態(tài),避免事故發(fā)生。
?。?) Task5——助力模式選擇
基本任務(wù),用于選擇助力方式以及確定助力控制方式下的目標(biāo)電流。此任務(wù)由Task2激活,通過(guò)車速和扭矩的大小,判斷助力模式,在助力控制下通過(guò)助力特性曲線得到目標(biāo)電流。此任務(wù)的執(zhí)行次數(shù)與Task1和Task2相同,以保證助力方式和助力大小實(shí)時(shí)準(zhǔn)確。
?。?) Task6——助力控制
基本任務(wù),助力控制,由Task3激活。通過(guò)Task5得到的目標(biāo)電流,以及Task3電機(jī)反饋電流,采用PID調(diào)節(jié)器進(jìn)行閉環(huán)控制,最后通過(guò)PWM脈寬調(diào)制控制助力電機(jī)。
?。?) Task7——回正控制
基本任務(wù),回正控制,由Task5激活。當(dāng)汽車車速很高時(shí),使電機(jī)兩端短路,產(chǎn)生回正阻尼,減小回正超調(diào);當(dāng)汽車處于低速時(shí),使電機(jī)兩端迅速斷路,減小電機(jī)阻力,使轉(zhuǎn)向迅速回正。
?。?) Task8——阻尼控制
基本任務(wù),阻尼控制,由Task5激活。阻尼控制用于高速時(shí)的各種狀態(tài)(回正、轉(zhuǎn)向和直線行駛)?;卣龝r(shí),阻尼控制可減小系統(tǒng)超調(diào);轉(zhuǎn)向時(shí),可增加阻力,使駕駛員得到較好的路感;直線行駛時(shí),可減小路面對(duì)方向盤的沖擊。
3.2? 任務(wù)優(yōu)先級(jí)
PICOS18采用占先式調(diào)度方式,即所有任務(wù)都是可占先的,每個(gè)任務(wù)都有一個(gè)確定的唯一的優(yōu)先級(jí),任務(wù)越重要優(yōu)先級(jí)越高。由于助力控制(Task6)任務(wù)必須在合適的時(shí)刻運(yùn)行,所以Task6優(yōu)先級(jí)最高,回正控制(Task7)、阻尼控制(Task8)次之,其次是故障診斷任務(wù)(Task4),其余任務(wù)優(yōu)先級(jí)按其激活的執(zhí)行順序確定。Task4在開(kāi)始運(yùn)行時(shí)處于等待狀態(tài)如未監(jiān)測(cè)到不正常信號(hào)則不再執(zhí)行。Task1、Task2和Task5在按順序執(zhí)行完一個(gè)循環(huán)后,繼續(xù)響應(yīng)轉(zhuǎn)速中斷,重新執(zhí)行。這種調(diào)度方式不僅能采集到最新的車速信號(hào)和扭矩信號(hào),使EPS系統(tǒng)實(shí)時(shí)準(zhǔn)確地提供助力,還能提高CPU利用率,充分利用硬件資源。
3.3? 任務(wù)配置(OIL)
PICOS18通過(guò)taskdesc.c定義任務(wù)的各個(gè)參數(shù),并且是用OSEK/VDX規(guī)范中的OIL(OSEK/VDX的實(shí)現(xiàn)語(yǔ)言,類似于一個(gè)C結(jié)構(gòu)定義)編寫的[5]。由于PICOS18沒(méi)有提供GUI用于任務(wù)的配置,因此只能逐句編寫。任務(wù)的參數(shù)定義結(jié)構(gòu)如下:
rom_desc_tsk rom_desc_task={
TASK_PRIO,/* 任務(wù)的優(yōu)先級(jí)*/
stack,/* 堆棧地址(16位)*/
TASK, /* 起始地址(16位)*/
READY,? /* 初始化時(shí)的狀態(tài)*/
TASK_ID,/* 任務(wù)ID*/
sizeof(stack)/* 堆棧大小(16位)*/
};
AlarmObject Alarm_list\[\] = {
/******第1個(gè)任務(wù)********/
{
OFF,/* 狀態(tài)*/
0, /*報(bào)警值*/
0,/*周期*/
&Counter_kernel,/*與報(bào)警相關(guān)的計(jì)數(shù)器*/
TASK1_ID,/*要激活的任務(wù)ID*/
ALARM_EVENT,/*傳遞的事件 */
0/*回調(diào)*/
},
…/*其他任務(wù) */
};
Resource Resource_list\[\] = {
{
10,/* 優(yōu)先級(jí) */
0,/* 任務(wù)優(yōu)先級(jí) */
0,/* 上鎖,0表示未上鎖 */
}
};
Counter Counter_list\[\] = {
/******第1個(gè)計(jì)數(shù)器******/
{
{
200,/*允許的最大計(jì)數(shù)值*/
10,/*預(yù)分頻器*/
100/*最小周期*/
},
0,/*計(jì)數(shù)值*/
0
}
…/*其他計(jì)數(shù)器*/
};
4? 結(jié)論
本文分析了EPS系統(tǒng)的結(jié)構(gòu)、工作原理和3種控制方式。通過(guò)PIC18F458單片機(jī)的ECCP模塊控制電機(jī),實(shí)現(xiàn)了EPS系統(tǒng)在各種情況下的助力方式。采用嵌入式實(shí)時(shí)操作系統(tǒng),不僅提高了CPU的利用率,確保了EPS系統(tǒng)的實(shí)時(shí)性要求,還提高了系統(tǒng)運(yùn)行的穩(wěn)定性、可靠性以及移植性。
OSEK/VDX是汽車電子開(kāi)發(fā)的國(guó)際性標(biāo)準(zhǔn),采用OSEK/VDX規(guī)范開(kāi)發(fā)的實(shí)時(shí)系統(tǒng)能夠提高軟件模塊的移植效率、實(shí)現(xiàn)軟件模塊的重復(fù)利用及在不同電子控制單元之間的通信。采用OSEK/VDX 進(jìn)行汽車電控單元開(kāi)發(fā)已成為發(fā)展趨勢(shì)。
評(píng)論
查看更多