您好, 访客   登录/注册

基于STC89C51的直流电机PWM的PID调速系统

来源:用户上传      作者:

  摘  要: 本文设计一种基于STC89C51的直流电机PWM的PID算法调速系统,本文首先设计了系统的硬件原理框图,然后展开了调速系统的硬件设计。接着介绍了PWM直流电机的调速原理和PID控制算法的原理框图和数学模型。然后,在前面硬件的基础上进行了系统的软件的设计,最后进行了实物平台的搭建,并对直流电机的调速系统做了一系列实验,主要有:三种转速下的PWM波形测试实验和电机编码器A、B两相波形测试实验,并对实验波形进行了分析。实验结果表明,基于PID算法控制下的直流电机调速系统,转速能按设定值进行自动调速,最后趋于稳定,超调量小,证明了该系统的可行性。
  关键词: PID算法;PWM;转速控制;STC89C52
  中图分类号: TP27    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2020.09.028
  本文著录格式:郑艳鹏,苏东. 基于STC89C51的直流电机PWM的PID调速系统[J]. 软件,2020,41(09):100104
  【Abstract】: A PID speed regulating system based on STC89C51 DC motor PWM is designed by this paper. Firstly, the hardware principle diagram of the system is designed, and then the hardware design of the speed regulating system is developed. Then , The principle of PWM dc motor speed regulation and PID control algorithm principle block diagram and mathematical model is introduced. Then, on the basis of the previous hardware, we design the software of the system. Finally, the physical platform was built, and a series of experiments were carried out on the speed regulating system of DC motor. Including PWM waveform test experiments and motor encoder A, B two phase waveform test experiments under three kinds of rotating speed and the experimental waveform is analyzed. Experimental results show that:DC motor speed control system based on PID algorithm, Its speed can be automatically adjusted according to the set value, and finally tends to be stable, overshoot is small, which proves the feasibility of the system.
  【Key words】: PID Algorithm; PWM; Speed Control; STC89C52
  0  引言
  无论是在我们的生活中,还是在工业自动化电机控制系统中,电机作为其传动装置,在控制系统中扮演者重要的角色。电机最主要的参数就是转速,很多時候,人们需要对电机的转速进行精确的测量和控制,来满足人们的需求。电机的转速采集方法和调速方法有许多种,一般转速的采集是通过带编码器的电机,把转速信号转换成脉冲信号[1]。然后,再通过单片机进行运算处理,通过一系列的换算可以得出电机的实际的转速。
  而直流电机的调速方法一般有三种:改变电机的反电势系数、改变电机回路总电阻和改变端电机电压[2]。反电势系数与磁通密度有关,直流电机转子是永久磁体,磁场固定。因此,改变反电势系数来进行电机的调速是行不通的[3]。回路串电阻这种调速方法的机械特性较软,一般在电机调速性能要求不高的场合使用[4]。改变端电机电压法:通过改变控制功率开关管通断的 PWM 波的占空比,可以在不改变直流电源电压的情况下改变单位时间内流入绕组的电流总量,从而使电机绕组平均端电压改变,实现对直流电机的调速[5]。PWM调制法的调速范围较宽,调速比较平滑,目前应用比较广泛。
  但是本方法存在缺点,在实际应用中会发现,当控制系统给定一个固定的PWM占空比时,由于外部的干扰等因素的影响,实际的PWM占空比会发生波动,这样电机的转速就会波动,以至于电机转速不能达到一个较稳定的状态[6]。PID控制算法历史悠久,控制性能相对优越,只要选择合适的增益系数,它能满足大部分对控制精度要求不是很高的控制系统,本文使用该算法来对电机的转速进行控制[7]。
  1  直流电机调速系统硬件设计
  1.1  直流电机调速系统框图的设计
  本控制系统以STC89C51为整个控制系统的核心,进行了直流电机调速系统的设计。系统原理框图如图1所示。整个控制系统主要由按键电路、复位电路、时钟电路、数码管显示电路、直流电机驱动电路、编码器直流电机和5 V直流电源组成。
  该控制系统使用带有编码器的电机来实现转速的采集,并能通过按键来设定电机的转速值,通过软件的编程把电机的实时转速值通过数码管显示出来。控制方法是通过把PID控制器的输出值作为PWM的占空比的方法,来实现直流电机的转速的自动调节。   1.2  直流电机调速系统硬件原理图设计
  在图1中,设计了STC89C51直流电机调速系统的原理框图,本小节对原理图进行硬件展开设计,内容主要有:电机加减速按键电路、数码管显示电路、ULN2003电机驱动电路的设计等。整个电路的设计原理图,如图2所示。本系统采用现成的5V直流电源供电,因此没有给出电源电路的设计。下面对各个电路模块的功能进行介绍。
  在图2中,STC89C51为核心的控制器主要实现PID算法、PWM波输出、INT0中断脉冲计数、定时器T0、T1的定时中断功能;SB1和SB2为按键电路,实现电机的加速与减速的设定;ULN2003为直流电机驱动模块,该模块集成度强可同时驱动7个额定电压为5 V,额定电流为0.5 A电流的直流电机;encode motor模块为带编码盘电机,A、B两相分别为编码盘A、B两相脉冲输出端,相位相差π/2。图2中,A相接入单片机的P3.2 INT0引脚,利用外部中断0,实现码盘的脉冲计数,计数目的实现转速的测量;74HC245为数码管显示驱动芯片,把单片机信号放大,实现数码管的显示;数码管负责显示电机的转速测量及电机的转速设定。
  2  理论分析
  2.1  直流电机PWM调速原理
  PWM调速原理,简单来说,就是通过控制功率开关管子的接通与关断的时间,这样就会改变直流电动机电枢上电压的占空比,从而来改变电机上平均电压的大小,即PWM调压来控制电动机的转速[8]。本控制系统就是通过PWM(脉冲宽调制)技术来实现的,直流电机调速原理图如图3所示,输入输出电压如图4所示。
  在图2中,我們假设加在电机两端的脉冲电压的占空比为,则电机两端的电压平均值U0为[9]:
  由上面的式子可知改变直流电机脉冲电压占空比,直流电机两端的平均电压就可以改变。由直流电机的转速公式,可知直流电压和电机的转速成正比关系,直流电压改变后,电机转速也随之改变。
  2.2  直流电机的PID调速原理及数学模型
  直流电机PID控制原理框图,如图5所示。调速原理:首先设定电机的转速r(t),直流电机反馈的转速信号转化成脉冲信号送入单片机INT0,在定时器T0的作用下一定时间内对外部输入脉冲进行计数,然后算出当前转速,然后可得出转速偏差,接着把偏差信号送入PID控制器,进行PID调节,然后,计算出控制量输出,然后,将PID调节输出的值赋给PWM来更新PWM占空比,接着将最新的PWM信号,送入直流电机驱动模块ULN2003的输入IN1端,来驱动电机旋转。在调速过程中,当实际转速小于设定转速r(t)时,PID控制器控制PWM的输出脉宽增大,来提高电机的转速,当实际转速大于设定转速时,PID控制器使PWM脉冲宽度减小,来降低电机的转速,直到偏差信号消除为止,就这样如此循环下去,直到最后使电机的转速趋于设定值为止。
  2.3  PID控制器的数学模型
  基于PID控制的直流电机调速系统,其核心就是PID控制算法,上小节中介绍了速度PID直流电机调速原理,给出了调速原理框图,在图4中,我们定义为系统的给定输入量,为系统的实际输出量。是和的差,我们称为偏差信号,公式可以表示为。PID调节器的时域表达式可表示为[10]:
  增量型PID控制算法,只需要根据前后三次采样所得到的偏差、、就可以确定系统的输出,从计算的复杂程度来说,增量型PID算法计算更加简单,具有一定的优势,所以本控制系统采用此方法实现直流电机的转速调节控制。采用PID控制器对电机的转速进行调节时,需要对比例P环节、积分I环节和微分D环节进行参数的整定。
  比例P环节,能对系统的偏差信号立刻做出反应,转速偏差一旦产生,调节器会迅速的减少偏差信号,是系统快速到达转速给定值。但比例P环节系数值越大,系统相应速度越快,值过大时会引系统的大幅度震荡,超调量增加,调节时间变长[13]。积分I环节能改善系统的稳态性能,使系统的静态误差减小到足够小。只要系统的偏差存在,积分控制作用就会不断的积累,控制器输出就会发生变化,调节机构就会动作,直至偏差消除为止[14]。积分的作用与积分常数有密切关系,减小,系统的积分作用会加强,系统过渡过程中容易产生振荡,但调节时间变短。微分D环节具有超前控制的作用,它对系统的严重超调有超前抑制作用,但它的加入会使系统响应变慢,微分作用的强弱取决于时间常数的大小,越大系统抑制变化作用越强,越小系统抑制变化作用越弱[15]。上述可见PID控制器的三个参数互相矛盾,在使用PID控制器时,需根据三个参数的控制特点,进行适量的增加会减小,多次实验后一般可满足常用的现行控制系统的需求。
  3  直流电机调速系统的软件设计
  在1.2小节中,介绍了直流电机的硬件控制系统,硬件的设计离不开软件的设计,本小节主要完成直流电机调速系统的软件系统设计,其内容主要包括:主程序、定时器T0中断程序、PID算法控制程序流程图的设计,分别如图6、图7、图8所示。
  其中,主程序是一个无限的循环程序,一开始需要进行系统初始化(定时器T0初始化、INT0初始化、变量赋值初始化)等;然后进入while(1)无限循环程序,循环体内调用转速设定函数,数码管显示函数、PWM输出函数;定时器T0中断,是对INT0外部中断捕捉的脉冲数量,进行计时运算,定时时间为200 ms,即每200 ms来计算一次外部中断INT0中断函数内变量Ipulse(扫描的码盘脉冲数)的次数;PID控制算法是转速调节的核心控制程序,运算步骤:首先计算转速误差接着计算和,最后赋值给PWM,来更新PWM占空比,去控制直流电机旋转。INT0中断中只有一个Inpulse++变量比较简单,因此上面没有给出INT0中断流程图。   4  实验平台搭建与波形测试实验
  4.1  实验平台搭建
  本控制系统的实验开发平台实物图9所示,主要由编码器电机、单片机、数码管显示模块、直流电机驱动模块和数码管显示驱动芯片组成。按1.2小节的硬件电路图进行接线,使用keil4软件开发平台进行程序编写,然后生成PID.hex文件下载到单片机,进行了PWM波形和编码器脉冲波形测试实验。
  实验包括:转速设定在500转时,单片机PWM波形测试,编码器A、B路脉冲测试实验;转速设定在800转,单片机PWM波形测试,编码器A、B路脉冲测试实验;转速设定在1200转,单片机PWM波形测试,编码器A、B路脉冲测试实验。下面介绍试验步骤,及波形测试和分析。
  4.2  波形测试实验
  实验步骤:将线路按硬件原理图连接好,PID控制器经反复调试,三个增益系数设为P=10;I=12;D=1.5,将生成的PID.hex文件下载到单片机,设定转速为500 r/min,将示波器的1通道、2通道分别接编码器A、B两相,可得到电机转速在500 r/min时的编码器输出脉冲波形,如图10,图b)所示。测完后,将示波器一通道红表笔介入单片机的P1.0引脚,电机设定在500 r/min时,输出的PWM波形,如图9,图a)所示。用同样的方法可得出电机转速在800 r/min、 1200 r/min时的PWM波形和编码器AB两相测试波形分别如图c)、图d)、图e)和图f)所示。
  结果分析:从图(a)中可看出,电机在500 r/min时,PWM输出频率为14.83 Hz,占空比达到25.7%,由于直流電机供电电压为Us 5 V,由2.1节直流电机电压输出公式可得。从A、B两相编码器脉冲信号可以看出,他们之间相位相差/2,A路编码器脉冲可看出,它的频率是253 Hz,根据频率和转速的换算关系,编码器电机码盘是30线的,所以每转一圈码盘反馈30个脉冲(上升沿或下降沿)给单片机,253 Hz即每秒反馈253个脉冲,所以每秒中转的圈数为253/30,则一分钟电机转的圈数为 n=(253/30)*60=506 r/min。通过此方法,同样可以得到电机在800 r/min、1200 r/min时,电机端电压的端电压和转速,端电压分别为33.5%*5 V=1.675 V和42.2%*5 V=2.1 V,转速分别为811.8 r/min和1217.8 r/min。
  由占空比、电机端电压和转速值的数据可知,当电机的转速不断提高时,PWM占空比不断的加大,其电机的端电压也在不断增大,验证了占空比和电机端电压计算公式的正确性。为了清楚的看到不同转速时电机的超调量百分比,列出了PID算法转速超调量数据表,如表1所示。
  5  结论
  本文设计了基于STC89C51的直流电机PWM的PID算法调速系统,介绍了直流电机PWM调速原理和PID控制算法的原理框图和PID数学模型,给出了系统的硬件设计和软件设计,并进行了一些实验,实验结果表明,在PID算法作用下,直流电机能按照其设定的转速值,进行自动的调节,并且超调量小,证明了系统的可行性,有一定的应用价值。
  参考文献
  [1]应力恒, 陈子珍. 基于STC12C5A60S2的转速测量实验平台开发[J]. 宁波职业技术学院学报, 2012(5): 8-12.
  [2]杨靖. 用单片机控制的直流电机调速系统[J]. 机床电器, 2008(01): 45-47.
  [3]李婷. 基于单片机的直流电机控制方法研究[J]. 集成电路应用, 2019, 36(07): 58-59.
  [4]徐志勇, 苏文瑾. 直流无刷电机控制系统[J]. 科技视界, 2016(14): 137.
  [5]徐坤, 周子昂, 吴定允. 基于DSP 直流无刷电机控制系统的设计与实现[J]. 信阳师范学院学报(自然科学版), 2016, 29(02): 249-252.
  [6]焦玉朋. 基于51单片机的 PWM 直流电机调速系统[D]. 呼和浩特: 内蒙古大学, 2013.
  [7]丁少云, 薛达. 无刷直流电机的 PID 调速控制系统[J]. 变频器世界, 2019(2): 12-14.
  [8]杨春旭, 林若波, 彭燕标. 基于 PWM 控制的直流电机调速系统的设计[J]. 齐齐哈尔大学学报(自然科学版), 2011, 27(3): 10-13.
  [9]刘紫晶. 基于 STC89C52 单片机 PWM 调速控制系统的硬件设计[J]. 2012(13): 24-25.
  [10]黄健. 基于PI 控制的直流电机调速控制系统的研制. 西京学院, 2017, 30(1) : 35-37.
  [11]姜文彪, 吴坚. 直流电机双闭环 PI 控制技术研究[J]. 机床与液压, 2012, 40(11) : 21-24.
  [12]刘峰. 基于先进 PID 控制的电动机调速系统研究[J]. 科技创新与应用, 2014(15): 34.
  [13]田苗, 史玉琴. 基于PID技术的工业自动控制系统的优化改进研究[J]. 现代电子技术, 2015.
  [14]赵高超, 杨鸿武, 裴东, 等. 基于TMS320F2812的电机增量式PID控制系统[J]. 仪表技术与传感器, 2014(6): 106-112.
  [15]朱嵘涛, 武洪涛. 基于增量式PID算法的直流电机调速系统. 仪表技术与传感器, 2017(7): 33-35.
转载注明来源:https://www.xzbu.com/8/view-15368079.htm