劉國中
摘要:傳統的汽車電控教學需要購買大量的設備,耗材、費時。在LabVIEW環境下,建立汽車冷卻散熱器風扇自動控制的模型,實現仿真教學,利用LabVIEW軟件開發上位機應用程序,并由PROTEUS軟件開發相應的下位機程序,可以簡單明了地設置汽車散熱器風扇自動啟動的觸發條件,觀看由下位機仿真程序實現的風扇運轉情況。
關鍵詞:汽車;LabVIEW;仿真
引言
現代汽車大量采用以發動機智能管理系統、底盤、車身電控系統為代表的電子控制裝備,國內汽車保有量的不斷提高,汽車維修服務人才的需求量也不斷增加。為適應市場的需求,各類職業院校紛紛開設了汽車檢測與維修等專業。由于汽車維修專業實踐性強,職業院校比較注重學生實踐能力的培養,對實訓的教學比較突出。而由于儀器設備、資金以及新車型技術更新快等限制,采用傳統汽車教學設備的專業實訓教學無法滿足要求。采用虛擬儀器技術開展虛擬仿真實訓教學,可以有效解決實訓教學過程中面臨的上述問題。
本文通過LABVIEW仿真軟件,設計汽車散熱器風扇自動控制的LABVIEW應用程序作為上位機控制端,結合PROTEUS軟件設計下位機端程序作為執行器,使教學達到事半功倍的效果,希望能為高職院校汽車電子專業課程仿真教學起到拋磚引玉的作用。
一、LABVIEW簡介
LabVIEW是Laboratory Virtual Instrument Engineering Workbench的縮寫,即實驗室虛擬儀器工程平臺,是美國國家儀器公司(NI公司)推出的一種基于G語言(圖形化編程語言)的虛擬儀器軟件開發工具,包括控制與仿真、高級數字信號處理、統計過程控制、模糊控制和PID控制等眾多附加軟件包。
LabVIEW軟件的優點一是價格便宜,利用一個硬件,通過改變軟件,就可以實現不同的儀器儀表的功能。二是采用LabVIEW軟件開發的課程,直觀方便,便于學生理解汽車電子教學中的原理。三是利用LabVIEW軟件開發課程簡單、方便。汽車電子電氣的控制主要是基于汽車上各種傳感器的信號對各種電子電氣執行元件進行控制。
二、汽車冷卻散熱器風扇自動控制原理
汽車冷卻系的功能是使發動機保持在適當的溫度下工作。
發動機燃燒室內混合氣燃燒后溫度約為2200—2800K。為了保證發動機的正常工作,必須對氣缸加以冷卻。同時如果冷卻過度也會造成氣缸充氣量減少、燃燒不正常、功率下降、油耗增加及潤滑不良等影響。
目前汽車發動機多采用強制循環水冷系統。通過冷卻水在發動機水套中循環流動而吸收多余的熱量,冷卻水吸熱后進入車前端的散熱器(水箱)內。通過自然對流和風扇的抽吸,外界冷空氣通過散熱器,帶走冷卻水的熱量并送入大氣。當散熱器中的冷卻水得到冷卻后,在水泵的作用下,再次進入水套。如此循環不已地冷卻了發動機的高溫部件。
散熱器由風扇驅動強制氣流在散熱器表面流動來提高散熱效率。當發動機水溫在95℃以下時,風扇停止運轉;當發動機水溫在95~105℃范圍里,風扇以一檔運轉;當水溫超過105℃時風扇以最高檔運轉。
三、本項目的設計目標及運行效果說明
項目設計目標:采用一個溫度VI來模擬發動機水溫,通過前面板上數值控件來設定發動機的正常工作水溫范圍,報警燈及警報器來模擬報警。
項目工程運行效果說明:運行汽車冷卻散熱器風扇自動控制電路仿真vi文件后,可以從前面板上觀察到發動機水溫的變化情況,及到達上下邊界是報警燈的顯示情況,同時將控制命令通過串口送到執行器控制器,由控制器再控制風扇運轉。當水溫到達95度到105度范圍時,啟動散熱器風扇一檔;當水溫超過105度時,報警燈閃爍、喇叭嘀嗒鳴叫,同時散熱器風扇啟動最高檔(二檔)。
(一)根據項目相關電路及工作原理的說明,建立汽車冷卻散熱器風扇自動控制電路的LABVIEW工程文件。
1.我們采用一個溫度VI來模擬汽車發動機水溫傳感器測量的溫度,報警燈及警報器來模擬報警,建立此模型。
2.建立VI文件
1)繪制前面板,啟動LABVIEW,點擊FIL->NEW VI,建立汽車冷卻散熱器風扇自動控制電路.VI如下圖
2)建立程序框圖,按CRL+E,切換到框圖,在窗口右擊彈出函數菜單,如下圖
在框圖上放置如下函數:
至此VI文件建立完畢。
1.建立PROTEUS汽車自動空調控制仿真文件,如下圖:
2.編寫程序代碼:
int E1 =5; //連接風扇電機1的使能端口到數字接口5
int M1 =4; //連接風扇電機1的轉向端口到數字接口4
int E2 = 6; //連接風扇電機2的使能端口到數字接口6
int M2 =7; //連接風扇電機2的轉向端口到數字接口7
byte val[2]; //暫存上位機發送的四個字節的電機控制指令
void setup()
{
Serial.begin(9600); //設置串口波特率為9600 pbs
pinMode(M1,OUTPUT); //設置引腳為輸出模式
pinMode(E1,OUTPUT);
pinMode(M2,OUTPUT);
pinMode(E2,OUTPUT);
}
void loop()
{
delay(10); //延時10ms
if(Serial.available()>0) //如果讀緩沖區有字節
{
for(int i=0;i<2;i++) //讀取上位機發送的2個字節的控制指令
{
val[i]= Serial.read();}
}
if(val[0]==0 && val[1]==0) //低于正常水溫
{
digitalWrite(M1,LOW); //風扇電機停止運轉
analogWrite(E1,0);
digitalWrite(M2,LOW);
analogWrite(E2,0);
}
if(val[0]==0 && val[1]==1) //發動機水溫在正常工作范圍(95~105),兩風扇均以低速運轉
{
digitalWrite(M1,LOW);
analogWrite(E1,127);
digitalWrite(M2,LOW);
analogWrite(E2,127);
}
if(val[0]==1 && val[1]==1) //發動機水溫超出正常工作范圍(95~105),兩風扇均以高速運轉
{
digitalWrite(M1,LOW);
analogWrite(E1,255);
digitalWrite(M1,LOW);
analogWrite(E2,255);
}
}
小結
本項目汽車冷卻散熱器風扇的仿真只是為了基于教學,方便學生理解原理而設計,所以并非汽車冷卻散熱器風扇控制的全部電路,內容不是很全面。另外,在LABVIEW的前面板設計方面可以更加美觀些。
參考文獻:
[1][美]Jeffrey Travis、Jim Kring著 喬瑞萍等譯 《LabVIEW大學實用教程》(第三版) 電子工業出版社 2013年12月;
[2]郭志勇 《單片機應用技術項目教程(C語言版)》 中國水利水電出版社 2011年1月;
[3]李春明 《汽車車身電子技術》 北京理工大學出版社 2012年1月;
[4]王興國 劉毅 《汽車電氣設備構造與維修》 人民郵電出版社 2014年10月