基于STM32的直流无刷无感电机的控制系统研究 下载本文

直流无刷电机控制系统设计与实现

在选用光耦时要注意两点:第一是光耦的开关速度是否满足系统的要求。第二是光耦的信号驱动类型。由于这里的位置检测接入的单片机端口是TIM2_CH1、TIM2_CH2、TIM2_CH3通道。由于反电势经过比较电路以后,可能会有大于单片机所能承受的电压,所以最好用隔离电路来保护单片机。这里选用三片BL817来实现电路的功能。

3.8 速度改变电路设计

速度改变电路选用的是滑动变阻器,通过改变滑动变阻器的阻值从而改变AD的输入值,并通过与反馈回的电机速度他们之间的关系,通过PID整定后的输出来控制PWM的占空比进而达到改变电机运转速度的功能。速度改变电路如图15所示。

图15 速度改变电路

4 系统软件设计

4.1软件总体设计

本文设计的BLDCM控制器的特点是控制系统的软件化,系统的许多功能都是在硬件的基础上依靠软件来实现的。它们包括:无位置传感器下的三段式启动;基于STM32高级定时器的三相六路互补的PWM输出;依赖无位置检测电路反电势检测后的电机换相;利用STM32的AD来转换计算采样电压值;电机的转速计算;电机转速的调节等。软件的可靠性将直接影响整个控制系统的性能。

软件系统的设计是分模块进行设计,包括直流无刷电机的启动、PWM换相,转子速度的计算,PID算法的实现等,软件的结构图如图16所示:

主程序Systick中断函数TIM2中断服务函数TIM1中断服务函数ADC1中断服务函数

图16 软件的总体框图架构

11

启动子程序 直流无刷电机控制系统设计与实现

4.2软件总体设计流程图

这部分是直流无刷无感电机的总体流程框图,是总体程序的大体结构模式,如图17所示。

开始端口、时钟、定时器、AD初始化开环启动无位置传感器闭环调节结束 图17 软件总体流程图

4.3无刷无感直流电机开环启动模块

本文运用了传统的三段式电机启动技术[5],当反电势达到一定的值时再切换至电机的自控状态。

(1) 转子定位:由程序控制任意两相导通一段时间,此时电机定子合成的磁势轴线在空间就会有一个方向并把转子磁极拖到与其重合的位置上,这个过程就是转子的预定位过程。

通常转子定位导通电机任意两相一定时间方式,但是这种方式容易造成定位失败。为了克服这种可能的电磁转矩为零的情况,我们采用两次定位的放法解决。

(2)开环加速:按照电机旋转的方向,按照六步PWM的换相顺序,每隔一定的延时进行一次换相动作,强行使电机的转子按照设定的方向旋转起来。在这里用升频升压法来实现开环加速,即换相信号频率逐渐加大,并且增大外施电压使电机加速,称为升频升压法。

(3) 当开环换相过程持续大约30个周期后,电机的转速达到一定的值,反电动势也能够检测的到了,此刻就可以进入闭环控制系统。

依据以上原理三段式开环启动的流程框图如图18所示。

12

直流无刷电机控制系统设计与实现

开始第一次定位第二次定位开启Systick来触发COM事件N按六部PEM顺序运行30次?Y

关闭Systick,切换至闭环模式

图18 开环三段式启动

4.4无刷直流电机位置检测及电机转速模块

在直流无刷电机控制体系中,要根据转子位置信息进行换相,也要根据转子位置信息计算转速。本课题位置检测用的是反电势位置检测技术,用的比较器来判断电机转子的位置,从而控制电机的进一步转动[6]。它的流程图如图19所示。

进入中断反电势过零点?YN延时30°电角度换相并计算转速返回主程序

图19 直流无刷电机位机检测图

13

直流无刷电机控制系统设计与实现

4.5 AD采样改变PWM占空比模块

AD模块采用的滑动变阻器来改变PWM的占空比,并采用了平均滤波技术,PWM脉宽调整模块根据转速的给定值设置PWM波的脉宽,从而控制电转速。如图20所示。

进入中断[7]

读入AD采样值是否采样10次YN取10次的平均值Y平均值<10?N设平均值为0平均值>4000?NY设平均值为4000设置对应的PWM脉宽返回主程序

图20 AD采样改变PWM占空比

4.6 PID计算模块

模拟PID控制原理如图21示,整个控制系统由模拟PID控制器和被控对象组成。 PID控制系统的基本原理是根据设定值rin(t)和实际输出值yout(t)构成控制偏差e(t)=yout(t)-rin(t)完成.利用PID控制系统对偏差进行处理得到控制量u(t),然后再利用这个控制量去控制被控对象,其中u(t)的计算公式为:

u(t)?Kp(e(t)?1tde(t)e(t)dt?Td)Ti?0dt (1)

Kp:比例常数,Ti:积分常数,Td:差分常数。

14