基于STM32单片机的直流电机闭环调速系统

2022-02-21 06:04王传博王溪文
科技信息 2022年4期
关键词:电机

王传博 王溪文

摘要:直流电机闭环调速控制系统主体是由主控电路、测速模块及电动机组成。该系统通过PID与PWM之间的关系控制脉冲序列,由速度传感器测出电动机的转速反馈给单片机,从而构成闭环反馈控制系统,在单片机处理信号时采用PID算法对输出信号进行校正,改变输出脉冲的占空比使其更加准确的控制电动机转速。这种闭环控制系统提高了系统运行时的稳定性和调速的精度,增强了对直流电机速度的可控性,能够有效的实现对直流电动机转速的控制。

关键词:电机;测速传感器;PWM控制;PID算法

0引言

随着科学技术的发展和进步,自动化控制技术的需求不断扩大,以单片机为核心的电机调速系统以其良好的调速特性和制动性能,使得在各个领域中的应用越加广泛[1-2]。本次设计以STM32单片机作为控制核心,采用增量式PID算法和PWM技术通过霍尔传感器的反馈构成闭环控制系统,更好的保证电机调速系统在各个领域的应用与发展。

1系统总体方案设计

本次设计一共设置了四个按键,分别对应电机启动,加速,减速,停止四种运行状态。上位机将相对应的程序写入STM32单片机,由STM32单片机输出脉冲序列通过占空比的改变控制电动机的转速,霍尔传感器采集电动机的转速转换成数字信号反馈给单片机,单片机内部程序通过PID算法对反馈信号加以校正在重新输出,使系统形成一个闭环反馈。系统结构框图如图1所示。

图1 系统结构框图

2硬件设计

2.1电机控制模块设计

本次设计中采用的电机控制模块是L298N双H桥直流电机驱动芯片,该芯片具有ENA和ENB两个使能控制端,采用逻辑电平信号控制电机转动[3]。芯片工作时端子悬空,VMS驱动部分由单片机通过杜邦线供电,这种供电方式简化了电路的设计,大幅提高了系统的运行效率。

L298N控制芯片的端子左右两排插针IN1~IN4分别接在STM32单片机接口的GPIOF1~4,OUT1~OUT2连接直流电动机,用来控制电动机旋转方向和转速。ENA和ENB接高电平时芯片使能,在本次设计中由单片机输出信号拉高。

2.2测速传感器模块设计

本文采用的测速传感器为霍尔测速传感器ES3144,该传感器主要由传感头和齿圈组成,其工作原理为霍尔效应,当转动的金属部件通过霍尔传感器的磁场时引起电势变化,通过对电势的测量就可以得到被测量对象的转速值。当信号盘随电机转轴旋转时,信号盘的每个齿经过探头正前方时产生感应,探头就输出一个标准的脉冲信号。因此,脉冲信号的频率大小就反映了直流电动机的转速。

对于转速的测量方法很多种,本次设计中采用的是根据脉冲计数来实现转速测量的定数计时法也称测周期法。定数计时法是指电机转速以单位时间内转数来衡量,在变換过程中多数是有规律的重复运动本次设计中采用定数计时法,在被测信号的一个周期内,计数时钟脉冲数为m,fc为时钟频率,则被测信号的频率fx的计算公式可见式(2.1)。

(2.1)

霍尔转速传感器通过磁力线密度的变化,在磁力线穿过传感器上的感应元件时,产生霍尔电势并将其转换为交变电信号,最后传感器的内置电路会将信号调整和放大,输出矩形脉冲信号传递给单片机。

3软件设计

3.1 PWM调速设计

在本次设计中将电动机的工作频率设为1000HZ,则周期为1ms。在输出PWM波时,利用定时器确定PWM的周期及占空比。其计算公式见式(3.1)。

(3.1)

式中的T为PWM的周期,D为占空比,t是由定时器产生一个时间基准,定时器溢出的次数为n。周期与占空比相乘所得的时间也就是单片机输出高电平的时间。系统运行时,规定电动机最大转速为Vmax,占空比为D,则电机的平均速度其中Va指的是电机的平均速度;Vmax是指电动机在全通电时的最大速度;占空比。当占空比不同时,会得到不同的平均速度Vd,达到调速目的。一个周期加在直流电动机两端的电压的大小就是高电平脉冲的个数乘上占空比的大小,电机的平均速度等于在指定的占空比下直流电动机的最大速度乘上占空比,因此当改变脉冲序列里的占空比时,电动机就会产生不同的速度。

单片机产生的周期为1ms(10000HZ)的PWM,所以可设置中断的时间间隔为0.01ms,,然后中断100次即为1ms。在中断子程序内,可设置一个变量time,在中断子程序内,当time>=100时,time清零(此语句保证频率为10000HZ),time>n(n在0-100之间)时单片相应的I/O口输出高电平,反之,单片相应的I/O口输出低电平,此时占空比就为n%。占空比通过time的值进行变化,time<=20时 PWM1=0; 是指%20的时间输出低电平,80%的时间输出高电平,即占空比为80%。频率是由11.0592M晶振,10KHZ PWM输出频率,定时器0.01ms中断一次,中断次数100次即为10KHZ( 0.01ms*100=1ms,即为10000HZ,此时,定时器计数器赋初值为FF。

另需要定义一个标志位flag,根据flag的状态决定输出高平还是低电平,定义flag=1的时候输出高电平,用变量记录定时器中断的次数,每次中断就让记录中断次数的变量加1,在中断程序里面判断这个变量的值是否到n值。当达到了高电平的时间,此时改变将0值赋给flag,输出低电平,同时记录中断变量的值清零,每次中断的时候依旧加1,根据flag=0的情况跳去判断记录变量的值是否达到n,如果符合,flag值会改成1,输出改高电平,同时记录次数变量清零,重新开始,通过子程序的不断循环来得到设计需要的PWM波形。

3.2 PID控制算法设计

PID控制算法其实是对设置的预定参数进行跟踪。在控制领域,先采集目前的实时参数,与设定的参数进行比较,计算出误差,然后进行积分微分运算,计算出控制器需要的增量然后与实际参数相加,使其尽可能的接近设定值 。PID控制算法一共有三种,分别是增量式算法、位置式算法和微分先行,在本次设计中采用增量式算法,其计算公式见式(3.2)。

(3.2)

在本次设计中为了加快开始的动态过程,设定了一个偏差范围v,当偏差|e(t)|< β时,即被控量接近给定值时,就按正常规律调节,而当|e(t)|>= β时,则不管比例作用为正或为负,都使它向有利于接近给定值的方向调整,即取其值为|e(t)-e(t-1)|,加快了控制的动态过程。增量式算法中比例积分Kp越大时,电机转速回归到输入值的速度将更快,及调节灵敏度就越高,可以增加P值来减少调节时间,但造成了电机转速在预设值附近振荡的情形,因此引入积分Ki环节消除稳态误差,但系统趋于稳定的时间不应过长,因此在本次设计的系统中将时间常数设置很小。具体PID算法程序流程图如图2所示。

4结语

本文主要对基于STM32单片机的直流电机调速系统的设计进行了详细的阐述。以单片机作为核心控制芯片,采用闭环的数字控制,用组合逻辑电路实现脉冲信号输出,配合控制芯片对电动机驱动的控制,通过霍尔测速传感器对直流电机的速度采样,由PID控制算法对输出信号进行校正提高测量电机转速的精度。

参考文献:

[1]陆丽婷,项岩.基于单片机的电机测速系统设计[J].无线互联科技,2017 (17):35-36.

[2]蔡述庭.智能汽车竞赛设计与实践[M].北京:北京航空航天大学出版社,2012.

[3]张小鸣,卢方民.基于 IR2110 的 H 桥可逆 PWM 驱动电路应用[J].

作者简介: 王传博(1996.10—),男,辽宁,硕士,主要研究方向:控制系统与应用

图2.PID算法程序流程图

猜你喜欢
电机
轴流冷却风机电机频繁烧毁的处理过程及原因分析
浅析电机的制造工艺
小番茄发电机
Arduino 入门之步进电机试验
步进电机的自动化控制探究
Sky RC OSPREY穿越机
X2412S多旋翼专用电机
电机Ⅱ个股表现
基于ARM—Cortex—M4内核的DSP驱动BLDC的一种方法
利用集成功率模块加快电机高效变速驱动的实现