三相无刷直流电机控制系统
关键词:三相无刷直流电机;Atmega8L单片机; PID闭环控制
Abstract: The paper firstly introduced the study status of permanent magnet brushless DCmotor in home and abroad, and then discussed its structure, operation principles,characteristics as well as its rotor position signal detection methods; secondly,designed the control system‘s hardware and software accordingly。
Keywords:Three phase BLDC motor;Atmega8L micro-c; PID closed-loop control
1引言
无刷直流电机是近几年来小电机行业发展最快的品种之一,随着视听产品小、轻、薄化和家电产品的静音节能化以及豪华型轿车需求量增多,无刷直流电动机需要量迅速增加;无刷直流电机用电子换向替代了电刷和换向器,具有高可靠、高效率、寿命长、调速方便、低噪音等优点。国内近年来在无刷直流电机的设计及控制方面有很多的研究,但与国外成熟的产品相比还有很多地方值得提高,并且很多无刷直流电机生产商都没有给出具体的控制方案,因此在无刷直流电机控制方面的研究是非常有必要的[1]。
由于无刷直流电机具有体积小、重量轻、效率高、调速性能好、转动惯量小、没有励磁损耗等问题,因此在各个领域具有广泛的应用前景。一方面,无刷直流电机与其他异步电机相比具有明显的优势如反馈装置更简单、功率密度更高、输出转矩更大、并且电机和逆变器各自的潜力得到充分的发挥,因此无刷直流电机的应用和研究得到了前所未有的重视[2]。据资料统计统计表明无刷直流电机的使用每年以较高比例增长。另一方面无刷直流电机与有刷直流电机相比有更多的优点如电机本体结构简单、运行时无火花、电磁干扰小,无噪声等,因此具备广泛应用前景。
2. 系统硬件设计
2.1三相无刷直流电机硬件总体构架
本控制系统硬件主要由控制电路、驱动电路、显示电路、RS485接口电路组成,如图2-

由永磁无刷直流电机运行原理可以知道,永磁无刷直流电机的平均工作电流与转速成反比例函数关系,且空调电机带的风叶负载是恒定,也即转矩随转速成线性关系,因此控制无刷直流电机的电磁转矩也可以通过控制转速来实现[3]。本系统是速度闭环系统。霍尔位置传感器的位置信号经信号处理后送专用驱动芯片后产生一个速度脉冲信号经单片机处理转换成转速,再运用增量式PI算法,得到PWM控制信号经过光祸隔离电路驱动专用集成驱动芯片闭环控制转速。同时,单片机还监控控制系统的运行状态,当系统出现短路、过流、过压等故障时,单片机将封锁PWM输出信号,使电机停机,并通过LED电路显示故障。由于客户对控制系统的需求不同,本系统设计的各部分在保持相互独立性的同时,又留好相应的接口以便构成一个完整的系统。
2.2控制电路
本系统主硬件控制电路由控制由AtmegaBL单片机、PWM信号产生及处理电路、电流检测电路、转速检测电路、隔离电路及接口电路组成。如图2-2所示。

PWM产生了之后还要经过处理才能得到想要输出的输出信号。ATmegaBL产生的PWM信号通过光电耦合在P521的3脚产生同周期的PWM信号经分压滤波之后输出一个0到6V的用于驱动电路的调速电压,图中稳压二极管使P521的4脚稳到9V, P521的3脚的PWM信号经两级RC滤波之后变得平滑,P521起到了主控电路与驱动电路电气隔离作用。
3. 系统软件设计
本控制系统利用C语言,采用模块化、结构化编程。模块化编程即:将一个大程序分成若干个小模块,各个模块保持相对的独立性,模块之间只靠少量的出之口参数相联系,这样各个程序模块分别设计,从而使程序的调试、修改都变得比较容易;结构化编程即:各个子程序之间使用良好的转移和调用,这个各个模块可有效地组合成一个整体,使流程明确地从一个程序模块转移到下一个程序模块。
本控制系统软件设计采用前后台系统,前后台系统即一个死循环程序加多个中断服务子程序组,主程序初始之前应该先关所有中断及看门狗定时器,以保证初始化时不受中断程序及系统复位成,任务比较多时则需要用实时打操作系统(RTOS),这样单片机的MPU使用率才会得以提高,各任务才能实时按预期运行。本控制系统软件包括主程序及中断服务程序两部分。主程序主要由系统初始化、转子转速计算及转速PID闭环控制组成,主程序完成大部分的功能任务;中断程序主要对中断事件进行检测并通知主程序进行相应处理、完成必要的实时性功能,这样做的目的是使中断不占用太多的CPU时间,使程序各部分功能能够可靠地运行,本控制系统的中断程序主要用来串行中断接收上位机发来的转速设定值、定时中断检测电流及显示转速值及相关故障。本软件设计的程序如图3-1所示

I/0口初始化主要是设置端口是输入还是输出、输出的初始值、是否要上拉电阻;A/D初始化主要设置所要AD转换器的通道、模拟参考电压以及时钟频率;Max7219的初始化主要是对内部亮度、译码方式、扫描位数等寄存器设置:串口初始化设置为多机通信方式、波特率为9600bit/s, 1位起始位、9位数据位、1位停止位;AtmegaBL有三个定时器,T0, T2为8位,T1为16位[4-5]。本控制系统中TO用于产生定时2秒定时中断信号,T2用于产生用户设定速度相对应的PWM波信号,Tl用于捕捉FG脉冲信号,从而计算电机转速。对上述量设置完了之后再开中断及看门狗,以响应中断服务程序及以防程序跑飞从而复位重新运行。
参考文献
[1] 张琛.无刷直流电动机原理及应用(第二版).北京:机械工业出版社2004
[2] 邓星钟.机电传动控制.武汉:华中科技大学出版社2001
[3] 温照方.电机与控制.北京:北京理工大学出版社2004
[4] 胡汉才.单片机原理及接口技术.北京:清华大学出版社1996
[5] 周誊琴.计算机控制系统。西安:西北工业大学出版社1998
文章版权归西部工控xbgk所有,未经许可不得转载。










服务咨询