您好,欢迎访问三七文档
2014年TI杯福建省大学生电子设计竞赛2014年9月6日平衡杆小车(B题)【本科组】摘要:自动控制原理可以使被控制的对象在无人为的情况下按照预定的要求来运行,进而达到预想的控制目的。本电子设计竞赛选择的项目为平衡杆小车,在此,我们以自动控制原理为主要思想,通过绝对式编码器采集平衡杆的偏转角度;以角度偏转大小为基准,来控制小车的速度大小,以小车的速度来牵制平衡杆的偏转趋势,进而强制杆的偏转角度在一定的范围内,达到偏转为0度的平衡位置。完成这一系列的控制中心是STC12C5A60S2单片机,通过分析传感器采集的数据,做出相应的速度转换。此外,在小车的驱动部分,采用的是L298直流电机;直流电机的控制比较简单,命令的传输也比较直接。关键词:自动控制、角度传感器、单片机、直流电机。目录一、题目要求……………………………………………....1二、理论分析与计算………………………………………2(1)原理分析……………………………………………2(2)各器件的选择………………………………………2三、参数的测定…………………………………………….4四、附页…………………………………………………….5一、小组项目2.要求1基本要求(1)控制小车在原地前后小范围运动,保持倒立杆平衡10s以上;(2)小车的倒立摆平衡时,用10cm细绳系一30g砝码,拉开45度撞击摆杆顶端,撞击方向与行车方向一致,摆杆能自动恢复平衡并保持5s以上;(3)控制小车巡迹行走在直线上(图中从A到B点)行驶并保持倒立杆平衡,100s内行驶100cm以上。2发挥部分(1)在完成基本要求的前提下,控制小车放在B点开始巡迹行走,以最短时间(180s)走完如图圆形部分轨迹(B-C-D-E),并保持倒立杆平衡;(2)在摆杆顶端固定一个网球,如图所示,控制小车放在B点开始巡迹行走,以最短时间(180s)走完如图圆形轨迹(B-C-D-E-B),并保持倒立杆平衡。二、理论分析与计算(1)原理分析图1单级倒立摆系统数学模型倒立摆系统的模型参数如下[]:M小车质量1.096Kg;m摆杆质量0.109Kgb小车摩擦系数0.1N/m/secI摆杆质量0.0034kg*m*ml摆杆转动轴心到杆质心的长度0.25mT采样频率0.005s下面N和P为小车与摆杆相互作用力的水平和垂直方向的分量。分析小车水平方向所受的合力,可得到方程为:NxbFxM(1)由摆杆水平方向的受力进行分析可以得到下面等式:sincossin222mlmlxmNlxdtdmN(2)把这个等式代入(1)式中,得到系统的第一个运动方程:FmlmlxbxmMsincos2(3)为了推出系统的第二个运动方程,对摆杆垂直方向的合力进行分析,得到下面的方程:cos22ldtdmmgPcossin2mlmlmgP(4)力矩平衡方程如下:INlPlcossin(5)方程中力矩的方向,由于,sinsin,coscos,故等式前面有负号。合并这两个方程,约去P和N,得到第二个运动方程:cossin2xmlmglmlI(6)假设与1(单位是弧度)相比很小,即1,则可进行近似处理:0,sin,1cos2dtd用u代表被控对象的输入力,线性化后两个运动方程如下:umlxbxmMxmlmglmlI2(7)对方程(7)进行拉普拉斯变换,得到:)()()()()()()(22222sUssmlssbXssXmMssmlXsmglssmlI(8)(推到时假设初始条件为0)则,摆杆角度和小车位移的传递函数为:mglsmlImlssXs222)()()(将上述参数代入,摆杆角度和小车位移的传递函数为:26705.00102125.002725.0)()(22sssXs摆杆角度和小车加速度之间的传递函数为:mglsmlImlsAs22)()(将上述参数代入,摆杆角度和小车加速度之间的传递函数为:26705.00102125.002725.0)()(22sssAs通过判断编码器解码出来的角度数字量position_now与平衡位置initial的差值,便可以判断出小车是向哪个方向转动,之后再通过判断前后角度模拟量的差值△(△=position_now-position_former)来判断小车处于的状态,是摆离开平衡位置,还是小车制动后杆子向平衡位置摆动,从而执行加速,匀速与减速的指令,从而达到平衡的目的。平衡杆小车在实际中时一个很难达到平衡的一个系统,或许通过偏差减少的震荡能够比较好的使杆达到平衡位置,于是我们运用PID算法,来使杆子达到平衡位置。(2)、各器件的选择1.电机的选择在小车的驱动模块中,电机作为小车运动的载体,电机的选择合适与否是小车顺利运行的关键。选择一:直流电机。直流电机具有优越的调速性能,表现在调速方便,易控制可靠性高;调速范围宽,且易于平滑调节;调速时的能量损耗较小;过载、启动、制动转矩大;低速性能好、运行平稳。方案二:步进电机。步进电机只有周期性的误差而无累计误差,运行平稳、定位精度高、但算法控制较为复杂,尤其在通过控制速度来调整杆的平衡方面,由于其单机单板的控制要求(每个车轮需要各自的电机驱动模块控制),使其在用差值处理方面显得十分繁琐复杂。最终小组选择:方案一,直流电机。在选择电机的时候做了几次尝试。开始采用直流电机,就是冲着直流电机的简单控制与已经拥有的较为熟悉的操作环境,并且经过初步实践,收到了一定的实践效益。后来觉得步进电机在精度定位上略胜一筹,决定尝试步进电机来控制;但是在使用不久就发现了一些问题,在调试小车使平衡杆平衡的过程中,一直无法达到预期的运行效果。所以,最后再次选择直流电机。2角度传感器的选择编码器作为一种把角位移或直线位移转换为电信号的一种装置,在平衡杆小车的制作中必不可少,有着十分重要的地位,因此,在编码噐的选择上,我们也经过反复的推敲琢磨。方案一:绝对式编码器。绝对式编码器是直接输出数字量的编码噐,它的每一个位置对应一个确定的格雷码,其示值只与测量的起始和终止的位置有关系。加上由机械位置决定的每一个位置的唯一性,使得绝对式编码器在抗外界干扰方面有着显著的优势。正是这种绝对性的唯一的数字编码及忽略中间繁琐的测量数据使得绝对式编码噐具有这些优点:测量精度高、累计误差小、抗干扰能力强。方案二:角位移传感器WDD35WDD35角度传感器采用硬质铝合金材料制作外壳,采用导电电阻作为材料,经过模压及激光修刻微调,贵金属电刷激流装置等部件,保证了产品的高品质和高性能,具有机械寿命长,分辨率高,转动顺滑,动态噪声小的优良性能。小组选择:方案一,绝对式编码器。在平衡杆小车中,要实现杆的平衡需要高精度的仪器,并且在运行过程中不能有差错,绝对式编码噐的精度高,在控制方面有着明显的优势,只需对其发送过来的格雷码进行解码便可以得出角度信息,而WDD35还需进行AD转化,综合考虑选择绝对式编码器。3.控制器选择方案一:STC89C52RCSTC89C52RC是一款低功耗、高性能CMOS8位微控制器,易控制。方案二:STC12C5A60S2STC12C5A60S2指令代码完全兼容8051单片机但速度快8-12倍,并且还自带8路十位AD转化。小组选择:方案二,STC12C5A60S2。题目要求小车还需要完成循迹,选择STC12C5A60S2便减少了硬件电路,并且其转化速率250K/s完全满足题目的要求。4.电机驱动模块的选择小组选择:L298NL298硬件电路设计简单,只需要占用4个IO口,便可以控制电机的转动速度以及方向。三、参数的测定KpKiKd效果850运行平稳,校准较慢1050较为平稳,向前偏移1060较为平稳,向前偏移1070比较平衡,略微偏差1080平衡,略微偏差990偏差小,能保持5~10s平衡四、附页最小系统电路的设计L298驱动模块的设计程序代码#includereg52.h#includeintrins.h#include1602.hsfrAUXR=0x8e;sbitshi=P2^4;sbitjiu=P2^5;uintnum1,num2,num3,num4;uintpwm,time,fangxiang;//电机速度控制pwm控制,转动时间控制intposition_former,position_now,aa;//方法一所用参数uintfangxiang;intposition,position2,aaa;ucharflag;ucharqian,hou;intcn,i_term,d_term,sum;floatk=9,ki=9,kd=0;uchardianji_flag;voiddelay(uinta)//1ms{uchari,j;for(;a0;a--){_nop_();_nop_();_nop_();i=11;j=190;do{while(--j);}while(--i);}}uintgeleima(uinta){uintb;a=~a;a&=0x03ff;b=a;if(b==0){returnb;}if(b==1){returnb;}if(b1){while(a=1){b^=a;}returnb;}}uintget_bianma(){uinta,b,c;a=P1;b=a+256*jiu+512*shi;c=geleima(b);returnc;}voiddisply_bianma(uintx)//角度数字量的显示{uintresult,a,b,c,d;write_order1602(0x80+0x40+2);//显示X轴数据result=x;a=result/1000;b=result%1000/100;c=result%100/10;d=result%10;write_date1602(0x30+a);write_date1602(0x30+b);write_date1602(0x30+c);write_date1602(0x30+d);}voidinitial_T01()//100us一中断,PID或角度数据处理频率设置{TMOD=0x11;TL0=0xA4;TH0=0xFF;TL1=0xA4;TH1=0xFF;EA=1;ET0=1;TF0=0;TR0=0;ET1=1;TF1=0;TR1=1;}voidPID(){position=549-position_now;aaa=position-position2;aa=position_now-position_former;i_term=0;d_term=0;sum+=position;if(sum100)sum=100;if(sum-100)sum=-100;i_term=sum;d_term=aaa;d_term*=kd;if(d_term30)d_term=30;if(d_term-30)d_term=-30;cn=position*k;cn+=i_term+d_term;}voiddeal_jiaodu(){if(position1&&position-1){TR0=0;qian=0;hou=0;pwm=0;dianji_flag=0;}elsedianji_flag=1;if(dianji_flag==1){if(cn0){qian=1;hou=0;TR0=1;pwm=30;if(cn=0&&cn=20){cn=20;}pwm+=cn;}if(cn0){qian=0;hou=1;TR0=1;pwm=28;if(cn=0&&cn=-20){cn=-20;}pwm-=cn;}}}voidmain()//主函数{initial_1602();initial_T01();posit
本文标题:倒立摆小车
链接地址:https://www.777doc.com/doc-4570238 .html