2013大学生电子设计大赛简易旋转倒立摆及控制装置(C题 )
电赛论文模板
2015年全国大学生电子设计竞赛简易旋转倒立摆及控制装置(C题)【本科组】2013年9月6日目录1系统方案 (2)1.1电机及驱动方案的论证与选择 (2)1.2传感器采集模块的论证与选择 (2)1.3 控制系统的论证与选择 (2)2系统理论分析与计算 (3)2.1 XXXX的分析 (3)2.1.1 XXX (3)2.1.2 XXX (3)2.1.3 XXX (3)2.2 XXXX的计算 (3)2.2.1 XXX (3)2.2.2 XXX (3)2.2.3 XXX (3)2.3 XXXX的计算 (3)2.3.1 XXX (3)2.3.2 XXX (3)2.3.3 XXX (3)3电路与程序设计 (3)3.1电路的设计 (3)3.1.1系统总体框图 (3)3.1.2 XXXX子系统框图与电路原理图 (4)3.1.3 XXXX子系统框图与电路原理图 (4)3.1.4电源 (4)3.2程序的设计 (4)3.2.1程序功能描述与设计思路 (4)3.2.2程序流程图 (5)4测试方案与测试结果 (5)4.1测试方案 (5)4.2 测试条件与仪器 (5)4.3 测试结果及分析 (6)4.3.1测试结果(数据) (6)4.3.2测试分析与结论 (6)附录1:电路原理图 (7)附录2:源程序 (8)简易旋转倒立摆及控制装置(C题)【本科组】1系统方案本系统主要由电机及驱动模块、传感器采集模块、控制器模块、电源模块组成,下面分别论证这几个模块的选择。
1.1电机及驱动方案的论证与选择方案一:42BY系列混合式步进电机+LN298驱动方案此方案在最先想到以及调试的方案,用步进电机的有点就是正反转切换迅速,无堵转现象,转矩大,负载能力强。
但是42BY系列混合式步进电机响应一拍最小周期为2ms,此时处于电机为最大转速,执行周期长,也就造成系统控制周期长,但是本系统要求调节周期短(我们最终方案采用的是2ms),能够在极短时间内实现一个调节过程,故此方案不能达到预期的效果。
全国电子设计大赛题目简易旋转倒立摆及控制装置C题
2013 年全国大学生电子设计竞赛试题参赛注意事项(1)9 月4 日8:00 竞赛正式开始。
本科组参赛队只能在【本科组】题目中任选一题;高职高专组参赛队在【高职高专组】题目中任选一题,也可以选择【本科组】题目。
(2)参赛队认真填写《登记表》内容,填写好的《登记表》交赛场巡视员暂时保存。
(3)参赛者必须是有正式学籍的全日制在校本、专科学生,应出示能够证明参赛者学生身份的有效证件(如学生证)随时备查。
(4)每队严格限制3 人,开赛后不得中途更换队员。
(5)竞赛期间,可使用各种图书资料和网络资源,但不得在学校指定竞赛场地外进行设计制作,不得以任何方式与他人交流,包括教师在内的非参赛队员必须回避,对违纪参赛队取消评审资格。
(6)9 月7 日20:00 竞赛结束,上交设计报告、制作实物及《登记表》,由专人封存。
简易旋转倒立摆及控制装置(C 题)【本科组】一、任务设计并制作一套简易旋转倒立摆及其控制装置。
旋转倒立摆的结构如图1 所示。
电动机A 固定在支架B 上,通过转轴F 驱动旋转臂C 旋转。
摆杆E 通过转轴D 固定在旋转臂C 的一端,当旋转臂C 在电动机A 驱动下作往复旋转运动时,带动摆杆E 在垂直于旋转臂C 的平面作自由旋转。
二、要求图1 旋转倒立摆结构示意图1.基本要求(1)摆杆从处于自然下垂状态(摆角0°)开始,驱动电机带动旋转臂作往复旋转使摆杆摆动,并尽快使摆角达到或超过-60°~ +60°;(2)从摆杆处于自然下垂状态开始,尽快增大摆杆的摆动幅度,直至完成圆周运动;(3)在摆杆处于自然下垂状态下,外力拉起摆杆至接近165°位置,外力撤除同时,启动控制旋转臂使摆杆保持倒立状态时间不少于5s;期间旋转臂的转动角度不大于90°。
2.发挥部分(1)从摆杆处于自然下垂状态开始,控制旋转臂作往复旋转运动,尽快使摆杆摆起倒立,保持倒立状态时间不少于10s;(2)在摆杆保持倒立状态下,施加干扰后摆杆能继续保持倒立或2s 内恢复倒立状态;(3)在摆杆保持倒立状态的前提下,旋转臂作圆周运动,并尽快使单方向转过角度达到或超过360°;(4)其他。
2013年全国大学生电子设计大赛本科C题倒立摆程序
#include<stc/STC12C5A60S2.h>#include <math.h>#include <stdio.h>#include <INTRINS.H>typedef unsigned char uchar;typedef unsigned short ushort;typedef unsigned int uint;sbit bmq=P1^5;sbit sn=P1^2;sbit l1=P1^0;sbit l2=P1^1;sbit j1=P0^0;sbit j2=P0^1;sbit j3=P0^2;sbit j4=P0^3;sbit j5=P0^4;sbit j6=P0^5;sbit j7=P0^6;sbit j8=P0^7;unsigned char tttt=0;unsigned char step=0;#define unchar unsigned char#define unint unsigned int#define clear 0x01#define home 0x02#define f_set 0x30#define dis_on 0x0f#define in_mode 0x06sbit P_RS=P2^2;sbit P_RW=P2^1;sbit P_E= P2^0;sbit SCL=P1^6; //IIC时钟引脚定义sbit SDA=P1^7; //IIC数据引脚定义char s[15];//****************************************// 定义MPU6050内部地址//****************************************#define SMPLRT_DIV 0x19 //陀螺仪采样率,典型值:0x07(125Hz)#define CONFIG 0x1A //低通滤波频率,典型值:0x06(5Hz)#define GYRO_CONFIG 0x1B //陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s)#define ACCEL_CONFIG 0x1C //加速计自检、测量范围及高通滤波频率,典型值:0x01(不自检,2G,5Hz)#define ACCEL_XOUT_H 0x3B#define ACCEL_XOUT_L 0x3C#define ACCEL_YOUT_H 0x3D#define ACCEL_YOUT_L 0x3E#define ACCEL_ZOUT_H 0x3F#define ACCEL_ZOUT_L 0x40#define TEMP_OUT_H 0x41#define TEMP_OUT_L 0x42#define GYRO_XOUT_H 0x43#define GYRO_XOUT_L 0x44#define GYRO_YOUT_H 0x45#define GYRO_YOUT_L 0x46#define GYRO_ZOUT_H 0x47#define GYRO_ZOUT_L 0x48#define PWR_MGMT_1 0x6B //电源管理,典型值:0x00(正常启用)#define WHO_AM_I 0x75 //IIC地址寄存器(默认数值0x68,只读)#define SlaveAddress 0xD0 //IIC写入时的地址字节数据,+1为读取//****************************************//函数声明//****************************************//MPU6050操作函数void InitMPU6050(); //初始化MPU6050void Delay5us();void I2C_Start();void I2C_Stop();void I2C_SendACK(bit ack);bit I2C_RecvACK();void I2C_SendByte(uchar dat);uchar I2C_RecvByte();void I2C_ReadPage();void I2C_WritePage();uchar Single_ReadI2C(uchar REG_Address); //读取I2C数据void Single_WriteI2C(uchar REG_Address,uchar REG_data); //向I2C写入数据//**************************************//延时5微秒(STC90C52RC@12M)//不同的工作环境,需要调整此函数//当改用1T的MCU时,请调整此延时函数//**************************************void Delay5us(){unsigned char i;i = 22;while (--i);}//**************************************//I2C起始信号//************************************** void I2C_Start(){SDA = 1; //拉高数据线SCL = 1; //拉高时钟线Delay5us(); //延时SDA = 0; //产生下降沿Delay5us(); //延时SCL = 0; //拉低时钟线}//**************************************//I2C停止信号//************************************** void I2C_Stop(){SDA = 0; //拉低数据线SCL = 1; //拉高时钟线Delay5us(); //延时SDA = 1; //产生上升沿Delay5us(); //延时}//**************************************//I2C发送应答信号//入口参数:ack (0:ACK 1:NAK)//************************************** void I2C_SendACK(bit ack){SDA = ack; //写应答信号SCL = 1; //拉高时钟线Delay5us(); //延时SCL = 0; //拉低时钟线Delay5us(); //延时}//**************************************//I2C接收应答信号//**************************************bit I2C_RecvACK(){SCL = 1; //拉高时钟线Delay5us(); //延时CY = SDA; //读应答信号SCL = 0; //拉低时钟线Delay5us(); //延时return CY;}//**************************************//向I2C总线发送一个字节数据//**************************************void I2C_SendByte(uchar dat){uchar i;for (i=0; i<8; i++) //8位计数器{dat <<= 1; //移出数据的最高位SDA = CY; //送数据口SCL = 1; //拉高时钟线Delay5us(); //延时SCL = 0; //拉低时钟线Delay5us(); //延时}I2C_RecvACK();}//**************************************//从I2C总线接收一个字节数据//**************************************uchar I2C_RecvByte(){uchar i;uchar dat = 0;SDA = 1; //使能内部上拉,准备读取数据, for (i=0; i<8; i++) //8位计数器{dat <<= 1;SCL = 1; //拉高时钟线Delay5us(); //延时dat |= SDA; //读数据SCL = 0; //拉低时钟线Delay5us(); //延时}return dat;}//**************************************//向I2C设备写入一个字节数据//**************************************void Single_WriteI2C(uchar REG_Address,uchar REG_data)I2C_Start(); //起始信号I2C_SendByte(SlaveAddress); //发送设备地址+写信号I2C_SendByte(REG_Address); //内部寄存器地址,I2C_SendByte(REG_data); //内部寄存器数据,I2C_Stop(); //发送停止信号}//**************************************//从I2C设备读取一个字节数据//**************************************uchar Single_ReadI2C(uchar REG_Address){uchar REG_data;I2C_Start(); //起始信号I2C_SendByte(SlaveAddress); //发送设备地址+写信号I2C_SendByte(REG_Address); //发送存储单元地址,从0开始I2C_Start(); //起始信号I2C_SendByte(SlaveAddress+1); //发送设备地址+读信号REG_data=I2C_RecvByte(); //读出寄存器数据I2C_SendACK(1); //接收应答信号I2C_Stop(); //停止信号return REG_data;}//**************************************//初始化MPU6050//**************************************void InitMPU6050(){Single_WriteI2C(PWR_MGMT_1, 0x00); //解除休眠状态Single_WriteI2C(SMPLRT_DIV, 0x07);Single_WriteI2C(CONFIG, 0x06);Single_WriteI2C(GYRO_CONFIG, 0x18);Single_WriteI2C(ACCEL_CONFIG, 0x01);}//**************************************//合成数据//**************************************int GetData(uchar REG_Address){char H,L;H=Single_ReadI2C(REG_Address);L=Single_ReadI2C(REG_Address+1);return (H<<8)+L; //合成数据}void bit8_serial_input(unchar ix){unchar i;P_E=0;for(i=0x80;i>=0x01;i=i>>1){if((ix&i)==0) P_RW=0; else P_RW=1;P_E=1;P_E=0;}}void instruct(unchar dat){unchar ch;P_RS=1;ch=0xf8;bit8_serial_input(ch);ch=dat&0xf0;bit8_serial_input(ch);ch=dat<<4;bit8_serial_input(ch);P_RS=0;}void write_abyte(unchar dat){data unchar ch;P_RS=1;ch=0xfa;bit8_serial_input(ch);ch=dat&0xf0;bit8_serial_input(ch);ch=dat<<4;bit8_serial_input(ch);P_RS=0;}void dis_str(unchar x, unchar y, unchar *str) {unchar loc,*p;unchar xline[5]={0,1,3,2,4};p=str;x=xline[x];instruct(home);loc=(16*(x-1)+y-1);if(loc&0x01){loc/=2;instruct(loc|0x80);write_abyte(' ');}else{loc/=2;instruct(loc|0x80);}while(*p){write_abyte(*p++);}}void initial(void){data unchar i,j;P_RS=0;P_E=0;instruct(f_set);for(i=0;i<30;i++){}for(i=0;i<250;i++){}for(i=0;i<250;i++){}instruct(f_set);for(i=0;i<30;i++){}for(i=0;i<250;i++){}for(i=0;i<250;i++){}instruct(0x0c);for(i=0;i<30;i++){}instruct(clear);for(j=0;j<10;j++){for(i=0;i<250;i++){} }instruct(in_mode);for(i=0;i<30;i++){}instruct(home);}int gx,gy,gz,wy;unsigned char PWM1,PWM2,PWM3;unsigned char l;//unsigned int idata atab[91]={0,2,11,26,47,74,107,146,190,241,297,360,428,502,582,668,759,857,959,1068,1182,130 2,1428,1559,1695,1837,1984,2137,2295,2459,2627,2801,2980,3164,3353,3547,3745,3949,4157,4 370,4588,4810,5037,5269,5504,5744,5988,6237,6489,6745,7006,7270,7538,7809,8084,8363,864 5,8931,9219,9511,9806,10104,10405,10709,11015,11324,11635,11949,12266,12584,12905,1322 7,13552,13878,14207,14537,14868,15201,15535,15870,16207,16545,16883,17223,17563,17903, 18245,18586,18928,19271,19613};void Delay50m() //@20.000MHz{unsigned char i, j, k;i = 4;j = 205;k = 187;do{do{while (--k);} while (--j);} while (--i);}void Delay50ms(unsigned char aa){while(aa--)Delay50m();}unsigned char input();void inputstep(){char s[]=" ";unsigned char f=0,num;while(1){initial();dis_str(1,1,"选择\xb9\xfd程");sprintf(s,"%d",(int)step);dis_str(2,1,s);Delay50ms(1);num=input();switch(num){case 16:f=1;break;default:step=num;case 0:break;}if(f)break;}}void saveint(int d){IAP_DATA=d>>8;IAP_TRIG=0x5A;IAP_TRIG=0xA5;IAP_ADDRL++;IAP_DATA=d&0xff;IAP_TRIG=0x5A;IAP_TRIG=0xA5;}void savechar(unsigned char d) {IAP_DATA=d;IAP_TRIG=0x5A;IAP_TRIG=0xA5;}unsigned char readchar(){IAP_TRIG=0x5A;IAP_TRIG=0xA5;return IAP_DATA;}int readint(){int d;IAP_TRIG=0x5A;IAP_TRIG=0xA5;d=IAP_DATA;d<<=8;IAP_ADDRL++;IAP_TRIG=0x5A;IAP_TRIG=0xA5;d+=IAP_DATA;return d;}unsigned char pa1,ps1,pa2,ps2;int getangle();void Delay50us();void inputmode(){char s[]=" ";unsigned char num,t;while(1){initial();dis_str(1,1,"当前角度");sprintf(s,"%d",getangle());dis_str(1,9,s);dis_str(3,1,"角速度");sprintf(s,"%d",GetData(GYRO_YOUT_H)/100-wy);dis_str(3,9,s);Delay50ms(1);if(input()==15)break;}t=PWM1>>4;while(1){initial();while(input()==15);Delay50ms(2);dis_str(4,1,"输入PWM1高四位");sprintf(s,"%d",(int)t);dis_str(1,9,s);Delay50ms(1);num=input();switch(num){case 16:case 0:break;default:t=num;}if(num==16)break;}PWM1&=0x0f;PWM1+=t<<4;t=PWM1&0x0f;while(input()==16);Delay50ms(2);while(1){initial();dis_str(4,1,"输入PWM1低四位");sprintf(s,"%d",(int)t);dis_str(1,9,s);Delay50ms(1);num=input();switch(num){case 16:case 0:break;default:t=num;}if(num==16)break;}PWM1&=0xf0;PWM1+=t;while(input()==16);Delay50ms(2);t=PWM2>>4;while(1){initial();dis_str(4,1,"输入PWM2高四位");sprintf(s,"%d",(int)t);dis_str(1,9,s);Delay50ms(1);num=input();switch(num){case 16:case 0:break;default:t=num;}if(num==16)break;}PWM2&=0x0f;PWM2+=t<<4;t=PWM2&0x0f;while(input()==16);Delay50ms(2);while(1){initial();dis_str(4,1,"输入PWM2低四位");sprintf(s,"%d",(int)t);dis_str(1,9,s);Delay50ms(1);num=input();switch(num){case 16:case 0:break;default:t=num;}if(num==16)break;}PWM2&=0xf0;PWM2+=t;while(input()==16);Delay50ms(2);t=PWM3>>4;while(1){initial();dis_str(4,1,"输入PWM3高四位");sprintf(s,"%d",(int)t);dis_str(1,9,s);Delay50ms(1);num=input();switch(num){case 16:case 0:break;default:t=num-1;}if(num==16)break;}PWM3&=0x0f;PWM3+=t<<4;t=PWM3&0x0f;while(input()==16);Delay50ms(2);while(1){initial();dis_str(4,1,"输入PWM3低四位");sprintf(s,"%d",(int)t);dis_str(1,9,s);Delay50ms(1);num=input();switch(num){case 16:case 0:break;default:t=num-1;}if(num==16)break;}while(input()==16);Delay50ms(2);PWM3&=0xf0;PWM3+=t;t=pa1;while(1){initial();dis_str(4,1,"输入一加速时间");sprintf(s,"%d",(int)t);dis_str(1,9,s);Delay50ms(1);num=input();switch(num){case 16:case 0:break;default:t=num-1;if(num==16)break;}while(input()==16);Delay50ms(2);pa1=t;t=ps1;while(1){initial();dis_str(4,1,"输入一减速时间");sprintf(s,"%d",(int)t);dis_str(1,9,s);Delay50ms(1);num=input();switch(num){case 16:case 0:break;default:t=num-1;}if(num==16)break;}while(input()==16);Delay50ms(2);ps1=t;t=pa2;while(1){initial();dis_str(4,1,"输入二加速时间");sprintf(s,"%d",(int)t);dis_str(1,9,s);Delay50ms(1);num=input();switch(num){case 16:case 0:break;default:t=num-1;if(num==16)break;}while(input()==16);Delay50ms(2);pa2=t;t=ps2;while(1){initial();dis_str(4,1,"输入二减速时间");sprintf(s,"%d",(int)t);dis_str(1,9,s);Delay50ms(1);num=input();switch(num){case 16:case 0:break;default:t=num-1;}if(num==16)break;}while(input()==16);Delay50ms(2);ps2=t;gx=GetData(ACCEL_XOUT_H)/100-164; IAP_CONTR=0x83;IAP_ADDRH=0;IAP_ADDRL=0;IAP_CMD=3;IAP_TRIG=0x5A;IAP_TRIG=0xA5;IAP_CMD=2;saveint(gx);gy=GetData(ACCEL_YOUT_H)/100; IAP_ADDRL++;saveint(gy);gz=GetData(ACCEL_ZOUT_H)/100; IAP_ADDRL++;saveint(gz);wy=GetData(GYRO_YOUT_H)/100;IAP_ADDRL++;saveint(wy);IAP_ADDRL++;savechar(PWM1);IAP_ADDRL++;savechar(PWM2);IAP_ADDRL++;savechar(PWM3);IAP_ADDRL++;savechar(pa1);IAP_ADDRL++;savechar(ps1);IAP_ADDRL++;savechar(pa2);IAP_ADDRL++;savechar(ps2);initial();return;}int x,y,z;int getangle(){x=GetData(ACCEL_XOUT_H)/100+164-gx;y=GetData(ACCEL_YOUT_H)/100-gy;z=GetData(ACCEL_ZOUT_H)/100-gz;if(z<0)x=-x;return x;}void Delay50us() //@20.000MHz{unsigned char i, j;_nop_();_nop_();i = 1;j = 245;do{while (--j);} while (--i);}unsigned char input(){unsigned char state,ps; P0=0xff;while(1){j1=0;Delay50us();state=P0;state=state>>4;ps=0;if(state<15)break;j1=1;j2=0;Delay50us();state=P0;state=state>>4;ps++;if(state<15)break;j2=1;j3=0;Delay50us();state=P0;state=state>>4;ps++;if(state<15)break;j3=1;j4=0;Delay50us();state=P0;state=state>>4;ps++;if(state<15)break;j4=1;break;}switch(state){case 15:return 0;case 14:return 1+4*ps;case 13:return 2+4*ps;case 11:return 3+4*ps;case 7:return 4+4*ps;}return 0;}void rd(){l1=1;l2=0;Delay50ms(pa1);l1=0;Delay50ms(ps1);}unsigned char a;float b;unsigned char reset=0;unsigned char xd,xa;int angle;void main(){InitMPU6050(); //初始化MPU6050IAP_CONTR=0x83;IAP_ADDRH=0;IAP_ADDRL=0;IAP_CMD=1;gx=readint();IAP_ADDRL++;gy=readint();IAP_ADDRL++;gz=readint();IAP_ADDRL++;wy=readint();IAP_ADDRL++;PWM1=readchar();IAP_ADDRL++;PWM2=readchar();IAP_ADDRL++;PWM3=readchar();IAP_ADDRL++;pa1=readchar();IAP_ADDRL++;ps1=readchar();IAP_ADDRL++;pa2=readchar();IAP_ADDRL++;ps2=readchar();TMOD=0X20;TH1=0xfb;TL1=0xfb;SCON=0x50;TR1=1;ES=1;CCON=0;CL=0;CH=0;CMOD=0x02;CCAP0H=CCAP0L=0x20; CCAPM0=0x42;CR=1;EA=1;TI=0;RI=0;/*gx=0;gy=0;gz=0;wy=0;*/initial();dis_str(1,1,"预处理");l=20;initial();dis_str(3,1,"按功能键校准重力"); dis_str(1,2,"3秒后启动……"); for(a=1;a<=20;a++){Delay50ms(1);if(input()==16)inputmode(); }dis_str(1,2,"2秒后启动……"); for(a=1;a<=20;a++){Delay50ms(1);if(input()==16)inputmode(); }dis_str(1,2,"1秒后启动……"); for(a=1;a<=20;a++){Delay50ms(1);if(input()==16)inputmode();}reset=0;step=1;inputstep();if(step==1)rd();if(step==2){l1=1;l2=0;Delay50ms(pa2);l1=0;Delay50ms(ps2);}xa=1;while(1){/*initial();sprintf(s,"%d",GetData(ACCEL_XOUT_H)-gx);dis_str(1,1,s);Delay50ms(1);*//*angle=GetData(ACCEL_XOUT_H);sprintf(s,"%d",angle);dis_str(1,1,s);angle=GetData(ACCEL_YOUT_H);sprintf(s,"%d",angle);dis_str(2,1,s);angle=GetData(ACCEL_ZOUT_H);sprintf(s,"%d",angle);dis_str(3,1,s);angle=getangle();sprintf(s,"%d",angle);dis_str(4,1,s);sprintf(s,"%d",GetData(ACCEL_XOUT_H));dis_str(1,1,s);sprintf(s,"%d",GetData(GYRO_YOUT_H));dis_str(2,1,s);sprintf(s,"%d",GetData(ACCEL_ZOUT_H));dis_str(3,1,s);Delay50ms(1);*/switch(step){case 1:CCAP0H=CCAP0L=PWM1;if(GetData(ACCEL_XOUT_H)-gx>0)if(GetData(GYRO_YOUT_H)-wy>0&&getangle()>0){l1=1;l2=0;}else if(GetData(GYRO_YOUT_H)-wy<0&&getangle()<0){l1=0;l2=1;}else{}else{l1=0;l2=0;}break;case 2:CCAP0H=CCAP0L=PWM2;angle=getangle();if(GetData(GYRO_YOUT_H)-wy>0&&angle>150){l1=1;l2=0;xd=0;}else if(GetData(GYRO_YOUT_H)-wy<0&&angle<-150){l1=0;l2=1;xd=0;}else if(angle<70&&angle>-70){l1=0;l2=0;if(angle>0)xd|=2;else xd|=1;if(xd==3){while(1);}}break;case 3:CCAP0H=CCAP0L=PWM3;if(getangle()<0){l1=1;l2=0;}else{l1=0;l2=1;}break;}if(reset){initial();dis_str(1,1,"\xd5\xfd在烧写程序……");IAP_CONTR=0x60;Delay50ms(40);}}}unsigned char cmd;void RSINTR() interrupt 4{if(RI==1){cmd=SBUF;cmd=cmd<<4;cmd=cmd>>4;if(cmd==0x0e){reset=1;}RI=0;}}。
2013年全国电子设计大赛(c题)报告
2014年8月30日旋转倒立摆简易及控制装置(C题)【本科组】参赛队号:20130297简易旋转倒立摆及控制装置(C题)摘要倒立摆的控制是控制理论研究中的一个经典问题,是理想的自动控制教学实验设备,使用它能全方位满足自动控制教学要求,具有模块好和品种多样化等优点。
本组旋转倒立摆系统的稳定性较好,抗干扰能力较强。
机械部分包括旋转臂、摆杆、电动机、转轴、支架。
控制系统设计包括系统硬件电路及软件设计。
硬件部分采用角速度传感器与主控芯片相连,通过角度的测算实时向MCU发送摆杆的状态,MCU通过控制LM298进而控制电机的转向,进而控制摆杆的状态。
主控芯片采用STC12C5A60S2,通过LM298电机驱动与减速直流电机进行通信,并实时用LCD1602液晶显示参数。
软件部分根据最基本的PID算法,给出了程序设计流程图并用C语言编写了控制程序。
关键词:STC12C5A60S2 角速度传感器 LM298AbstractChuangyi Jane round the Chinese dragon light and archaic wall great the Great Wall of the song typeface do regular script variety of body control of inverted pendulum is a classical problem in the study of control theory, is an ideal automatic control teaching experiment equipment, the use of it can meet the requirements of automatic control teaching in all directions, has the advantages of good module and species diversity. This group of rotational inverted pendulum system is of good stability, strong anti-jamming capability. Mechanical parts including rotating arm, swinging rod, motor, shaft and support. Control system design including the system hardware circuit and software design. Hardware part adopts angular velocity sensor is connected to the main control chip, through the Angle of the measured real-time send MCU state of swinging rod, MCU by controlling LM298 and steering control motor, and control the state of the swinging rod. Master control chip USES STC12C5A60S2, through LM298 motor driver communicate with dc motor slowdown, and real-time use LCD1602 LCD display parameters. Software part according to the basic PID algorithm, and gives the flow chart of program design using C language to write the control program.Keywords:STC12C5A60S2 LM298 angular velocity transducer目录一、系统方案 (3)1、总体设计方案 (3)2、方案的比较 (3)2.1 电机的选择 (3)2.2 传感器的选择 (3)2.3 控制系统 (3)二、理论分析与计算 (4)1、理论分析 (4)1.1 角度传感器 (4)1.2 PWM脉冲宽度调制 (4)2、PID算法 (4)三、电路与程序设计 (4)1、电路 (5)1.1 系统总体框图 (5)1.2 最小系统框图 (5)1.3 电源 (5)2、程序流程图 (5)2.1 主程序流程图 (5)2.2 电机驱动子程序流程图 (5)2.3 角度传感器子程序流程图 (5)四、测试方案与测试结果 (6)1、测试方案 (6)1.1 硬件测试 (6)1.2硬件软件联调 (6)2、测试结果及其分析 (6)五、结论 (6)附录:附一:最小系统电路图 (7)附二:程序清单 (8)一、系统方案1、总体设计方案本系统主要由角速度传感器模块、单片机最小系统模块、电机模块、电源模块组成。
【VIP专享】近三年大赛题目、器件清单
4
D
LC 谐振放大器
----------------------------------------
间大于 10 分钟) 滑线变阻器(50Ω/2A) 变容二极管(30pF~100pF) 光电传感器 角度传感器 超声传感器 红外收发管
2011 年全国大学生电子设计竞赛题目
本科组
序号 题号 题目
----------------------------------------
2013 年全国大学生电子设计竞赛题目清单
【本科组题目】
题号 题目
A
B
C
D
E
F
G
单相 AC-DC 变换电路
四旋翼自主飞行器
简易旋转倒立摆及控制装置
射频宽带放大器
简易频率特性测试仪
红外光通信装置
手写绘图板
【高职高专组题目】
题号 题目
J
K
L
电磁控制运动装置
简易照明线路探测仪
直流稳压电源及漏电保护装置
2013 年全国大学生电子设计竞赛 基本仪器和主要元器件清单
/*文件目录\2013
/*文件目录\2013 /*文件目录\2013
/*文件目录\2013
标准高频信号发生器(1MHz~100MHz,可输出 1mV 小信号) 函数发生器(10 MHz,DDS) 低频毫伏表 高频毫伏表 100 MHz 频率计 数字式单相电参数测量仪 秒表 量角器 温度计 五位半数字万用表 单片机开发系统及 PLD 开发系统 2. 主要元器件清单 单片机最小系统板 R5F100LEA(瑞萨 MCU),已下发到赛区组委会 A/D、D/A 转换器 AD9854ASVZ(与 AD9854ASQ 等同) 运算放大器、电压比较器、乘法器 可编程逻辑器件及其下载板 显示器件 小型继电器 小型电机 带防撞圈的四旋翼飞行器(外形尺寸:长度≤50cm,宽度≤50cm;续航时
2013年全国电子设计大赛C题设计报告.doc
2013年全国大学生电子设计竞赛题目:简易旋转倒立摆及控制装置(C题)参赛学校:江苏师范大学队伍编号:XZ 015参赛队员:徐园明、刘海腾、黄波指导教师:朱士虎、王立巍2013年9月7日目录摘要 (1)Abstract (1)1方案论证与比较 (2)1.1电机类型的论证与选择 (2)1.2单片机的论证与选择 (2)1.3电机驱动电路的论证与选择 (2)1.4角度传感器的论证与选择 (3)2系统实现方框图和电路设计 (4)2.1系统总体框架图和实物构架图 (4)2.2硬件电路设计 (5)2.2.1电位器电路 (5)2.2.2显示模块的电路 (5)2.2.3电机驱动电路 (6)3系统软件设计 (7)3.1精密电位器误差计算 (7)3.2倒立摆控制策略 (7)3.3系统流程图 (9)4测试方案与测试结果 (10)4.1测试仪器 (10)4.2测试结果 (10)4.3测试结果分析 (11)参考文献 (12)摘要本文以STC12C5A60S2单片机为控制核心,通过角度传感器实时检测出倒立摆的位置并由单片机计算,计算PID控制算法,实现对直流电机转速的控制,达到倒立摆的动态平衡。
同时系统可以通过键盘设定运行模式和相关角度值,倒立摆运行角度和运行时间由液晶显示,具有较好人机界面。
系统设计结构简单,制作成本低,控制精度高。
关键字:STC12C5A60S2 倒立摆 PIDAbstractThis paper takes STC12C5A60S2 single chip as the control core,Through the real-time detection of the inverted pendulum's position and angle sensor is composed of a single chip computer calculation,Calculation of PID control algorithm,Control the speed of the DC motor,To achieve the dynamic balance of the inverted pendulum.At the same time the system can be set through the keyboard operation mode and related anglevalues.Inverted pendulum movement angle and running time by the liquid crystal display,With good man-machine interface.The system has the advantages of simple structure design,Low production cost,High control precision.Keyword: STC12C5A60S2 level inverted pendulum PID1 方案论证与比较1.1电机类型的论证与选择方案一:采用步进电机。
2013年全国电子设计大赛题目简易旋转倒立摆及控制装置(C题 )
2013年全国大学生电子设计竞赛试题参赛注意事项(1)9月4日8:00竞赛正式开始。
本科组参赛队只能在【本科组】题目中任选一题;高职高专组参赛队在【高职高专组】题目中任选一题,也可以选择【本科组】题目。
(2)参赛队认真填写《登记表》内容,填写好的《登记表》交赛场巡视员暂时保存。
(3)参赛者必须是有正式学籍的全日制在校本、专科学生,应出示能够证明参赛者学生身份的有效证件(如学生证)随时备查。
(4)每队严格限制3人,开赛后不得中途更换队员。
(5)竞赛期间,可使用各种图书资料和网络资源,但不得在学校指定竞赛场地外进行设计制作,不得以任何方式与他人交流,包括教师在内的非参赛队员必须回避,对违纪参赛队取消评审资格。
(6)9月7日20:00竞赛结束,上交设计报告、制作实物及《登记表》,由专人封存。
简易旋转倒立摆及控制装置(C题)【本科组】一、任务设计并制作一套简易旋转倒立摆及其控制装置。
旋转倒立摆的结构如图1所示。
电动机A固定在支架B上,通过转轴F驱动旋转臂C旋转。
摆杆E通过转轴D固定在旋转臂C的一端,当旋转臂C在电动机A驱动下作往复旋转运动时,带动摆杆E在垂直于旋转臂C的平面作自由旋转。
二、要求图1旋转倒立摆结构示意图1.基本要求(1)摆杆从处于自然下垂状态(摆角0°)开始,驱动电机带动旋转臂作往复旋转使摆杆摆动,并尽快使摆角达到或超过-60°~+60°;(2)从摆杆处于自然下垂状态开始,尽快增大摆杆的摆动幅度,直至完成圆周运动;(3)在摆杆处于自然下垂状态下,外力拉起摆杆至接近165°位置,外力撤除同时,启动控制旋转臂使摆杆保持倒立状态时间不少于5s;期间旋转臂的转动角度不大于90°。
2.发挥部分(1)从摆杆处于自然下垂状态开始,控制旋转臂作往复旋转运动,尽快使摆杆摆起倒立,保持倒立状态时间不少于10s;(2)在摆杆保持倒立状态下,施加干扰后摆杆能继续保持倒立或2s内恢复倒立状态;(3)在摆杆保持倒立状态的前提下,旋转臂作圆周运动,并尽快使单方向转过角度达到或超过360°;(4)其他。
2013年全国大学生电子设计竞赛 C题
2013年全国大学生电子设计竞赛简易旋转倒立摆及控制装置(C 题)【本科组】2013年9月4日简易旋转倒立摆及控制装置摘要:本作品采用了TI公司MSP430 单片机作为控制器,实现了简易旋转倒立控制系统。
本作品选择两相四线步进电机作为旋转倒立摆的驱动装置,通过精密导电塑料角位移传感器获取摆杆的角度,实现对摆杆E运动状态的检测,以此角位移传感器的测量值作为反馈量,通过PID算法控制步进电机的运动方向和单位时间内运动的步数,实现对摆杆E角度的控制以及倒立摆的起摆和倒立平衡。
本作品可以实现对E摆杆运动状态的检测、倒立摆、起摆以及倒立摆的倒立平衡控制,具有起摆速度快、倒立摆平衡状态稳定、抗干扰能力强等特点。
关键字:旋转倒立摆步进电机 PID算法Abstract:This paper describes a control based on TI's MSP430 microcontroller simple rotary inverted control system. The system uses the West An Jiusheng 57HS56 08 type two-phase four-wire stepper motor as the power source of the system. In WDS35D4 precision conductive plastic angular displacement sensor as the only sensor to realize the system E pendulum motion detection, and so the sensor feedback value as the amount of feedback through software algorithm to determine E pendulum motion by changing the stepper motor the steering and speed to control the state of motion of the pendulum E. Test results had showed that: the system can realize the E pendulum motion detection and control. And the system also has a simple structure, enabling strong, control and stability advantages.Keywords:Rotating balance handstand tepper motor angular displacement一:系统方案1.1 系统结构:本系统主要由以下几部分构成,包括:MSP430单片机、液晶显示模块、矩阵键盘模块、角位移传感器、步进电机驱动模块以及步进电机。
全国大学生电子设计大赛论文
2013年全国大学生电子设计竞赛简易旋转倒立摆及控制装置(C题)【1101003组】2013年9月7日简易旋转倒立摆及控制装置(C题)摘要本系统采用自制的简易旋转倒立摆及控制装置,以16 位单片机(STC89C51)作为旋转倒立摆的检测和控制核心,以额定电压12V的步进电机驱动,通过加速度传感器(ADXL345)转变的角度传感器测定摆杆角度变化来定位摆杆的位置。
系统采用角度传感器(ADXL345)探测在摆杆保持倒立状态的前提下,旋转臂作圆周运动前进;同时通过编码器及PID控制算法实现了步进电机的转速和转向进行调节,以准确找到平衡点位置。
控制器的设计是倒立摆系统的核心内容,主要用到典型的控制器设计理论有PID控制、根轨迹以及频率响应法、状态空间法、最优控制理论等。
本系统可在较短时间内完成摆杆从自然下垂状态,驱动电机带动旋转臂作往复旋转使摆杆摆动,寻找平衡点等任务。
关键词:角度传感器;旋转倒立摆;模糊控制;最优控制理论;目录1系统方案......................................................................................... 错误!未定义书签。
1.1电机方案的论证与选择 (1)1.2 控制系统方案的论证与选择 (2)1.3 角度测量方案的论证与选择 (2)2系统理论分析与计算 (2)2.1 角度检测模块的分析 (2)2.2 控制方法的理论 (3)2.3 设计思想理论分析 (4)2.4 理论计算 (4)3电路与程序设计 (6)3.1电路的设计 (6)3.1.1系统总体框图 (6)3.1.2 电机驱动模块设计 (7)3.1.3 角度传感器模块 (7)3.1.4电源模块 (7)3.2程序的设计 (7)3.2.1程序功能描述与设计思路 (7)3.2.2程序流程图 (8)4测试方案与测试结果 (8)4.1硬件测试 (8)4.2 测试条件与仪器 (9)4.3 测试结果 (9)4.3.1不同脉冲时间间隔对应速度测试 (9)4.3.2摆杆达到指定高度往复运动的时间测试 (10)4.3.3摆杆达到指定度数的测试 (10)4.3.4摆杆选择和配重平衡测试 (10)4.3.5摆杆完成圆周运动测试 (11)4.3.6基本功能(3)测试 (11)4.3.7测试分析与结论 (12)5结束语 (12)6参考文献 (12)附录1:电路原理图 (13)附录2:电机驱动原理图 (14)附录3:稳压模块原理图 (15)附录4:主程序 (16)附录5:角度传感器子程序 (18)简易旋转倒立摆及控制装置(C 题)【本科组】1系统方案本系统主要由系统模块、角度检测模块、电机驱动模块、电源模块组成。
2013电赛报告
2013年全国大学生电子设计竞赛设计报告题目名称:简易旋转倒立摆及控制装置【本科组C题】参赛队号:201302092013年9月7日2013年“瑞萨杯”全国大学生电子设计竞赛摘要:本系统以STC12C5A60S2单片机最小系统为核心,辅以角度传感器、姿态传感器、开关控制电路、LCD1602显示、电机驱动电路等组成。
该设计利用PWM 调制来控制旋转臂转速的变化,通过角度传感器和姿态传感器检测摆杆角度偏转信号,并将检测到的数值A/D转换后送入调速系统,经LCD1602显示屏进行显示。
也可通过拨码开关控制旋转臂的转速,从而改变摆杆的状态。
该系统实现了通过操作拨码开关控制旋转臂转速的大小,使摆杆状态按要求变化。
关键词:单片机最小系统角位移传感器 A/D转换2013年“瑞萨杯”全国大学生电子设计竞赛目录1.作品简介 (1)2.系统方案论证和比较 (1)2.1系统方案整体实验框图 (1)2.2方案论证与比较 (1)2.1.1输入模块选择 (1)2.1.2调制方式的选择 (2)2.1.3角度传感器的选择 (2)2.1.4显示系统的选择 (2)2.3理论分析与参数计算 (2)2.3.1控制电路 (2)2.3.2角度测量原理与控制算法 (3)3.电路与程序设计 (3)3.1硬件设计 (3)3.1.1角度传感器的设计 (3)3.2软件设计 (3)3.1.1软件主程序流程图 (3)3.1.2程序算法理论分析 (4)4.系统调试与结果分析 (5)4.1系统调试的方法与仪器 (5)4.2系统电路的调试 (5)4.2.1电机的性能测试 (5)4.2.2角度传感器的性能测试 (5)4.3注意事项及解决方案 (6)4.4调试结果分析与总结 (6)5.实验结果的分析与总结 (6)6.参考文献 (6)附录一:部分电路原理图 (1)附录二:程序源代码 (4)1.作品简介本次设计作品以单片机最小系统和角度传感器、姿态传感器为制作核心,同时运用A/D模数转换,PWM调制旋转臂转速、LED声光显示,拨码开关控制等,从摆杆方向上的角位移传感器接收到摆杆角度偏转的信号,经A/D模数转换后,LED显示器进行声光显示。
2013年全国大学生电子设计竞赛文档(倒立摆)
摘要本文介绍了以AVR mega328P单片机为控制核心,通过编码器得到系统变量,应用PID控制算法,步进电机调速对环形倒立摆进行控制,实现了倒立摆在一定的角度范围内动态倒立以及圆周运动。
同时可以通过键盘设定运行模式并且读出系统当前状态,具有较好人机界面。
经测试,本系统完成了题目所要求的各项基本指标,并达到了全部的发挥部分要求。
关键词:AVR mega328P 环形倒立摆 PIDAbstractThis paper introduces the AVR mega328P microcontroller core, obtained by the encoder system variables, the application of PID control algorithm, the stepper motor speed on the annular inverted pendulum control, to achieve the inverted pendulum in a certain range of angles and circular motion dynamic inverted . You can also set the operating mode via the keyboard and read the current state of the system and has good man-machine interface. After testing, the system completed all the required questions basic indicators, and reached all play a part requirements.Keywords: AVR mega328P annular inverted pendulum PID目录第一章系统方案论证与选择 (1)1.1系统结构 (1)1.2方案比较与选择 (1)1.2.1芯片控制模块 (1)1.2.2电机选择 (2)1.2.3电动机驱动调速模块 (2)1.2.4编码器选择 (3)1.2.5显示方案选择 (3)第二章理论分析与计算 (4)2.1 电动机选型 (4)2.2摆杆状态检测 (5)2.3驱动与控制算法 (7)2.3.1驱动 (7)2.3.2控制算法 (8)第三章机械与电路及程序设计 (9)3.1机械设计 (9)3.1.1 旋转臂杆与摆杆 (9)3.2电路设计 (9)3.2.1电源电路设计 (9)3.2.2电机驱动电路设计 (10)3.2.3键盘显示电路设计 (10)3.3程序结构设计 (12)第四章测试结果与分析 (15)第五章参考文献 (17)附录 A 主要元器件明细表 (18)附录 B 电路原理图 (19)附录 C 电路PCB图及实物图 (20)附录 D 系统设计程序代码 (23)第一章系统方案论证与选择1.1系统结构整个系统分为系统模块、编码器模块、电机驱动模块、电机模块、电源模块、键盘模块、显示模块。
全国电子设计大赛报告一等奖
【本科组】
摘要:
通过对该测控系统结构和特点的分析,结合现代控制技术设计理念实现了以微控制器MC9S12XS128系列单片机为核心的旋转倒立摆控制系统。通过采集的角度值与平衡位置进行比较,使用PD算法,从而达到控制电机的目的。其工作过程为:角位移传感器WDS35D通过对摆杆摆动过程中的信号采集然后经过A/D采样后反馈给主控制器。控制器根据角度传感器反馈信号进行PID数据处理,从而对电机的转动做出调整,进行可靠的闭环控制,使用按键调节P、D的值,同时由显示模块显示当前的P、D值。
关键字:
倒立摆、直流电机、MC9S12XS128单片机 、角位移传感器WDS35D、PD算法
第 1 页 共 16 页
20132013年全国大学生电子设计大赛
D、射频宽带放大器
一、任务 设计并制作一个射频宽带放大器。 二、要求 1.基本要求 (1)电压增益Av ≥20dB,输入电压有效值Ui ≤20mV。Av在0~ 20dB范围内可调。 (2)最大输出正弦波电压有效值Uo≥200mV,输出信号波形无明显失真。 (3)放大器BW-3dB的下限频率fL ≤0.3MHz,上限频率fH≥20MHz, 并要求在1MHz~15MHz频带内增益起伏≤1dB。 (4)放大器的输入阻抗 = 50,输出阻抗 = 50 。
三.说明 1.必须使用普通的单面覆铜板。 a.不得更换其它高电阻率的材料。 b.不得对铜箔表面进行改变电阻率的特殊镀层处理。 c.覆铜板表面的刻度自行绘制。 d.测试时以该刻度为准。 e.考虑到绘制刻度的油墨可能是绝缘的,此处不要求表笔接触刻度线条时也 能具有正确感应能力。 2.覆铜板到电路的连接应满足以下条件 a.只有铜箔四角可连接到电路,除此之外不应有其它连接点(表笔触点除 外)。 b.不得使用摄像头、磁感应等额外传感装置。 3.表笔可选用一般的散装万用表表笔。 4.电源供电必须为单12V供电,系统功耗以电流表显示为准。
F、简易红外光通信
要求设计并制作一个红外光通信装置。用红外发光管和红外光接收模块作为 收发器件,用来定向传输语音信号,传输距离为2m,接收的声音应无明显失 真。 增加一路数字信道,实时传输发射端环境温度,并能在接收端显示。语音信 号和数字信号能同时传输。 设计并制作一个红外光通信中继转发节点,以改变通信方向90°,延长通信 距离2 m,尽量减小中继转发节点供电电流。
表笔
15x10cm覆铜板 B (12x8cm) A (6x4cm)
X刻度
LCD
电流表
电路
12V电源
Y刻度
二.要求 基本要求: 1.指示功能: 表笔接触铜箔表面时电路接触应能给出 明确指示。 10分 2.坐标定位功能: 覆铜板表面自行绘制纵横坐标以及 6x4cm(高精度区A) 和12x8cm(一般精度区B)两个虚线框。显示表笔接触覆铜板的触点坐标值。 坐标值以预先绘制在铜箔表面的刻度为准。(共40分) 能显示左右位置; 10分 能显示四象限; 10分 能进行必要的坐标变换,显示坐标值;(可用列表法进行坐标变换) 10分 坐标精度达10mm; (误差大于10% 扣5分,大于20%不给分) 10分 扩展部分: 1.进一步提高坐标精度: 精量每提高2mm给5分,范围为区域A。(误差大于20 %不给计分) 10分
2013年全国大学生电子设计竞赛新疆赛区获奖名单
2013年全国大学生电子设计竞赛新疆赛区获奖名单本科组:序号参赛队学校参赛作品参赛队成员赛区奖项全国奖项1 新疆大学红外光通信装置(F题)王伟、吴金芳、梁亚辉区一等奖全国二等奖2 新疆大学单相AC-DC变换电路(A题)许伟义、温英英、王厚华区一等奖3 新疆大学单相AC-DC变换电路(A题)于海涛、杨晓、郭琰区一等奖全国二等奖4 新疆大学简易旋转倒立摆及控制装置(C题)温煌璐、徐华迎、陈朋云区一等奖5 新疆师范大学红外光通信装置(F题)宋森森、韩雪、万如玥区二等奖6 新疆师范大学红外光通信装置(F题)朱迪迪、刘坤仑、廖锦辉区二等奖7 喀什师范学院红外光通信装置(F题)李腾飞、王杰、杨同心区二等奖8 喀什师范学院红外光通信装置(F题)牛磊、李硕、李丹区二等奖9 新疆大学手写绘图板(G题)熊秋峰、王心雨、王强军区二等奖10 新疆大学简易旋转倒立摆及控制装置(C题)张振、张春阳、陈宇星区二等奖11 新疆大学红外光通信装置(F题)李娜、唐小明、张亚慧区二等奖12 喀什师范学院简易旋转倒立摆及控制装置(C题)张涛、王洋洋、袁军慧区三等奖13 新疆大学简易频率特性测试仪(E题)何小敏、高雅洁、杨刘勤区三等奖14 新疆大学简易旋转倒立摆及控制装置(C题)崔亚笛、吾兰.努鲁别克、王韦龙区三等奖15 新疆农业大学单相AC-DC变换电路(A题)王洋洋、胡毅、鲁朋朋区三等奖16 新疆大学红外光通信装置(F题)李林、段才伟、布阿加古丽区三等奖17 新疆大学简易频率特性测试仪(E题)张腾月、陈琳琳、祖丽皮亚·艾尼区三等奖18 新疆大学简易旋转倒立摆及控制装置(C题)邵怡敏、热孜亚·依米提、汪露瑶区三等奖19 新疆大学简易旋转倒立摆及控制装置(C题)于鸿柏、秦淦、连苗苗区三等奖20 新疆大学简易频率特性测试仪(E题)王萌、麦麦提江.托合提、杨晓婷区三等奖21 新疆大学简易旋转倒立摆及控制装置(C题)马驰、热孜亚.百克尔、杨石坡区三等奖22 新疆大学单相AC-DC变换电路(A题)苏剑、郭西峰、南晓丽区三等奖23 新疆工程学院红外光通信装置(F题)杨滨、陈文、张芳区三等奖24 石河子大学红外光通信装置(F题)庄武、银智、段维俊区三等奖25 塔里木大学单相AC-DC变换电路(A题)何永峰、李祥区三等奖26 塔里木大学单相AC-DC变换电路(A题)彭利辉、刘殊奇、陈文强区三等奖高职高专组:序号学校名称参赛作品参赛队员赛区奖项全国奖项1 新疆工程学院直流稳压电源及漏电保护装置(L题)满玉新、常永兴、白青山区二等奖2 新疆工程学院电磁控制运动装置(J题)何国福、杨爱龙、谭运峰区三等奖。
2013年电子大赛获奖名单
附录1
2013年全国大学生电子设计竞赛山西赛区国家奖获奖名单
本届大赛题目:
A题:单相AC-DC变换电路(本科组)
B题:四旋翼自主飞行器(本科组)
C题:简易旋转倒立摆及控制装置(本科组)
D题:射频宽带放大器(本科组)
E题:简易频率特性测试仪(本科组)
F题:红外光通信装置(本科组)
G题:手写绘图板(本科组)
J题:电磁控制运动装置(专科组)
K题:简易照明线路探测仪(专科组)
L题:直流稳压电源及漏电保护装置(专科组)
附录2
2013年全国大学生电子设计竞赛山西赛区参赛队获奖情况
(本科组)
附录3
2013年全国大学生电子设计竞赛山西赛区参赛队获奖情况
(高职高专组)。
2013年全国大学生电子设计竞赛(C题)
2013年全国大学生电子设计竞赛简易旋转倒立摆及控制装置(C题)2013年9月7日摘要旋转倒立摆是一个非线性、强耦合、多变量和自然不稳定系统。
通过它能有效地反映控制过程中诸如镇定性、鲁棒性、随动性以及跟踪等多种关键问题,是检验各种控制理论的理想模型。
对倒立摆的研究不仅具有深远的理论意义,而且在航天科技和机器人学领域中也有现实指导性意义。
本作品是基于STC89C52单片机作为核心控制器,以L298N作为驱动电路芯片,利用直流电机PWM调速原理,控制旋转臂的转速,从而控制摆杆的频率和振幅,当二者共振时就实现了摆杆在某一固定角度往复运动,能够实现倒立摆的基本功能。
利用加速度传感器获取摆杆的状态,实现摆杆在固定角度摆动,最终实现在竖直方向倒立,即小范围内摆动而不倒下。
关键词:旋转倒立摆,STC89C52,PWM调速,共振目录1系统方案------------------------------------------------ 1 1.1 设计要求 ------------------------------------------1 1.1.1 任务----------------------------------------1 1.1.2 要求----------------------------------------2 1.1.3 说明----------------------------------------2 1.2 总体设计方案---------------------------------------3 1.2.1 设计思路-------------------------------------3 1.2.2 方案论证与比较-------------------------------5 2单元硬件电路设计-----------------------------------------6 2.1 单片机控制系统设计---------------------------------7 2.1.1 STC89C52最小系统-----------------------------6 2.1.2 AD采集模块电路设计---------------------------6 2.1.3 显示模块电路设计-----------------------------7 2.2 加速度传感器的应用---------------------------------7 2.2.1 MMA7361L原理及应用---------------------------7 2.3 电机驱动模块---------------------------------------7 2.3.1 L298N驱动电路设计----------------------------8 3程序结构与设计-------------------------------------------8 3.1 程序流程图-----------------------------------------9 3.1.1 主程序流程图及算法分析-----------------------9 3.1.2 显示程序设计--------------------------------10 4系统测试------------------------------------------------11 4.1 实验摆角测试-------------------------------------114.2 实验结果分析-----------------------------------11 5参考文献----------------------------------------------12 附录1 总程序附录2 电路原理图简易旋转倒立摆及控制装置(C题)【XX组】1系统方案本系统主要由电机驱动模块、显示模块、加速度传感器模块,下面详细介绍各模块的选择与特点。
简易旋转倒立摆及控制装置
简易旋转倒立摆及控制装置Hessen was revised in January 2021简易旋转倒立摆及控制装置(C 题)参赛队员姓名:指导教师姓名参赛队编号:参赛学校:简易旋转倒立摆及控制装置(C 题)摘要:简易旋转倒立摆及控制装置是复杂的高阶闭环控制系统,控制复杂度较高。
系统以飞思卡尔MK10DN512ZVLL10单片机为核心,以Mini1024j编码器为角度传感器,配合直流电机组成旋转倒立摆系统,经过充分的系统建模,并考虑单片机运算速度,最终确定采用改进的“模糊PID”控制算法,通过软件控制,可以满足基本部分要求和发挥部分要求。
系统的突出特点在于充分的力学理论分析,通过力学建模和控制系统仿真,获得了大量的定性分析结果,为系统的建立提供了很好的理论依据。
关键字:倒立摆模糊PID 力学建模状态机一、系统方案1. 系统方案论证与选择倒立摆系统是一个复杂的快速、非线性、多变量、强耦合、自然不稳定的系统。
对于该控制系统而言,合适的控制算法、精确的反馈信号、适合的电机驱动等都对系统的稳定性、控制精度及抗干扰性起重要作用。
针对上述问题,分别设计多种不同的解决方案,并进行选择论证。
(1)控制算法选择方案一:采用传统PID控制算法。
传统PID控制算法是运用反馈求和后的误差信号的比例(0阶位置项)、积分(误差累积项)、微分(1阶速度项)进行系统校正的一种控制算法。
可用于被控对象的结构和参数不能完全掌握,或得不到的精确数学模型的情况,控制器的结构和参数必须依靠经验和反复调试来确定。
方案二:采用模糊PID控制算法模糊PID控制算法根据PID控制器的三个参数与偏差e和偏差的变化ec之间的模糊关系,在运行时不断检测e及ec,通过事先确定的关系,利用模糊推理的方法,在线修改PID控制器的三个参数,让PID参数可自整定。
将模糊控制算法与传统PID控制算法巧妙结合,不但具有PID控制算法精度高等优点,又兼有模糊控制灵活、适应性强的优点。
简易旋转倒立摆及控制装置
第 1 2期
长
春
大
学
学
报
Vo 1 . 23 No .1 2 De c.201 3
2 0 1 3年 1 2月
J 0U RNA L 0F C HA NGC HU N U NI V ER S I T Y
简 易旋 转 倒 立 摆 及 控制 装 置
王 桔
( 长春大学
加测 速装 置 , 配 上控 制器 。通过 测速装 置输 出 的电压 和控 制 器给定 的 电压 二者 相 比 , 进行 自动 改变 电机 的端
收 稿 日期 : 2 0 1 3 - 0 9 — 1 6
作者简介 : 王桔 ( 1 9 8 0 一 ) , 女, 吉林长春人 , 讲师 , 硕士 , 主要从事电子与通信工程方 面的研究 。
驱动 4 6 V、 2 A一 下 的 电机 。
3 . 1 电源 与驱 动 电路
直流力矩电机电压的驱动和控制中, 半导体功率: 器件( L M 2 9 8 ) 在使用上有两种方式 : 即开关驱动方式和 线性放大驱动方式 , 线性放大驱动方式中半导体功率器件工作在线性 区里。在开关驱动方式 中半导体功率
关 键词 : 旋转式倒立摆 ; 状 态反 馈 ; 稳 定性
中图分类号 : T P 2 7 5
文献标志码 : A
文章编号 : 1 0 0 9— 3 9 0 7 ( 2 0 1 3 ) 1 2—1 5 3 8— 0 3
_ ___—_—,一
r— —————’_1
—_-_。一
r—
— —’—1
器 件工 作在 开关 状态 , 电动机 的 电压 用 P WM 来控 制 , 进 而实 现对 电动 机 的转速进 行控 制 。 电动机 的绕 组两 端 的 电压 平均 值 u为 :
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013年全国大学生电子设计竞赛试题
参赛注意事项
(1)9月4日8:00竞赛正式开始。
本科组参赛队只能在【本科组】题目中任选一题;高职高
专组参赛队在【高职高专组】题目中任选一题,也可以选择【本科组】题目。
(2)参赛队认真填写《登记表》内容,填写好的《登记表》交赛场巡视员暂时保存。
(3)参赛者必须是有正式学籍的全日制在校本、专科学生,应出示能够证明参赛者学生身份
的有效证件(如学生证)随时备查。
(4)每队严格限制3人,开赛后不得中途更换队员。
(5)竞赛期间,可使用各种图书资料和网络资源,但不得在学校指定竞赛场地外进行设计制
作,不得以任何方式与他人交流,包括教师在内的非参赛队员必须迴避,对违纪参赛队取消评审资格。
(6)9月7日20:00竞赛结束,上交设计报告、制作实物及《登记表》,由专人封存。
简易旋转倒立摆及控制装置(C 题 )
【本科组】
一、任务
设计并制作一套简易旋转倒立摆及其控制装置。
旋转倒立摆的结构如图1所示。
电动机A 固定在支架B 上,通过转轴F 驱动旋转臂C 旋转。
摆杆E 通过转轴D 固定在旋转臂C 的一端,当旋转臂C 在电动机A 驱动下作往复旋转运动时,带动摆杆E 在垂直于旋转臂C 的平面作自由旋转。
二、要求
1.基本要求
(1)摆杆从处于自然下垂状态(摆角0°)开始,驱动电机带动旋转臂作
往复旋转使摆杆摆动,并尽快使摆角达到或超过-60°~ +60°; (2)从摆杆处于自然下垂状态开始,尽快增大摆杆的摆动幅度,直至完成
圆周运动;
(3)在摆杆处于自然下垂状态下,外力拉起摆杆至接近165°位置,外力
撤除同时,启动控制旋转臂使摆杆保持倒立状态时间不少于5s ;期间旋转臂的转动角度不大于90°。
图1 旋转倒立摆结构示意图
2.发挥部分
(1)从摆杆处于自然下垂状态开始,控制旋转臂作往复旋转运动,尽快使摆杆摆起倒立,保持倒立状态时间不少于10s;
(2)在摆杆保持倒立状态下,施加干扰后摆杆能继续保持倒立或2s内恢复倒立状态;
(3)在摆杆保持倒立状态的前提下,旋转臂作圆周运动,并尽快使单方向转过角度达到或超过360°;
(4)其他。
三、说明
1.旋转倒立摆机械部分必须自制,结构要求如下:硬质摆杆E通过转轴D连接在旋转臂C边缘,且距旋转臂C轴心距离为20c m±5cm;摆杆的横截面为圆形或正方形,直径或边长不超过1cm,长度在15c m±5cm范围内;允许使用传感器检测摆杆的状态,但不得影响摆杆的转动灵活性;图1中支架B的形状仅作参考,其余未作规定的可自行设计结构;电动机自行选型。
2.摆杆要能够在垂直平面灵活旋转,检验方法如下:将摆杆拉起至水平位置后松开,摆杆至少能够自由摆动3个来回。
3.除电动机A之外,装置中不得有
其他动力部件。
4.摆杆自然下垂状态是指摆角为
0°位置,见图2。
5.摆杆倒立状态是指摆杆在-165°
至165°范围内。
6.基本要求(1)、(2)中,超过30s
视为失败;发挥部分(1)超过90s
视为失败;发挥部分(3)超过3
分钟即视为失败;以上各项,完
成时间越短越好。
图2.摆杆位置示意图
7.摆杆倒立时施加干扰的方法是,以15cm长细绳栓一只5克砝码,在摆杆上方将砝码拉起15°~45°,释放后用砝码沿摆杆摆动的切线方向撞击摆杆上端1~2cm处;以抗扰动能力强弱判定成绩。
8.测试时,将在摆杆后1~2cm处固定一如图2所示轻质量角器,以方便观察摆杆的旋转角度。
四、评分标准。