2013年全国电子设计竞赛报告简易旋转倒立摆及控制装置.docx

上传人:叶*** 文档编号:36130859 上传时间:2022-08-25 格式:DOCX 页数:22 大小:720.85KB
返回 下载 相关 举报
2013年全国电子设计竞赛报告简易旋转倒立摆及控制装置.docx_第1页
第1页 / 共22页
2013年全国电子设计竞赛报告简易旋转倒立摆及控制装置.docx_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《2013年全国电子设计竞赛报告简易旋转倒立摆及控制装置.docx》由会员分享,可在线阅读,更多相关《2013年全国电子设计竞赛报告简易旋转倒立摆及控制装置.docx(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2013年全国大学生电子设计竞赛设计(论文)报告简易旋转倒立摆及控制装置2013年9月7日星期六 22摘 要:本简易旋转倒立摆及控制装置采用由Freescale半导体公司生产的MC9S12XS128MAA单片机作为主控系统,采用BTS7960作为电机驱动。通过MPU6050加速度计陀螺仪模块采集到摆杆角度和角加速度,主控芯片处理采集到的信号并给定PWM控制直流电机旋转速度和角度,同时对使用光电编码器采集电机转动状态,对电机实现闭环控制,从而使得摆杆处于不同位置,实现简易旋转倒立摆控制。该系统硬件部分主要包括MC9S12XS128MAA单片机,BTS7960电机驱动电路,MPU6050加速度陀螺

2、仪模块,电源模块等。本设计主要运用MC9S12XS128MAA单片机控制直流电机,根据摆杆的状态,通过程序控制算法,使直流电机带动旋转臂来控制摆杆摆动并保持一定平衡。关键词:MC9S12XS128MAA单片机;电机驱动;加速度陀螺仪;电机控制 1设计任务与要求41.1设计任务41.2设计要求42系统方案比较与论证52.1系统主控芯片的选择52.2系统结构分析63理论分析与计算73.1电动机选型73.2摆杆状态检测73.3电动机驱动方案的比较与选择73.4控制算法84系统电路设计94.1总体电路框图94.2单元电路设计94.3全部电路图125系统软件设计135.1系统软件设计流程图135.2各模

3、块软件设计146系统调试与测试196.1系统调试196.2测试仪器196.3测试指标206.4测试结果分析207设计总结21参考文献21设计题目1 设计任务与要求1.1 设计任务1、设计并制作一套简易旋转倒立摆及其控制装置,旋转倒立摆的结构如图1-1所示。图1-1 旋转倒立摆结构示意图1.2 设计要求1、 基本要求1) 摆杆从处于自然下垂状态(摆角0)开始,驱动电机带动旋转臂做往复旋转使摆杆摆动,并尽快使摆角达到或超过-60+60;2) 从摆杆处于自然下垂状态开始,尽快增大摆杆的摆动幅度,直至完成圆周运动;3) 在摆杆处于自然下垂状态下,外力拉起摆杆至165位置,外力撤除同时,启动控制旋转臂使

4、摆杆保持倒立状态时间不少于5s;期间旋转臂的转动角度不大于90。2、 发挥部分1) 从摆杆处于自然下垂状态开始,控制旋转臂往复旋转运动,尽快使摆杆摆起倒立,保持倒立状态时间不少于10s;2) 在摆杆保持倒立状态下,施加干扰后摆杆能继续保持倒立或2s内恢复倒立状态;3) 在摆杆保持倒立状态的前提下,旋转臂作圆周运动,并尽快使单方向转过角度达到或超过360;4) 其他2 系统方案比较与论证2.1 系统主控芯片的选择主控芯片的选择范围非常广泛,目前技术开发过程中,主要使用DSP、FPGA、单片机以及ARM作为主控芯片,其中单片机使用相对较多,因此本系统主控芯片的选择主要是单片机系列,如以下三种方案:

5、方案一:采用STC89C52单片机作为主控芯片,STC89C52单片机是STC89C51单片机的增强板,是STC公司生产的一种低功耗、高性能8位微控制器,具有8k可编程Flash存储器,总共有32 位I/O 口线, 3个16 位定时器/计数器,4个外部中断,全双工串行口等资源。但是主频低,编程繁琐,外设资源少。方案二:采用STM32F103ZET6作为主控芯片,STM32系列单片机是基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。它具有512K 片内FLASH,64K片内RAM ,片内FLASH 支持在线编程(IAP),多达80个IO(大部分兼容5V逻辑

6、),4个通用定时器,2个高级定时器,2个基本定时器,3路SPI接口,2路I2S 接口,2路I2C接口,5路USART等丰富的资源,但是该芯片开发周期长,编程复杂,对底层库函数使用和外设要求高。方案三:采用MC9S12XS128单片机作为主控芯片,MC9S12XS128是由飞思卡尔半导体公司生产的16位单片机,其工作频率为40MHZ,该单片机具有128KB程序Flash、8KB RAM和8KB数据Flash(D-lash),主要功能模块包括:内部存储器、PLL锁相环模块、2个异步串口通信、一个串行外设接口、1个8通道I/O比较定时器模块、中断定时器模块、16通道A/D转换模块、1个8通道PWM模

7、块、多个I/O模块等方案比较与论证:基于上述对每种主控芯片的简介,方案一中STC89C52单片机具有工作频率低,可用资源少等缺点,因此本系统不予以采用。方案二采用STM32F103ZET6作为主控芯片,其资源和工作频率远远超过该系统要求,存在资源浪费,且编程复杂,开发周期长,因此本系统不采用该芯片作为主控芯片。方案三,使用MC9S12XS128单片机作为主控芯片,该芯片相对于方案一的STC89C52单片机,其资源和工作频率丰富,满足系统要求。该芯片相对于方案二的STM32F103ZET6单片机,其具有自动生成代码功能,开发周期短,编程简单,不会存在资源浪费。基于上述分析考虑,本系统采用方案三。

8、2.2 系统结构分析通过上述分析可知,本系统采用MC9S12XS128单片机作为主控芯片。考虑到简易旋转倒立摆装置的控制需求,该系统主要由单片机最小系统板、电机驱动模块、摆杆状态监测模块、蓝牙通信模块、上位机显示组成。系统方框图如图2-1所示。通过系统方框图可以看出,该系统具有了检测、控制、驱动、显示、调试等功能,说明该系统完善可靠。MC9S12XS128最小系统主控板DC电机摆杆状态检测模块 上位机显示 蓝牙通信模块 OLED显示电机驱动 编码器 摆杆图2-1 系统方框图3 理论分析与计算3.1 电动机选型方案一:采用步进电动机。方案二:采用直流电动机。方案论证:方案一,采用步进电动机带动旋

9、转臂,其驱动电路与控制方式简单,但是存在丢步及连续性不好等问题;方案二,采用直流电动机带动旋转臂,其连续性明显比步进电机好,但是其驱动电路与控制方式复杂。基于以上理论分析论证,经过多次试验后,本装置最终采用大功率带转速比的直流电机,DC-16V,转速700r/min。3.2 摆杆状态检测方案一:采用光电编码器。方案二:采用WDD35D5角度传感器。方案三:采用MPU-6050加速度陀螺仪。方案论证:方案一,采用光电编码器检测可以直接测出摆杆角度,但是其体积大、精度低、仅能测出摆杆角度等问题。方案二,采用WW35D5角度传感器检测,其原理相当于可调电位器,根据摆杆旋转角度产生相应的阻值,通过AD

10、转换处理后从而算出相应的角度,但是该方案需要AD转换、不易放置、仅能直接得到角度等问题。方案三,采用MPU-6050加速度陀螺仪模块,该模块整合了3轴陀螺仪和3轴加速度器,输出六轴旋转矩阵、四元数、Euler角的融合演算数据,通过处理后可检测到摆杆的旋转角度及其加速度,以便于对摆杆的控制。基于以上三种方案的理论分析论证,由于方案一和方案二无法检测到摆杆的角加速度,因此本装置选用MPU-8050加速度陀螺仪模块。3.3 电动机驱动方案的比较与选择通过对电动机选型方案的论证,本装置采用直流电动机,通常直流电动机驱动方案有如下几种:方案一:采用继电器对电动机的开或关进行控制,通过开关的切换对电机的速

11、度进行调整。该方案电路比较简单,但是继电器的响应时间慢、机械结构易损坏、寿命较短可靠性不高。方案二:采用MOSFET等功率管组成全桥型电机驱动电路,并利用PWM波来实现对输出电压的有效值大小和极性进行控制。该方案具有易于调速、过载能力大,能承受频繁的负载冲击,能耗小,但是硬件电路复杂,不易于控制。方案三:采用L298专用芯片进行驱动。L298芯片的工作原理和方案二一致,但是其工作时较方案二稳定,且编程较为简单,便于调试。另外L298内部集成了两个H桥,能同时驱动两个电机,硬件实现较方案二简单。方案四:采用BTS7960专业集成电机驱动芯片,该方案原理与方案三一样为专业集成驱动芯片,编程简单。但

12、是相对L298芯片,该集成芯片具有导通电阻小,耐压高等优势。同时,本简易旋转倒立摆装置仅需要驱动一个电机,而L298内部集成两个H桥,存在资源浪费。基于上述理论分析,综合考虑后,本装置电动机驱动采用方案四。3.4 控制算法根据简易旋转倒立摆装置控制要求,该系统采用经典的PID 控制算法,通过对摆杆状态的检测可以得到一个角度和角速度,根据摆杆的角度值和角速度值加入到PID算法过程中后,通过PWM以此来控制电机旋转方向与速度。其控制算法图如图3-1所示。图3-1 控制算法框图其中PID为数字式PID控制器,Rot_Arm为旋转臂,Pen_rod为摆杆。K1为电机转速角度反馈比例,K2为摆杆角度反馈

13、比例。4 系统电路设计4.1 总体电路框图根据该系统需求,本系统电路设计主要包括电源、蓝牙通信模块、拨码开关电路、最小系统板、电机驱动模块、编码器模块以及加速度计陀螺仪模块等。系统电路设计总体电路框图如图4-1所示。电 源最小系统板驱动模块 DC电机加速度计陀螺仪 编码器 蓝牙通信模块拨码开关 图4-1 系统框图4.2 单元电路设计1、 MC9S12XS128MAA最小系统板最小系统板原理图如图4-2所示。图4-2 MC9S12XS128MAA最小系统板2、 电源模块由于单片机等其他外围器件需要+5V电压,本系统采用LM2940CS-5.0稳压芯片,该芯片稳压性能好,输出电流大,基本无需考虑散

14、热等问题。电路原理图如图4-3所示。图4-3 电源模块3、 电机驱动模块由于一片BIS7960内部含有一个半桥驱动模块,因此电机驱动模块采用两片BTS7960搭建H桥, H桥可以实现电机无级变速与正反转,从而达到该系统的要求。电路原理图如图4-4所示。图4-4 电机驱动模块4、 拨码开关模块为了便于测试,本系统在硬件电路中增加了拨码开关电路,实现不同算法切换功能。本系统中使用八位拨码开关,根据拨码开关的原理,拨码开关一段连接系统板PE端口,一段全部接地。拨码开关模块原理图如图4-5所示。图4-5 拨码开关模块5、 蓝牙通信模块为了方便检验加速度计陀螺仪所采集信号准确性,查看相应波形,便于在线调

15、试,本系统增加了一个蓝牙通信模块,蓝牙通信模块,其原理与串口通信一样,使用上位机查看相应数据与波形。蓝牙通信模块原理图如图4-6所示。图4-6 蓝牙通信模块6、 光电编码器模块为了测得电机转速与方向,实现电机闭环控制,本系统采用360线双向光电编码器对电机状态进行检测。电路原理图如图4-7所示。图4-7 光电编码器模块7、 加速度计陀螺仪模块加速度计陀螺仪模块是用于检测摆杆的状态,该模块与最小系统板I/O接口连接,其原理图如图4-8所示。图 4-8 加速度计陀螺仪模块4.3 全部电路图最小系统板电路原理图见附录A。整体电路图见附录B。5 系统软件设计5.1 系统软件设计流程图 1、系统软件设计

16、流程图如图5-1所示。 图5-1 系统软件框图5.2 各模块软件设计1、电机初始化函数#include MOTO_init.h#include PE_Types.h#include PE_Error.h#include PE_Const.h#include IO_Map.h#include Cpu.h#pragma DATA_SEG MOTO_init_DATA /* Select data segment MOTO_init_DATA */#pragma CODE_SEG MOTO_init_CODE#pragma CONST_SEG MOTO_init_CONST /* Constant

17、section for this module */bool MOTO_init_GetVal(void)void MOTO_init_PutVal(bool Val) if (Val) setReg8Bits(PTT, 0x02U); /* PTT1=0x01U */ else /* !Val */ clrReg8Bits(PTT, 0x02U); /* PTT1=0x00U */ /* !Val */void MOTO_init_ClrVal(void)void MOTO_init_SetVal(void)/* END MOTO_init. */2、加速度陀螺仪程序/*卡尔曼融合程序。将实

18、测角度和积分得到的陀螺仪角度融合,X(k|k-1)=A X(k-1|k-1)+B U(k); /由前一次最优值得到下一次估计值P(k|k-1)=A P(k-1|k-1) A+Q ; /由前一次最优协方差得到下次协方差估计值/根据实测值Z(k)做卡尔曼融合得到最优值 Kg(k)=P(k|k-1)H/H P(k|k-1)H+R X(k|k)=X(k|k-1)+Kg(k)Z(k)-H X(k|k-1)P(k|k)=I-Kg(k)H*P(k|k-1) 得到当前最优估计角度,并计算下次估计值,*/输入实测值,保留估计值/以倾角计得到角度做为实测值,/以陀螺仪积分得到的角度融合上一次估计值得到最优值#in

19、clude Cpu.hint g_nAngleControlOut=0;float Angle_Adjust_P=0;float Angle_Adjust_D=0;int Angle_Set=0;int Angle_Dot_Set=0;/速度往前为正,角度、角速度 向后为正int Complement_Filter(int newAngle,int newRate);void CalculateAngle(void);int Complement2_Filter(int newAngle,int newRate);int KalmanCalculate(int newAngle,int new

20、Rate) ;extern int Accele3;extern int Accele03;extern int ENC033;extern int ENC03_03;extern int glyro2;float dtc=0.006;/0.03;int Angle_dot=0;int Angle_accle=0;int Angle=0; void CalculateAngle() / static int nPD_Pre; int PD; static int Angle_g=0; Angle_accle=(Accele1-Accele01)*0.06; Angle_dot=(ENC032-

21、ENC03_02); Angle_g+=Angle_dot*dtc; Angle=Complement_Filter(Angle_accle,Angle_dot);PD=(Angle-Angle_Set)*(Angle_Adjust_P)+(Angle_dot-Angle_Dot_Set)*(Angle_Adjust_D); /Complement_Filter(Angle_accle_x,Angle_dot_x)xPD=(Angle_x-Car_Angle_Set_x)*(Angle_Adjust_P_x)+(Angle_dot_x-Car_Angle_Dot_Set_x)*(Angle_A

22、djust_D_x); yPD=(Angle_y-Car_Angle_Set_y)*(Angle_Adjust_P_y)+(Angle_dot_y-Car_Angle_Dot_Set_y)*(Angle_Adjust_D_y); zD=(Angle_dot_z-Car_Angle_Dot_Set_z)*(Angle_Adjust_D_z); if(xPDANGLE_CONTROLOUT_MAX) g_nAngleControlOut_x=ANGLE_CONTROLOUT_MAX; else if(xPDANGLE_CONTROLOUT_MAX) g_nAngleControlOut_y=ANG

23、LE_CONTROLOUT_MAX; else if(yPDANGLE_CONTROLOUT_MAX) g_nAngleControlOut_z=ANGLE_CONTROLOUT_MAX; else if(zDANGLE_CONTROLOUT_MAX) g_nAngleControlOut_x=ANGLE_CONTROLOUT_MAX; else if(PD8); AS0_SendChar(unsigned char)(Accele1); AS0_SendChar(2); AS0_SendChar(unsigned char)(ENC0328); AS0_SendChar(unsigned c

24、har)(ENC032); AS0_SendChar(3); AS0_SendChar(unsigned char)(Angle8); AS0_SendChar(unsigned char)(Angle); AS0_SendChar(4); AS0_SendChar(unsigned char)(Accele18); AS0_SendChar(unsigned char)(Accele1); /* */ if(Angle_dot=0&Angle=0) SetSpeed(-100); n=10; else if(Angle_dot=0&dot0=0&Angle0&Angle0)|(Angle00

25、) SetSpeed(0); if(n=0) SetSpeed(0); else n-; dot0= Angle_dot; Angle0= Angle;6 系统调试与测试6.1 系统调试为了便于系统调试,本系统使用CodeWarrior IDE进行源程序的编写、编译和链接,并最终生成可执行文件。该编译器具有高度可视化界面操作机自动恢复高度可视化操作及自动创建复杂嵌入式系统应用的功 能,包括集成开发环境 IDE、处理器专家库、全芯片仿真、可视化参数显 示工具、项目工程管理器、C 交叉编译器、汇编器、链接器以及调试器,为使用 Freescale 嵌入式产品开发提供了便利。如图6-1为该编译器调试界

26、面 图6-1 编译器调试界面同时,为了查看加速度陀螺仪波形,本系统使用了串口猎人上位机来实时的显示波形,下位机通过蓝牙模块与上位机串口通信完成。如图6-2为串口猎人上位机调试界面。 图6-2 上位机调试界面6.2 测试仪器1、 秒表2、 量角器 6.3 测试指标1、摆杆摆动角度2、摆杆完成圆周运动情况3、摆杆保持倒立时间表格6-1为基本部分测试结果测试项目要求测试结果基本部分摆杆摆动角度大于-60 +60完成摆杆旋转角度圆周运动完成,可摆动两个圆周运动以上摆杆接近165时保持倒立时间保持倒立时间不少于5s,旋转臂角度不大于90基本完成,保持到时时间3.5s左右表格6-2为发挥部分测试结果测试项

27、目要求测试结果基本部分摆杆往复旋转运动,摆杆倒立摆杆保持倒立状态时间不少于10s基本完成施加干扰,摆杆保持倒立状态施加干扰后摆杆能保持倒立或2s内恢复施加干扰后保持倒立3s左右摆杆保持倒立,旋转臂运动旋转臂单方向运动,转过角超过360完成,可以单方向运动超过3606.4 测试结果分析测试结果是基于多次测试后得到的数据,经过多次测试后,基本完成所有任务。有些目标尚未完全完成,测试环境对测试结果也有一定的影响,同时由于摆杆状态的不同得到结果也不同。总而言之,本次测试结果据实可靠。7 设计总结经过四天三夜的奋力苦战,由本队设计的简易旋转倒立摆及其控制装置基本完成题目的所有要求。但由于时间紧,任务重,

28、系统还存在许多可以改进的地方,比如说,在机械结构方面,可以更多的尝试其他机械结构,通过多次实验可以找到更好的机械材料,构造出更好的机械结构,这方面的改进对后项控制算法和系统的设计非常有利。在电路设计方面,本队采用在赛前准备阶段制作好的通用电路板进行改造而来,如果时间允许的话,本队完成可以自行制作针对该系统的电路板,这也有助于系统性能的提升。在程序控制方面,系统算法控制和程序设计还可以进一步优化。经过在机械结构、电路设计方面和优化程序控制算法后,系统性能还有进一步提升的空间。参考文献1 滕青芳,范多旺,董海鹰,路小娟.自动控制原理.北京:人民邮电出版社,2008.210-2302 Katsuhiko Ogata.现代控制工程.北京:电子工业出版社,20033 陈杰.MATLAB 宝典.北京:电子工业出版社,20074 胡寿松.自动控制原理.北京:科学出版社,2001附录A附录B

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 公文通知

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁