终极版电子大赛说明书.docx
- 文档编号:2532352
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:27
- 大小:567.37KB
终极版电子大赛说明书.docx
《终极版电子大赛说明书.docx》由会员分享,可在线阅读,更多相关《终极版电子大赛说明书.docx(27页珍藏版)》请在冰点文库上搜索。
终极版电子大赛说明书
2013年全国大学生电子设计竞赛
简易旋转倒立摆(c题)
【本科组】
2013年9月6日
摘要
本文介绍了以51单片机为控制核心,通过陀螺仪传感器、直流伺服电机得到系统变量,应用PID控制算法,PWM电机调速对一级倒立摆进行控制,实现倒立摆在一定的角度范围内动态倒立。
同时可以通过键盘设定运行模式和相关角度值、液晶显示摆角和运行时间,具有较好人机界面。
系统设计结构简单,制作成本低,控制精度较高,具有较高的性价比。
关键词:
单片机;一级倒立摆;PID
Abstract:
Withthe51single-chipmicrocomputerasthecorehasbeenintroducedinthispaper,throughtheAnglesensor,dcservomotorsystemvariables,usingPIDcontrolalgorithm,PWMmotorspeedtocontrollevelinvertedpendulum,realizestandincertainAnglerangeofdynamicbalance.AtthesametimecanbesetbykeyboardoperationmodeandtherelevantAnglevalue,liquidcrystaldisplay(LCD)angularandrunningtime,hasagoodman-machineinterface.Systemdesignhassimplestructure,lowproductioncost,highcontrolprecision,hasthehighcostperformance.
Keywords:
singlechipmicrocomputer;Level1invertedpendulum;ThePID.
目录
1系统方案1
1.1电机的论证与选择1
1.2传感器的论证与选择1
1.3控制系统的论证与选择2
2系统理论分析与计算2
2.1PID控制的分析2
2.1.1PID控制简介2
2.1.2PID控制各部分的特点2
2.1.3PID控制器的参数整定3
2.2PID算法的计算3
2.2.13
2.2.23
2.2.34
2.3倒立摆模型的基本计算4
2.3.1定义实验变量4
2.3.2对系统受力分析5
2.3.3仿真分析6
3电路与程序设计8
3.1电路的设计8
3.1.1系统总体框图8
3.1.2PID子系统框图与电路原理图8
3.1.3电源9
3.2程序的设计9
3.2.1程序功能描述与设计思路12
3.2.2程序流程图13
4测试方案与测试结果13
4.1测试方案13
4.2测试条件与仪器14
4.3测试结果及分析14
4.3.1测试结果(数据)14
4.3.2测试分析与结论14
附录1:
电路原理图16
附录2:
源程序17
简易旋转倒立摆(c题)
【本科组】
1系统方案
本系统主要由控制模块、电机模块、传感器模块、电源模块组成,下面分别论证这几个模块的选择。
1.1电机的论证与选择
方案一:
采用步进电机作为该系统的驱动电机。
由于其转过的角速度可以精确的定位,可以实现旋转角度的精确定位,虽然采用步进电机有诸多优点,步进电机的输出力矩较低,随转速的升高而下降,且在较高转速时会急速下降,其转速较低,不适用于对于倒立摆等有一定速度要求的系统。
方案二:
舵机由接收机发出讯号给舵机,经由电路板上的IC判断转动方向,再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回讯号,判断是否已经到达定位,其精度不能达到倒立摆要求,且结构复杂,不易控制。
方案三:
直流电机的控制方法比较简单,只需给电机的两端控制线加上适当的电压即可使电机转动起来,电压越高则转速越高。
对于直流电机的速度调节,可以采用改变电压的方法,也可采用PWM调速方法。
PWM调速就是使加在直流电机两端的电压为方波形式,通过改变方波的占空比,实现对电机转速的调节。
综合以上三种方案,选择方案三使用直流电机作为驱动电机。
1.2传感器的论证与选择
方案一:
角度传感器采用特殊形状的转子和线绕线圈,模拟线性可变差动传感器(LVDT)的线性位移,有较高的可靠性和性能,角度传感器也有非绝对编码,是增量输出的,如果没有起始脉冲专门信道,就要用自己外加初始定位传感器,一般用红外的标准产品,精度比较低。
方案二:
线绕式电位仪这种位移传感器在私服系统中用作位移反馈原件,其结构简单输出信号大,使用方便,价格低廉,但过大的阶跃电压会引起系统震荡,因此在电位器的制作中必须尽量减小每匝的电阻值,且易磨损。
方案三:
陀螺仪作为一种惯性测量器件,是惯性导航,惯性制导,惯性测量系统的核心部件,是一个角速度检测器件,以模拟的为例,输出电压的大小和角速度成比例,把AD采集到的离散角速度信号,经过离散时间积分,就得到了角度,其功耗低,漂移小,精度高,线性度好。
综合以上三种方案,选择方案三。
1.3控制系统的论证与选择
方案一:
以AVR单片机为平台,可利用118条指令,此单片较复杂,运行速度更快,采用双总线方式工作,适合更加复杂的运算环境,但是本系统运算相对简单,运用此单片机浪费资源。
方案二:
以51单片机为平台,它从内部的硬件到软件有一套完整的按位操作系统,其功能十分完备。
它的I/O设置和引脚使用非常简单,运行速度快,应用广泛,体积小,成本低廉。
综合以上考虑采用方案二。
2系统理论分析与计算
2.1PID控制的分析
2.1.1PID控制简介
PID控制器是根据系统的误差,利用误差的比例、积分、微分三个环节的不同组合计算出控制量。
其中广义被控对象包括调节阀、被控对象和测量变送元件。
PID控制的基本组成都非常简单,其优点包括:
适应性强、鲁棒性强以及对模型依赖少。
目前,PID控制及其控制器或智能PID控制器产品已经很多,并在工程中得到了广泛的应用,其中PID控制器参数的自动调整是通过智能化调整或自校正、自适应算法来实现。
包括利用PID控制实现压力、温度、流量、液位控制器以及能实现PID控制功能的可编程控制器(PLC),还有可实现PID控制的PC系统等等。
而可编程控制器(PLC)则是利用其闭环控制模块来实现PID控制。
2.1.2PID控制各部分的特点
PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。
1、比例(P)控制
比例控制是一种最简单的控制方式。
其控制器的输出与输入误差信号成比例关系。
当仅有比例控制时系统输出存在稳态误差。
2、积分(I)控制
在积分控制中,控制器的输出与输入误差信号的积分成正比关系。
对一个自动控制系统,如果在进入稳态后存在稳态误差,为了消除稳态误差,在控制器中必须引入“积分项”。
积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。
这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。
因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。
3、微分(D)控制
在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。
自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。
在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。
所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。
2.1.3PID控制器的参数整定
PID控制器的参数整定是控制系统设计的核心内容。
它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。
PID控制器参数整定的方法很多,概括起来有两大类:
一是理论计算整定法。
它主要是依据系统的数学模型,经过理论计算确定控制器参数。
二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。
PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。
通常一般采用的是临界比例法。
利用临界比例法进行PID控制器参数的整定步骤如下:
(1)首先预选择一个足够短的采样周期让系统工作;
(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;(3)在一定的控制度下通过公式计算得到PID控制器的参数。
2.2PID算法的计算
2.2.1PID算法的确立
因为倒立摆是一个绝对不稳定的系统,为使其保持稳定并且可以承受一定的干扰,需要给系统设计控制器,该系统为闭环控制系统,故可采用PID控制算法。
2.2.2PID算法基本原理
在模拟控制系统中,控制器最常用的控制方法是PID控制,PID控制系统原理框图如图1所示,系统由PID控制器和被控对象组成。
图1常规PID控制系统原理框图
2.2.3PID算法的理论计算
PID控制器是一种线性控制器,它根据给定值rin(t)与实际输出值yout(t)构成控制偏差:
error(t)=rin(t)-yout(t)
简单说来,PID控制器各教正环节的作用如下:
(1)比例环节:
成比例的反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。
(2)积分环节:
主要用于消除静差,提高系统的无差度。
积分作用的强弱取决于积分时间常数IT,IT越大,积分作用越弱,反之则越强。
(3)微分环节:
反映偏差信号的变化趋势(变化速率),并能在偏差信号变的太大之前,在系统中引入一个有效的修正信号,从而加快系统的动作速度,减少调节时间。
2.3倒立摆模型的基本计算
2.3.1定义实验变量
在忽略了空气流动,各种摩擦之后,可将倒立摆系统抽象成小车和匀质杆组成的系统,如下所示:
图2小车和匀质杆运动系统
我们在实验中定义如下变量:
M小车质量
M摆杆质量
b小车摩擦系数
1白干转动轴心到杆质心的长度
I摆杆惯量
F加在小车上的力
X小车位置
k摆杆与垂直向上的夹角
摆杆与垂直向下的夹角
2.3.2对系统受力分析
图3小车受力图
分析小车水平方向所受的合力,可以得到等式:
由摆杆水平方向的受力进行分析可以得到下面等式:
(1)
把这个等式带入上式中,就得到系统的第一个运动方程:
(M+m)x+bx+ml
cos
-ml
sin
=F
(2)
由摆杆垂直方向上的合理进行分析,可以得到下列方程:
(3)
力矩平衡方程如下:
2.3.3仿真分析
仿真模型如下图所示:
图4仿真原理图
(1)Q=[1000;0000;0010;0000],R=1.33,由MATLAB求得最优状态反馈矩阵为:
K=[-0.8671-1.796116.86063.1490]
Q=[1000;0000;0010;0000],R=0.01,由MATLAB求得最优状态反馈矩阵为:
K=[-0.2742-0.95215.32592.8138]
(3)Q=[0.1000;0000;000.10;0000],R=1.33,由MATLAB求得最优状态反馈矩阵为:
K=[-0.2742-0.952115.32592.8138]
(4)Q=[0.1000;0000;000.10;0000],R=100,由MATLAB求得最优状态反馈矩阵为:
K=[-0.0316-0.360314.22392.5693]
测得仿真图如下:
图5仿真效果图
利用Matlab软件中Simulink对倒立摆的运动进行仿真。
经过多次仿真试凑,可以使系统能够准确地跟踪阶跃输入信号,摆杆的角度的超调量足够小,稳态误差很小、上升时间与调整时间也比较短。
Q和R矩阵用来平衡系统对输入量和状态量的感应程度,通过调整矩阵Q和R来获得满意的响应效果。
当R增大时,各相应曲线达到稳态所需的时间变长;Q增大时,各相应曲线达到稳态所需的时间变短。
3电路与程序设计
3.1电路的设计
3.1.1系统总体框图
系统总体框图如图6所示,系统总体框图
图6系统总体框图
3.1.2PID子系统框图与电路原理图
1、PID子系统框图
图7子系统框图
2、PID子系统电路、
图8子系统电路图
3.1.3电源
电源由变压部分、滤波部分、稳压部分组成。
为整个系统提供
5V或者
12V电压,确保电路的正常稳定工作。
这部分电路比较简单,都采用三端稳压管实现,故不作详述。
3.2程序的设计
#include
#include
#include
#include
typedefunsignedcharuchar;
typedefunsignedshortushort;
typedefunsignedintuint;
#defineDataPortP0//LCD1602数据端口
sbitSCL=P2^6;//IIC时钟引脚定义
sbitSDA=P2^7;//IIC数据引脚定义
sbitLCM_RS=P2^0;//LCD1602命令端口
sbitLCM_RW=P2^1;//LCD1602命令端口
sbitLCM_EN=P2^2;//LCD1602命令端口
#defineSMPLRT_DIV0x19//陀螺仪采样率,典型值:
0x07(125Hz)
#defineCONFIG0x1A//低通滤波频率,典型值:
0x06(5Hz)
#defineGYRO_CONFIG0x1B//陀螺仪自检及测量范围,典型值:
0x18(不自检,2000deg/s)
#defineACCEL_CONFIG0x1C//加速计自检、测量范围及高通滤波频率,典型值:
0x01(不自检,2G,5Hz)
#defineGYRO_XOUT_H0x43
#defineGYRO_XOUT_L0x44
#defineGYRO_YOUT_H0x45
#defineGYRO_YOUT_L0x46
#defineGYRO_ZOUT_H0x47
#defineGYRO_ZOUT_L0x48
#definePWR_MGMT_10x6B//电源管理,典型值:
0x00(正常启用)
#defineWHO_AM_I0x75//IIC地址寄存器(默认数值0x68,只读)
#defineSlaveAddress0xD0//IIC写入时的地址字节数据,+1为读取
uchardis[4];//显示数字(-511至512)的字符数组
intdis_data;//变量
//intTemperature,Temp_h,Temp_l;//温度及高低位数据
voiddelay(unsignedintk);//延时
//LCD相关函数
voidInitLcd();//初始化lcd1602
voidlcd_printf(uchar*s,inttemp_data);
voidWriteDataLCM(uchardataW);//LCD数据
voidWriteCommandLCM(ucharCMD,ucharAttribc);//LCD指令
voidDisplayOneChar(ucharX,ucharY,ucharDData);//显示一个字符
voidDisplayListChar(ucharX,ucharY,uchar*DData,L);//显示字符串
//MPU6050操作函数
voidInitMPU6050();//初始化
voiddisplay_ACCEL_x();
voiddisplay_ACCEL_y();
voiddisplay_ACCEL_z();
ucharSingle_ReadI2C(ucharREG_Address);//读取I2C数据
voidSingle_WriteI2C(ucharREG_Address,ucharREG_data);//向I2C写入数据
voidlcd_printf(uchar*s,inttemp_data)
{
if(temp_data<0)
{
temp_data=-temp_data;
*s='-';
}
else*s='';
*++s=temp_data/100+0x30;
temp_data=temp_data%100;//取余运算
*++s=temp_data/10+0x30;
temp_data=temp_data%10;//取余运算
*++s=temp_data+0x30;
}
voiddelay(unsignedintk)
{
unsignedinti,j;
for(i=0;i { for(j=0;j<2145;j++); } } voidInitLcd() { WriteCommandLCM(0x38,1); delay (1); WriteCommandLCM(0x08,1); delay (1); WriteCommandLCM(0x01,1); delay (1); WriteCommandLCM(0x06,1); delay (1); WriteCommandLCM(0x0c,1); delay (1); DisplayOneChar(0,0,'A'); delay (1); DisplayOneChar(0,1,'G') } { delay(500);//上电延时 InitLcd();//液晶初始化 delay (1);delay (1); InitMPU6050();//初始化MPU6050 delay(150); while (1) { Display10BitData(GetData(ACCEL_XOUT_H),2,0);//显示X轴加速度 Display10BitData(GetData(ACCEL_YOUT_H),7,0);//显示Y轴加速度 Display10BitData(GetData(ACCEL_ZOUT_H),12,0);//显示Z轴加速度 Display10BitData(GetData(GYRO_XOUT_H),2,1);//显示X轴角速度 Display10BitData(GetData(GYRO_YOUT_H),7,1);//显示Y轴角速度 Display10BitData(GetData(GYRO_ZOUT_H),12,1);//显示Z轴角速度 delay(500); }; 3.2.1程序功能描述与设计思路 1、程序功能描述 根据题目要求软件部分主要实现键盘的设置和显示。 (1)键盘实现功能: 设置频率值、频段、电压值以及设置输出信号类型。 (2)显示部分: 显示电压值、频段、步进值、信号类型、频率。 2、程序设计思路 软件系统包括DSP和PC另个部分,PC软件编程VC++6.0,控制周期是10ms,界面上的显示刷新周期是50ms,DSP软件编程利用cc编辑器。 联机调试时由DSP独立进行控制,此时,DSP仍然可以利用串行通讯接口将实时控制数据发送到PC中,用它用作测试、分析运行数据。 3.2.2程序流程图 图9程序流程图 4测试方案与测试结果 4.1测试方案 1、硬测试件 以51单片机控制器为核心器件,具有强大的数据处理功能和丰富的片内外设模块。 能够独立执行实时控制PID算法。 其主要的性能指标如下: 1)具有可编程中断系统、事件管理模块、看门狗电路及基于扫描的仿真接口。 2)12路比较/脉冲调宽(PWM)输出,直接针对电机控制系统设计。 2.20V直流稳压电源由集成电路提供,输出电流可达1.5A,5V直流电源有集成电路51提供。 3.电动机驱动部分采用PWM控制脉冲调节速度。 2、软件仿真测试 1.KEIL软件编程语言 2.控制周期是10ms,界面上的显示刷新周期是50ms. 3.提供以下的运行方式: 1)联机调试方式: 由51单片机进行控制,利用PID算法程序控制PWM脉冲调节电机转速。 4.具有良好的人-机界面,可以很方便的进行算法调试。 3、硬件软件联调 利用KEIL软件编程,51单片机控制电机,电机转动带动旋转臂,通过PID算法、PWM脉冲调节控制电机转速,从而摆杆有不同的速度,旋转的角度就不同。 4.2测试条件与仪器 测试条件: 检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。 测试仪器: 高精度的数字毫伏表,模拟示波器,数字示波器,数字万用表,指针式万用表。 4.3测试结果及分析 4.3.1测试结果(数据) 表1测试数据 第一次 第二次 第三次 设定角度(º) 60 120 45 过设定角度时间(s) 4 3.9 3.3 停摆时间(s) 8.1 8.5 7.3 动态倒立时间(s) 8.8 7.9 8.7 过水平面时间(s) 4.4 4.6 5.0 动态倒立时间(s) 8.6 7.7 8.3 4.3.2测试分析与结论 根据上述测试数据,测得过设定角度时间、停摆时间、动态倒立时间、过水平面时间,可以得出以下结论: 系统总体上达到较好的性能。 倒立摆能够实现动态倒立,且运行的时间误差在允许范围内。 倒立摆运行性能较好,制作成本低,性价比较高。 倒立摆控制的误差主要来源于直流伺服电机、角度传感器和倒立摆机械结构。 直流伺服电机在低速运动时,控制存在死区,低脉宽时电机不运动。 陀螺仪传感器由精密电位器改制,存在角度死区,精度不足。 因此,采用具有更好启动、制动和调速特性直流电机、精度更高的角度陀螺仪传感器改进硬件结构,以消除控制误差,使控制精度更高。 综上所述,本设计达到设计要求。 附录1: 电路原理图 图10MCU最小模块系统 图11直流电机电路图 图12陀螺仪电路图 附录2: 源程序 #include #include #include #include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 终极 电子 大赛 说明书