基于STC89C52的简易倒立摆控制装置设计

2014-10-14 18:44汤燕
现代电子技术 2014年20期
关键词:PID控制

汤燕

摘 要: 以全国大学生电子设计竞赛为背景,通过分析简易旋转倒立摆及控制装置系统的任务和基本要求,设计制作了基于单片机为主控芯片的倒立摆控制系统,利用光电编码器传回来的反馈信号采用PID控制调节,并发出控制信号驱动直流电机,实现调速控制。该装置可以使旋转臂适时适当的摆动,准确地让摆杆在短时间内达到题目所需的要求。

关键词: 光电编码器; PID控制; 简易旋转倒立摆; 全国大学生电子设计竞赛

中图分类号: TP29?34 文献标识码: A 文章编号: 1004?373X(2014)20?0160?03

Design of simple inverted pendulum control device based on STC89C52

TANG yan

(Yinchuan Energy Institute, Yinchuan 750105, China)

Abstract: Taking National Undergraduate Electronic Design Contest as a background, an inverted pendulum control system based on single chip microcomputer taking as the main control chip was designed and manufactured by analyzing the tasks and basic requirements of simple rotary inverted pendulum and its control system. PID is used to control and adjust the feedback signal emitted from photoelectric encoder, and send control signal to drive DC motor, so as to achieve speed control. The device can make the rotating arm swing timely, and make the swing bar meet the subject requirements in a short period of time.

Keywords: single chip microcomputer; photoelectric encoder; PID control; simple rotary inverted pendulum; National Undergraduate Electronic Design Contest

0 引 言

在全国大学生电子设计竞赛中,简易倒立摆的控制装置设计具有非常典型的意义,由于其运动特性与日常所见到的各种重心高,支点低的物体稳定问题,及双足步行机器人关节运动等有很大的相似性,因此,对其的研究也一直受到国内外学者的广泛关注[1]。本文采用AT89C52单片机设计的简易旋转倒立摆控制系统,机械装置构造简单、工作可靠、价格低、体积小,是研究控制理论较理想的控制装置,其控制具有高阶次,不稳定、多变量、非线性和强耦合等特性。

1 旋转倒立摆装置的设计

1.1 机械结构设计

旋转倒立摆的结构如图1所示。电动机A固定在支架B上,通过转轴F驱动旋转臂C旋转。摆杆E通过转轴D固定在旋转臂C的一端,当旋转臂C在电动机A驱动下作往复旋转运动时,带动摆杆E在垂直于旋转臂C的平面作自由旋转。

图1 旋转倒立摆结构示意图

由旋转倒立摆的结构示意图,选择做了金属框架,按照示意图所示,安装了简易的倒立摆,由它来完成目标控制任务。实物如图2所示。

图2 旋转倒立摆装置

1.2 控制电路设计

在控制电路的设计中,最终确定了以STC89C52单片机为控制核心,采用型号为YH42BYGH47?401A的步进电机控制倒立摆摆动,用增量式编码器来测量倒立摆摆动过程中的摆幅,将光电编码器传回来的摆杆角度数字信息经过单片机处理后,适时、准确地控制步进电机启动的时刻,以此达到倒立摆的控制。

设计的系统的总体结构框图如图3所示。

图3 系统方框图

1.2.1 驱动模块

本设计采用L298N模块给步进电机供电。L298N可直接对步进电机进行控制,不需隔离电路。它通过改变控制端的电平来对步进电机进行启停,非常方便,亦能满足控制摆杆需求。

1.2.2 角度传感器模块

本设计采用光电编码器测量摆杆的旋转角度并反馈回给单片机,它是集成光?机?电为一体的数字测角装置,它将输入给轴的角度量,利用光电转换原理转换成相应的电脉冲或数字量送给单片机,能直接被单片机识别,不另外需要A/D转换器,具有体积小,精度高,工作可靠,接口数字化等优点。

增量式光电编码器是直接利用光电转换原理输出三组方波脉冲A,B和Z相;A,B两组脉冲相位差90°,从而可方便地判断出旋转方向,而Z相为每转一个脉冲,用于基准点定位[2]。

它的特点是具有简单的原理构造,机械平均工作时间可以达几万小时以上,抗干扰能力强,可靠性、稳定性高,主要适合于长距离传输。

编码器输出的A相脉冲接到单片机的外部中断INTO,B相脉冲接到I/O端P1.0,如图4所示。

当系统工作时,首先要把INTO设置成下降沿触发,并开相应中断。当有效脉冲触发中断时,执行中断处理程序,判断B脉冲是高电平还是低电平[3]。若是高电平,则编码器正转,加1计数;若是低电平,则编码器反转,减1计数。

1.2.3电源模块

本系统采用独立供电模块,220 V交流经变压器变压,整流电路,滤波电路,再经三端稳压管稳压输出5 V和12 V。

图4 判断相电路

2 控制程序编制

为了达到目标任务的要求,采用了比例?积分?微分控制,即PID控制。它是一种对偏差进行的比例、积分和微分运算的控制规律,其具体的表达:

[m(t)=KP[ε(t)+1TI0tε(τ)dτ+TDdε(t)dt]] (1)

式中:[KPε(t)]为比例控制项;[KP]为比例系数;[1TI0tε(τ)dτ]为积分控制项,[1TI]为积分时间常数;[TDdε(t)dt]为微分控制端,[TD]为微分时间常数[4]。

用单片机的C语言实现PID控制规律时,需要对式(1)进行离散化,以便于单片机的计算[5]。

离散化后:

[m(t)=KPε(t)+1TI[ε(1)+ε(2)+…+ε(t)]+TD[ε(t)-ε(t-1)]] (2)

在以3 ms的采样周期内,可得到角度偏差,代入式(2),有:

[NT1=KP·Δθi+KI(Δθ1+Δθ2+…+Δθi)+ KD×(Δθi-Δθi-1)] (3)

得到低电平的持续时间[T1]对应的中断程序的脉冲计数[Nn],进而求出[T1=NT1×1.09 μs]。而设计的脉冲周期时间为[T0=1 ms]的延时,那么最终输出的电机转速为:

[V(t)=4 000rpm×duty_ratio =4 000 rpm×(1-T1T0) =4 000 rpm(1-NT1×1.09 μs1 ms)]

利用以上算法编制PID控制程序,程序详细流程如图5所示,使用经验法的调试,最终得到了PID的控制算法中的各个控制参数的数值,具体是[KP=75],[KI=135]和[KD=75],以保证倒立摆的稳定性[6]。

图5 控制系统流程图

3 结 语

通过对倒立摆控制装置的调试,得到了较好的控制效果。系统基本达到了要求,摆杆从处于自然下垂状态(摆角0°)开始,驱动电机带动旋转臂作往复旋转使摆杆摆动,并尽快使摆角达到或超过-60°~60°, 尽快增大摆杆的摆动幅度,直至能完成圆周运动;另外,如若外力拉起摆杆至接近165°位置时,外力撤除同时,启动控制旋转臂,摆杆保持倒立状态时间不少于5 s。本装置具有结构紧凑,电路稳定,控制程序编制灵活的特点。

参考文献

[1] BLOCH A M, LEONARD N E, JERROLD E M. Stabilization of the pendulum on a rotor arm by the method of controlled Lagrangians [J]. IEEE Transactions on Automatic Control, 1999, 44(5): 599?605.

[2] 彭思.基于力反馈的远程上/下肢康复机器人研究[D].南京:东南大学,2010.

[3] 梁成江.半挂车抽偏角检测仪的开发研究[D].青岛:青岛理工大学,2010.

[4] 杨叔子.机械工程控制技术[M].武汉:华中科技大学出版社,2005.

[5] 郭天祥.51单片机C语言教程[M].哈尔滨:电子工业出版社,2009.

[6] 黄泳波.一级倒立摆控制装置的设计与开发[J].机电产品开发与创新,2011(6):133?134.

编码器输出的A相脉冲接到单片机的外部中断INTO,B相脉冲接到I/O端P1.0,如图4所示。

当系统工作时,首先要把INTO设置成下降沿触发,并开相应中断。当有效脉冲触发中断时,执行中断处理程序,判断B脉冲是高电平还是低电平[3]。若是高电平,则编码器正转,加1计数;若是低电平,则编码器反转,减1计数。

1.2.3电源模块

本系统采用独立供电模块,220 V交流经变压器变压,整流电路,滤波电路,再经三端稳压管稳压输出5 V和12 V。

图4 判断相电路

2 控制程序编制

为了达到目标任务的要求,采用了比例?积分?微分控制,即PID控制。它是一种对偏差进行的比例、积分和微分运算的控制规律,其具体的表达:

[m(t)=KP[ε(t)+1TI0tε(τ)dτ+TDdε(t)dt]] (1)

式中:[KPε(t)]为比例控制项;[KP]为比例系数;[1TI0tε(τ)dτ]为积分控制项,[1TI]为积分时间常数;[TDdε(t)dt]为微分控制端,[TD]为微分时间常数[4]。

用单片机的C语言实现PID控制规律时,需要对式(1)进行离散化,以便于单片机的计算[5]。

离散化后:

[m(t)=KPε(t)+1TI[ε(1)+ε(2)+…+ε(t)]+TD[ε(t)-ε(t-1)]] (2)

在以3 ms的采样周期内,可得到角度偏差,代入式(2),有:

[NT1=KP·Δθi+KI(Δθ1+Δθ2+…+Δθi)+ KD×(Δθi-Δθi-1)] (3)

得到低电平的持续时间[T1]对应的中断程序的脉冲计数[Nn],进而求出[T1=NT1×1.09 μs]。而设计的脉冲周期时间为[T0=1 ms]的延时,那么最终输出的电机转速为:

[V(t)=4 000rpm×duty_ratio =4 000 rpm×(1-T1T0) =4 000 rpm(1-NT1×1.09 μs1 ms)]

利用以上算法编制PID控制程序,程序详细流程如图5所示,使用经验法的调试,最终得到了PID的控制算法中的各个控制参数的数值,具体是[KP=75],[KI=135]和[KD=75],以保证倒立摆的稳定性[6]。

图5 控制系统流程图

3 结 语

通过对倒立摆控制装置的调试,得到了较好的控制效果。系统基本达到了要求,摆杆从处于自然下垂状态(摆角0°)开始,驱动电机带动旋转臂作往复旋转使摆杆摆动,并尽快使摆角达到或超过-60°~60°, 尽快增大摆杆的摆动幅度,直至能完成圆周运动;另外,如若外力拉起摆杆至接近165°位置时,外力撤除同时,启动控制旋转臂,摆杆保持倒立状态时间不少于5 s。本装置具有结构紧凑,电路稳定,控制程序编制灵活的特点。

参考文献

[1] BLOCH A M, LEONARD N E, JERROLD E M. Stabilization of the pendulum on a rotor arm by the method of controlled Lagrangians [J]. IEEE Transactions on Automatic Control, 1999, 44(5): 599?605.

[2] 彭思.基于力反馈的远程上/下肢康复机器人研究[D].南京:东南大学,2010.

[3] 梁成江.半挂车抽偏角检测仪的开发研究[D].青岛:青岛理工大学,2010.

[4] 杨叔子.机械工程控制技术[M].武汉:华中科技大学出版社,2005.

[5] 郭天祥.51单片机C语言教程[M].哈尔滨:电子工业出版社,2009.

[6] 黄泳波.一级倒立摆控制装置的设计与开发[J].机电产品开发与创新,2011(6):133?134.

编码器输出的A相脉冲接到单片机的外部中断INTO,B相脉冲接到I/O端P1.0,如图4所示。

当系统工作时,首先要把INTO设置成下降沿触发,并开相应中断。当有效脉冲触发中断时,执行中断处理程序,判断B脉冲是高电平还是低电平[3]。若是高电平,则编码器正转,加1计数;若是低电平,则编码器反转,减1计数。

1.2.3电源模块

本系统采用独立供电模块,220 V交流经变压器变压,整流电路,滤波电路,再经三端稳压管稳压输出5 V和12 V。

图4 判断相电路

2 控制程序编制

为了达到目标任务的要求,采用了比例?积分?微分控制,即PID控制。它是一种对偏差进行的比例、积分和微分运算的控制规律,其具体的表达:

[m(t)=KP[ε(t)+1TI0tε(τ)dτ+TDdε(t)dt]] (1)

式中:[KPε(t)]为比例控制项;[KP]为比例系数;[1TI0tε(τ)dτ]为积分控制项,[1TI]为积分时间常数;[TDdε(t)dt]为微分控制端,[TD]为微分时间常数[4]。

用单片机的C语言实现PID控制规律时,需要对式(1)进行离散化,以便于单片机的计算[5]。

离散化后:

[m(t)=KPε(t)+1TI[ε(1)+ε(2)+…+ε(t)]+TD[ε(t)-ε(t-1)]] (2)

在以3 ms的采样周期内,可得到角度偏差,代入式(2),有:

[NT1=KP·Δθi+KI(Δθ1+Δθ2+…+Δθi)+ KD×(Δθi-Δθi-1)] (3)

得到低电平的持续时间[T1]对应的中断程序的脉冲计数[Nn],进而求出[T1=NT1×1.09 μs]。而设计的脉冲周期时间为[T0=1 ms]的延时,那么最终输出的电机转速为:

[V(t)=4 000rpm×duty_ratio =4 000 rpm×(1-T1T0) =4 000 rpm(1-NT1×1.09 μs1 ms)]

利用以上算法编制PID控制程序,程序详细流程如图5所示,使用经验法的调试,最终得到了PID的控制算法中的各个控制参数的数值,具体是[KP=75],[KI=135]和[KD=75],以保证倒立摆的稳定性[6]。

图5 控制系统流程图

3 结 语

通过对倒立摆控制装置的调试,得到了较好的控制效果。系统基本达到了要求,摆杆从处于自然下垂状态(摆角0°)开始,驱动电机带动旋转臂作往复旋转使摆杆摆动,并尽快使摆角达到或超过-60°~60°, 尽快增大摆杆的摆动幅度,直至能完成圆周运动;另外,如若外力拉起摆杆至接近165°位置时,外力撤除同时,启动控制旋转臂,摆杆保持倒立状态时间不少于5 s。本装置具有结构紧凑,电路稳定,控制程序编制灵活的特点。

参考文献

[1] BLOCH A M, LEONARD N E, JERROLD E M. Stabilization of the pendulum on a rotor arm by the method of controlled Lagrangians [J]. IEEE Transactions on Automatic Control, 1999, 44(5): 599?605.

[2] 彭思.基于力反馈的远程上/下肢康复机器人研究[D].南京:东南大学,2010.

[3] 梁成江.半挂车抽偏角检测仪的开发研究[D].青岛:青岛理工大学,2010.

[4] 杨叔子.机械工程控制技术[M].武汉:华中科技大学出版社,2005.

[5] 郭天祥.51单片机C语言教程[M].哈尔滨:电子工业出版社,2009.

[6] 黄泳波.一级倒立摆控制装置的设计与开发[J].机电产品开发与创新,2011(6):133?134.

猜你喜欢
PID控制
内模控制在火电厂主汽温系统中的应用
常规PID控制和常规模糊控制的比较
一种基于SPWM的逆变电源并联运行参数设计及控制策略仿真
锅炉汽包水位自适应模糊控制与仿真
关于多旋翼式飞行器系统的研究
新型试验电源直流降压斩波系统的PID控制仿真研究
基于双单片机的无刷直流电机调速系统的设计
大滞后系统中单神经元PID控制器设计
电液伺服控制系统在水压试验机中的应用研究