本帖最后由 小m 于 2020-7-13 00:01 编辑
作者:RickGrimes
概述:
该项目起源于2013年全国大学生电子设计大赛控制类的赛题。旋转倒立摆是一种自动控制领域的欠驱动控制系统模型。旋转倒立摆的结构如图 1 所示。 电动机 A 固定在支架 B 上, 通过转轴 F 驱动旋转臂 C 旋转。摆杆 E 通过转轴 D 固定在旋转臂 C 的一端, 当旋转臂 C 在电动机 A 驱动下作往复旋转运动时,带动摆杆 E 在垂直于旋转臂 C 的平面作自由旋转 本设计采用直流减速电机作为旋转臂的动力来源,摆臂的关节点,采用高精度角度电位器来实时监测摆臂的角度。电机的速度采用霍尔传感器来采集。主控芯片位龙芯2K,电机驱动芯片为TB6612.电机控制方式采用PWM输出方式。系统的自动控制算法采用角度闭环负反馈PID控制和速度闭环负反馈PID控制算法。摆臂的角度采集使用ADC实时采集,速度的采集利用定时器捕获方式,并且加入了低通滤波算法使速度平滑处理。
RT-Thread使用情况概述: 本设计基于RTT系统平台,需要用到RT-Thread系统msh调试输出组件、GPIO驱动、TIM驱动、串口驱动、PWM驱动、ADC驱动等。
硬件框架:
本设计硬件平台依托于龙芯2K开发板,具体开发板硬件配置如上表所示。由于硬件平台已经固定。所以最重要的一步就是在该平台上初步移植好RTT系统内核。
软件框架说明:
系统软件部分主要分成两个部分,一是倒立摆自动控制相关的算法,比如速度闭环PID算法,角度闭环PID算法,以及低通滤波算法。第二部分是底层龙芯相关的硬件外设驱动,如PWM、TIM、ADC等
(备注:由于龙芯平台官方并没有提供底层驱动库,因此需要自己摸索尝试编写龙芯的底层驱动,目前自己尝试了一些,都存在各种问题,后续需要继续完善。目前倒立摆应用层的程序,一直到STM32平台,运行正常。龙芯驱动部分,需要后续完成。)
相关PID算法的资料和程序设计方法,会一并在附件资料里给出。
演示效果:
目前移植RTT系统到龙芯2K平台,可以初步跑起来。但是和后续驱动自己编写的一些存在一些问题,目前还没解决妥善(待后续完善)。
倒立摆目前应用层算法和控制逻辑的验证,临时使用的STM32平台做验证,平衡效果还是比较稳定的。
演示视频上传B站,正在审核中,审核完毕之后会发连接。( 待补充)
相关资料与应用层代码开源:
相关代码与参考资料.rar
(1.17 MB)
[url=]相关代码与参考资料.rar ...[/url]
|