基于 NI myRIO 的平衡车设计

摘要

本文设计了以 NI myRIO 作为核心控制器,用 LabVIEW 编程语言开发的两轮自平衡小车。根据加速度传感器的测量数据以及编码器的数据,通过PID算法,利用NI myRIO调节PWM从而获得平衡车稳定的姿态,并结合系统本身设计了串联PID 控制算法来实现两轮车模型的直立平衡 , 讨论了控制器参数的优化。测试数据表明,速度环与位置环在 PID 控制算法的参与下,两轮车实现了稳定的直立平衡。

关键词:

NI myRIO;LabVIEW;自平衡车;加速度传感器;串联 PID 控制

目录

第一章 绪论
1.1课题提出的背景
1.2 LabView图形化编程优势
第二章 总体方案分析
2.1模块方案比较与选择
2.1.1控制系统模块的论证与选择
2.1.2电机驱动模块的论证与选择
2.1.3角速度测量模块的论证与选择
2.2总体方案论述
第三章 系统硬件设计
3.1系统硬件整体方案
3.2各硬件模块选择
3.2.1核心控制器myRIO
3.2.2电源管理模块
3.2.3带电磁 ( 霍尔)编码器的直流减速电机
3.2.4 TB6612电机驱动电路
第四章 系统软件设计
4.1控制算法的选择
4.2程序流程图
4.3程序设计
第五章 系统总调试
5.1 PID参数整定
5.2系统测试及结果分析
结论
参考文献
致谢
附录

第一章 绪论

1.1课题提出的背景

近年来,两轮自平衡电动车以其行走灵活、便利、节能等特点得到了很大的发展,但其本身是一 种非线性、多变量和强耦合的类倒立摆系统,其控制难度大、算法复杂。两轮车保持直立平衡的前 提是要通过传感器获得车体稳定精确的姿态,但由于陀螺仪和加速度计等惯性传感器的固有特性,测量 的数值会随时间产生不同程度的偏差和漂移,本文通过使用互补滤波算法融合两者的数据解决这个问题。其次简单有效、健壮的控制算法是两轮车保持平衡的关键,本设计首先使用角度PD 控制器对车身 倾角进负反馈控制,实验结果显示单纯使用该控制算法不能让两轮车维持很好的平衡,因此又引入速度 PI 控制器,通过让车体保持速度为零,从而增强平衡性能。

1.2 LabView图形化编程优势

当今全世界已进入智能时代的探索和发展,将生 活中能够与芯片和电脑连接在一起的事物构建一种 控制联系方式,采用IOT(InternetofThings)技术来方 便人的生活。智能车辆的研究也在如火如荼的进行。2011年国际机器人展上推出的导盲犬机器人,采用车载3D图像传感器识别位置信息;也有低成本 STC单片机、红外接近开关和超声波传感器的设计的小车平台;在避障策略上相应的提出了群集协调 算法,Leader-follower和Leader-Leader等最优化自动 规划路径算法。但是单片机、ARM等低端控制器,在功能上局限性较大;同时避障策略不具有实时 性和自适应性,并且复杂度高和灵活性差。
LabVIEW 图形化的编程环境和模块化的软件设计流程,非常符合工程思维,配合NI 的硬件平台 myRIO 大大缩短了本设计的开发和调试周期。因此设计了基于NImyRIO和LabVIEW的智能系统。 结合了强大的FPGA编程能力、良好的兼容和用户界面,为低成本、多功能智能车应用发展提供新的决解方案。

第一章 总体方案分析

2.1模块方案比较与选择

2.1.1控制系统模块的论证与选择

方案一:采用传统的89C51芯片为控制核心。具有4KB的程序存储器,128KB的数据存储器,64KB的片外存储器寻址能力,64KB的片外数据存储器寻址能力,32根输入/输出线,1个全双工异步串行口,2个16位定时/计数器,5个中断源,2个优先级。但数学处理能力差,功能单一,运算速度慢,控制过程比较烦琐。
方案二:采用采用NI myRIO。NI myRIO内嵌Xilinx Zynq芯片,使学生可以利用双核ARM Cortex-A9的实时性能以及强大的计算功能,编程开发简单,支持用LabVIEW进行编程,图形编程,明了易懂,同时包含大量现成算法函数,方便快速调用。同时,myRIO自带三轴加速度传感器,可通过LabVIEW观察波形,进行自平衡小车测量时非常方便。
综合考虑采用方案二控制。

2.1.2电机驱动模块的论证与选择

方案一:采用步进电机为驱动源,但步进电机并不能像普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。且速度不是很快,不好操作。
方案二:使用MOSFET构成H桥式驱动电路,利用PWM波形来控制电机的转速,此电路驱动功率比较大耗能高,电机的转速较快。
方案三:使用直流电机驱动芯片TB6612来驱动电机,4 种电机控制模式:正转/ 反转/ 制动/ 停止。myRIO 控制器将一定频率、占空比的 PWM 信号输入到该模块,改模块继而控制电机转速和方向。
综合考虑采用方案三。

2.1.3角速度测量模块的论证与选择

方案一:使用三轴加速度传感器MMA7260Q可以测量小车加速度大小,选取最佳重心位置,将测量出的数据传入控制系统。
方案二:MPU-60X0系列是全球首例9轴运动处理传感器。它集成了3轴 MEMS陀螺仪 ,3轴MEMS加速度计, 以及一个可扩展的数字运动处理器 DMP(Digital Motion Processor)。能够同时输出x,y,z 三个轴上的加速度与角速度数字信号。但需要进行欧拉角度变换,算法较复杂。
方案三:使用myRIO自带三轴加速度传感器,由于是本身自带,便于使用与测量。
综合考虑采用方案三。

2.2总体方案论述

本系统主要包括控制系统模块、电机驱动模块、编码器模块和角速度测量模块四个模块,根据角加速度传感器测量出的数据以及编码器的数据,利用myRIO调节PWM占空比,调节电机的转速及方向,使小车能始终保持平衡。总方案框图如图2-2-1所示。

图2-2-1 总方案框图

第三章 系统硬件设计

3.1系统硬件整体方案

系统的硬件部部分主要包括核心控制器 myRIO、电源管理模块、mpu6050 六轴传感器、带电磁(霍尔)编码器的直流减速电机以及 TB6612 电机驱动模块。系统硬件的整体框图如图3-1-1所示。

图3-1-1 系统硬件框图

3.2各硬件模块选择

3.2.1核心控制器myRIO

NI myRIO 是 NI(美国国家仪器有限公司)针对教学和学生创新应用而推出的嵌入式系统开发平台,内嵌Xilinx Zynq 芯片,这款芯片集成了双核ARM  Cortex-A9 处理器以及 Xilinx FPGA,LabVIEW 程 序可以自动编译并在ARM实时处理器中执行。控制 器除了常见的模拟输入、模拟输出、数字I/O 之外,还包括I2C 总线、SPI 总线、PWM、编码器、UART 等接口,是一款强大的嵌入式实时处理器。

3.2.2电源管理模块

本模块的核心是DC-DC 升压电路,主要负责给各部分模块提供稳定供电。该模块输入电压为11.1v,由3S 航模锂电池提供;经过DC-DC升压后输出电压为12v,直接为 myRIO 控制器和 TB6612 电机驱动模块供电。

3.2.3带电磁 ( 霍尔)编码器的直流减速电机

直流减速电机为双轮平衡车提供动力,减速比为 30:1,电机尾部自带了 13 线的 AB 相增量式磁(霍尔)编码器车轮转一圈,电机可以输出390 个脉冲,编码器的额定工作电压是5V, 集成了上拉电阻和比 较整形功能可以直接输出方波,通过与 myRIO 的编码器接口相连,便可以获取平衡车的速度信息。

3.2.4 TB6612电机驱动电路

TB6612FNG 是东芝半导体公司生产的一款直流电机驱动器件,具有大电流 MOSFET-H 桥结构,双通道电路输出,每通道输出最高1A 的连续驱动电流,4 种电机控制模式:正转/ 反转/ 制动/ 停止。myRIO 控制器将一定频率、占空比的 PWM 信号输入到该模块,改模块继而控制电机转速和方向。

第四章 系统软件设计

4.1控制算法的选择

本系统的控制算法选用PID算法,PID调节器是指按偏差的比例、积分和微分进行控制的调节器,其调节实质是根据输入的偏差值,按比例、积分、微分的函数关系进行运算,其运算结果用于输出控制。在实际应用中,在多数情况下,根据具体情况,可以灵活地改变PID的结构,取其一部分进行控制。
PID控制器的输入输出关系为:
在这里插入图片描述

PID控制有模拟和数字控制方式:模拟方式采用电子电路调节器,在调节器中,将被测信号与给定值比较,然后把比较出的差值经PID电路运算后送到执行 机构,改变给进量,达到调节之目的。数字方式用计算机进行PID运算,将计算结果转换成模拟量,输出去控制执行机构。数字PID算法为用计算机实现,用数值逼近和连续信号离散化实现的PID控制规律。有两种实现方式:位置性数字PID、增量型数字PID。
本系统采用labVIEW自带的PID控制模块,此模块共包括六个输入参数和两个输出参数。六个输入参数分别是output range(输出范围)、setpoint(目标值)、process variable(输入量)、PID gains(P、I、D参数输入量)、dt(测量周期)、reinitialize(频率值),两个输出参数分别是output(输出值),dt out(输出显示周期)。
基于 NI myRIO 的平衡车设计_第1张图片

4.2程序流程图

基于 NI myRIO 的平衡车设计_第2张图片

4.3程序设计

加速度传感器模块
在这里插入图片描述
PWM 模块
在这里插入图片描述
数字输出模块
在这里插入图片描述
延时模块
在这里插入图片描述
PID滤波器
在这里插入图片描述
详细程序设计文件后续将上传此博客!

第五章系统总调试

5.1 PID参数整定

本设计中存在两个PID 控制环,但速度PI 控制器的引入仅仅是辅助角度PD 控制,增强系统的平衡性能。首先调节角度PD 控制器的参数,在实际调试中遵循先比例后微分的过程。调节式中的比例参数让其一直增加,直到车体出现往复的低频抖动,此时引入微分参数使其不断增加,直到车体能够保持平衡但有频率较高的抖动出现,至此便确定了 P、D 参数的最大值,最终将每个系数乘以 0.6 得到理想的参数值。
由于机械结构的缺陷,经过测试发现无论怎样调节角度PD 控制器的参数,系统始终不能达到一个理想的直立平衡效果,总是产生一定速度的前后摇摆。此时引入速度PI 控制器辅助直立平衡的控制,同样遵循先比例后积分的原则,找到合适的Kp2 之后可把Ki2 的值设置为Ki2=Kp2/200。实验结果表明使用角度 PD 控制器配合速度 PI 控制器,本系统能够很好的实现直立平衡,并且具有一定的抗干扰能力。

5.2系统测试及结果分析

本系统基本功能为能让小车稳定不倒在原地3秒以上,经过几天调试,本系统能够成功实现基本功能,但是根据地面条件的不同,相应的PID参数将会不同,例如,在砂纸上,由于摩擦力较大,所以P参数应相应减小,否则将会由于比例过大而使小车回量过大而翻倒;在略光滑的地板上,相应的P应加大,否则小车将没有足够的加速度而向前趴到。
由于本系统采用的是串联PID调节,速度环和位置环相互协调,实现小车平衡不倒。首先调节速度环,在实验室略光滑地板上,最终理想PID参数为:P=18.6、I=0.005、D=0;在速度环稳定的基础上,调节位置环,最终理想的PID参数为:P=21.3、I=0、D=0.0001。

结论

文中首先设计了二轮平衡车的整个硬件系统,之后又讲解了基于LabVIEW 2017 开发的软件系统及其工作流程。针对加速度传感器和编码器输出的数据,深入的研究了PID算法,从原理以及实现过程上都做了较为详细的讲解。实验数据直观的展示了PID算法的有效性,它能为位置环和速度环提供稳定、实时的控制信号。为了实现系统的直立平衡,引入了角度 PD 控制器和速度 PI 控制器,在选择了合适的参数后,实验结果表明该系统实现了稳定的直立平衡。随着两轮平衡小车的普及,本文设计的串联 PID 控制算法会有更广的应用价值。
双轮自平衡小车的运动方程具有多变量、非线性、强耦合、时变、参数不确定性等特点,是一种理想的控制理论和控制技术研究的实验平台。通过这次自平衡小车的设计,我学到了许多知识,特别是PID算法的运用。自己手动调节PID,更加深入了解了PID算法的控制作用,但是限于时间与精力,自平衡小车的平衡还欠佳,以后有空余时间,我们一定会慢慢改进。

参考文献

[1] 杨世勇,徐莉苹,王培进 . 单级倒立摆的 PID 控制研究 [J]. 控制工程,2007(B05):23-24.
[2] 薛凡,孙京诰,严怀成 . 两轮平衡车的建模与控制研究 [J]. 化工自动化及仪表, 2012,39(11):1450-1497.
[3] 傅忠云,陈秋阳,刘文波 . 基于直接转矩控制的两轮自平衡车系统设计 [J]. 压电与声光, 2014, 36(6): 967-971
[4] 赵杰,王晓宇,秦勇,等.基于 UKF 的两轮自平衡机器人姿态最优估计研究 [J].机器人,2006,28(6):605-609
[5] 王建群,南金瑞,孙逢春,等 . 基于 LabVIEW 的数据采集系统的实现 [J]. 计算机工程与应用, 2003, 39(21): 122-125.
[6] 杨忠仁, 饶程, 邹建,等 . 基于 LabVIEW 数据采集系统 [J]. 重庆大学学报(自然科学版), 2004, 27(2): 32-35.
[7] 茅颖 . 基于 myRIO 控制器的自平衡车的 PID 算法实现 [J]. 福建电脑,2016,32(12):107-109.
[8] 谢斌,张超,毛恩荣,等 . 基于 myRIO 的电动拖拉机驱动控制器设计与室内试验 [J]. 农业工程学报,2015,31(18):55-62.

致谢

历时三周的LabView课程设计即将结束,第一次接触LabView 开发平台,第一次接触NI myRIO 。在课程设计过程中遇到无数的困难和障碍,在指导老师和同学的帮助下,顺利度过。无论是平衡车的组装问题还是硬件出现损坏问题以及程序编写障碍,指导老师都耐心指导,帮助渡过难关。在此,我向指导和帮助过我的老师表示最衷心的感谢!
同时,我也要感谢本次课设所参考的各位学者的设计方案,如果没有这些学者的研究成果的启发和帮助,我将无法完成最终调试。至此,我也要感谢我的朋友和同学,他们在此次课设过程中提供了很多帮助!最后,再一次表达最衷心的感谢!

附录

基于 NI myRIO 的平衡车设计_第3张图片

基于 NI myRIO 的平衡车设计_第4张图片

你可能感兴趣的:(笔记,传感器,编程语言,经验分享,程序人生)