全国电子设计大赛旋转倒立摆.docx
《全国电子设计大赛旋转倒立摆.docx》由会员分享,可在线阅读,更多相关《全国电子设计大赛旋转倒立摆.docx(11页珍藏版)》请在冰豆网上搜索。
全国电子设计大赛旋转倒立摆
摘要
本设计综合考虑基础部分和发挥部分要点,采用mega128a为主控芯片,BTS7960驱动电机并在程序中涉及到pid算法对电机进行调控,在设计中,我们采用1000线编码器为角度传感器。
在该简单控制装置中,我们实现了摆动,圆周运动和短时间的自动控制下的倒立。
关键字:
倒立摆,mega128a,编码器
第一章系统方案比较与选择
总实现方案
方案一:
用陀螺仪和加速度计通过卡尔曼数据融合得到角度,用此处的角度为载体用单片机进行数据处理,并调整电机。
方案二:
用电位器做角度传感,通过单片机自带ADC来读取电位数值以此为依据来判断角度,并调整电机。
方案三:
用编码器做角度传感器,通过读取编码器的输出脉冲来计算角度传感器的输出角度,用此角度做处理调整电机。
通过对两个方案的对比选择,方案一中的加速度计和陀螺仪算法实现复杂,我们在融入卡尔曼滤波后有明显滤波效果,但是由于圆周运动,会使得各个方向轴返回的数据出错,且波动大,会减弱卡尔曼的滤波效果,对于pid的精准调整还是远远达不到预期。
在方案二中,考虑到电位器内部结构问题,虽然理论上电位器在转动过程中是线性的,但是考虑到每次停靠的电阻位可能会产生误差,最后考虑到我们最终选定的单片机ADC只有10位,在方案三中,由于实现编码器的功能实现方便简单,并能更多的趋近于精确值,因此最后我们采用了方案三。
主控制器方案比较与选择
为了完成在短时间快速采集并计算角度,主控器件必须有较高的CPU工作频率和存储空间。
方案一:
采用51系列加强型STC12C5A60S2作为主控器件,用来实现题目所要求的各种功能。
此方案最大的特点是系统规模可以做得很小,成本较低。
操作控制简单。
但是,我们在利用单片机处理高速信号快速扫描及电机控制时显得吃力,51系列单片机很难实现这一要求。
方案二:
采用ATMEL公司的AVR系列ATMEGA128A单片机为核心控制器件,MEGA128A有8个外部中断,中断系统丰富,并且有128K字节的系统内可编程Flash,我们对它的性能和指标相对也较为熟悉,如此能够实现快速扫描和数据处理!
按照题目的要求,综合考虑我们最终选择了方案二,采用ATMEGA128A单片机为核心控制器件。
第二章理论分析与计算
编码器脉冲转换角度设计
在单片机中,我们开启外部0中断,在AVR系列单片机中外部0中断的中断优先级最高,以此我们可以得到较为精确的角度。
由于我们使用的编码器为1000线编码器,所以每一个脉冲的角度值为,所以在计算时即使丢步也不会很大的影响角度值,我们在后面做过的实验测试中,也证明了我们的想法。
摇摆及圆周算法设计
我们通过对整体的系统建模,在查阅资料当中,根据单摆定律,摆杆的摆动虽然在衰减但是摆动的周期相同,所以在基础要求中的摇摆和圆周运动中,只要在摆杆在正弦我们对单摆系统实测波形如下,所以依据我们分析,当每次施
力点在每次过峰值的时候既可以累加力的作用效果,以此来完成摇摆和圆周运动。
图2-2
机械结构设计及电机选型
图2-3
以上是我们机械结构的仿真图。
在电机选型中,我们首先想到步进电机很便于角度控制,但是由于步进电机反应较慢,所以我们没有考虑,对于普通的直流电机虽然其反应快但调速性能差,另外我们还可以选择减速电机和直流伺服电机,直流伺服电机调速性,启动和制动都很有优势但是价格昂贵,最后在考虑到经济适用性方面,我们选择了带有减速箱的减速电机。
在这个简易摆装置中,我们选用400转减速电机,型号为JH37-555,额定功率为15W,力矩为,由于转矩T=9550*P/n=·m,电机中心距离转臂245mm,电机转矩已经足够大,完全可以带动所要带的物体。
另外,由于该系统中电机要在短时间内顺逆时针转动,所以系统要达到很高要求的稳定性,所以我们在选择装置的底盘和支架选用了较为稳固的粗木。
在转臂与摆杆连接处我们选用了欧姆龙1000线编码器,编码器的轴与轴承相连接,也解决了摆杆与转臂的连接问题。
在机械结构的设计当中我们一共修正了3次基本构架,也经历了很多次的调整,在这个过程中也确定了最终的最稳定的构架。
PID算法设计
为了实现主轴旋转角度控制,我们又采用电机转动范围限制,同样的采用增量式PID控制算法,且结合我们单片机的速度限制(8位,16Mhz),电机旋转角度测量会存一定的的偏差,因此我们整定了P、I两个参数,减小了因测量误差计算出来的PID偏差。
采集回来的摆轴角度和主轴旋转角度,经PID反馈回来的数据进行融合,以PWM占空比的形式直接输入到减速直流电机上面。
从而达到目标控制。
PID参数整定:
由于我们在物理结构,以及力学方面的知识薄弱,因此我们采用了反复整定确定系数的办法,首先,我们控制I、D为零,控制P参数,知道系统对输入阶跃响应出现零界振荡,记下这时的比例系数和零界震荡周期,在此基础上将该系数乘以60~70%,在调节I参数,同样的方法,调节D参数,知道系统稳定。
增量型控制:
控制流程:
公式:
程序框图:
第三章系统电路设计
系统主板工作原理
系统主板主要由5V电源模块,电源模块,蜂鸣器模块,以及ATMEGA128A单片机为核心控制模块按。
5V电源模块:
此设计采用12V开关电源供电,通过稳压芯片LM2576一脚输入三脚输出将12V输入转变为5V输出,来给单片机供电。
电源模块:
电源输出是由AM1117稳压芯片三脚输入5V二脚输出来进行转换
按键模块:
本系统板中设计了四个按键,通过按键来对不同功能来进行切换演示。
(外接)
液晶模块:
液晶模块采用NOKIA5110液晶来显示,NOKIA5110液晶具有功能强大,连接简单等优势。
(外接)
图3-1系统主板工作原理图
第四章系统程序设计
系统总体模块图
系统总流程图
第五章系统测试与结果
传感器角度测试
我们在进行测试时为了保证角度的正确性,我们每将摆杆转动一个圆周或者多个圆周最后在摆杆垂直的角度为对360度求余即为0度,所以我们对编码器测量角度进行了测量以便分析其误差。
测量次数
转动一个圆周
转动两个圆周
转动三个圆周
综合误差
1
0
2
-1
%
2
1
0
2
%
3
0
0
-1
%
4
0
-2
0
%
5
0
1
-3
%
6
0
-1
2
%
摇摆及圆周运动测试
我们在调试好后,对摆杆的摇摆进行测试,主要是针对摆杆起振到60度及以上角度的时间进行了统计分析。
(该数据由秒表测量得到,角度由简易量角器测得)
测量次数
稳定时间
稳定角度
1
大于60度,小于90度
2
大于60度,小于90度
3
大于90度
4
大于60度,小于90度
5
等于90度
6
大于60度,小于90度
由以上数据可知,摇摆测试中该装置基本稳定。
我们同时也对摆杆进行了圆周运动的测试,主要是针对圆周运动的稳定性进行了测试统计分析。
(该数据由秒表测量得到)
测量次数
稳定时间
备注
1
成功进入圆周状态
2
成功进入圆周状态
3
未成功进入圆周状态
4
成功进入圆周状态
5
成功进入圆周状态
6
成功进入圆周状态
由以上数据可以,我们装置的圆周运动也是基本稳定的,但是在测试中出现了一次未成功进入的圆周运动状态,我们分析是,由于在程序中我们要求每次起振要从0度开始,由于测量中的疏忽,我们没有等到摆杆静止就进入了测试,由此而产生的错误。
倒立摆测试
我们对倒立摆主要进行了摆杆稳定时间测试,以此分析我们的装置在倒立摆过程中的稳定性。
第一项测试是在人为将摆杆树直在165度到-165度范围内,待摆杆直立后的稳定时间。
测量次数
稳定时间
备注
1
大于5s
稳定
2
大于5s
稳定
3
大于5s
稳定
4
大于5s
稳定
5
大于5s
稳定
6
大于5s
稳定
我们对倒立摆又进行碰撞测试(用15cm摆线绑定,将摆线拉至45度)
测量次数
碰撞砝码重量
稳定状态
备注
1
稳定
2
稳定
3
稳定
4
稳定
5
稳定
6
稳定
从以上数据可以看出,我们的倒立摆系统也是相对稳定的。
第六章误差分析
整体的误差分析
由于我们在本次设计中采用编码器为1000线编码器,理论上每转一圈要进入外部中断1000次,所以在程序中很有可能出现掉步或者错步的。
但是由于我们采用的编码器线数较高,所以即使丢步也能基本满足要求。
为了减小误差,我们将编码器接到了最高优先级别的外部中断0中,所以也基本能满足要求。
软件引起的算法误差分析
由于增量式PID输出的是控制量增量,如果采集系统出现故障,误动作影响较小,而本身有记忆功能,可仍保持原位,不会严重影响系统的工作,而位置式的输出直接对应对象的输出,因此对系统影响较大,因此我们的角度PID采用了增量式PID算法。
结合响应速度,我们整定了P、D两个参数,使系统响应更快,能在短时间内实现直立控制。
第七章参赛感悟
在本次电赛的四天三夜了,也是我们队全体人员感觉最为充实的一段日子,虽然结果不尽人意但是努力的过程还是值得我们回味的。
我们选定倒立摆题目以后,我们一共更换了三次机械结构,才最终敲定了最稳定的版本,在程序上,对于pid算法的调试,我们也积累了一些经验。
上图为我队一次结构示
上图为我队第二次结构
上图为我队最后一次结构图