0 引言
在现代社会中,直流无刷风机的用途非常广泛。从冷却、通风到通讯技术、家用电器,还有其他的行业,到处都能见到直流风机的踪影。目前市场上传统的直流风机功能比较简单,然而,现代工业的快速发展也对直流风机的应用提出了更高的要求,比如根据环境温度自动调节转速,与其他设备之间的信息交换等。而随着微型控制器(单片机)技术的发展,很多直流风机通过微机进行控制[1],提高了运行性能,在机电一体化和工业自动化控制方面已取得令人瞩目的成果。本文介绍了基于单片机的直流风机智能化控制。
1 系统构架
1.1 系统特点
与传统直流风机相比,此系统内嵌了通讯模块,可与外围其他设备或者主机通讯进行数据交互。既可根据接受到的命令来实现相应的功能,又可随时将自身的运行状况上报,这样的最大好处是可以方便控制。如果一个大型系统需要控制多台风机,此系统控制的风机单元还可以利用通讯模块组网,实现一个主机同时控制多台风机单元的功能。这样大大提高了风机单元的工业化应用范围,根据用户的通讯协议即可实现多样化的工业项目应用。
此外,即使不与外围设备或者主机进行通讯,由于控制系统内嵌了温度传感器,风机单元还是能够根据环境温度自动调节转速,并且系统有报警输出,一旦系统内任意部分功能异常即刻光电报警,报警同时还有继电器输出,用户可以据此控制其他设备的开启或者关断。
1.2 系统功能
嵌入式系统[2](Embedded System)是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,对用户具有开放性和透明性,适用于应用系统对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。
整个系统一般由几个子系统构成:控制系统,测温系统,转速调节系统,测速系统,通讯系统,输出系统。
控制系统通常由8位的单片机构成,主要功能是对采集到的数字信号进行处理、分析、判断、计算,同时输出相应的数字信号。
测温系统通常由温度传感器以及模/数转换电路构成,主要功能是采集温度信号并将其转化为单片机能够识别的数字量。
转速调节系统通常由一个数/模转换电路构成,主要功能是将单片机输出的数字信号转化为与转速相关的模拟信号。
测速系统通常由光电传感器以及后级放大电组成,主要功能是将光信号转化为稳定的数字电信号输入给控制系统。
通讯系统是整个系统与其他设备交换信息的部分,不仅可以上报风机的转速,实测温度,系统运行情况等信息,也可以接受来自其他设备的指令,这样即可实现远程控制。
1.3 部分硬件电路
温度传感器采用热敏电阻 (Temperature_sensor) ,经过5V恒压源的分压电路后再由后级运放电路对电压信号进行放大。然后输入单片机的A/D端口 (MCU_Temperature_sensor) ,见图1。
图1测温系统电路
输出系统电路分为两部分:一部分是继电器输出,由单片机I/O口(MCU_Relay_Alarm)驱动一个三极管,再由三极管驱动继电器;另一部分是光电报警输出,由单片机I/O口(MCU_Led_Alarm)驱动一个三极管,再由三极管驱动发光二极管,见图2。
转速调节系统电路由单片机输出PWM波(MCU_Fanspeed),经过三极管整形后输出到风机。此外在电路中加了一个肖特基二极管防止风机的浪涌对控制模块造成损坏,见图3。
图3转速调节系统电路
测速系统电路由高速光藕芯片对外部转速信号( Speed_single )进行隔离整形后输入到控制系统(T1)。此外加了一个上拉电阻以保证输入信号的强度,见图4。这样的隔离电路可有效防止外部信号干扰对控制系统造成影响。
图4 测速系统电路
2 软件构架
单片机是程序控制式计算机[3]。它的运行过程是在程序控制下逐条执行程序指令的过程,控制器在单片机内部协调各功能部件之间的数据传输、数据运算等操作,并对单片机发出若干控制信息。
该系统的软件流程见图5,系统上电后,首先会对系统进行初始化,对特殊寄存器以及输入/输出端口进行操作,对将要被使用的变量进行初始赋值;随后控制系统进入自检系统,监测各个模块是否工作正常。自检失败,将停留在自检环节。自检成功,系统则进入自动运行模式。
图5软件功能框图
在自动模式中,系统会检测当前温度,并根据温度控制逻辑,相应调整输出设备的风机转速,以达到闭环控制的要求。当通讯中断收到命令与其他设备建立起联系后,系统退出自动模式,进入受控模式,根据收到的指令来调整风机转速。为了保证工作正常,不论是自控模式还是受控模式,系统都会对各个下属设备的运行状态进行监控,一旦发现异常,立即启动声光报警系统,并且通过通讯传输给其他设备。
为了保证软件系统正常工作,避免陷入异常的死循环,使用了芯片自带的内部看门狗作为系统监视。当与其他设备失去联系一段时间后,自动重启重新进入自动模式来实现对风机的不间断控制。
Main 模块代码:
main(){
// 初始化reg、I/O和变量
EA=0;
initIOport();
initISR();
initUART();
initADC();
initFan();
EA=1;
// 自检环节
while(selfFlag){
testTemperature();// 测试温度
testFanConnect(); // 测试风机是否正常连接
testPID(); // 测试产品信息是否正确
if(alarm==NULL)
selfFlag = 0; // 自检成功,退出自检状态
}
while(1){
if(mode == AUTO){// 自控模式
readTemperature();
ctrlFan();
alarmCheck();
}else if(mode == CTRL){// 受控模式
readTemperature();
alarmCheck();
}else{
Reset(); // 模式异常,要求重启
}
if((communcationFlag)&&(mode == AUTO))
mode = CTRL;// 通讯建立,切换模式
if((!communcationFlag)&&(mode == CTRL))
Reset();// 通讯中断,要求重启
}
3 系统改进探讨
为了能扩大此风机智能化控制系统的应用范围,也为了避免以后的重复设计,可以考虑将此系统设计为若干标准化的子系统,这样可根据项目的需求配置不同的子模块以控制不同的风机,满足各种不同的应用需求。比如将调速系统独立出来,根据风机的种类进行独立设计匹配。再比如将最常用的通讯模块独立出来,可根据项目客户的不同需求使用不同的通讯方式,即使同种通讯方式也可有不同的通讯协议,这样可大大缩短新项目的设计周期。也可按照成本设计出若干个子系统,以应对不同成本的项目等。还可根据控制方式开发出手动控制、定时控制、温度控制等控制方式[4]。
此外,风机单元之间还可以组成网络运用。在组网过程中,可以利用 集成神经网络和信息融合技术进行系统诊断。 集成神经网络的建立,充分利用了各种信息,可有效提高确诊率[5]。
4 结论
利用单片机对直流风机进行智能化控制可减少风机单元的人工干预,所有参数全部由各种传感器自动采集,速度快,可靠性高。这意味着在各种工业应用中可根据现场情况自行调节风机的转速以及工作状态。
随着单片机技术的飞速发展,且成本下降很快,现代工业对风机模块的工作水平要求不断提高。所以,以后在设计风机单元时,会考虑在风机单元内安装智能化控制系统,这样可随时监测风机装置的运行状况;此外有些传感器将采用更先进、更适用的,如测试风压、风量可能采用红外探测和遥感测量,这样,可真正实现风机单元的智能化控制。
参 考 文 献
[1] 李仁定.电机的微机控制[M].机械工业出版社,2004.1.
[2] 马忠梅,籍顺心,张凯,等.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2008.3.
[3] 鹿海霞,沈德有.嵌入式振动信号采集系统网络通信设计[J].风机技术,2006(2):35-37,9.
[4] 侯哲生,李聪,张伏.基于单片机的通风机控制器的设计[J].风机技术,2005(6):35-36.
[5] 王毅.风机故障诊断的集成神经网络信息融合法[J].风机技术,2005(2):35-37.