基于 PID 算法的电动车跷跷板系统设计
http://www.paper.edu.cn
聂晓凯
中南大学信息科学与工程学院,长沙(410083)
E-mail:kasaos@163.com
摘 要:本系统采用 P89V51RD2 单片机作为控制系统的核心,采用步进电机作为电动车驱
动电机,以 L298 为驱动芯片,配以舵机改变转向,使用角度传感器检测跷跷板的角度变化,
在车的前后端设计了红外黑线检测模块保证电动车顺利驶上板以及在板上笔直行驶,红外光
电码盘通过脉冲计数确定电动车在板上的位置,红外遥控键盘启动系统开始运行,液晶显示
相关参数信息。系统的平衡调节采用了数字 PID 控制算法,利用凑试法整定 PID 参数,通
过角度传感器所测角度变化来控制步进电机的的转动实现跷跷板达到平衡状态。
关键词:P89V51RD2 单片机,PID,角度传感器
中图分类号:TP271
2007 年全国大学生电子设计竞赛的一道控制类的题目是电动车跷跷板问题,本系统设
计要求电动车能够在规定时间内到达跷跷板的中心点 C 处,并保持平衡,随后电动车到达
跷跷板的末端 B 处,停留之后返回始端 A 处。另外,如果将跷跷板配重,则要求跷跷板在
规定范围内驶上板,同时,也能实现平衡,如果再加一块重物之后跷跷板重新达到平衡。本
系统的设计在本文中采用了数字 PID 控制算法来实现。
1 系统方案设计、比较与论证
1.1 总体方案设计论证
本系统采用 P89V51RD2 单片机作为控制系统的主模块,实现系统控制与信号检测,如
图 1-1 所示系统框图。主要包括单片机模块,驱动电机模块,舵机模块,平衡检测模块,寻
线模块,位置检测模块,液晶显示模块以及红外遥控模块。
平衡检测模块
寻线模块
位置检测模块
红外遥控键盘
P89V51RD2
单片机
液晶显示模块
图 1-1 系统框图
驱动电机模块
舵 机
系统通过平衡检测来判断电动车是否处于平衡状态,使电动车停留在 C 处附近,采用
位置检测使电动车行驶至 B 处停止,采用寻黑线方法使电动车直线前行以及由末端 B 处能
够直线后退到始端 A 处。红外遥控启动系统,液晶显示各阶段用时以及温度时间。在配重
情况下通过黑线检测的方法使电动车在规定区域内的任意指定位置顺利驶上跷跷板。此方案
- 1 -
http://www.paper.edu.cn
用平衡检测模块实现系统平衡,用寻黑线调整车身与跷跷板同向,总体设计完全达到题目要
求,可行性很高。
1.2 功能模块方案选择
1.2.1 平衡检测模块方案设计
方案一:采用角度传感器直接测量系统角度的变化,当角度变化不超过所定范围即认
为达到平衡。角度测量精确,灵敏度高,实时性强,构造简单。
方案二:置一装有适量水的小水罐于车上,当上坡时水体倾斜,当达到平衡状态时水
体几乎水平,利用液位传感器检测液面高度实现系统平衡。此方案可行,但会增加电动车载
重,灵敏度不是很高,要求液体不出现振荡。
比较两种方案,方案一具有明显优点,所以选择方案一。
1.2.2 驱动电机方案设计
方案一:直流电机,即采用 H 型 PWM 驱动电路驱动直流电机,改变电机电压极性实
现正反转,PWM 占空比控制转速,由于电压难达到很高的精度,其转速也达不到本系统的
精度。
方案二:步进电机,按照接受脉冲数控制其步数,直接给定步进电机的步序和步数直
接控制步进电机的运动,可以提高精确性,适合平衡状态及位置检测。
比较两种方案,选择方案二。
1.2.3 黑线检测方案设计
方案一:可见光发光二极管与光敏二极管组成的发射-接收电路。该方案缺点在于易受
外界环境光源的干扰,容易造成误判,准确度不高。
方案二:脉冲调制的反射式红外发射-接受器。采用交流分量调制信号减少干扰,但需
要控制占空比,要求有较大的电流,在本系统中不可取。
方案三:不调制的反射式红外发射-接收器。受外界干扰小,灵敏度高[3]。
比较三种方案,方案三的准确度高,明显优于其他两种方案,选择方案三。
1.2.4 位置检测方案设计
方案一:从始端到末端用康铜丝水平置于木板一侧,通过采样检测电压值检测是否已
经行驶到跷跷板末端 B 处,此方案要求与车相连,需要一定转换时间。
方案二:由鼠标工作原理采用光电码盘测量行驶距离是否已接近板长,或者将板长转
换为可以接收到了计数脉冲个数,以此检测电动车是否行驶到末端。
比较两种方案,方案二简便可行,测量效果较好,所以选择方案二。
2 系统理论分析与计算
实现本系统的关键是能够控制电动车达到平衡状态,平衡时声光提示。平衡定义为 A、
B 两端与地面距离差 d=|dA-dB|不大于 40mm,在中心点 C 附近实现平衡即要求在中心点处
跷跷板上下移动的角度要小于
θ0=arcsin(40/1600)≈1.43°
A、B 两端的高度变化范围在 50~90mm 内。
电动车在行驶的过程中通过 SCA100T 角度传感器反馈回木板角度,SCA100T 角度传感
- 2 -
器灵敏度为 2V/g。利用光电码盘检测电动车到达中心点 C 处,此时开始进行平衡调节。控
制算法采用了数字 PID 控制算法,数字 PID 控制算法有增量型与控制性算法,增量型算法
相对于位置型算法不需要做累加,误差小、误动作也小,故采用增量型算法。如图 2-1 所示。
http://www.paper.edu.cn
增量型 PID 控制算式[4]为:
e=θ0-θ
u(k)=△u(k)+u(k-1)
△u(k)=Kp[(e(k)-e(k-1))+
T
iT
e(k)+
Td (e(k)-2e(k-1)+e(k-2))]
T
+
θ0
e
-
PID
增量型算法
u
步进电机驱动
角度改变
θ
角度传感器
图 2-1 系统数字 PID 增量型控制示意图
系统控制算法采用了凑试法 PID 来调整 PID 参数,在调整中增大比例系数 Kp 将加快系
统响应,减小静差但过大则较大的超调,产生振荡,使稳定性变坏;增大积分时间参数 Ti
有利于消除静差,减小振荡,使系统稳定;增大微分时间参数 Td 有利于加快系统响应,超
调量减小,稳定性增加[4]。参考系统的动态变化情况采用凑试法,根据凑试法数字 PID 控制
算法建立此闭环控制系统的对应模型如图 2-2 所示。
图 2-2 电动车运动模型
由图 2-1 可知,角度传感器将角度值反馈给控制系统,步进电机驱动电动车的前进与后
退,在驱动过程中也影响着跷跷板的角度变化,使电动车跷跷板系统达到平衡状态,即要求
实现系统的稳定。整个过程需要通过 PID 增量型算法利用步进电机来改变系统的状态,系
统算法分析过程如下:
当电动车由始端 A 处向上行驶,由于在上坡的过程中,角度值始终保持不变,为了使
电动车跷跷板系统尽快达到稳定状态,加大步进电机的驱动,适当加大频率,使步进电机能
够由 A 处快速达到 C 处附近。即增大系统的比例系数 Kp 加快系统的响应,同时如果比例系
数过大则将产生较大的超调,即给定脉冲数过多电动车明显超出中心点 C 处,跷跷板将振
荡严重,跷跷板很难实现平衡状态,很容易破坏系统的稳定性。使跷跷板加快到达到平衡点,
当电动车驶至中心点 C 处附近,如图所示 D 处,跷跷板的角度会发生明显的变化,电
动车会超过平衡点,系统会产生明显的超调量。因此可以通过角度传感器测得角度的变化,
即电动车偏离平衡点的程度,使电动车停车。当偏差较大时可能出现积分饱和现象,当步进
电机到达平衡点附近时应适当减少步进电机脉冲数抗积分饱和[4]。
为了达到系统的稳定状态,电动车停止后会后退,采用“参数凑试”驱动步进电机反转,
- 3 -
http://www.paper.edu.cn
靠近平衡点。通过人为设定给步进电机一定的脉冲数,调整时先给步进电机较多的回转脉冲
数,以后不断减小。但是驱动步进电机的输入脉冲不宜较快,否则会使电动车长时间在平衡
点附近振荡,所以通过凑试参数,整定积分时间 Ti,减小系统的振荡。
此闭环控制系统采用了角度传感器来检测跷跷板的角度,当将角度反馈给控制系统之
后,控制系统才做出响应。系统设计中,由于步进电机的输出脉冲具有一定的滞后性,微分
时 间 常 数 的 作 用 是 对 控 制 误 差 的 变 化 作 出 提 前 反 应 , 即
控制误差的微分作用,可提前给出脉冲,采用微分作用将提高系统的快速性。
同理,在加配重的情况下,通过角度变化来调节 PID 参数。
3 系统的硬件设计
3.1 步进电机驱动电路
本系统采用的步进电机驱动电路主要由一个双桥式驱动芯片 L298 和一个光电耦合器组
成。如图 3-1 所示。为使其正确的旋转,绕组必须按正确的顺序受到激励。若励磁信号正向
传送,则步进电机正转;励磁信号反向传送,则步进电机反转。光电耦合器,主要用于隔离
单片机系统与驱动电路系统,避免电压发生波动。
3.2 寻线检测电路
如图 3-2 所示红外检测单元电路,反射式红外发射-接收器检测到信号后经施密特触发
器 74LS14 反向放大,当检测不到黑线时,发射管发出的光经板面反射后被接收管接收,接
收管导通,74LS14 输出高电平,当检测到黑线时,发射管发出的红外光将不被接收管接收,
74LS14 输出低电平。单片机通过检测 I/O 口的高低电平来判断电机的运动方向。
图 3-1 步进电机驱动电路
- 4 -
http://www.paper.edu.cn
图 3-2 红外检测电路
3.3 光电码盘检测电路
图 3-3 所示光电码盘设计示意图,电路采用对射式红外发射-接收器检测脉冲个数[2],
其电路原理图与寻线检测电路相同,由脉冲个数得到所行驶路程判断是否已达到中心点、末
端和始端。
图 3-3 光电码盘设计示意图
c
图 4-1 电动车驶上板轨迹引导方案
- 5 -
http://www.paper.edu.cn
4 系统的软件设计
1、当跷跷板加上配重时,电动车驶上板的黑线引导措施如图 4-1 所示。电动车朝向跷
跷板朝始端行驶,当检测到黑线时开始按照红外寻黑线方法,遇到黑线适当改变舵机的转角
使车方向改变,之后,车正对着跷跷板驶上去。当角度传感器检测到角度发生变化时,开始
进入相同的平衡调节控制。
2、电动车由始端 A 处驶向末端 B 处过程中,为了保证电动车笔直向前走,在跷跷板
的中心画一条黑线,用前端红外传感器检测黑线保证电动车笔直走,同理,电动车由末端 B
处后退至 A 处使用后端红外传感器,如图 4-2 所示。
图 4-2 电动车方向调整示意图
3、图 4-3 为主程序框图,图 4-4 为跷跷板不加配重情况下的软件流程图。
图 4-3 主程序框图 图 4-4 不加配重情况下程序流程图
5 系统误差分析及其改善
(1)跷跷板所处位置可能不水平给测量角度带来偏差,可以使用其他水平测试仪检测位
- 6 -
置是否水平。
(2)由于电动车运动产生一定的振荡导致所测角度有一定偏差,可以将电动车座板牢固
焊接在车体上或者将角度传感器安装在跷跷板上。
(3)跷跷板板面不够粗糙,摩擦力不够大,会使电动车产生一定的滑动,将板面用摩擦
http://www.paper.edu.cn
系数比较大的纸张贴在上面增大摩擦力。
6 结论
本系统采用数字 PID 控制算法,通过调整步进电机来实现跷跷板的平衡状态,系统设
计的特色有:红外遥控键盘控制系统启动;液晶菜单显示,当前温度以及时间显示;光电码
盘检测电动车位置等,各项性能测试指标满足题目要求。另外,采用红外光电传感器检测黑
线来引导上板以及笔直行驶,实现系统要求。
参考文献
[1] 马忠梅,籍顺心,张凯,马岩. 单片机的 C 语言应用程序设计[M] . 北京:北京航空航天大学出版社,
[2] 全国大学生电子设计竞赛组委会组编. 全国大学生电子设计竞赛获奖作品选编(2003)[M] ..北京:北
[3] 全国大学生电子设计竞赛组委会组编. 全国大学生电子设计竞赛获奖作品选编(2005)[M] .北京:北京
2005
京理工大学出版社,2005
理工大学出版社,2007
[4] 于海生 . 微型计算机控制技术[M] . 北京:清华大学出版社,2005
Design of the Electric Car Teeterboard System on PID
Algorithm
Nie Xiaokai
School of Information Science and Engineering,Central South University,Changsha (410083)
Abstract
This system adopts P89V51RD2 microcontroller as the core, the stepper motor as the drivers which is
driven by L298 chip, the rudder to change the veer and the angle sensor to detect the transformation of
the teeterboard. The infrared detection module is designed fore-and-aft the car.Via taking count of the
pulse infrared photoelectric code board determine the location on the board. Infrared remote control
keyboard boot the system into operation, and liquid crystal display information about relevant
parameters. The balance regulation of the system us the digital PID control algorithm, using
experiment to install PID parameter. Through the changed angle measured by angle sensor the stepper
motor is controlled to make the teeterboard achieve balanceable state.
Keywords:P89V51RD2 MCU,PID,angle sensor
作者简介:聂晓凯,1986 年出生,男,汉族,中南大学在读本科生,自动化专业。
- 7 -