简易旋转倒立摆及控制装置1_第1页
简易旋转倒立摆及控制装置1_第2页
简易旋转倒立摆及控制装置1_第3页
简易旋转倒立摆及控制装置1_第4页
简易旋转倒立摆及控制装置1_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2013年全国大学生电子设计竞赛简易旋转倒立摆及控制装置(c题)2013年9月7日ii摘 要 为了满足倒立摆的设计要求,进行了模型的制作、电机以及测量角度仪器的比较与确定,本系统采用at89s52单片机、直流减速电机和绝对式旋转编码器trd-3a1024-2610为核心,直流电机往返转动时带动摆杆进行大于60度的摆动以及圆周运动;当摆杆在竖直状态发生运动时,通过编码器测出的角度的变化传给单片机,进而单片机控制直流减速电机转动,从而使摆杆保持倒立。实物模型简单稳定,系统采用pid算法,有效的、低消耗的控制电机,符合题目要求。 关键词:at89s52单片机,直流减速电机,编码器,pid算法目 录1

2、系统方案11.1控制芯片的选择11.2电机的选择方案11.3测量装置的选择21.4驱动模块的选择31.5整体方案的流程图42系统理论分析与计算42.1 摆杆倒立的测量方法42.2 模型的建立和控制方法43电路与程序设计53.1电路的设计53.2程序的设计与结构73.3程序流程图74测试方案与测试结果84.1测试方案84.2 测试条件与仪器94.3 测试结果及分析94.3.1测试结果(数据)94.3.2测试分析与结论9附录1:电路原理图10附录2:源程序11简易旋转倒立摆及控制装置(c题)1系统方案本系统主要由电机模块、测角度模块、转轴模块、电源模块组成,下面分别论证这几个模块的选择。1.1控制

3、芯片的选择方案一:stm32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的arm cortex-m3内核。按性能分成两个不同的系列:stm32f103“增强型”系列和stm32f101“基本型”系列。时钟频率72mhz时,从闪存执行代码,stm32功耗36ma,是32位市场上功耗最低的产品,相当于0.5ma/mhz。方案二:stc89c52rc 单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单 片机,指令代码完全兼容传统 8051 单片机,12 时钟/机器周期和 6 时钟/机器周 期可以任意选择。工作频率范围:040mhz,相当于普通 8051 的 080mhz,实际工作

4、频率可达 48mhz , 用户应用程序空间为 8k 字节 , 片上集成 512 字节 ram, isp(在系统可编程)/iap(在应用可编程) ,无需专用编程器,无 需专用仿真器,可通过串口(rxd/p3.0,txd/p3.1)直接下载用户程 序, 具有 eeprom 功能和看门狗功能共3个 16 位定时器/计数器,即定时器 t0、t1、t2。方案三:msp430优点是电压低,功耗低,3.3v供电,16位,运行速度快,内置硬件乘法器,乘除法运算都为单周期指令,片内集成资源丰富,有两组普通io口具有中断功能。鉴于我们对51单片机很熟悉,所以选择51单片机作为本次试验的主控芯片。1.2电机的选择方

5、案根据题目电机可具备左右摆动,并且速度可调,转速调节范围高的特点。方案一:选择步进电机,步进电机属于位置控制,其具有结构简单、可靠性高和成本低的特点,不过步进电机在控制的精度、速度变化范围、低速性能方面都不如传统的闭环控制的直流伺服电动机。转速较慢,容易脱转是它最重要的缺陷,无法实现题目的要求,我们需要调速范围广的电机。方案二:选择直流减速电机,齿轮减速箱的作用是,提供较低的转速,较大的力矩。同时,齿轮箱不同的减速比可以提供不同的转速和力矩,满足本次试验的要求。我们采用德国空心杯2342l012减速电机 ,其型号如下:工作电压空转(r/m)减速后速输出功率(w)扭矩空转电流(ma)堵转电流(m

6、a)减速比每圈脉冲12v810012017大扭矩75140066:112cpr1.3测量装置的选择根据题目中对角度的要求,我们应该选择能够测量和控制角度的仪器。方案一:电位器是具有三个引出端、阻值可按某种变化规律调节的电阻元件。电位器通常由电阻体和可移动的电刷组成。当电刷沿电阻体移动时,在输出端即获得与位移量成一定关系的电阻值或电压。电位器既可作三端元件使用也可作二端元件使用。后者可视作一可变电阻器。通过电位器,利用电位器一周与360度一一对应的原理,通过不同的电压值,利用a/d,d/a转换来对电机进行控制。方案二:角度传感器,能感受被测角度并转换成可用输出信号的传感器。当连结到rcx上时,轴

7、每转过1/16圈,角度传感器就会计数一次。往一个方向转动时,计数增加,转动方向改变时,计数减少。计数与角度传感器的初始位置有关。利用角度传感器与摆杆固定,测量摆杆的摆动角度来对电机进行控制。缺点就是外接线太多,当摆杆旋转时,可能会发生缠绕现象。方案三:编码器是将信号或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。编码器把角位移或直线位移转换成电信号,前者称为码盘,后者称为码尺。按照读出方式编码器可以分为接触式和非接触式两种;按照工作原理编码器可分为增量式和绝对式两类。我们决定采用绝对式编码器,它的每一个位置对应一个确定的数字码,因此它的示值只与测量的起始和终止位置有关,而与测量的

8、中间过程无关。这样可以帮助我们减小测量过程中的不必要的误差。1.4驱动模块的选择由于在电路中采用德国空心杯2342l012减速电机,因此在电路中选择l298驱动l298n的逻辑参考电平为典型的ttl电平。用了一个l1117稳压芯片提供稳定的5v输出电压和逻辑参考电压,d9、d10、d11和d12是发光二极管,指示运动方向,与它们连接的电阻都是限流电阻。r5和r8都是下拉电阻,让ena和enb口要么是高电平,要么是低电平,避免出现电平混乱,提高对输入信号的抗干扰能力。输出端都接有0.1uf电容,加上二极管平衡电路。电路图如下:1.5整体方案的流程图2系统理论分析与计算2.1 摆杆倒立的测量方法在

9、模拟试验中,考虑到编码器和电机对电信号的反应时间以及外界的干扰,系统会存在控制滞后现象,系统输出量也会出现一定程度的波动,造成稳态误差。为了获得更好的控制效果,必须优化纯比例控制模型,以消除稳态误差。在工业控制中,pid(即比例积分微分)算法是一种比较成熟的控制方法,其控制的基本思想是将偏差的比例、积分和微分三参数通过线性组合构成控制器,对被控对象进 行控制。其控制结构图如图所示u 设定 +e反馈编码器反馈被控对象执行部件pid运算 p id控制结构图2.2 模型的建立和控制方法 理想的pid微分方程为: (7)式中: 表示比例系数; 表示积分时间; 表示微分时间。基本偏差为当前时刻观测到的瞬

10、时扭矩与需要的制动转矩之差,作为控制量;电动机的驱动电流为输出量,驱动电动机旋转,对主轴进行转矩补偿;为1.5 。因此,本题中的pid控制模型为: 部分程序如下:/pid = uk + kp*e(k)-e(k-1)+ki*e(k)+kd*e(k)-2e(k-1)+e(k-2);(增量型pid算式)float pi(float k,float ti,float error) /pi控制器,float kk=k+k/ti;static float u=0,e2=0;float du;e1=error;du=kk*e1-k*e0;u=u+du;e0=e1;return u;3电路与程序设计3.1电路

11、的设计编码器管脚图-单片机管脚图如下:上图中编码器vcc接12v开关电源,10个脚依次与p0,p30,p31连接.编码器输出二进制,代表1024个脉冲,经转化变为360度。附加编码器程序:void display(ulint numdis1) /数码管显示角度二进制数uint shi1,ge1,bai1,qian1;/shi2,ge2,shi3,ge3,shi4,ge4; /分离两个分别要显示的数numdis1=(numdis1*3600)/1024;qian1=numdis1/1000;bai1=numdis1/10/10%10;shi1=numdis1/10%10;ge1=numdis1%

12、10;p0=tablege1;p2=0x07;delay1ms(3);p0=tableshi1;p2=0x06;delay1ms(3);p0=tablebai1;p2=0x05;delay1ms(3);p0=tableqian1;p2=0x04;delay1ms(3);驱动电路l298,单片机与直流电机的管脚图如下:3.2程序的设计与结构程序主函数:见附录程序。3.3程序流程图1、基本要求一:只需将电机驱动做往复运动,超过60度即可。2、基本要求二:从摆杆处于垂直位置,快速摆动旋转臂,做到规律周期性地带动摆杆,让摆杆完成圆周运动。3、基本要求三:具体流程图如下: 由于我们小组电机的损坏,导致实

13、验设计没有顺利的进行,并未完成基础三的要求。(附:由于电机的损坏,我们小组只好采取其他办法补救,同时编码器也无法同时使用,便采用角度传感器进行控制。)4测试方案与测试结果4.1测试方案1、硬件测试:(1)电机测试我们选择定点测试主要是观察步进电机的反应快慢。用手推动摆杆转动,观察其本身自由转动的角度,一次来判断电机的灵敏度。随后用单片机驱动电机转动,通过调节不同的占空比,粗略判断电机转动的加速度,以及扭矩的大小。反复调整脉冲的频率,确定使步进电机能迅速反应且稳定工作的运行频率。(2)摆杆灵敏度的测试通过不同的转轴来将摆杆从165度放开,让其不受其他外力作用自由摆动,计数摆动的周期数。将摆动3个

14、来回以上的视为合格。2、软件仿真测试 我们用51单片机将程序写入rom中,进行程序的检测,第一步、第二步可顺利完成。3、存在干扰的情况在上面状态的基础上,在摆杆的自由阻尼运动过程中人为强制使其停止摆动,使平板能迅速反应,恢复平衡状态。4.2 测试条件与仪器测试条件:检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。测试仪器:高精度的数字毫伏表,模拟示波器,数字示波器,数字万用表,指针式万用表。4.3 测试结果及分析4.3.1测试结果(数据)1. trd-3a1024-2610编码器角度转化结果如下表所示: 二进制2222426272829210角度0.71

15、.45.622.545.090.0180.0360.02. pwm在98%时,电机的转速慢;pwm在100%的时候,转速快,扭力强。在摆杆摆动中其不能及时反应,造成测试中丢转现象。4.3.2测试分析与结论本系统通过由编码器为轴杆的摆动,得到两端角度的变化,经单片机系统的数据采集、脉冲调制使伺服电机工作最终使摆杆倒立的目的。由于伺服电机的工作特性,开始反应较慢使得摆杆难以倒立。由于摆杆较重,在杆摆动的过程中,会受到本身材料及外部因素的影响而从电位器上采集的电压产生变化,导致出现偏差,导致摆杆不能完全实现360度多圈转动。所以在这个比赛中,我懂得了整个流程只有自己亲手操作一遍,才会清楚其中的奥妙,

16、在比赛中选择芯片、模块是前提,也最重要,此系统也是由于电机的问题导致了设计要求无法精确达到。参考文献1、 罗晶,陈平. 一阶倒立摆的pid控制 . 实验室研究与探索,2005,112、 周航慈,嵌入系统软件设计中的常用算法 . 北京:北京航空航天大学出版社,2010,1,1 18附录1:电路原理图附录2:源程序#include#define uint unsigned int #define uchar unsigned charsbit pwm=p10;sbit dian1=p00;sbit dian2=p01;sbit key1 = p32; sbit key2 = p33;sbit ke

17、y3 = p34;uint table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uint wela=0,1,2,3,4,5,6,7;uint qian=0,bai=0,shi=0,ge=0;uint time=100,aa=0,bb=0,temp=0,flag=0;void delay(uchar z)uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-);void main()tmod=0x11;th0=64536/256;tl0=64536%256;th1=65336/256;tl1=65336%256;

18、ea=1;et1=1;tr1=1;et0=1;tr0=1;pwm=1;while(1)if(flag=0)dian1=0;dian2=1;if(flag=1)dian1=1;dian2=0;void timer1() interrupt 3th1=65336/256;tl1=65336%256;aa+;if(aa=95)pwm=0;if(aa=100)aa=0;pwm=1;void timer0() interrupt 1th0=64536/256;tl0=64536%256;bb+;if(bb=400)flag=1;if(bb=800)bb=0;flag=0;#include#include

19、/p1和p30,p31用于编码器/p0和p2用于数码显示/p32:pwm p33,p34电机电极换向#define uchar unsigned char #define uint unsigned int #define ulint unsigned long int #define section1 3 /死区#define section2 10#define fullrat 100/饱和区sbit bit8=p30;sbit bit9=p31;sbit pwm=p32;sbit dian1=p33;sbit dian2=p34;ulint s;/设定值ulint pv; /实际值uli

20、nt out;uchar code table16=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar flag;uchar mark=0;uchar aa=0;uint bb=0;/pid.kp=1;/pid.ki=1;/pid.kd=1;/pid.ck=1;/pid = uk + kp*e(k)-e(k-1)+ki*e(k)+kd*e(k)-2e(k-1)+e(k-2);(增量型pid算式)void delay(uchar z)uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-);void delay1

21、ms(uint del)uchar i,j;for(j=0;jdel;j+)for(i=0;i=148;i+);void delay10ms(uint del)uint i,j;for(i=0; idel; i+)for(j=0; j=1) y = x; return y;ulint get_angle(void)ulint gray_code;ulint gray_code_l8;ulint gray_code_h2;ulint dec_code;p1=0xff;p3=0xff;gray_code_l8=p1;gray_code_h2=0xff00;if(bit8=0)gray_code_h

22、2&=0xfeff;if(bit9=0)gray_code_h2&=0xfdff;gray_code=gray_code_h2+gray_code_l8;gray_code=gray_code;dec_code=graytodecimal(gray_code);/display(dec_code);return dec_code;void display(ulint numdis1) /数码管显示角度二进制数uint shi1,ge1,bai1,qian1;/shi2,ge2,shi3,ge3,shi4,ge4; /分离两个分别要显示的数numdis1=(numdis1*3600)/1024;qian1=numdis1/1000;bai1=numdis1/10/10%10;shi1=numdis1/10%10;ge1=numdis1%10;p0=tablege1;p2=0x07;delay1ms(3);p0=tableshi1;p2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论