李 立,李宏杰
(安陽工學院電子信息與電氣工程學院,河南 安陽 455000)
伴隨當今智能工廠和智能制造的發展,物聯網(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終端的交互界面四個方面展開介紹。
本設計旨在設計一款基于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 控制系統原理框圖
控制器模塊是整個控制系統的核心,主要用于數據采集、處理與存儲、協調通信等功能。控制器模塊采用NI公司研發的myRIO-1900板來實現角度讀取、運動控制等功能。myRIO與除電子之外的所有的硬件模塊都存在數據通信。myRIO由內嵌Xilinx Zynq和雙ARM Cortex-A9芯片組成,其中有66個可重配置的引腳,可滿足整個工程的控制需求。其使用的FPGA在處理數據時采用并行方式。這樣就能更加快速、準確地對數據進行可靠的處理[9-10]。
姿態數據由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脈沖。
電機驅動模塊是整個設計中一個非常重要的模塊,負責實現運動任務。此模塊主要由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的前面板顯示,以便操作人員觀察參數的變化,也方便采集舵機的相關參數。
本項目采用的是三層架構的方式,最底層是FPGA程序,主要是對RT程序采集到的信息進行運算處理,然后輸出控制信號;RT程序是對角度數據、速度數據和小車偏移量進行采集,然后寫入FPGA程序中的接口程序;最上層是LabVIEW程序,主要是進行上層控制面板程序的編寫人機交互界面,實現遠程控制。
FPGA I/O程序主要分四個部分。
第一部分是加速度計、陀螺儀和互補濾波器。由于小車本身的不平衡性,系統為欠驅控制系統,而自平衡控制算法采取反饋閉環控制,因此采用互補濾波方法保存小車穩定。該程序的功能就是信息更新,處理器每隔1.125 ms后進行一次循環,更新角度α和角速度α′,以便給處理器傳輸相對可靠的信息后,處理器作出相應的判斷,以保證小車的狀態。
第二部分是A口的DIO控制,主要通過DIO14、DIO15讀取陀螺儀采集到的角度信息和加速度信息,通過DIO0~DIO3實現對L298N的PWM信號輸出。通過DIO14~DIO15讀取電機模塊的速度信息。
第三部分是編碼程序,將小車的左右兩輪的編碼器所得到的計數值,轉變為車輪轉過的角度數值。
第四部分是電機轉速與空間坐標的轉化程序,主要根據小車左右兩輪的電機編碼器的計數值,經過運算得到小車前進方向轉過的角度及角速度。
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信號使電機反轉,讓小車達到平衡。
上位機可以通過無線網絡與myRIO連接,實現小車的遠程控制。本設計將控制界面移植在iPad上,終端操作界面采用旋鈕式設計,兩個旋鈕控制小車的前進、后退、轉向等。通過實時的數據采集,觀察數據的變化來實現對整個智能小車控制系統信息的顯示和處理。此外,上位機還會實時讀取小車方向參數Beta角的設定值和實際值,以方便用戶直觀獲取小車的當前狀態。
本項目綜合運用機械結構、NI myRIO和PID技術,設計完成基于NI myRIO和PID算法的具有智能和人工操控兩種控制模式的雙輪自平衡平臺。利用NI myRIO處理傳感器小車的角度偏移量、速度和角速度等參數,通過板載的WiFi模塊將數據傳輸給PC機或iPad。陀螺儀模塊將采集到的數據通過WiFi模塊在PC端LabVIEW 制作的HMI界面實時顯示。對于陀螺儀采集到的角度數據,運用PID進行平臺的平衡控制,通過NI myRIO輸出的PWM信號進行對平臺的前進、后退等控制。試驗結果表明,該系統具有較好的可擴展性和可維護性,節能經濟,同時提供了良好的遠程操控界面,為雙輪自平衡平臺發展領域提供了新思路。