李 立,李宏杰
(安陽工學(xué)院電子信息與電氣工程學(xué)院,河南 安陽 455000)
伴隨當(dāng)今智能工廠和智能制造的發(fā)展,物聯(lián)網(wǎng)(internet of things,IoT)技術(shù)、人工智能(artificial intelligence,AI)技術(shù)減少了人力使用和降低了失誤率,方便了人們的生活。2004年,中國臺(tái)灣國立中央大學(xué)的研究人員搭建了兩輪自平衡兩輪電動(dòng)車實(shí)物模型。2008年,我國自主研發(fā)的受控雙輪Chegway平衡車。2016年,德國Transporter公司研發(fā)了一款可以用于攝影的雙輪平衡車[1-3]。其平衡算法包括PID算法、模糊控制算法、SMC算法、神經(jīng)網(wǎng)絡(luò)算法等;控制芯片多為單片機(jī)、ARM等[4-7]。單片機(jī)、ARM等存在運(yùn)算速度、存儲(chǔ)能力和控制功能的限制,難以滿足復(fù)雜地形和狀況的平衡策略。基于此,本文提出了基于NI myRIO的雙輪平衡系統(tǒng)。采用的NI myRIO控制器包含現(xiàn)場(chǎng)可編程門陣列(field programmable gatearray,FPGA)編程能力,采用LabVIEW圖形化編程語言,并且支持多系統(tǒng)操作,具有較好的可擴(kuò)展性和可維護(hù)性,為雙輪平衡系統(tǒng)發(fā)展提供另一種方案。
本系統(tǒng)質(zhì)量為906 g,質(zhì)點(diǎn)到軸距離為0.35 m,車輪摩擦系數(shù)為0.05,自平衡角為0.15 rad。二級(jí)倒立擺模型的基本工作原理是使用陀螺儀傳感器采集到的角度信息,結(jié)合PID平衡算法驅(qū)動(dòng)電機(jī)進(jìn)行動(dòng)態(tài)自平衡或者受控運(yùn)動(dòng)。本文從系統(tǒng)組成、控制系統(tǒng)的硬件設(shè)計(jì)和控制系統(tǒng)的軟件設(shè)計(jì)、在PC機(jī)、iPad終端的交互界面四個(gè)方面展開介紹。
本設(shè)計(jì)旨在設(shè)計(jì)一款基于NI myRIO的雙輪自平衡平臺(tái),其由軟件和硬件構(gòu)架成的輪式機(jī)器人,可以實(shí)現(xiàn)人工操作前進(jìn)、后退和轉(zhuǎn)向,以及自主控制兩種模式。
本設(shè)計(jì)由NI myRIO控制器、陀螺儀、電機(jī)驅(qū)動(dòng)等模塊組成。myRIO控制器由Xilinx Zynq芯片和ARM Cortex-A9組成。它是整個(gè)系統(tǒng)的控制中心,通過陀螺儀信息的處理,與電機(jī)驅(qū)動(dòng)模塊進(jìn)行數(shù)據(jù)通信和控制,共同保持系統(tǒng)的平衡。電機(jī)轉(zhuǎn)速光柵測(cè)速模塊、陀螺儀模塊會(huì)實(shí)時(shí)更新小車兩輪的速度,通過NI myRIO輸出脈沖寬度調(diào)制(pulse width modulation,PWM)信號(hào)來控制信現(xiàn)對(duì)小車的平衡控制[8]。在轉(zhuǎn)向時(shí),NI myRIO通過重新計(jì)算Setpointβ的函數(shù)將原本較大的Δβ(預(yù)設(shè)的Setpointβ值和β值的差值)分解成較小的值,以保障小車不會(huì)因?yàn)榉较蛘{(diào)整劇烈而傾倒。電源模塊主要由一塊12 V的電池組成,給整個(gè)系統(tǒng)供電。本設(shè)計(jì)是利用LabVIEW進(jìn)行程序編寫,通過WiFi傳輸?shù)缴衔粰C(jī),并在LabVIEW的前面板上顯示。用戶可通過此前端界面完成遠(yuǎn)程控制,實(shí)現(xiàn)小車的前進(jìn)、后退等功能;若是在智能條件下,系統(tǒng)會(huì)自行處理數(shù)據(jù),并根據(jù)設(shè)計(jì)的程序,由NI myRIO來控制小車的車輪轉(zhuǎn)速。控制系統(tǒng)原理如圖1所示。
圖1 控制系統(tǒng)原理框圖
控制器模塊是整個(gè)控制系統(tǒng)的核心,主要用于數(shù)據(jù)采集、處理與存儲(chǔ)、協(xié)調(diào)通信等功能。控制器模塊采用NI公司研發(fā)的myRIO-1900板來實(shí)現(xiàn)角度讀取、運(yùn)動(dòng)控制等功能。myRIO與除電子之外的所有的硬件模塊都存在數(shù)據(jù)通信。myRIO由內(nèi)嵌Xilinx Zynq和雙ARM Cortex-A9芯片組成,其中有66個(gè)可重配置的引腳,可滿足整個(gè)工程的控制需求。其使用的FPGA在處理數(shù)據(jù)時(shí)采用并行方式。這樣就能更加快速、準(zhǔn)確地對(duì)數(shù)據(jù)進(jìn)行可靠的處理[9-10]。
姿態(tài)數(shù)據(jù)由MPU-6050三軸加速度傳感器組成,通過探測(cè)角度變化,其讀數(shù)為角速度值。陀螺儀與控制器連接如圖2所示。
圖2 陀螺儀與控制器連接圖
當(dāng)機(jī)器人傾倒時(shí),陀螺儀探測(cè)出角度變化并發(fā)送到myRIO,通過myRIO內(nèi)部的平衡控制算法,控制小車的平衡。在連接電路時(shí),此模塊需要與myRIO的A端口的DIO 14端口連接作為數(shù)據(jù)輸入端口和DIO 15端口連接作為數(shù)據(jù)輸出端口,再在myRIO的引腳上連接VCC +5 V 和AGND(DGND),構(gòu)成一個(gè)完整的電路。
當(dāng)模塊正常工作時(shí),它的工作電壓是5 V。供給模塊的電流是15 mA,工作的頻率是40 kHz。信號(hào)為數(shù)字信號(hào),由myRIO的DIO 14端口發(fā)出觸發(fā)信號(hào)為10 μs的TTL脈沖。
電機(jī)驅(qū)動(dòng)模塊是整個(gè)設(shè)計(jì)中一個(gè)非常重要的模塊,負(fù)責(zé)實(shí)現(xiàn)運(yùn)動(dòng)任務(wù)。此模塊主要由L298N六光耦隔離芯片組成。在連接電路時(shí),需要將信號(hào)輸入線與myRIO的A端口的DIO0~DIO3口相連接,接收myRIO輸出的控制電平的參數(shù),實(shí)現(xiàn)對(duì)電機(jī)的正反轉(zhuǎn)控制。
該模塊最大輸入電壓為40 V,單路峰值電流為3 A,邏輯端輸入端采用標(biāo)準(zhǔn)TTL電平控制,并設(shè)有兩個(gè)使能端ENA和ENB,用來允許、禁止器件工作。
本平臺(tái)通過myRIO控制器控制兩種運(yùn)動(dòng)模塊:通過L298N的OUT0~OUT3口控制電機(jī)正反轉(zhuǎn),使其實(shí)現(xiàn)小車平臺(tái)的運(yùn)動(dòng)。L298N與控制器連接如圖3所示。
圖3 L298N與控制器連接圖
由這四個(gè)端口給兩個(gè)舵機(jī)提供脈沖寬度調(diào)制(pulse width modulation,PWM)脈沖,通過改變輸出電壓的正反來實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)控制。另外,每個(gè)舵機(jī)還需要連接一個(gè)VCC端口、一個(gè)GND端口來給舵機(jī)提供需要的工作電壓和工作電流,然后舵機(jī)的速度參數(shù)通過myRIO A口和B口上的DIO12、DIO13傳遞給上位機(jī);實(shí)時(shí)數(shù)據(jù)會(huì)在LabVIEW的前面板顯示,以便操作人員觀察參數(shù)的變化,也方便采集舵機(jī)的相關(guān)參數(shù)。
本項(xiàng)目采用的是三層架構(gòu)的方式,最底層是FPGA程序,主要是對(duì)RT程序采集到的信息進(jìn)行運(yùn)算處理,然后輸出控制信號(hào);RT程序是對(duì)角度數(shù)據(jù)、速度數(shù)據(jù)和小車偏移量進(jìn)行采集,然后寫入FPGA程序中的接口程序;最上層是LabVIEW程序,主要是進(jìn)行上層控制面板程序的編寫人機(jī)交互界面,實(shí)現(xiàn)遠(yuǎn)程控制。
FPGA I/O程序主要分四個(gè)部分。
第一部分是加速度計(jì)、陀螺儀和互補(bǔ)濾波器。由于小車本身的不平衡性,系統(tǒng)為欠驅(qū)控制系統(tǒng),而自平衡控制算法采取反饋閉環(huán)控制,因此采用互補(bǔ)濾波方法保存小車穩(wěn)定。該程序的功能就是信息更新,處理器每隔1.125 ms后進(jìn)行一次循環(huán),更新角度α和角速度α′,以便給處理器傳輸相對(duì)可靠的信息后,處理器作出相應(yīng)的判斷,以保證小車的狀態(tài)。
第二部分是A口的DIO控制,主要通過DIO14、DIO15讀取陀螺儀采集到的角度信息和加速度信息,通過DIO0~DIO3實(shí)現(xiàn)對(duì)L298N的PWM信號(hào)輸出。通過DIO14~DIO15讀取電機(jī)模塊的速度信息。
第三部分是編碼程序,將小車的左右兩輪的編碼器所得到的計(jì)數(shù)值,轉(zhuǎn)變?yōu)檐囕嗈D(zhuǎn)過的角度數(shù)值。
第四部分是電機(jī)轉(zhuǎn)速與空間坐標(biāo)的轉(zhuǎn)化程序,主要根據(jù)小車左右兩輪的電機(jī)編碼器的計(jì)數(shù)值,經(jīng)過運(yùn)算得到小車前進(jìn)方向轉(zhuǎn)過的角度及角速度。
PID算法控制程序是實(shí)現(xiàn)智能控制的非常重要的程序,主要由對(duì)小車傾倒的角度進(jìn)行比例運(yùn)算的子程序框圖、對(duì)小車傾倒的角度進(jìn)行積分運(yùn)算的子程序框圖、對(duì)小車傾倒的角度進(jìn)行微分運(yùn)算的子程序框圖等構(gòu)成。其主要作用是為控制系統(tǒng)提供主要的控制算法,使小車保持平衡。
在小車直立平衡過程中,關(guān)鍵參數(shù)為小車?yán)@軸旋轉(zhuǎn)的角度α,車輪繞軸旋轉(zhuǎn)的角度γ和電機(jī)轉(zhuǎn)矩TMot,小車質(zhì)量m,質(zhì)點(diǎn)到軸距離為l,車輪摩擦系數(shù)μ。該系統(tǒng)的傳遞函數(shù)如下[11]。
G(s)化簡(jiǎn)為:
采用上述傳遞函數(shù)和參數(shù),采用臨界比例度法[12],通過Matlab確定本系統(tǒng)的PID參數(shù):P=8.9,I=0.6,D=0.61。
在myRIO開發(fā)的主程序中,調(diào)用陀螺儀的檢測(cè)角度初始化程序、計(jì)算小車傾倒角度算法參數(shù)的初始化程序、電機(jī)轉(zhuǎn)動(dòng)的PWM信號(hào)的初始化程序、WiFi與上位機(jī)交流的數(shù)據(jù)初始化程序,使各個(gè)部分的子程序都正常進(jìn)入工作狀態(tài),為小車能夠更好運(yùn)行做好相關(guān)的準(zhǔn)備。當(dāng)小車在向前傾倒時(shí),陀螺儀模塊會(huì)立刻傳送角度變化的數(shù)據(jù),經(jīng)過對(duì)角度進(jìn)行比例運(yùn)算,控制PWM信號(hào)燈的輸出,控制電機(jī)進(jìn)行轉(zhuǎn)動(dòng),使小車進(jìn)行等幅擺動(dòng)。然后對(duì)角度進(jìn)行積分和微分運(yùn)算,使小車更加穩(wěn)定。當(dāng)電機(jī)擺動(dòng)過平衡點(diǎn)時(shí),NI myRIO會(huì)輸出反向的PWM信號(hào)使電機(jī)反轉(zhuǎn),讓小車達(dá)到平衡。
上位機(jī)可以通過無線網(wǎng)絡(luò)與myRIO連接,實(shí)現(xiàn)小車的遠(yuǎn)程控制。本設(shè)計(jì)將控制界面移植在iPad上,終端操作界面采用旋鈕式設(shè)計(jì),兩個(gè)旋鈕控制小車的前進(jìn)、后退、轉(zhuǎn)向等。通過實(shí)時(shí)的數(shù)據(jù)采集,觀察數(shù)據(jù)的變化來實(shí)現(xiàn)對(duì)整個(gè)智能小車控制系統(tǒng)信息的顯示和處理。此外,上位機(jī)還會(huì)實(shí)時(shí)讀取小車方向參數(shù)Beta角的設(shè)定值和實(shí)際值,以方便用戶直觀獲取小車的當(dāng)前狀態(tài)。
本項(xiàng)目綜合運(yùn)用機(jī)械結(jié)構(gòu)、NI myRIO和PID技術(shù),設(shè)計(jì)完成基于NI myRIO和PID算法的具有智能和人工操控兩種控制模式的雙輪自平衡平臺(tái)。利用NI myRIO處理傳感器小車的角度偏移量、速度和角速度等參數(shù),通過板載的WiFi模塊將數(shù)據(jù)傳輸給PC機(jī)或iPad。陀螺儀模塊將采集到的數(shù)據(jù)通過WiFi模塊在PC端LabVIEW 制作的HMI界面實(shí)時(shí)顯示。對(duì)于陀螺儀采集到的角度數(shù)據(jù),運(yùn)用PID進(jìn)行平臺(tái)的平衡控制,通過NI myRIO輸出的PWM信號(hào)進(jìn)行對(duì)平臺(tái)的前進(jìn)、后退等控制。試驗(yàn)結(jié)果表明,該系統(tǒng)具有較好的可擴(kuò)展性和可維護(hù)性,節(jié)能經(jīng)濟(jì),同時(shí)提供了良好的遠(yuǎn)程操控界面,為雙輪自平衡平臺(tái)發(fā)展領(lǐng)域提供了新思路。