收藏 分享(赏)

2013简易旋转倒立摆详解.docx

上传人:weiwoduzun 文档编号:2422966 上传时间:2018-09-15 格式:DOCX 页数:16 大小:501.91KB
下载 相关 举报
2013简易旋转倒立摆详解.docx_第1页
第1页 / 共16页
2013简易旋转倒立摆详解.docx_第2页
第2页 / 共16页
2013简易旋转倒立摆详解.docx_第3页
第3页 / 共16页
2013简易旋转倒立摆详解.docx_第4页
第4页 / 共16页
2013简易旋转倒立摆详解.docx_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、1一方案论证与比较1.1.主控方案的选择1.1.1方案一 STC89C52 单片机STC89C52 是一种带 8K字节闪烁可编程可擦除只读存储器的低电压,高性能 COMOS8 的微处理器,该器件采用 STC高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。满足题目要求。图一 STC 控制方案1.2.角度传感器的选择1.2.1方案一:ADXL345角度传感器ADXL345采用 14引脚塑料封装,具有 3mm x 5mm x 1mm的小巧纤薄的外形尺寸。具有高分辨率(3.9 mg/LSB) ,能够测量约 0.25的倾角变化。使用 ADXL345 等数字输出加速度计

2、时,可以无需进行模数转换,从而可以节省系统成本和电路板面积。2图二 ADXL345角度传感器1.3.倾斜角检测方案比较方案二:双轴倾斜计算与单轴解决方案一样,x 轴检测到的加速度与倾斜角的正弦具有比例关系,同时,与 x轴垂直的 y轴加速度与倾斜角的余弦成比例。随着某个轴的增量灵敏度的降低,另一轴的灵敏度则会增加。采用第二轴的另一个优势是能够对各个向量进行分区,并能够在整个 360度内测量角度。故本设计采用此方案。1.4.倒立摆系统控制算法的选择方案一:PID 控制通过对倒立摆系统物理模型进行力学分析,建立其动力学模型,设计出PID控制器实现稳定控制。PID 参数的选择通常采用尝试法进行,但 P

3、ID方案比较成熟,可以使用。二理论分析与计算2.1双轴倾斜计算(1)恒定灵敏度x轴检测到的加速度与倾斜角的正弦具有比例关系,同时,与 x轴垂直的 y轴加速度与倾斜角的余弦成比例(如图 1所示) 。随着某个轴的增量灵敏度的降低,另一轴的灵敏度则会增加。3图 3 双轴倾斜检测中的输出加速度与倾斜角将测得加速度转换为倾斜角的一种方法是计算 x轴的反正弦与 y轴的反余弦。然而,一种更简单、更有效的方法是使用来自以下等式的两个值之比:)(tantansilg,1,AOUTYXTYOUX)()( )(其中倾斜角 单位为弧度。不同于单轴,利用两个轴之比来确定倾斜角的方法极大地增加了确定增量灵敏度的难度。由于

4、一个轴的增量灵敏度会随着另一轴的减少而增加,因此两者的最终结果是一种几乎恒定的有效增量灵敏度。(2)对重心面对齐度的依赖行降低使用双轴或多轴的一个重要优势在于,在单轴解决方案下,除 x轴以外的任何轴发生倾斜都会造成重大误差,与此不同,在使用第二轴时,即使第三轴存在倾斜时也可测得精确的值。这是因为有效增量灵敏度与目标轴重力的和方根(RSS)值具有比例关系。当重力完全处于 x y平面之内时,这些轴上检测到的加速度和方根的理想值等于 1g。 如果 x z平面或 y z平面中存在倾斜,则重力导致的总加速度会减少,同时会减少有效增量灵敏度。这又会加大既定加速度计分辨率下的倾斜步长,但仍可提供精确的测量值

5、。经倾斜计算得到的角度对应于 x y平面的旋转。(3)全角度 360 度倾斜检测采用第二个轴的另一个主要优势是能够对各个象限进行分区,并能在整个 360度内测量角度。如图 2所示,每个象限均拥有与 x轴和 y轴加速度相关联的不同符号组合。4图 4 象限检测的倾斜角与加速度符号若操作数 为正,则反正切函数在象限中返回一值;如果该操AOUTYX,/作数为负,则反正切函数在象限中返回一值。由于象限中的操作数为负,当角度处于该象限时,必须在计算结果中加上 180度的值。由于象限中的操作数为正,当角度处于该象限时,必须从计算结果中减去 180度的值。计算所得角度的正确象限可通过考察各轴上测得加速度的符号

6、来确定。(4)反馈调节反馈网络调节电机转速+输入信号比较输出信号图 5 反馈调节框图A:传感器角度值;T:设定值;A-T:传感器角度值与设定值的差值传感器角度值变化:根据反馈调节理论,控制 A-T=0,输入为 A-T,输出为T=A。在这个调节过程中,由于惯性作用,A 会有一个波动,如图 4所示:50.5 1.0 1.5 2.0 2.5 3.0 t 分1020304050A度 达 到 平 衡 过 程图 6 角度波动图2.2电动机的选型2.2.1刚体受力分析刚体绕定轴转动微分方程第 k 个质元 切线方向 在上式两边同乘以 rk 对所有质元求和 刚体绕定轴转动微分方程(刚体的转动定律) 2.2.2机

7、械结构的综合考虑考虑到旋转臂要与电机的转轴合理连接,而碳纤维是一种力学性能优异的新材料,它的比重不到钢的 1/4,碳纤维树脂复合材料抗拉强度一般都在 3500Mpa以上,是钢的 79倍,抗拉弹性模量为 230430Gpa亦高于钢。因此选择碳纤维杆作为旋转臂。考虑到摆杆的重心要在一定范围内可调,以选择最佳的力矩与电机配合。因此,我们制作重心可调控制杆作为摆杆。考虑到摆杆绕轴转动,轴选用直径 4MM的轴承作为转轴。摩擦力小,光滑。T=50kkamfFr )(2kkkrJM62.2.3电动机选择 齿轮减速电机,是在普通直流电机的基础上,加上配套齿轮减速箱。齿轮减速箱的作用是,提供较低的转速,较大的力

8、矩。同时,齿轮箱不同的减速比可以提供不同的转速和力矩。这大大提高了,直流电机在自动化行业中的使用率。本文选择ZGA25 齿轮减速电机。作为动力装置。齿轮减速电机是指齿轮减速箱和电机(马达)的组成体。这种组成体通常也可称为齿轮箱电机或减速电机,通常由专业的减速机生产厂进行集成组装好后成套供货。齿轮减速马达的应用非常广泛,属于机械设备不可或缺的动力设备。2.3驱动与控制算法2.3.1 PID控制算法在模拟控制系统中,控制器最常用的控制规律是 PID控制。PID 控制器又称PID调节器,是工业控制中系统中常用的有源校正装置。可以用软件实现 PID控制算法,而且可以利用计算机的逻辑功能,使 PID控制

9、更加灵活。数字 PID控制生产过程是一种最普遍采用的控制方法。如下图所示。比例积分微分x被控对象x图 7 PID原理系统的传感器得到的测量结果 控制器作出决定 通过一个输出设备来作出反应 控制器从传感器得到测量结果,然后用需求结果减去测量结果来得到误差。然后用误差来计算出一个对系统的纠正值来作为输入结果,这样系统就可以从它的输出结果中消除误差。最为理想的控制当属比例-积分-微分控制规律。它集三者之长:既有比例作用的及时迅速,又有积分作用的消除余差能力,还有微分作用的超前控制功能。当偏差阶跃出现时,微分立即大幅度动作,抑制偏差的这种跃变;比例也同时起消除偏差的作用,使偏差幅度减小,由于比例作用是

10、持久和起主要作用的控制规7律,因此可使系统比较稳定;而积分作用慢慢把余差克服掉。只要三个作用的控制参数选择得当,便可充分发挥三种控制规律的优点,得到较为理想的控制效果。本方案采用单回路 PID控制方案,选取摆杆角度作为反馈信号,此方案间接对摆杆进行控制,系统结构框图如下图所示。P I D 控制器x旋转倒立摆+ 图 8PID控制算法规定这个流程是用来为直流电机调速的;1.输入量 rin(t)为电机转速预定值;2.输出量 rout(t)为电机转速实际值;3.执行器为直流电机;4.传感器为光电码盘,假设码盘为 10线;5.直流电机采用 PWM调速 转速用单位 转/min 表示;6.偏差量为预定值和实

11、际值之差(转/min);每个电压对应一个转速,电压和转速之间呈现线性关系。但是我考虑这种方法的前提是把直流电机的特性理解为线性了,而实际情况下,直流电机的特性绝对不是线性的,所以在正式进行调速设计之前,需要现有开环系统,测试电机和转速之间的特性曲线(或者查阅电机的资料说明),然后再进行闭环参数整定。假设采样间隔为 T,则在第 K T时刻:偏差 err(K)=rin(K)-rout(K);积分环节用加和的形式表示,即 err(K)+err(K+1)+;微分环节用斜率的形式表示,即err(K)-err(K-1)/T;8从而形成如下 PID离散表示形式:2.2.2PID子程序流程图计算偏差P I D

12、 子程序开始计算比例项计算积分项并限幅计算微分项并限幅计算控制输出量P I D 子程序结束调用电机控制子程序93硬件电路设计本系统主要由主控制器模块,角度检测模块,机械结构模块等组成,系统连接图如图所示:单片机电机角度传感器信号控 制 转动机械连接采集传输通信图 9系统模块组成3.1硬件电路设计硬件电路部分主要由单片机控制模块、电机驱动模块、角度传感器检测模块、电源模块等部分组成,系统原理图如下图所示:3.1.1 单片机最小系统电路图图10单片机最小系统图103.1.2 L298N电机驱动模块电路图图11电机驱动图3.1.3 角度传感器图12角度传感器11角度传感器测得 X、Y 轴方向的重力加

13、速度,通过 IIC通信将信号输入单片机,单片机合成数据,得到 X、Y 轴方向加速度的值,从而计算得出角度值,然后利用屏幕将角度值实时显示出来。3.2 程序结构与设计开始电机转动检测是否达到最高点角度传感器摆杆倒立检测摆杆状态保持倒立旋转臂圆周运动YNY发挥部分12程序结构如上图所示,本系统可完成摆杆从处于自然下垂状态(摆角 0)开始,驱动电机带动旋转臂作往复旋转使摆杆摆动,并尽快使摆角达到或超过-60 +60直至完成圆周运动。四测试方案与测试结果测试方法:1.摆角的检测 测试工具:秒表,量角器在摆杆后 12CM处固定一个轻质量角器,以方便观察摆杆的旋转角度。测试摆角达到正负 60度的时间。次数

14、 1 2 3 4 5 6 7 8 9时间(秒)4 4 6 5 4 4 5 4 6表一:摆角的检测记录测试结果分析:理想情况下,摆杆达到正负 60度的时间很短,但由于电机转轴和和旋转臂的连接处有摩擦,电机加速控制需要时间,所以,实际测量与理论有差距。测试方法:2 开始到完成第一个圆周运动的时间 测试工具:秒表次数 1 2 3 4 5 6 7 8 9时间(秒)7 6 7 5 7 8 7 5 6表二:完成圆周运动的时间记录测试结果分析:当摆杆达到 60度的时候,增大电机转速可使摆杆完成圆周运动。因此,从开始状态到完成圆周运动所需的时间很短。本装置完成此项要求的时间比较理想。测试方法 3:外力拉起至

15、165度位置,外力撤出的同时,启动控制旋转臂使摆杆保持倒立的时间 测试工具:秒表次数 1 2 3 4 5 6 7 8 9时间(秒)4 3 4 5 5 4 5 6 5表三:保持倒立时间记录测试结果分析:由于装置本身的不稳定性,使旋转臂转动时出现抖动,影响倒立时间的维持。此因素的影响难以消除。13五总结本旋转倒立摆能够实现题目的基本要求,并能完成发挥部分的部分功能。但装置稳定性方面还需要进一步改善。六参考文献1模拟电子电路及技术基础 ,孙肖子著,西安:西安电子科技大学出版社,2008年;2自动控制原理 ,杨友良著,北京:电子工业出版社,2000 年;3模拟电子线路基础 ,吴运昌著,广州:华南理工大

16、学出版社,2004 年;4数字电子技术基础 ,阎石著,北京:高等教育出版社,1997 年;5数据结构与算法 ,张晓丽等著,北京:机械工业出版社,2002 年;6ARM /IIC 时钟引脚定义sbit SDA=P21; /IIC 数据引脚定义/*电机驱动管脚定义 */sbit en=P10;sbit s1=P11;sbit s2=P12;#define SlaveAddress 0xA6 /定义器件在 IIC 总线中的从地址 ,根据 ALT ADDRESS 地址引脚不同修改/ALT ADDRESS 引脚接地时地址为 0xA6,接电源时地址为 0x3Atypedef unsigned char B

17、YTE;typedef unsigned short WORD;BYTE BUF8; /接收数据缓存区 uchar qf,bf,sf,ge,shi,bai,qian,wan; /显示变量int dis_data,PN; /变量int data_xyz3;uchar i;*全局变量*/uint t=0; /* 中断计数器 */ uchar m1=0; /* 电机 1 速度值 */ uchar tmp1;uchar k,table_begin;uint A,n,C;void delay(unsigned int k);void Init_ADXL345(void); /初始化 ADXL345voi

18、d Single_Write_ADXL345(uchar REG_Address,uchar REG_data); /单个写入数据uchar Single_Read_ADXL345(uchar REG_Address); /单个读取内部寄存器数据void Multiple_Read_ADXL345(); /连续的读取内部寄存器数据/-void Delay5us();void Delay5ms();void ADXL345_Start();void ADXL345_Stop();void ADXL345_SendACK(bit ack);bit ADXL345_RecvACK();void AD

19、XL345_SendByte(BYTE dat);BYTE ADXL345_RecvByte();void ADXL345_ReadPage();15void ADXL345_WritePage();/*/void delay(unsigned int k) unsigned int i,j; for(i=0;iread1); */ else s1=0;s2=1; / delay(180);/* doread1=fabs(read()-90.0);delay(100);read2=fabs(read()-90.0);while(read2read1); */ *T0 中断服务程序*/void

20、timer0() interrupt 1 16 if(m1=0)t=0;if(t=0)/* 1 个 PWM 周期完成后才会接受新数值 */ tmp1=m1; if(t=300) t=0; /* 1 个 PWM 信号由 100 次中断产生 */ /*主程序* void main() uchar devid;delay(500); /上电延时 P0=0xFF; /置 P0 口P1=0xFF; /置 P1 口delay(10); /延时 Init_ADXL345(); /初始化 ADXL345devid=Single_Read_ADXL345(0X00);/读出的数据为 0XE5,表示正确ini_timer0();start();while(1) /循环 motor(200);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报