小功率直流电机的测速和控制
摘要本设计采用两片MCU(AT89S52)完成了小型直流电机转速的采集、计算、显示、键盘设定 并将非均匀采样情况下的增量式积分分离 PID控制算法应用于直流电机的 PWM调速实现了对电机转速的测量和控制解决了通常低采样周期时系统的超调以及 PID算法的积分饱和问题。
关键词转速PID控制mcu AT89S52 PWM
Measuring And Control l ing The Rotational Speed Of Smal l
Power DC Electromotor
ZHANG Wu-jiang
(Grade 02,Class 2,Major Electronic and Information Engineering,Shaanxi University of Technology,Hanzhong
723000,Shaanxi)
Tutor,Lu chao
[Abstract]This design use two set of MCU(AT89S52) , has completed smal l DC electromotorrotational speed sampl ing,calculating,displaying, the keyboard setting,And has appl ied the PIDcontrol theoretics to the modulation of PWMrotational speed of DC electromotor,measuring and the control l ing therotational speed of the electromotor,has solved out modulation and PID algorithm integralsaturated problem.
[Keywords]Rotational Speed;PID control ;mcu(AT89S52);PWM
目录
引言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1设计方案论证. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1 .1系统结构方案论证. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1 .2转速测量方案论证. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
1 .3电机马区动方案论证. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
1 .4键盘显示方案论证. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
1 .5 PWM^件实现方案论证. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
2系统原理框图设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
3各模块的分析、计算与硬件电路设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
3.1速度测量电路的设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
3.1 .1转速/频率转换电路的设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
3.1 .2脉冲滤波整形电路的设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
3.2电机驱动电路的设计[3]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
3.3 LCD显示电路与单片机的接口设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
5系统各部分子功能程序设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
5.1电机转速测量程序设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
5.2键盘程序设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 1
5.3 LCD显示子程序的设计[4]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 1
6数字PID及其算法的改进. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
6.1PID控制基本原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
6.2三个基本参数Kp, Ti ,Td在实际控制中的作用研究. . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
6.3数字PID控制算法[1]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
6.4PID算法的改进 “饱和”作用的抑制[2]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
6.5PID控制算法的单片机程序实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
7 PWM言号的单片机程序实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
8系统的调试过程与测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
8.1转速度测量部分调试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
8.2PID各项系数赋初值. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
8.3实验调试和确定PID算法各项系数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
8.3.1赋初值调试分析。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
8.3.2修改PID各项系数值调试分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
8.3.3PID各项系数值的确定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
9结束语. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
[注释1]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
致谢. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
附录1 :硬件总图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
附录2:程序清单. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
引言
目前见到的许多关于直流电机的测速与控制类文献中虽然能实现直流电机的无级调速但还存在一些问题如无法与计算机直接接口许多较为复杂的控制算法无法在不增加硬件成本的情况下实现控制器的人机界面不理想。总的来讲控制器的智能化程度不高可移植性差。虽然采用PWM芯片来实现电机无级调速的方案成本较低但当控制器针对不同的应用场合增加多种附加功能时其灵活性不够而且反而增加硬件的成本[5] 。还有一些使用PLC控制器或高档处理器芯片如DSP器件的文献它们虽然具有较高的控制性能但由于这些高档处理器价格过高需要更多的外围器件 因此也不具备在通常情况下大规模使用的条件。从发展趋势上看总体的研究方向是提出质量更高的算法和调速方案 以及在考虑成本要求的前提下选择适合这种算法的核心控制器。
1设计方案论证
根据设计任务要求调速采用 PID控制器 因此需要设计一个闭环直流电机控制系统。该系统
采用脉宽调速使电机速度等于设定值并且实时显示电极的转速值。通过对设计功能分解设计方案论证可以分为系统结构方案论证速度测量方案论证 电机驱动方案论证键盘显示方案论证 PW嗽件实现方案论证。
1 .1系统结构方案论证
方案一采用一片单片机AT89S52完成系统所有测量、控制运算并输出 PWb®制信号。
方案二采用两片单片机AT89S52 其中一片做成PI D控制器专门进行PI D运算和PWM6制信号输出另一片则系统主芯片完成电机速度的键盘设定、测量、显示并向 PID控制器提供设定值和测量值设定PID控制器的控制速度等。
方案一的优点是系统硬件简单结构紧凑。但是其造成 CPU资源紧张程序的多任务处理难度增大不利与提高和扩展系统性能也不利于向其他系统移植。方案二则与方案一相反虽然硬件增加但在程序设计上有充分的自由去改善速度测量精度缩短测量周期优化键盘显示及扩展其它功能。与此同时 PID控制算法的实现可以精益求精对程序算法或参数稍加改动即可移植到
其他PID控制系统中。因此通过比较选择方案二。
1 .2转速测量方案论证
方案一采用记数的方法。 具体是通过单片机记单位时间 S 秒 内的脉冲数N,每分钟的转速M=N/SX 60。
方案二采用定时的方法。是通过定时器记录脉冲的周期 T,这样每分钟的转速 M=60/T。
比较两个方案方案一的误差主要是土 1误差量化误差 设电机的最低设计转速为 120转/分则记数时间S=1s,所以其误差得绝对值|丫|=| N土1 /SX60-N/SX60|=60 转/分 误差计算公式表明增大记
数时间可以提高测量精度但这样做却增大了速度采样周期会降低系统控制灵敏度。而方案二所产生的误差主要是标准误差并且使采样时间降到最短误差 丫=[60/ T土1 -60/T] 设电机速度在120—6000转/分之间那么0.01 s<TV 0.5s,代入公式得 0.00024<|丫| <0.6 转/分 。 由此明显看出方案二在测量精度及提高系统控制灵敏度等方面优于方案一所以本设计采用方案二。
1 .3电机驱动方案论证
方案一采用专用小型直流电机驱动芯片。这个方案的优点是驱动电路简单几乎不添加其它外围元件就可以实现稳定的控制使得驱动电路功耗相对较小而且目前市场上此类芯片种类齐全 价格也比较便宜。
方案二采用继电器对电动机的开或关进行控制通过开关的切换对电机的速度进行调整。这个方案的优点是电路较为简单缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不局。
方案三采用由达林顿管组成的 H型PW恤路。用单片机控制达林顿管使之工作在占空比可调的
开关状态精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下效率非常高 H型电路保证了可以简单地实现转速和方向的控制 电子开关的速度很快稳定性也极佳是一种广泛采用的PWM^速技术。
通过比较和对市场因素的考虑本设计采用方案一使系统的设计核心在 PID控制上。
1 .4键盘显示方案论证
方案一采用4 X4键盘可直接输入设定值。显示部分使用 4位数码管优点是显示亮度大缺点是功耗大不符合智能化趋势而且不美观。
方案二使用4个按键进行逐位设置。显示部分是使用支持中文显示的 LCD优点是美观大方有利于人与系统的交互及显示内容的扩展缺点是成本高抗干扰能力教差。
为了系统容易扩展、操作以及美观本设计完全采用方案二。
1 .5 PWM软件实现方案论证
脉宽调制的方式有三种定频调宽、定宽调频和调宽调频。本设计采用了定频调宽方式采用
这种方式的优点是电动机在运转时比较稳定并且在采用单片机产生 PWhB冲的软件实现上比较方便。对于实现方式则有两种方案。
方案一采用定时器做为脉宽控制的定时方式这一方式产生的脉冲宽度极其精确误差只在几个us。
方案二采用软件延时方式这一方式在精度上不及方案一特别是在引入中断后将有一定的误差。但是基于不占用定时器资源且对于直流电机采用软件延时所产生的定时误差在允许范围。 由于本设计采用了两片AT89S52单片机 M CO源充足 因此选择方案一。
2系统原理框图设计
系统原理框图如图2.1所示是一个带键盘输入和显示的闭环测量控制系统。主体思想是通过系统设定信息和测量反馈
信息计算输出控制信息。
图2.1系统原理框图
3各模块的分析、计算与硬件电路设计
3.1速度测量电路的设计
3.1 .1转速/频率转换电路的设计
理论上是先将转速转化为某一种电量来测量如电压 电流等。设计中将转速测量转化为电脉冲频率的测量。基于这一思想可以采用一对霍尔感应传感器使输出信号的一只在转轮一侧固定另一只则粘在对应位置的转轮上这样 电机每转一圈传感器将会输出一个脉冲然后将脉冲放大、整形后即可通过单片机测量其频率求出转速。实际实验中 由于市场采购原因暂用三极管输出型红外光电耦合器代替霍尔传感器。如图 3.1所示在电机转轮一处开孔这样每转一圈,三级管(红外接收头)透光导通一次 OUT端输出一个上脉冲 即完成了转速/频率的转换3.1 .2脉冲滤波整形电路的设计
由于电机在转动的过程中有很大的晃动而且本设计中测量装置做工粗糙 因此所获得的脉冲信号参杂有高频噪声或误动脉冲。为了提高测量的准确且尽可能地减少错误设计中如图 3.2所示O UT俞出端加一电容接地。为了既能抑制噪声又不影响测量 电容值 C的选择很重要。根据实际测量设计中所使用的直流电机转速可达 6000转/分。其所产生的脉冲周期T=1/(6000/60)S=0.01S,
一个周期内脉冲持续时间约为 1/8T=0.00125S低电平时间约为7/8T=0.00875S,由于接收头感光导通电阻很小所以电容迅速充电 当低电平到来时开始放电为保证下一个脉冲的检测放电时
间t应小于低电平持续时间 7/8T,根据电路 t=R2 X C<0.00875, 代入R2值解不等式可得:C<0.000017F。单位换算得C<0.017F,为了方便整形实际设计中 C=0.001 F 。 由于单片机中断I/O口的需要输入信号是正规的矩形脉冲所以电路的脉冲整形电路采用 74系列反向器74LS06进行两次反向后输入单片机。
3.2电机驱动电路的设计[3]
是一个高电压、大电流全双桥驱动器 由标准的 TTL电平控制。 L298N支持50V以内的电机控制电
本设计采用目前市场上较容易买到的 L298N直流或步进电机驱动芯片它采用单片集成塑装,
压在直流运转条件下可以通过高达 2A的电流 因此它满足了一般小型电机的控制要求。其内部
原理结构如图3.3。接法见图3.4,图中二极管的作用是消除电机的反向电动势保护电路 因此采
用整流二极管比较合适。 PW肝制信号由in1 、 in2输入。如果in1为高电平 in2为低电平时电机
为正向转速反之in1为低电平 in2为高电平时 电机为反向转速。本设计将 in2直接接地 即
采用单向制动的方式。通过实验本设计中不必使用双向制动也可达到设计要求。
图3.4:电机驱动电路
3.3 LCD显示电路与单片机的接口设计
设计中采用的LCD一一RT12232F是一种内置8192个16*16点汉字库和128个16*8点ASCI I字
符集图形点阵液晶显示器它主要由行驱动器/列驱动器及128X32全点阵液晶显示器组成。可完成图形显示也可以显示
7.5X2个16X16点阵汉字与外部CPU^口采用并行或串行方式控制。 本设计采用并行方式控制 LCD与单片机的通讯接口电路如图3.5所示采用直连的方法这样设计的优点是在不影响性能的条件下还不用添加其它硬件简化了电路降低了成本。
4系统总程序框图设计
系统程序程序框图如图4.1所示概述了程序的总体结构和工作过程。
图3.5: LCD显示电路与单片机的接口系统总控制器
野草云月末准备了一些促销,主推独立服务器,也有部分云服务器,价格比较有性价比,佣金是10%循环,如果有时间请帮我们推推,感谢!公司名:LucidaCloud Limited官方网站:https://www.yecaoyun.com/香港独立服务器:CPU型号内存硬盘带宽价格购买地址E3-1230v216G240GB SSD或1TB 企盘30M299元/月点击购买E5-265016G240GB SS...
HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。本月商家针对全场VPS主机提供8折优惠码,优惠后美国洛杉矶VPS月付5.2美元起。下面列出几款不同机房VPS主机产品配置信息。套餐:美国US-Plan0CPU:1cores内存:1GB硬...
国外主机测评昨天接到Hostigger(现Hostiger)商家邮件推送,称其又推出了一款特价大内存VPS,机房位于土耳其的亚欧交界城市伊斯坦布尔,核50G SSD硬盘200Mbps带宽不限月流量只要$59/年。 最近一次分享的促销信息还是5月底,当时商家推出的是同机房同配置的大内存VPS,价格是$59.99/年,不过内存只有10G,虽然同样是大内存,但想必这次商家给出16G,价格却是$59/年,...