logo资料库

基于PID算法的无刷直流电机速度控制系统设计.pdf

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
基于 PID 算法的无刷直流电机速度控制系统设计 http://www.paper.edu.cn 汲绍艳 中国农业大学机械电子工程,北京(100083) E-mail:sy_ji@163.com 摘 要:本文介绍了无刷直流电机调速以及 PID 调节,运用 AT89S52 单片机作为控制器实 现对电机的速度控制,利用 PID 算法实现速度闭环控制。阐述了系统的硬件组成和软件流 程,本系统实现了机器人的关键部位---驱动器的设计,解决了机器人的动力来源。 关键词:无刷直流电机,PID 算法,闭环控制 1. 引言 无刷直流电机是近几年小电机行业发展最快的品种,随着一些电子产品的增多,无刷直 流电动机作为驱动器,其需要量迅速增加。无刷直流电机用电子换向替代了电刷和换向器, 具有高可靠、高效率、寿命长、调速方便的优点。驱动系统是智能机器的重要组成部分, 对 系统的性能和操作能力具有决定性的作用,在一般情况下, 智能机器驱动系统由驱动器和传 动系统两部分组成。驱动器是驱动系统的核心部件, 用以产生运动和力; 传动系统将运动和 力从驱动器传递到灵巧手手指的关节。 2. PID 调节 文献[1]速度闭环控制结构能够提高无刷直流电动机的速度调解范围和速度控制精度。在 开环形的驱动器的基础上,加上速度闭环,就形成了无刷直流电动机的闭环控制系统。在无 刷直流电动机闭环调速系统中,速度控制器的输出信号,用作脉宽调制器的控制信号,一般 将霍尔位置传感器的信号加以处理后,形成速度反馈信号。在电子数字计算机直接数字控制 系统中,PID 控制器是通过计算机 PID 控制算法程序实现的。PID 控制规律的实现,必须用 数值逼近的方法。当采样周期相当短时,用求和代替积分,用差分代替微分,使 PID 算法 离散化,将描述连续-时间 PID 算法的微分方程,变为描述离散-时间 PID 算法的差分方程, 如图 1 所示: 输入 e + + - PID 位置算法 受控源 图 1 位置式 PID 控制算法的简化示意图 de t ( ) dt e t dt Td ( ) ∫ + + 1 ) T 1 考虑式(1),用矩形积分时,有: Kp e t [ ( U t ( ) = (1) KI = KD = K Tp s TI K Tp D Ts -1-
用差分代替微分 http://www.paper.edu.cn t ∫ 0 1 T I e d ( ) τ τ= ∑ k j 0 = e j ( ) T s Ti (2) T D de t ( ) dt = T D Ts e k [ ( ) − e k ( − 1)] (3) 将式(2)、(3)代入式(1),PID 算法变为: Ts T i k ∑ j 0 = T D T s u k ( ) = K + e k [ ( ) + p e j ( )] + e k [ ( ) − e k ( − 1)] (4) u(k)——第 k 个采样时刻的控制; KP——比例放大系数; KI——积分放大系数; KD——微分放大系数; TS——采样周期 式(4)是数字 PID 算法的非递推形式,称全量算法。算法中,为了求和,必须将系统 偏差的全部过去值 e(j)(j=1,2,3,... ,k)都存储起来。这种算法得出控制量的全量输 出 u(k),是控制量的绝对数值。在控制系统中,这种控制量确定了执行机构的位置,例 如在阀门控制中,这种算法的输出对应了阀门的位置(开度)。所以,将这种算法称为“位 置算法”由于用(4)式直接进行控制很不方便为此做一下的改动: U k ( 1) − = K E k { ( p 1) − + kT 1 − ∑ T j 0 = I E i ( ) + T D T [ E k ( 1) − − E k ( − 2)]} 其中: 由上式可知要计算第 k 次输出的值 U(k)秩序求出 ( U k − 1) E(k) E(k 1) E(k 2) 、 、 、 − − 即可。 3. 硬件电路设计 智能机器人驱动系统(无刷直流电动机)的硬件由:控制部分,驱动部分,无刷直流电 机,反馈部分构成。其总体硬件系统的框图如图 2 所示: -2- − E k ( − 1)] + K E k ( ) I + K E k E k ( ) 2 ( [ D − 1) − + E k ( − 2)] 从而可得: U k U k ( ( ) = 1) − + [ Kp E k ( ) T T I T D T K I = Kp KI Kp =
单 片 机 电机驱 动 D/A 转换 反馈 http://www.paper.edu.cn 无 刷 直 流 电 动 机 图 2 硬件总体框图 以 MC33035 为核心构成的机器人驱动系统采用 PWM 方式控制电机的转矩和转速,采 用电机内置的霍尔传感器检测转子位置,由 MC33035 接受霍尔传感器的位置信号,并对其 进行译码,以决定由哪个电极换相。以 POWER MOSFET 集成电路 MPM3003 作为逆变器, 采用三相全桥驱动。微机控制部分采用 AT89S52 单片机,它可实现对电机启停、制动、转 向、相位选择以及速度的控制。整个系统采用闭环控制,结构简单、可靠性高,系统结构如 图 3 所示。 图 3 控制系统结构框图 本设计控制电路部分采用 MOTOROLA 公司研制的第二代无刷直流电机控制专用集成 电路 MC33035 芯片,它采用双极性模拟工艺制造,内含可用于正确整流时序的转子位置译 码器,以及可对传感器的温度进行补偿的参考电平,同时它还具有一个频率可编程的锯齿波 振荡器。驱动电路部分采用摩托罗拉的 MPM3003 芯片,它是三相功率逆变桥电路,采用 SIP 单排封装形式,也称作 ICePAK 封装。该逆变桥的上桥臂由三个 P 沟道 POWER MOSFET 组成,下桥臂包括三个 N 沟道 POWER MOSFET。该功率电路非常适合磁盘驱动、伺服电 机驱动和步进电机控制等应用。 本系统中采用 AT89C52 单片机和 TLC5620 D/A 转换器达到利用微机对速度控制的目 的,并将一路电机的霍尔信号引入单片机计数,通过 PID 算法实现对速度的闭环控制。 AT89S52 单片机主要负责控制电机的启动、制动以及 PID 算法;TLC5620 是一个串行 D/A 转换器,具有 8 位的转换精度,可以通过单片机发送一组串行数据控制其输出电压 4. 应用软件设计 4.1 主程序 主程序主要包括:键盘扫描程序、键值读取程序、速度检测程序、PID 算法程序和电压 转换输出程序。其流程图如图 4 所示下: -3-
http://www.paper.edu.cn No 系统初始化 关外部中断 判 断 是 否 有键按下 Yes 读取键值 开外部中断 测速程序 PID 算法程序 将 计 算 所 得 到 的 U (k)转换成 D/A 的数 据输出程序 4.2 测速子程序 图 4 主程序流程图 测速子程序,主要就是两个中断程序,一个是定时器程序实现 1 分钟的定时,利用硬件 定时器加上软件计时来实现的。另外一个是计数器子程序,也是通过硬件计数器配合软件计 数来实现的,硬件计数器每计一个数产生一次中断使软件计数器加 1,最后当定时器及时到 一分钟产生中断时读取软件计数器的读数,此读数即是电机转速所对应的数据。定时器、计 数器流程图分别如图 5 所示: -4-
http://www.paper.edu.cn 否 定时器初始化 开中断 是否有定时 器中断产生 是 软件定时程序 关中断 读计数器的数据 返回 图 5 测速流程图 4.3 PID 程序设计 文献[2]用 51 单片机实现 PID 可有两种计算方法:一种为定点运算,一种为浮点运算。 定点运算速度比较快,但精度要低一些,浮点运算精度较高 ,但愿算速度较低。一般情况 下,当速度变化比较慢时,可采用浮点运算。如果系统要求速度比较快,则需要采用定点运 算。但是由于大多数被控对象的变化速度与计算机工作速度相比差异甚远。所以采用浮点运 算一般能够满足要求。但是由于本系统所采用的控制器的限制,我们采用了较简单的定点运 算。 U k ( ) = Kpe k ( ) + KI 为了编程方便做进一步的改进 Up k 设比例输出项: ( ) = KpE k ( ) k ∑ j 0 = E i ( ) + KD E k ( ) [ − E k ( − 1)] UI k ( ) k 1 − = ∑ K I = E j ( ) I + 1) − 0 K E k ( ) + = ( ) ( ) j [ D + ( ) 1)] K E k U k ( = E k ( − U k Up k U k U k ( ) 积分输出项: U k 微分输出项: ( ) D ( ) = 所以可得 上式即为 PID 离散化编程公式,当采用定点运算时,则将 Kp、Ki、Kd 这三个参数如何 设置分别求出,切存放在指定的存储单元中。设定 1AH、1CH 分别为加法、减法、乘法浮 点运算的两个运算地址,运算结果存放在 60H 单元中。由于初始化程序设置初值,使:E(k -1)=UI(k-1)=0。由于由采样程序进行采样,并经数字滤波器后的结果M(k) D I I -5-
存放在指定单元里即可。设定FADD、FSUB、FMUL分别为加法、减法、乘法定点 子程序。FSAVE为存储子程序。程序流如图 6 所示: http://www.paper.edu.cn 检 测 电 机 转 速 读 入 计算 e(k)=R(k)-M(k) Up(k)=Kpe(k) Ui(k)=KIe(k)+UI(k-1) UD(k)=KD[e(k)-e(k-2)] U(k)=Up(k)+UI(k)+UD(k) 图 6 PID 算法流程图 5. 总结 本文给出了无刷直流电动机目前的发展状况以及应用前景;研究了无刷直流电动机的基 础理论和工作原理,转子位置检测系统和电子换向器的原理和结构,无刷直流电机的硬件组 成和控制软件流程。对当前研究所存在的问题进行了分析,并提出相应的可行性方案。本系 统采用了 PID 算法、利用 AT98C52 单片机构成速度闭环控制。最终实现对无刷直流电动机 速度改变与控制,以保证其能够以一定的速度稳定运转,而且可以通过单片机实现无刷电机 的启、停、转向的控制。本系统有较好的动态性能和较高的控制精度。不仅适用于机器人驱 动系统方面,还可以用于 GPS 自动导航的小车中、电动自行车、电冰箱等。 -6-
http://www.paper.edu.cn 参考文献 [1] 吴佑张忠夫、钱江生《机电传动与控制》北京:机械工业出版社 ,2000 ,第 6 页、第 95—96 页 [2] 邓星钟等《机电传动控制》第二版。武汉:华中科技大学出版社,1998 The design of brushless DC motor controller based on PID In this paper the development status of brushless DC motor controller and its application foreground were introduced; It tells about composes of the system’s hardware and the control software. It analyses the existent problem of currently research, and gives out feasibility project. The system utilizes the PID arithmetic and AT89S52 MCU to make rapidity closed loop. Finally, achieving to control the rapidity of brushless DC motor controller and to keep it works under a steady speed. And also can control its start, stop and its turning. This system has preferable dynamic character and control precisely .The system is not only applicable to the robot driver, it does also can be used to the dolly which is GPS navigation、to electrical bicycle、to refrigerator etc. Keywords: brushless DC motor, closed loop; PID arithmetic The project of Machine electron of China agricultural university, Beijing (100083) arithmetic Ji Shaoyan Abstract -7-
分享到:
收藏