基于Proteus和AVR单片机的无刷直流电机控制系统仿真
2015-01-28孙晓旭王劲松安志勇
孙晓旭,王劲松,安志勇
(长春理工大学 光电工程学院,吉林 长春 130022)
永磁无刷直流电动机不使用电刷和换向器组成的机械换向机构而是使用电子的直流电动机。永磁无刷直流电机首先不会出现诸如电刷引起的摩擦和电火花、因机械换相机构而导致的寿命短等问题;其次无刷直流电机在结构上有一定的简化,转子上安装永磁体,定子上安装电枢绕组,因而在导热方面效果更好。这样既能保持直流电动机在启动和调速方面的出色特性,同时又在运行稳定性和能量转换效率等方面保持一定的优势,进而提高电机运行的经济性。单片机尽管在性能上不如DSP芯片,但却有更低的价格,外部电路设计简单,在通常状况下单片机的控制功能和处理速度也可以达到的需求,所以这里选择单片机作为直流无刷电机驱动控制系统的主控芯片[1]。
Proteus软件目前在单片机仿真及其他相关的外围器件的仿真方面,Proteus是一个非常实用的工具软件。可以使用Proteus完成硬件电路的设计,可以对单片机在内的一些微处理器进行编程,在微处理器上实现不同的控制算法,并且仿真过程中的控制效果可以直观观测。文中采用Proteus仿真平台设计了以AVR单片机为控制核心的无刷直流电机仿真控制器,把有效的理论实践基础应用到实际系统的设计当中。
1 Proteus中的无刷直流电机模型
无刷直流电机模型是在直流电机模型基础之上建立的,根据应用需要可在Proteus软件中对电机的参数进行设定,包括电机的额定使用电压、空载状态转速、转子的转动惯量、定子绕组的阻抗及定子绕组间的互感等参数。软件提供定子绕组为星型连接(STAR)和三角形连接(TRIANGLE)两种模型,在此选用星型连接的无刷直流电机模型,该电机模型中自带有3个霍尔位置传感器,用于转子位置的检测。
2 硬件电路设计
硬件电路主要包括单片机的硬件电路、电机的驱动电路、功率逆变电路、运行电流检测电路、转速检测电路等[1]。原理框图如图1所示。
2.1 主控制电路
图1 无刷直流电机控制系统硬件框图Fig.1 Brushless DCmotor control system hardware block diagram
主控芯片选择ATmega128单片机,电路如图2所示。ATmega128芯片采用RISC结构,稳定性高,应用广泛。其外设具有 6路分辨率可编程 (2~16位) 的 PWM,8路 10位ADC。其具备的功能可用于无刷直流电机的驱动控制。ATmega128芯片具有输入捕获功能,能检测到来自的外部中断信号。将电机模型中自带的霍尔位置传感器A,B,C分别接入单片机的PD0,PD1,PD2引脚,随着电机转子位置的改变,3个霍尔传感器会输出不同的电平信号。当发生中断时,单片机的输入引脚可读取来自霍尔传感器的电平状态,在查询对应的霍尔换相真值表后即可得到当前的换相信息,进而实现换相控制[2]。
2.2 功率驱动电路
无刷直流电机的功率驱动如采用三相半桥方式,其电路部分器件相对较少,电机绕组的任一相只靠一个功率管即可控制电流通断,每相绕组的通电时间与关断时间之比为1:2,这使得每相绕组的利用率不高。三相全桥的电路部分器件的数量上是半桥式的两倍,但每相绕组可通电240°电角度,绕组利用率相应得到很大提高[2]。三相桥式逆变器是由6个N沟道功率MOSFET管构成。IR2101是双通道、栅极驱动、高压高速功率驱动器[3],因为IR2101采用了高度集成的电平转换技术,使逻辑电路对功率器件的控制要求得到简化。功率MOSFET管采用二二导通方式,6个功率管在电机运行过程中的通断状态共有6个。图3所示的功率驱动电路是其中一相绕组对应的桥臂。主控制器输出的PWM脉冲方波分别加载到功率驱动芯片IR2101的HIN和LIN引脚,用于驱动相应功率MOSFET管的通断。
图2 主控芯片电路Fig.2 Master control chip circuit
2.3 相电流检测电路
为了检测相电流,选择ACS712ELCTR-30A-T串入全桥公共端,然后将VIOUT端与主控芯片的A/D输入端口PF0连接。ACS712是线性电流传感器,该器件内置有精确的低偏置的线性霍尔传感器电路,其输出电压与被检测电流成比例。ACS 712ELCTR-30A-T霍尔电流传感器输出范围是0.5~4.5 V,而主控芯片ATmega128的A/D转换参考电压选为VCC,即5 V,电流传感器输出不超过A/D转换参考电压,如图4所示。
2.4 速度检测电路
Proteus的无刷直流电机模型自带3个霍尔传感器,霍尔传感器在空间上呈120°分布,用于确定电机转子位置,而且3个霍尔传感器在电机运行时其中两相输出信号相差120°,转子每转过360°电角度时,3个霍尔传感器的输出信号组合在一起对应换相的6种编码状态[4]。每当电机转子转过了60°角,3个霍尔传感器的输出状态就会相应变化一次。于是,电机的转速就可以通过计算单位时间T内捕获的霍尔传感器输出变化的次数n换算出来,转速换算公式为V=60 n/T。由此,要测量到电机的转速,就通过主控芯片的输入捕获功能获取到3个霍尔传感器中的一路输出信号的周期,然后由转速换算公式计算出电机转速即可。
图3 功率驱动电路Fig.3 Power driving circuit
图4 电流检测电路Fig.4 Current sensing circuit
3 软件设计
系统采用开环控制和转速电流双闭环PID控制,进行对比仿真实验。开环控制无论硬件电路还是控制程序都较闭环PID控制简单且易实现,一般在恒定负载应用中采用。在变化负载应用中,当电机转速在一定范围内时,负载会发生变化。需要转速控制精度和良好的动态响应,因而使用高级控制算法,但也增加了控制器的复杂性[5]。闭环控制采用转速电流双闭环增量式PID控制策略,两种控制方式的程序框图如图5所示,其中(a)为开环控制程序框图,(b)为闭环控制程序。
图5 控制程序框图Fig.5 Control program block diagram
4 Proteus仿真结果及分析
在AVR Studio开发环境下,用C语言进行程序设计。然后在Proteus仿真环境下,向ATmega 128单片机导入编译生成的hex文件,运行仿真即可直观地观察无刷直流电机的运行情况。
Proteus中的无刷直流电机模型可以直接显示转速,设定期望转速为200 r/min,并先后导入开环控制程序和闭环控制程序,进行对比观察,无刷直流电机的运行情况见图6。图6中(a)为开环控制的仿真结果,开环控制不能得到稳定的转速,这里只是截取了过程中的一个状态;图6中(b)为闭环控制仿真结果,通过以上的对比,闭环控制中因有PID(比例和积分)控制直流无刷电机的速度能稳定在期望转速值。显然闭环PID控制在电机运行转速上具有更好的控制效果。但软件的实时性在仿真环境下有所降低,出现了一定程度的延时,在仿真实验中电机的转速与设定的转速仍然有少量偏差。
图6 系统仿真结果Fig.6 System simulation results
5 结束语
文中在Proteus仿真软件中设计了无刷直流电机仿真控制系统,完成了包含主控制器电路、功率驱动电路、功率逆变电路、电流检测电路等硬件电路的设计,使用C语言编程并导入单片机,在Proteus仿真环境下进行了仿真实验。通过实验的直接观察,实现了电机转速的稳定控制,并且通过两种控制策略的对比,表明闭环控制在电机转速控制方面更加稳定。该系统能够满足无刷直流电机转速控制的设计要求,达到了预期的控制效果,对实际硬件电路的设计和软件控制策略的选择都具有一定的参考价值和辅助作用。
[1]崔丽,叶先明.基于AVR单片机的直流无刷电机智能控制系统设计[J].仪表技术与传感器,2009(11):34-36.CUI Li,YE Xian-ming.Design of brushless DC motor intelligent control system based on AVR SCM[J].Instrument Technique and Sensor,2009(11):34-36.
[2]李家庆,李芳,叶文.无刷直流电机控制应用[M].北京:北京航空航天大学出版社,2014.
[3]蒋林,肖伟,珍玛曲宗,等.基于IR2101最大功率跟踪逆变器的设计与实现[J].电子设计工程,2010,18(11):27-29.JIANG Lin,XIAOWei,ZHEN Ma-quzong,et al.Design and implementation of maximum power tracking inverter based on IR2101[J].Electronic Design Engineering,2010,18(11):27-29.
[4]李乐,李波.带霍尔式位置传感器BLDCM控制器设计[J].工业控制与应用,2009,28(9):29-32 LILe,LIBo.Design of BLDCM controllerwith Hall position sensor[J].Industrial Control And Applications,2009,28(9):29-32.
[5]王清,肖忠,姚菁.Proteus仿真环境下的PID参数整定及其应用[J].自动化与信息工程,2012(2):36-39.WANG Qing,XIAO Zhong,YAO Jing.PID parameter setting and application in Proteus simulation environment[J].Automation&Information Engineering,2012(2):36-39.
[6]刘宸.直流电机脉宽调制调速在Proteus中的仿真设计[J].科技创新与应用,2013(20):61 LIU Chen.Simulation design of DC motor pulse width modulation and speed regulation in Proteus[J].Science And Technology Innovation And Application,2013(20):61
[7]陈忠平.基于Proteus的AVR单片机C语言程序设计与仿真[M].北京:电子工业出版社,2011.
[8]朱飞,杨平.AVR单片机C语言开发入门与典型实例[M].北京:人民邮电出版社,2010.