首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

基于STM32的无位置传感器无刷直流电机控制系统

作者:马宗毅 来源:电子技术与软件工程

摘 要

利用STM32的控制性能和丰富外设,实现无位置传感器无刷直流电机控制,介绍了该系统的硬件电路和软件程序设计方法,采用并实现了择多函数滤波器的反电动势过零点检测方式。该系统具有一定的可靠性和稳定性。

【关键词】STM32 无位置传感器 无刷直流电机 择多函数 反电动势过零点

1 引言

无刷直流电机是随着电子技术的迅速发展而被广泛运用的电机,它是现代工业设备中重要的运行部件,它既具有直流电机调速性能良好和运行效率较高等特征,又具有交流电机构造简单和故障率较低等特点,特别是其高效节能的优点,所以其应用的领域越来越广泛。

本文是对无位置传感器无刷直流电机控制系统的设计,以STM32作为控制核心,STM32具有较高的性价比和丰富强劲的外设,充分利用其专为电机使用而设计的高级定时器TIM1、高速灵活的AD转换器和高效的中断控制器等,可以实现无刷直流电机的关键控制,以及凭借STM32的运算处理能力,实现了基于择多函数滤波器的反电动势过零点检测方式,用软件的方式进行数字滤波,这样不但省却了模拟滤波器和比较器,降低了硬件电路的复杂性,而且提高了系统的抗干扰性、可靠性和稳定性。

2 反电动势过零点检测法

无刷直流电机在两两导通三相六状态控制方式下,各相反电动势波形及导通电流如图1所示,在任何时刻都有两相导通,一相不导通,通过检测不导通相的反电动势过零点信息,即可获取转子位置信号,在过零点30°电角度后执行换相。

3 基于择多函数滤波器的反电动势过零点检测方式

3.1 择多函数滤波器原理

择多函数为一个布尔函数,输入值为n个二进制数,返回值为其中出现次数最多的数。择多函数表达式为:

output=(a&b)|(a&c)|(b&c) (1)

式中output表示输出值,&表示逻辑与操作符,|表示逻辑或操作符。

本系统设计的择多函数滤波器是基于六样本窗口的,如果前半部分采样值中有两个或者三个为1,同时后半部分中有两个或者三个为0,则认为过零点事件发生。

3.2 择多函数滤波器的实现算法

用择多函数滤波器实现反电动势滤波的算法分为如下四个步骤:

(1)反电动势的获取。采用端电压法对三相端电压进行采样,获取反电动势信息。

(2)反电动势信息的判断。运用两个逻辑操作符“与”和“异或”进行判断,其中“异或”用以改变当前反电动势的检测方向,“与”用以检测不导通相的反电动势状态。

(3)滤波器数值表。该数值表要包含所有的26=64种可能的数值,表中每个数值都是一个指针,起到指向随时间变化的下一个信号状态作用。该数值表按照如下公式构建,其中N为每个数值下标。构建的数值表中有16个能表征过零点事件发生的组合值,用1来替代以便逻辑条件识别。

(2)

(4)过零点事件的判断。反电动势的采样值经过数字滤波器,滤波器不断查询数值表,当滤波器输出值为1时表示过零点事件的发生。

4 控制系统设计

4.1 硬件设计

以STM32为系统控制核心,其较强的控制性能及丰富的外设,可使硬件系统设计较为简单,所占空间较小,图2所示为系统硬件框图。

设计中选用STM32F103VBT6,以H_PWM_L_ON的调制方式,PWM由定时器TIM1控制输出;三相逆变电路由六个MOSFET管IRF3205组成全桥式电路,实现对直流电的逆变转换,电机每一相由上下桥臂控制;功率驱动电路主要由三个功率管驱动器IR2101S、自举电容和三极管构成,一个IR2101S连接两个MOSFET管;反电动势检测电路是由六个电阻组成的分压电路,把三相端电压进行降压以符合STM32的AD转换范围,连接到ADC1的IN1、IN2和IN3端口;电压与电流监测电路是由电阻和滤波电容构成的分压电路,分别连接到ADC1。

4.2 软件设计

软件设计主控制程序流程图如图3所示,首先进行初始化程序,然后对硬件电路中的自举电容充电,再等待串口通信发送开启信号,STM32获得开启指令后进入启动程序,启动完成无刷直流电机进入正常的闭环运转状态,电机速度调节由串口发送的指令控制,对电源电压、电机运行时的电流和温度进行实时监控,如发生异常则相应的LED灯发出指示信号并将电机停止运转。整个软件设计主要包括初始化程序、电机闭环运行程序和启动程序三大部分。

4.2.1 初始化程序设计

初始化程序设计主要是完成STM32的GPIO配置、ADC控制配置、定时器配置、DMA控制器配置和中断服务配置等,系统的重要功能是通过STM32的定时器和ADC实现的,所以主要介绍定时器配置和ADC控制配置。

定时器配置中运用到三个定时器:TIM1、TIM2和TIM3。三路控制功率逆变电路的PWM分别由TIM1_CH1、CH2、CH3通道控制,TIM1_CH4用于把AD采样点设置在这三路PWM的高电平期间:TIM1_CC4事件可以作为ADC注入组的触发信号,通过设置TIM1_CCR4寄存器值使TIM1_CH4的PWM高电平发生稍后于其他三路PWM高电平的发生,再在其高电平发生时刻触发ADC注入转换,这样获取反电动势信息的AD采样频率就与控制功率逆变器的PWM频率一致;过零点30°电角度后换相的功能由定时器TIM2和TIM3实现:TIM3用于计算前两次反电动势过零点的计数值即为时间,再将该计数值的一半装载到TIM2自动装载寄存器中来产生换相延时。

ADC输入通道组管理模式分为规则通道组和注入通道组,规则组指正常的转换,注入组被触发可以打断规则组转换。在系统设计中,对电源电压、电机运行的电流和温度使用规则组形式连续循环采样,达到实时监测目的,用DMA控制把转换值发送到对应RAM;而对三相端电压使用注入通道组形式转换,在ADC中断程序中读取转换结果,获得电压采样值Ea、Eb和Ec。图4所示为规则组和注入组工作方式。

4.2.2 电机闭环运行程序

电机闭环运行程序是整个软件程序设计的关键部分,主要包括ADC、PWM及TIM2三者中断服务程序,中断优先级别从高到低顺序为:TIM2、PWM、ADC。TIM2中断程序在计数到装载值时执行换相功能,ADC中断程序实现三相端电压转换值的读取,下面主要介绍PWM中断程序设计。

PWM中断程序实现基于择多函数滤波器的反电动势过零点检测功能,图5 为PWM中断服务程序流程图,先将三相端电压构造虚拟中性点,再把三相端电压分别与虚拟中性点电压进行比较,并用软件比较器记录状态,然后执行择多函数滤波器算法对BEMF信号进行滤波,如滤波器输出为1就进入30°电角度时间的计算,最后开启TIM2。

4.2.3 启动程序

启动程序是采用“三段式”启动法,整个过程分为转子预定位阶段、开环加速阶段和闭环控制转换阶段,此过程主要是由软件程序控制。

5 结语

本文以STM32作为控制核心,实现了无位置传感器无刷直流电机控制,采用择多函数滤波器的反电动势过零点检测方式,能快速准确地检测转子位置信息,具有良好的性能。

参考文献

[1]夏长亮.无刷直流电机控制系统[M].北京:科学出版社,2009.

[2]刘刚 王志强 房建成.永磁无刷直流电机技术与应用[M].北京:机械工业出版社,2008.

[3] 张淑艳 王行愚 姚晓东.择多函数在无刷直流电动机控制中的应用[J].微特电机,2010(01).

[4] Microchip Technology Inc.Sensorless BLDC Control with Back-EMF Filtering Using a Majority Function[EB/OL].2008.

[5]STMicroelectronics Inc.STM32F10XXX参考手册[EB/OL].2010.

[6]杨光.电动车无刷直流电机无位置传感器控制研究[D].天津:天津大学,2008.

[7]吴大勇,贾敏智.STM32在三相无刷直流电机控制系统中的应用[J].微电机,2014(03).

作者简介

马宗毅(1986-),男,广西壮族自治区北海市人。硕士学位。现供职于广西师范大学外国语学院。研究方向为电子科学技术及实验室管理。

作者单位

广西师范大学外国语学院 广西壮族自治区桂林市 541004