APP下载

基于NI myRIO的双轮自平衡平台设计

2019-12-04李宏杰

自动化仪表 2019年11期
关键词:陀螺仪端口小车

李 立,李宏杰

(安阳工学院电子信息与电气工程学院,河南 安阳 455000)

0 引言

伴随当今智能工厂和智能制造的发展,物联网(internet of things,IoT)技术、人工智能(artificial intelligence,AI)技术减少了人力使用和降低了失误率,方便了人们的生活。2004年,中国台湾国立中央大学的研究人员搭建了两轮自平衡两轮电动车实物模型。2008年,我国自主研发的受控双轮Chegway平衡车。2016年,德国Transporter公司研发了一款可以用于摄影的双轮平衡车[1-3]。其平衡算法包括PID算法、模糊控制算法、SMC算法、神经网络算法等;控制芯片多为单片机、ARM等[4-7]。单片机、ARM等存在运算速度、存储能力和控制功能的限制,难以满足复杂地形和状况的平衡策略。基于此,本文提出了基于NI myRIO的双轮平衡系统。采用的NI myRIO控制器包含现场可编程门阵列(field programmable gatearray,FPGA)编程能力,采用LabVIEW图形化编程语言,并且支持多系统操作,具有较好的可扩展性和可维护性,为双轮平衡系统发展提供另一种方案。

本系统质量为906 g,质点到轴距离为0.35 m,车轮摩擦系数为0.05,自平衡角为0.15 rad。二级倒立摆模型的基本工作原理是使用陀螺仪传感器采集到的角度信息,结合PID平衡算法驱动电机进行动态自平衡或者受控运动。本文从系统组成、控制系统的硬件设计和控制系统的软件设计、在PC机、iPad终端的交互界面四个方面展开介绍。

1 系统组成

本设计旨在设计一款基于NI myRIO的双轮自平衡平台,其由软件和硬件构架成的轮式机器人,可以实现人工操作前进、后退和转向,以及自主控制两种模式。

本设计由NI myRIO控制器、陀螺仪、电机驱动等模块组成。myRIO控制器由Xilinx Zynq芯片和ARM Cortex-A9组成。它是整个系统的控制中心,通过陀螺仪信息的处理,与电机驱动模块进行数据通信和控制,共同保持系统的平衡。电机转速光栅测速模块、陀螺仪模块会实时更新小车两轮的速度,通过NI myRIO输出脉冲宽度调制(pulse width modulation,PWM)信号来控制信现对小车的平衡控制[8]。在转向时,NI myRIO通过重新计算Setpointβ的函数将原本较大的Δβ(预设的Setpointβ值和β值的差值)分解成较小的值,以保障小车不会因为方向调整剧烈而倾倒。电源模块主要由一块12 V的电池组成,给整个系统供电。本设计是利用LabVIEW进行程序编写,通过WiFi传输到上位机,并在LabVIEW的前面板上显示。用户可通过此前端界面完成远程控制,实现小车的前进、后退等功能;若是在智能条件下,系统会自行处理数据,并根据设计的程序,由NI myRIO来控制小车的车轮转速。控制系统原理如图1所示。

图1 控制系统原理框图

2 控制系统的硬件设计

2.1 myRIO控制器模块

控制器模块是整个控制系统的核心,主要用于数据采集、处理与存储、协调通信等功能。控制器模块采用NI公司研发的myRIO-1900板来实现角度读取、运动控制等功能。myRIO与除电子之外的所有的硬件模块都存在数据通信。myRIO由内嵌Xilinx Zynq和双ARM Cortex-A9芯片组成,其中有66个可重配置的引脚,可满足整个工程的控制需求。其使用的FPGA在处理数据时采用并行方式。这样就能更加快速、准确地对数据进行可靠的处理[9-10]。

2.2 陀螺仪模块

姿态数据由MPU-6050三轴加速度传感器组成,通过探测角度变化,其读数为角速度值。陀螺仪与控制器连接如图2所示。

图2 陀螺仪与控制器连接图

当机器人倾倒时,陀螺仪探测出角度变化并发送到myRIO,通过myRIO内部的平衡控制算法,控制小车的平衡。在连接电路时,此模块需要与myRIO的A端口的DIO 14端口连接作为数据输入端口和DIO 15端口连接作为数据输出端口,再在myRIO的引脚上连接VCC +5 V 和AGND(DGND),构成一个完整的电路。

当模块正常工作时,它的工作电压是5 V。供给模块的电流是15 mA,工作的频率是40 kHz。信号为数字信号,由myRIO的DIO 14端口发出触发信号为10 μs的TTL脉冲。

2.3 电机驱动模块

电机驱动模块是整个设计中一个非常重要的模块,负责实现运动任务。此模块主要由L298N六光耦隔离芯片组成。在连接电路时,需要将信号输入线与myRIO的A端口的DIO0~DIO3口相连接,接收myRIO输出的控制电平的参数,实现对电机的正反转控制。

该模块最大输入电压为40 V,单路峰值电流为3 A,逻辑端输入端采用标准TTL电平控制,并设有两个使能端ENA和ENB,用来允许、禁止器件工作。

本平台通过myRIO控制器控制两种运动模块:通过L298N的OUT0~OUT3口控制电机正反转,使其实现小车平台的运动。L298N与控制器连接如图3所示。

图3 L298N与控制器连接图

由这四个端口给两个舵机提供脉冲宽度调制(pulse width modulation,PWM)脉冲,通过改变输出电压的正反来实现电机的正反转控制。另外,每个舵机还需要连接一个VCC端口、一个GND端口来给舵机提供需要的工作电压和工作电流,然后舵机的速度参数通过myRIO A口和B口上的DIO12、DIO13传递给上位机;实时数据会在LabVIEW的前面板显示,以便操作人员观察参数的变化,也方便采集舵机的相关参数。

3 控制系统的软件设计

本项目采用的是三层架构的方式,最底层是FPGA程序,主要是对RT程序采集到的信息进行运算处理,然后输出控制信号;RT程序是对角度数据、速度数据和小车偏移量进行采集,然后写入FPGA程序中的接口程序;最上层是LabVIEW程序,主要是进行上层控制面板程序的编写人机交互界面,实现远程控制。

3.1 限控制系统的主程序设计

FPGA I/O程序主要分四个部分。

第一部分是加速度计、陀螺仪和互补滤波器。由于小车本身的不平衡性,系统为欠驱控制系统,而自平衡控制算法采取反馈闭环控制,因此采用互补滤波方法保存小车稳定。该程序的功能就是信息更新,处理器每隔1.125 ms后进行一次循环,更新角度α和角速度α′,以便给处理器传输相对可靠的信息后,处理器作出相应的判断,以保证小车的状态。

第二部分是A口的DIO控制,主要通过DIO14、DIO15读取陀螺仪采集到的角度信息和加速度信息,通过DIO0~DIO3实现对L298N的PWM信号输出。通过DIO14~DIO15读取电机模块的速度信息。

第三部分是编码程序,将小车的左右两轮的编码器所得到的计数值,转变为车轮转过的角度数值。

第四部分是电机转速与空间坐标的转化程序,主要根据小车左右两轮的电机编码器的计数值,经过运算得到小车前进方向转过的角度及角速度。

3.2 PID控制原理和程序设计

PID算法控制程序是实现智能控制的非常重要的程序,主要由对小车倾倒的角度进行比例运算的子程序框图、对小车倾倒的角度进行积分运算的子程序框图、对小车倾倒的角度进行微分运算的子程序框图等构成。其主要作用是为控制系统提供主要的控制算法,使小车保持平衡。

在小车直立平衡过程中,关键参数为小车绕轴旋转的角度α,车轮绕轴旋转的角度γ和电机转矩TMot,小车质量m,质点到轴距离为l,车轮摩擦系数μ。该系统的传递函数如下[11]。

G(s)化简为:

采用上述传递函数和参数,采用临界比例度法[12],通过Matlab确定本系统的PID参数:P=8.9,I=0.6,D=0.61。

在myRIO开发的主程序中,调用陀螺仪的检测角度初始化程序、计算小车倾倒角度算法参数的初始化程序、电机转动的PWM信号的初始化程序、WiFi与上位机交流的数据初始化程序,使各个部分的子程序都正常进入工作状态,为小车能够更好运行做好相关的准备。当小车在向前倾倒时,陀螺仪模块会立刻传送角度变化的数据,经过对角度进行比例运算,控制PWM信号灯的输出,控制电机进行转动,使小车进行等幅摆动。然后对角度进行积分和微分运算,使小车更加稳定。当电机摆动过平衡点时,NI myRIO会输出反向的PWM信号使电机反转,让小车达到平衡。

3.3 上位机控制程序

上位机可以通过无线网络与myRIO连接,实现小车的远程控制。本设计将控制界面移植在iPad上,终端操作界面采用旋钮式设计,两个旋钮控制小车的前进、后退、转向等。通过实时的数据采集,观察数据的变化来实现对整个智能小车控制系统信息的显示和处理。此外,上位机还会实时读取小车方向参数Beta角的设定值和实际值,以方便用户直观获取小车的当前状态。

4 结束语

本项目综合运用机械结构、NI myRIO和PID技术,设计完成基于NI myRIO和PID算法的具有智能和人工操控两种控制模式的双轮自平衡平台。利用NI myRIO处理传感器小车的角度偏移量、速度和角速度等参数,通过板载的WiFi模块将数据传输给PC机或iPad。陀螺仪模块将采集到的数据通过WiFi模块在PC端LabVIEW 制作的HMI界面实时显示。对于陀螺仪采集到的角度数据,运用PID进行平台的平衡控制,通过NI myRIO输出的PWM信号进行对平台的前进、后退等控制。试验结果表明,该系统具有较好的可扩展性和可维护性,节能经济,同时提供了良好的远程操控界面,为双轮自平衡平台发展领域提供了新思路。

猜你喜欢

陀螺仪端口小车
基于EMD的MEMS陀螺仪随机漂移分析方法
一种有源二端口网络参数计算方法
一种端口故障的解决方案
大车拉小车
自制小车来比赛
多按键情况下,单片机端口不足的解决方法
刘老师想开小车
两轮自平衡小车的设计与实现
我国著名陀螺仪专家——林士谔
基于匀速率26位置法的iIMU-FSAS光纤陀螺仪标定