直立式双轮自平衡运动小车.doc
《直立式双轮自平衡运动小车.doc》由会员分享,可在线阅读,更多相关《直立式双轮自平衡运动小车.doc(11页珍藏版)》请在冰点文库上搜索。
长春工业大学电子设计大赛
题目:
直立式双轮自平衡运动小车(C)
编号:
日期:
摘要
车模直立行走比赛是要求仿照两轮自平衡电动车的行进模式,让车模以两个后轮驱动进行直立行走。
近年来,两轮自平衡电动车以其行走灵活、便利、节能等特点得到了很大的发展。
国内外有很多这方面的研究,也有相应的产品。
在电磁组比赛中,利用了原来C型车模双后轮驱动的特点,实现两轮自平衡行走。
相对于传统的四轮行走的车模竞赛模式,车模直立行走在车体检测、控制算法等方面提出了更高的要求。
本设计采用ATMEL公司推出的MEGA16单片机作为“双轮直立自平衡小车”的微控制器,用以处理任意时刻传感器的数据;通过软件滤波和自动控制理论算法使得小车能够在任意时刻进行自我调整以达到平衡状态。
该系统的传感器采用角度传SCA61T,和陀螺仪采集小车车身的水平状态值和小车的加速度值。
并且采用了LM298双桥大功率集成驱动芯片来驱动电机,无线遥控来控制小车的数据传输。
依靠这些设备和可靠的硬件设计,我们使用了一套PID闭环控制算法和比较稳定的卡尔曼滤波算法,使得整个硬件结构和软件系统能顺利匹配。
从而使得我们的小车能保持直立自平衡状态。
模糊PID控制具有良好控制效果的关键是要有一个完善的控制规则。
但由于模糊规则是人们对过程或对象模糊信息的归纳,对高阶、非线性、大时滞、时变参数以及随机干扰严重的复杂控制过程,人们的认识往往比较贫乏或难以总结完整的经验,这就使得单纯的模糊控制在某些情况下很粗糙,难以适应不同的运行状态,影响了控制效果。
常规模糊控制的两个主要问题在于:
改进稳态控制精度和提高智能水平与适应能力。
在实际应用中,往往是将模糊控制或模糊推理的思想,与其它相对成熟的控制理论或方法结合起来,发挥各自的长处,从而获得理想的控制效果。
关键字:
自平衡小车ATMEGA16单片机直立行走模糊PID
I
一、总体设计方案
1.1设计思路:
题目要求设计并制作一个单轴两轮自平衡小车。
对于小车能保持平衡,直立行走。
系统应该设置有测量倾角和加速度的模块。
可以采用角速度传感器和陀螺仪测量出小车的倾角和加速度,并把数据传送给单片机处理。
经过单片机处理数据和进行相应的补偿后,通过控制电机从而使小车保持在平衡状态。
系统硬件结构如图1
图1系统硬件结构图
1.2方案论证与比较
1.2.1微控制器选型
方案一:
采用目前市场比较主流性能稳定价格低廉的AT8952单片机,AT8952单片机内部资源8K字节在系统可编程Flash存储器、全静态操作:
0Hz~33MHz、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、和一路可编程的PWM输出。
我们的系统一共用到两路独立的PWM输出,AT89S52只有一路硬件PWM这样我们必须考虑用软件或硬件再产产生一路可调的PWM才能满足我们系统的两个轮子调速的需求。
考虑到系统整体的程序构思是一个很耗费CPU运行时间,所以我们排除了软件中断的方式在产生一路PWM,节省了CPU的程序运行时间的开销。
值得我们考虑的只能用其他电机控制芯片+AT8952来控制我们的两个电机,后来我们考虑了NEC-SSOP30这个电机控制芯片来产生两路PWM,该芯片是一颗强大的直流电机和步进电机的控制芯片,里面有三路可编程的直流电机PWM输出通道和三路步进电机控制通道,和单片机通信接口,有SPI总线接口和USAP串口通信,但是考虑到NEC–SSOP30芯片的指令周期是1.4MS,不能实时性的更新系统的PWM这样就会造成整个系统的不稳定。
最重要的一点还有考虑到该系统是程序里面运行的是一些比较复杂的浮点数运算,对微控制器的内核得必须既有可靠稳定快速处理浮点数运算的性能,51内核是以冯诺依曼总线
结构对数据的处理和传输,因为我们都知道该结构使不能同时进取指令和举行指令的,最终取得指令周期加长,程序的实时性不能体现。
还要51内核的浮点数运算能力也不理想。
方案二:
采用微芯公司的PIC18F4520微控制器作为核心控制单元,PIC18F4520是PIC家族里的一款比较高性能的单片机,内部有三个可编程中断,4个输入电平变化中断,2个捕获/比较/PWM/(ECCP)模块,有两通道PWM等。
PIC系列单片机内部采用精简指令集大大提高程序执行效率,内部采用哈弗总线结构,同时可以取指令和执行指令,大大提高程序的运行速度,PIC18F4520内部不仅有一个8MHZ的始终振荡器,可以给系统能够提供内部时钟,还有一个PLL倍频电路,可以给用户扩大系统频率,从而使得程序的实时性加强。
PIC系列单片机是一个性能分类比较讲究的单片机家族,对于PIC18F4520这款单片机的浮点数处理能力不是很理想,考虑到PIC专门用做浮点数运算的16位单片机选型,但是价格非常的昂贵
方案三:
采用因特尔梅公司的增强型的MEGA16高性能、低功耗的8位AVR®微处理器。
MEGA16先进的RISC结构–131条指令–大多数指令执行时间为单个时钟周期–32个8位通用工作寄存器–全静态工作–工作于16MHz时性能高达16MIPS–只需两个时钟周期的硬件乘法器–两个具有独立预分频器和比较器功能的8位定时器/计数器–一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器–具有独立振荡器的实时计数器RTC–四通道PWM–8路10位ADC等内部资源。
ATmega16是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。
由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。
AVR内核具有丰富的指令集和32个通用工作寄存器。
所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。
这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。
两轮小车自平衡是一个闭环稳定的控制系统,对软件和硬件性能要求都比较严格。
软件部分只要是开微控制单元进行处理,处理的准确性和实时性都还严格的要求。
因为考虑到硬件滤波的成本和灵活性,我们选择了采用软件滤波的方式,这样我们程序里面就加重了比较复杂的软件滤波算法,再加上PID闭环平衡控制算法,这两个算法都是用浮点数进行运算,这样就要考虑到我们的微控制器的性能了。
51系列单片内部结构和指令集来看显然不如PIC18F4520,但是PIC18F4520对于浮点数运算并非是这款芯片的特点,其浮点数运算肯定不够理想。
考虑到成本问题我们排除了采用高价格的16位专门处理浮点数运算的PIC微控制芯片,最终我们考虑MEGA16这款价格和性能都比较合适的微控制芯片,因为不管在价位,还是内核结构,和运算效率MEGA16都强AT89S52和PIC18F4520所以最终整个系统我们采用MEGA16作为整体的控制处理单元。
1.2.2角度检测量方案选择
方案一:
采用加速度传感器,在摆动过程中通过作用力造成传感器内部敏感元件发生变形,通过变形量并用相关电路转化成电压输出,得到相应的加速度信号。
方案二:
采用电位器式传感器来检测摆杆摆动时偏离中心位置的角度,电位器是一种把机械的线位移和角度位移输入量转换为与它成一定函数关系的电阻和电压输出的传感原件。
利用它能相对较好的检测出角度变化。
方案三:
采用旋转式编码器实现角度检测功能,旋转增量式编码器的特点是每产生一个输出脉冲信号就对应于一个增量位移,它能够产生与位移增量等值的脉冲信号,其作用是提供一种对连续位移量离散化或增量化以及位移变化(速度)的传感方法。
方案比较:
,加速度传感器虽然精度高、性能平稳,不过相对于其它检测元件它的性能价格比偏低。
电位器式传感器优点是结构简单、尺寸小、精度高、总量轻、输出信号大、性能稳定。
但是其缺点是要求输入量大、电刷与电阻元件之间容易磨损。
旋转式编码器原理构造简单、易于实现;机械平均寿命长,可达到几万小时以上;分辨率高;抗干扰能力较强,信号传输距离较长,可靠性较高。
基于以上分析,拟定方案三。
1.3控制电机方案选择
方案一:
采用直流电机,通过PWM电路进行控制,已达到调节平板的目的
方案二:
采用步进电机,使用脉冲信号还进行控制,当来一个脉冲,电机转0.9个角度,使用脉冲频率来控制转速。
方案比较:
鉴于直流电动机动力性能好但是转速难以平稳控制,而步进电机虽然动力性能不好但是转速平稳容易控制,为了在摆杆摆动过程中能够更平稳的控制平板,保证板上硬币不落下来,决定用方案二。
二、电路原理分析
电磁组比赛要求车模在直立的状态下以两个轮子着地沿着赛道进行比赛,相比四轮着地状态,车模控制任务更为复杂。
为了能够方便找到解决问题的办法,首先将复杂的问题分解成简单的问题进行讨论。
为了分析方便,根据比赛规则,假设维持车模直立、运行的动力都来自于车模的两个后车轮,后轮转动由两个直流电机驱动。
因此从控制角度来看,由控制车模两个电机旋转方向及速度实现对车模的控制。
车模运动控制任务可以分解成以下三个基本任务:
(1)控制车模直立:
通过控制两个电机正反向运动保持车模直立状态;
(2)控制车模速度:
通过控制两个电机转速速度实现车模行进控制;
(3)控制车模转向:
通过控制两个电机之间的转动差速实现车模转向控制。
以上三个任务都是通过控制车模两个后轮驱动电机完成的。
可以假设车模的电机可以虚拟地被拆解成三个不同功能的驱动电机,它们同轴相连,分别控制车模的直立平衡、前进行走、左右转向。
直流电机的力矩最终来自于电机驱动电压产生的电流。
因此只要电机处于线性状态,上述拆解可以等效成三种不同控制目标的电压叠加之后,施加在电机上。
在上述三个任务中保持车模直立是关键。
由于车模同时受到三种控制的影响,从车模直立控制的角度,其它两个控制就成为它的干扰。
因此在速度、方向控制的时候,应该尽量平滑,以减少对于直立控制的干扰。
上述三个控制各自独立进行控制,它们各自假设其它两个控制都已经达到稳定。
比如速度控制时,假设车模已经在直立控制下保持了直立稳定,通过改变电机的电压控制车模加速和减速。
车模在加速和减速的时候,直立控制一直在起作用,它会自动改变车模的倾角,移动车模的重心,使得车模实现加速和减速。
图2系统结构图
三、单元模块设计
3.1单片机主控模块
电路图如图3所示。
为ATmega16最小系统模块。
图3ATmega16最小系统
3.2陀螺仪加速度计
陀螺仪加速度计核心部件是旋转式编码器,它是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。
这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测装置组成。
光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。
由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号;通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。
此外,为判断旋转方向,码盘还可提供相位相差90º的两路脉冲信号。
电路接线图如图4.
图4陀螺仪加速度计
3.3电机驱动模块
L298是SGS公司的产品,内部包含4通道逻辑驱动电路。
是一种二相和四相电机的专用驱动器,即内含两个H桥的高电压大电流全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V,2A以下的电机。
L298有两路电源,分别为逻辑电源和动力电源,ENA与ENB直接接入6V逻辑电源也就是说两个电机时刻都工作在使能状态,控制电机的运行状态只有通过J1与J2两个接口。
图5电机驱动电路图
四、软件系统的设计
初始化
上电运行
车模直立检测
启动车模直立控制
启动车模方向控制
读取速度设定开始速度控制
发送监控数据
车模是
否跌倒
车模停止运行
整个系统的软件设计采用C语言,对ATmega16单片机进行编程实现各项功能。
程序编写运用Keil软件,起到一个向导作用,决定每一个时刻该做什么。
系统各种功能的完成主要通过调用各单元模块的子程序来实现。
程序的流程图见图6
否
是
图6程序流程图
五、程序调试与参数整定
前面给出的算法程序存在很多参数,虽然从理论上可以对这些参数进行优化计算。
但是由于受到车模模型精度的影响,计算所得到的参数也只能够作为参考值——调试的起始范围。
实际优化参数需要通过一定的工程步骤最终确定,这个过程称为参数整定。
为了保证调试顺利,一般需要配合上位机串口监控程序,能够实时显示程序运行采集到的各种数据,通过曲线或者数字显示出来,帮助确定一些待定参数,判断程序BUG,加快程序调试,确定控制参数的优化数值。
俗话说,欲善其工,必先利其器。
开发制作相应的辅助调试工作,不仅可以大大加快调试的进度,同时也会锻炼同学们解决工程问题的能力。
下面给出程序调试的一般步骤,作为参考。
(1)陀螺仪和加速度计零偏调试:
获得这两个传感器零点的偏移量。
保持车模直立静止。
读取两个传感器AD转换值,记录下来,作为后面程序中的零偏常量。
(2)测试车模直立判断程序和跌倒判断程序。
此时禁止车模直立控制环节,通过读取加速度计的数值,判断车模是否直立或者跌倒,通过外部的LED显示结果。
一般情况下,车模直立要求,车模倾角在正负10度之内,保持2秒钟。
车模跌倒判断车模的倾角大于45度。
(3)车模直立控制调试:
只启动车模直立控制,调整两个控制参数:
倾角比例和角速度比例,使得车模能够稳定的直立。
此时由于没有速度控制,车模可能会朝一个方向加速行驶。
可以通过微调加速度计的零偏值,减小车模在直立的时候朝一个方向的加速度。
尽量控制车模静止。
(4)车模速度控制调试:
启动车模的直立控制和速度控制,调节速度控制的PI参数,使得车模能够静止稳定在一个地点。
然后再给定一个设定速度,车模可以稳定的前行或者后退。
(5)车模方向控制调试:
启动车模的直立控制、速度控制和方向控制。
将车模放在电磁导引跑道上,车模可以稳定在跑道上运行。
六、作品实现的技术指标
(1)靠小车前后的自平衡调整运动,保持车体平台垂直倾斜角在~范围内,且能连续维持动态平衡3分钟以上。
(2)系统在自平衡状态中,由外力使车体平台垂直倾斜角达到或,此时当外力消除后,小车靠前后的自平衡调整运动,在1分钟之内车体平台恢复到原来的直立动态平稳状态。
(3)系统在保持动态自平衡状态下,小车向前移动1m,在运动过程中始终保持车体平台动态直立平衡,其所需时间不大于2分钟。
(4)系统具有控制前进、后退、转弯的功能。
(5)系统具有平台倾斜角检测及显示功能,其显示值与转角仪所指示的刻度值具有相符性。
(6)系统在保持自平衡状态下,能实现小车旋转一周运动。
七、结束语
本文使用了尽量少的理论知识介绍了车模直立行走的参考控制方案。
通过这个方案,同学们会觉得制作直立行走的车模参加竞赛不是困难的事情,而是相当容易和有趣的过程。
通过制作,同学们可以基本上实现完成比赛的车模。
完成之后,同学们会逐步发现该方案的不足之处,进而萌发改进的想法,去查阅更多的相关文献,学习先进的现代控制理论知识,提高自己的理论水平和实践能力,最终产生对于自动控制专业的强烈兴趣,这正是同学们应该得到的收获。
在本次设计竞赛过程中,我们组的队员紧密团结,精诚合作,最终完成了设计任务。
通过本次比赛,我们不仅增强了动手能力、加深了理论知识的理解和认识,还学到了许多大学课堂学不到的知识,并深刻体会到共同协作和团队精神的重要性。
此外,我们还意识到自己在软件编程上有所欠缺,有待今后不断地学习和努力。
八、参考文献
[1]单片机原理与控制技术(第三版)张志良主编.2012.9
[2]张永格/黄庆华.单片机开发技术与实训.电子工业出版社.第一版.2011.7
[3]电子线路设计·实验·测试(第二版)谢自美主编.2011.5
[4]电子线路设计应用手册张友汉主编.2009.4
[5]张志良.单片机原理与控制技术.北京:
机械工业出版社.2010.5
[6]潘永雄沙河.电子线路CAD实用教程(第三版).陕西:
西安电子科技大学出版社.2011.7
[7]童长飞.C8051F系列单片机开发与C语言编程北京:
北京航空航天大学出版社.2011.3
[8]高吉祥编.全国大学生电子设计竞赛培训系列教程.北京:
电子工业出版社.2009.6
附录:
附1:
系统原理图
附2:
元件清单及参考价格
1、稳压电源2个400元
2、电机驱动L298模块40元
3、陀螺仪加速度传感器MPU6050模块60元
4、霍尔测速传感器60元
5、6v直流无刷电机两个100元
6、65mm轮胎两个30元
7、按键6个5元
8、ATmega1620元
9、数字万用表150元
10、1602液晶80元
11、小车支架30元
12、电路50元
13、导线30元
14、焊锡150元
总计1205元
9