基于LabVIEW的汽车散热器风扇自动控制仿真
2017-01-16刘国中
刘国中
摘要:传统的汽车电控教学需要购买大量的设备,耗材、费时。在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月