1、目录第一章 系统方案比较与选择 .31.1 总实现方案 .31.2 主控制器方案比较与选择 .3第二章 理论分析与计算 .52.1 编码器脉冲转换角度设计 .52.2 摇摆及圆周算法设计 .52.3 机械结构设计及电机选型 .62.4 PID 算法设计 .7第三章 系统电路设计 .93.1 系统主板工作原理 .9第四章 系统程序设计 .104.1 系统总体模块图 .104.2 系统总流程图 .10第五章 系统测试与结果 .115.1 传感器角度测试 .115.2 摇摆及圆周运动测试 .115.3 倒立摆测试 .12第六章 误差分析 .136.1 整体的误差分析 .136.2 软件引起的算法误差
2、分析 .13第七章 参赛感悟 .14摘 要本设计综合考虑基础部分和发挥部分要点,采用 mega128a 为主控芯片,BTS7960 驱动电机并在程序中涉及到 pid 算法对电机进行调控,在设计中,我们采用 1000 线编码器为角度传感器。在该简单控制装置中,我们实现了摆动,圆周运动和短时间的自动控制下的倒立。关键字:倒立摆,mega128a ,编码器第一章 系统方案比较与选择1.1 总实现方案方案一: 用陀螺仪和加速度计通过卡尔曼数据融合得到角度,用此处的角度为载体用单片机进行数据处理,并调整电机。方案二: 用电位器做角度传感,通过单片机自带 ADC 来读取电位数值以此为依据来判断角度,并调整
3、电机。方案三: 用编码器做角度传感器,通过读取编码器的输出脉冲来计算角度传感器的输出角度,用此角度做处理调整电机。通过对两个方案的对比选择,方案一中的加速度计和陀螺仪算法实现复杂,我们在融入卡尔曼滤波后有明显滤波效果,但是由于圆周运动,会使得各个方向轴返回的数据出错,且波动大,会减弱卡尔曼的滤波效果,对于 pid 的精准调整还是远远达不到预期。在方案二中,考虑到电位器内部结构问题,虽然理论上电位器在转动过程中是线性的,但是考虑到每次停靠的电阻位可能会产生误差,最后考虑到我们最终选定的单片机 ADC 只有 10 位,在方案三中,由于实现编码器的功能实现方便简单,并能更多的趋近于精确值,因此最后我
4、们采用了方案三。1.2 主控制器方案比较与选择为了完成在短时间快速采集并计算角度,主控器件必须有较高的 CPU 工作频率和存储空间。方案一:采用 51 系列加强型 STC12C5A60S2 作为主控器件,用来实现题目所要求的各种功能。此方案最大的特点是系统规模可以做得很小,成本较低。操作控制简单。但是,我们在利用单片机处理高速信号快速扫描及电机控制时显得吃力, 51 系列单片机很难实现这一要求。方案二:采用 ATMEL 公司的 AVR 系列 ATMEGA128A 单片机为核心控制器件,MEGA128A 有 8 个外部中断,中断系统丰富,并且有 128K 字节的系统内可编程Flash,我们对它的
5、性能和指标相对也较为熟悉,如此能够实现快速扫描和数据处理!按照题目的要求,综合考虑我们最终选择了方案二,采用 ATMEGA128A 单片机为核心控制器件。第二章 理论分析与计算2.1 编码器脉冲转换角度设计在单片机中,我们开启外部 0 中断,在 AVR 系列单片机中外部 0 中断的中断优先级最高,以此我们可以得到较为精确的角度。由于我们使用的编码器为 1000 线编码器,所以每一个脉冲的角度值为 0.36,所以在计算时即使丢步也不会很大的影响角度值,我们在后面做过的实验测试中,也证明了我们的想法。2.2 摇摆及圆周算法设计我们通过对整体的系统建模,在查阅资料当中,根据单摆定律,摆杆的摆动虽然在
6、衰减但是摆动的周期相同,所以在基础要求中的摇摆和圆周运动中,只要在摆杆在正弦我们对单摆系统实测波形如下,所以依据我们分析,当每次施力点在每次过峰值的时候既可以累加力的作用效果,以此来完成摇摆和圆周运动。图 2-22.3 机械结构设计及电机选型图 2-3以上是我们机械结构的仿真图。在电机选型中,我们首先想到步进电机很便于角度控制,但是由于步进电机反应较慢,所以我们没有考虑,对于普通的直流电机虽然其反应快但调速性能差,另外我们还可以选择减速电机和直流伺服电机,直流伺服电机调速性,启动和制动都很有优势但是价格昂贵,最后在考虑到经济适用性方面,我们选择了带有减速箱的减速电机。在这个简易摆装置中,我们选
7、用 400 转减速电机,型号为 JH37-555,额定功率为 15W,力矩为 30Kgf.cm,由于转矩 T=9550 * P / n= 716.25Nm,电机中心距离转臂 245mm,电机转矩已经足够大,完全可以带动所要带的物体。另外,由于该系统中电机要在短时间内顺逆时针转动,所以系统要达到很高要求的稳定性,所以我们在选择装置的底盘和支架选用了较为稳固的粗木。在转臂与摆杆连接处我们选用了欧姆龙 1000 线编码器,编码器的轴与轴承相连接,也解决了摆杆与转臂的连接问题。在机械结构的设计当中我们一共修正了 3 次基本构架,也经历了很多次的调整,在这个过程中也确定了最终的最稳定的构架。2.4 PI
8、D 算法设计为了实现主轴旋转角度控制,我们又采用电机转动范围限制,同样的采用增量式 PID 控制算法,且结合我们单片机的速度限制(8 位,16Mhz) ,电机旋转角度测量会存一定的的偏差,因此我们整定了 P、I 两个参数,减小了因测量误差计算出来的 PID 偏差。采集回来的摆轴角度和主轴旋转角度,经 PID 反馈回来的数据进行融合,以 PWM 占空比的形式直接输入到减速直流电机上面。从而达到目标控制。PID 参数整定:由于我们在物理结构,以及力学方面的知识薄弱,因此我们采用了反复整定确定系数的办法,首先,我们控制 I、D 为零,控制 P 参数,知道系统对输入阶跃响应出现零界振荡,记下这时的比例
9、系数和零界震荡周期,在此基础上将该系数乘以 6070%,在调节 I 参数,同样的方法,调节 D 参数,知道系统稳定。增量型控制:控制流程:公式:)2()1(2)()1()( neneTKneneKuuDPIPP程序框图:第三章 系统电路设计3.1 系统主板工作原理系统主板主要由 5V 电源模块,3.3V 电源模块,蜂鸣器模块,以及ATMEGA128A 单片机为核心控制模块按。5V 电源模块:此设计采用 12V 开关电源供电,通过稳压芯片 LM2576 一脚输入三脚输出将 12V 输入转变为 5V 输出,来给单片机供电。3.3V 电源模块:3.3V 电源输出是由 AM1117 稳压芯片三脚输入 5V 二脚输出来进行转换按键模块:本系统板中设计了四个按键,通过按键来对不同功能来进行切换演示。 (外接)液晶模块:液晶模块采用 NOKIA5110 液晶来显示,NOKIA5110 液晶具有功能强大,连接简单等优势。 (外接)图3-1 系统主板工作原理图第四章 系统程序设计4.1 系统总体模块图4.2 系统总流程图ATMEGA128A单片机驱动 电机编码器角度检测按键LCD显示电源电 路