曾敬 滕军 陆晓燕
【摘要】本设计以STC89S52单片机为控制核心,通过角度传感器得到系统变量,利用PWM分别对电机转动角度与速度进行控制,进而实现倒立摆在一定的角度范围内的旋转控制。
【关键词】倒立摆;角度传感器;STC89S52
倒立摆系统是一个典型的单输入多输出、复杂的、非线性的不稳定系统。它在军事、航天、机器人和各类工业领域都有着广泛的用途。因而,对倒立摆控制系统的研究具有重要的工程意义。本设计是基于AT89S52的单片机简易旋转倒立摆控制系统。其主要构造包括旋臂、摆杆、直流电机等装置。其中直流电机为执行机构,可由专门的电机驱动芯片如L298N驱动。根据一定的算法计算将信号提供给驱动芯片,以驱动直流电机转动,从而带动旋臂旋转,最终实现控制倒立摆运动的效果。
一、倒立摆算法分析
为实现倒立,本系统在算法方面采用了模糊控制。所谓模糊控制,就是在控制方法上应用模糊集理论、模糊语言变量及模糊逻辑推理的知识来模拟人的模糊思维方法,用计算机实现与操作者相同的控制。该理论以模糊集合、模糊语言变量和模糊逻辑为基础,用比较简单的数学形式直接将人的判断、思维过程表达出来。本设计中涉及的状态变量共有4个,每个变量的论域作7个模糊集的模糊划分,这样,完备的推理规则库会包含74=2401个推理规则,但如此多的规则是很难实现的,而二维模糊控制器的控制性能较好,所以一般选择增量算法作为模糊控制器的输出变量,模糊控制基本结构如图1所示。
图1 模糊控制的基本结构
二、系统总体设计框图
本系统主要由主控模块、角度传感器模块、机械结构模块、电源模块、电机驱动模块等几部分组成。为了让摆杆有更大的惯性,带动摆杆旋转更大的角度,在设计中,我们设定电机正反转存在一定的角度差。电机转动角度差一般设定在30o以内,如果角度差太大,会迫使还处于上一个惯性状态的摆杆改变状态,这样将不能实现增大惯性作用,反而使摆杆摆动角度变小。当电动机驱动摆杆转到360°,且倒立时,采用角度传感器检测摆杆摆动方位,控制电动机于摆杆摆动方向想一致,进而实现摆杆倒立。在整个该过程中,为了确保电动机在调整速度的同时维持系统稳定,主控芯片会通过驱动电路发出脉冲指令,控制电动机作相应的微调,从而完成动作。本系统主要通过AT89S52单片机来控制电路的输出,使用模糊控制算法,实现按键控制、电机转动、倒立摆旋转、液晶显示等功能。角度传感器模块在系统中的作用是检测摆杆与水平面的夹角,进而将数据反馈给主控芯片,主控芯片以此来发出控制指令。电路设计总体框图如图2所示。
图2 电路设计总体框图
图3 主程序流程图
三、系统软件流程
由于系统使用的是直流减速电机,所以控制方法相对较为简单,只需给电机的控制线加上适当的电压即可使电机转动起来,电压越高则电机转速越快。对于直流电机的速度调节,可以采用PWM调速方法。控制电机的时候,电源并非连续的向电源供电,而是在一个特定的频率下以方波脉冲的形式提供电能。不同占空比的方波能对电机起到调速作用。这是因为电机实际上是一个大电感,它有阻碍输入电流和电压突变的能力。因此,脉冲输入信号被平均分配到作用时间上,这样,改变在始能端输入方波的占空比就能改变加在电机两端的电压大小,从而改变了转速。用软件方式实现时,可以通过执行软件延时循环程序交替改变端口某个二进制位输出逻辑状态以产生脉宽调制信号。设置不同的延时时间会得到不同的占空比。角度传感器在系统中的主要作用是用来检测角度的。轴每转过1/16圈,角度传感器就会计数一次。往一个方向转动时,计数增加,转动方向改变时,计数减少。计数与角度传感器的初始位置有关。当初始化角度传感器时,它的计数值被设置为0,如果需要,可以通过用编程让它重新复位。本系统主程序大致流程包括对AT89S52的初始化设置、角度传感器TCL2543的初始化设置、液晶显示初始化设置,按键设置,定时器初始化设置,占空比调节等。程序的核心算法是基于PID的闭环控制,PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;(3)在一定的控制度下通过公式计算得到PID控制器的参数。系统再根据角度传感器检测到的摆杆位置,做出相应的电机转速的调节,从而使摆杆达到预定的状态。系统的主程序流程如图3所示。
四、测试结果
本系统从以下三个方面对倒立摆进行了测试
1.摆杆从处于自然下垂状态(摆角0o)开始,驱动电机带动旋转臂作往复旋转使摆杆摆动,并尽快使摆角达到或超过-60o~+60o;
2.从摆杆处于自然下垂状态开始,尽快增大摆杆的摆动幅度,直至完成圆周运动;
3.在摆杆处于自然下垂状态下,外力拉起摆杆至接近165o位置,外力撤除同时,启动控制旋转臂使摆杆保持倒立状态时间不少于5s;期间旋转臂的转动角度不大于90o。
测试结果如表1所示。
表1 倒立摆测试表
测试项目 测试要求 测试结果
摆杆摆动角度 在-60o~+60o 完成
摆杆旋转角度 圆周运动 完成,可摆动两个圆周运动以上
摆杆接近165o
时保持倒立时间 保持倒立时间不少于5s,旋转臂角度不大于90o 10次测试,完成了7次。
五、结论
倒立摆是一个很好的控制实验装置,由于其结构简单、成本较低、对于控制效果检验能力强等特点,在控制方法的实验和研究上有很重要的地位。设计者可以利用所学的控制理论,自行设计多种控制算法,并在本该系统上进行验证。本系统具有制作方法简单,系统操作控制方便,摆杆倒立持续时间长等特点,基本达到了设计要求。
参考文献
[1]何为民.低功耗单片微机系统设计[M].北京:北京航空航天大学出版社,1994.
[2]胡大可,李培泓,张路平.基于单片机8051的嵌入式开发指南[M].北京:电子工业出版社,2003.
[3]张振荣,晋明武,王毅平.MCS-51单片机原理及实用技术[M].北京:人民邮电出版社,2000.
[4]黄智伟.全国大学生电子设计竞赛电路设计[M].北京:北京航空航天大学出版社,2006.
[5]刘宝延.步进电机及其驱动控制系统[M].哈尔滨:哈尔滨工业大学出版社,1972.
[6]周航慈.单片机应用程序设计技术[M].北京:北京航空航天大学出版社,1991.
[7]郁有文.传感器原理及工程应用[M].西安:西安电子科技大学出版,2008.
[8]宋戈.51单片机应用开发范例大全[M].北京:人民邮电出版社,2010.
作者简介:曾敬(1982—),四川遂宁人,研究方向:通讯与信息技术。