朱志強
(江陰職業(yè)技術學院,江陰 214400)
基于MATLAB/Simulink閉環(huán)小車控制系統(tǒng)設計
朱志強
(江陰職業(yè)技術學院,江陰214400)
針對小車運動過程中易受外界因素干擾,運動狀態(tài)出現(xiàn)不確定性的問題,提出基于MATLAB/Simulink的閉環(huán)系統(tǒng)設計方法,系統(tǒng)使用Simulink自帶的Arduino硬件目標庫進行小車驅(qū)動電路、測速電路的設置及運動狀態(tài)的閉環(huán)建模,將整定后的系統(tǒng)由MATLAB/Simulink環(huán)境下載至下位機Arduino后,小車能精準實現(xiàn)預設的運動狀態(tài)。結(jié)果表明:將Arduino與Simulink有效結(jié)合后,開發(fā)靈活,成本低,對基于算法的運動控制系統(tǒng)研究有推廣價值。
Arduino;Simulink;閉環(huán)系統(tǒng);PID控制;智能小車
2016年江蘇高校哲學社會科學研究課題(No.2016SJD79002)、2016年江陰職業(yè)技術學院科研項目(No.16-E-DZ-18)
小車運動控制可分為開環(huán)和閉環(huán)兩種模式。開環(huán)控制系統(tǒng)軟硬件設計都較為簡單,常用于小車機械部分的功能測試,但在實際運行過程中小車不能根據(jù)外在因素變化及時對小車的運行姿態(tài)進行調(diào)整。以走直線為例,小車會受到兩側(cè)車輪摩擦阻力、路面平整度、電機傳動差異性等因素影響,使小車偏離直線車道。
閉環(huán)控制可以通過計算機編程來控制其行駛,可以按照預先設定的模式在一個特定的環(huán)境里自動地運行,無需人工干預便可以完成預期所要達到的目標,是一個集環(huán)境感知、規(guī)劃決策、自動行駛等功能于一體的綜合系統(tǒng)[1-4];它集中地運用了計算機、傳感、信息、通信、導航、人工智能及自動控制等技術,是典型的高新技術綜合體[5-6]。
本設計在傳統(tǒng)小車驅(qū)動基礎上增加了測速反饋裝置,采用MATLAB/Simulink對小車驅(qū)動進行PID調(diào)節(jié),小車的運動狀態(tài)得以實時調(diào)整,使小車在運行中能有效減少外部因素的干擾。
本系統(tǒng)設計分為上位機和下位機兩部分,上位機由MATLAB/Simulink進行建模,下位機負責采集小車運行速度信號,并根據(jù)上位機的實時調(diào)節(jié)及時調(diào)整輸出小車直流電機驅(qū)動模塊的PWM控制信號。系統(tǒng)設計框圖如圖1所示。
圖1 小車閉環(huán)控制系統(tǒng)框圖
系統(tǒng)硬件主要包括Arduino核心板控制電路、小車電機驅(qū)動電路、車輪測速傳感模塊。這些模塊安裝于車體上,由7.2V大容量鋰電池經(jīng)各穩(wěn)壓模塊向相應電路提供電源。
2.1核心控制電路
Arduino是一系列基于單片機的人機互動產(chǎn)品開發(fā)平臺,它的硬件平臺是開放的。Arduino的硬件平臺包括基于AVR單片機的主控制電路板,以及大量的各式輸入/輸出電子模塊。輸入/輸出模塊包括開關輸入模塊、溫度壓力傳感器輸入模塊、超聲測距傳感器輸入模塊、各類顯示輸出模塊、電機控制模塊等[7]。
系統(tǒng)開發(fā)時,使用Simulink來設計控制系統(tǒng)和小車運動的算法,通過與執(zhí)行平臺相連,程序可以在Arduino上運行。Arduino Mega 2560對MATLAB/Simulink支持較好,是Simulink的外接硬件目標庫的成員之一,該板內(nèi)置一個Atmel ATmega處理器,提供數(shù)字和模擬連接以及串口通信,方便檢測電機轉(zhuǎn)速,并及時調(diào)整輸出PWM占空比以調(diào)節(jié)電機驅(qū)動速度。系統(tǒng)設計時可以在Arduino Mega上運行應用程序的交互式參數(shù)調(diào)整和信號監(jiān)控,而這在Arduino Uno上是無法使用的。
2.2電機驅(qū)動電路
現(xiàn)代豫劇《香魂女》和《常香玉》帶著強烈地創(chuàng)新使命和探索意識,有效地嘗試并創(chuàng)造性地完成了戲曲現(xiàn)代戲在新時期的現(xiàn)代化創(chuàng)作,在創(chuàng)作中,也有意識地以局部形態(tài)向戲曲的現(xiàn)代性逼近??梢詳嘌?,戲曲現(xiàn)代戲未來的發(fā)展,仍然面臨著這兩個問題:戲曲現(xiàn)代戲的戲曲化和戲曲現(xiàn)代戲的現(xiàn)代性。
電機工作時電流高于核心板I/O口輸出電流,使用時必須外接電機驅(qū)動電路。驅(qū)動電機可采用L298N雙H橋電機驅(qū)動控制模塊[8],其驅(qū)動部分端子的電壓范圍為:+5V~+35V,驅(qū)動電流峰值可達2A。L298N既可以用來驅(qū)動直流電機,實現(xiàn)直流電機的正反轉(zhuǎn)控制及調(diào)速功能,還可以用來控制步進電機。本設計用L298N驅(qū)動小車左右兩個輪子,實現(xiàn)小車的前進、后退及左右轉(zhuǎn)彎,L298N用于直流電機驅(qū)動的引腳邏輯關系如表1所示。
表1 L298N驅(qū)動直流電機控制邏輯(以左輪為例)
2.3光電編碼測速電路
要實現(xiàn)小車的閉環(huán)控制,必須對小車左右兩側(cè)車輪的轉(zhuǎn)速實時跟蹤檢測,光電脈沖編碼器憑借其在價格和性能方面的優(yōu)勢一直是轉(zhuǎn)速檢測的主要器件[9],測速時編碼器碼盤以透光區(qū)和不透光區(qū)來表示碼的狀態(tài)是1或0,電機轉(zhuǎn)速的快慢和脈沖編碼的頻率成線性關系。光電編碼信號經(jīng)調(diào)理電路調(diào)理后輸出至Arduino核心板。
Simulink是MATLAB最重要的組件之一,它提供一個動態(tài)系統(tǒng)建模、仿真和綜合分析的集成環(huán)境。在該環(huán)境中,無需大量書寫程序,而只需要通過簡單直觀的鼠標操作,就可構造出復雜的系統(tǒng)。MATLAB/ Simulink2012版本后提供了對Arduino的全面支持,使用Simulink Support Package for Arduino Hardware庫中的模塊進行建模,然后在目標硬件Arduino上運行,可以非常方便地實現(xiàn)各類閉環(huán)控制。Arduino與Simulink的混合應用模式如圖2所示。
圖2 Arduino與Simulink混合應用模式
3.1電機控制
小車的運行動作有直行、轉(zhuǎn)向、停止三種,Simulink建模時無法同時對兩側(cè)電機分別給出獨立的速度控制信號,設計時可以將兩側(cè)車輪的驅(qū)動信號分解為速度信號和轉(zhuǎn)彎信號,如圖3所示。
圖3 電機驅(qū)動信號的分解
由圖3可看出,兩側(cè)車輪的輸入信號為速度信號與轉(zhuǎn)彎信號的正負疊加。直行時,無需轉(zhuǎn)彎信號,兩輪速度信號相同;轉(zhuǎn)彎時,只需改變轉(zhuǎn)彎信號的極性,便可實現(xiàn)左轉(zhuǎn)或右轉(zhuǎn)。由于后續(xù)還要進行PID調(diào)節(jié)控制,圖3輸出的速度信號還要經(jīng)過比較器和PID控制器的計算及PWM飽和模塊設置才能經(jīng)Arduino生成相應的PWM波。與Arduino相連的L298N邏輯控制如圖4所示。
圖4 L298N的邏輯控制
3.2編碼測速控制
設計中采用的光電編碼器為100步數(shù),故可得:
由式(2)可知,只要準確測出相鄰兩次脈沖的時間間隔便可推算出車輪轉(zhuǎn)速,設計時先由Digital Clock模塊來產(chǎn)生一個準確的時間,再在Simulink庫中調(diào)用觸發(fā)子系統(tǒng)既可實現(xiàn)該功能。
3.3PID調(diào)節(jié)
PID(Proportional,Integral and Differemial)控制器是一種的簡單的反饋調(diào)節(jié)控制算法,常規(guī)PID控制系統(tǒng)原理框圖如圖5所示。
圖5 PID控制器結(jié)構框圖
本系統(tǒng)使用PID控制器可以使小車運動具有更快的時間響應和更小的穩(wěn)態(tài)誤差,即小車運行過程中可以最大程度的消除理想狀態(tài)外的各種干擾因素。本設計的PID反饋控制如圖6所示。
圖6 小車閉環(huán)控制框圖
PID控制器由比例、積分、微分三個環(huán)節(jié)構成。在控制系統(tǒng)結(jié)構確定后、控制對象處于正常狀態(tài)時,應適當調(diào)整控制器的參數(shù)使控制系統(tǒng)的運行達到最佳狀態(tài),實現(xiàn)最好的控制效果。由于具體的傳遞函數(shù)難以確定,所以系統(tǒng)設計時,PID參數(shù)整定采用試湊法。
4.1比例環(huán)節(jié)參數(shù)Kp的整定
偏差信號e(t)產(chǎn)生后,負反饋介入以修正偏差。理論上,比例系數(shù)Kp增大可提高系統(tǒng)的響應速度,但比例系數(shù)太大會產(chǎn)生有害振蕩。將系統(tǒng)的積分和微分環(huán)節(jié)移除后,在比例環(huán)節(jié)單獨作用下,通過改變Kp值并觀察系統(tǒng)運行情況,考慮到設計中的被控量是小車車輪轉(zhuǎn)速,系統(tǒng)是一階系統(tǒng),因此Kp可以適當放寬,經(jīng)過試湊后,Kp值設為20。
4.2積分環(huán)節(jié)參數(shù)Ti的整定
在比例控制的基礎上加入積分控制,是系統(tǒng)增加一階,這可以使系統(tǒng)的穩(wěn)態(tài)誤差進一步得到改善。積分控制取決于積分時間Ti,整定時將微分控制移除,逐步對積分系數(shù)進行試湊,直至靜差消除的速度滿意。由于系統(tǒng)已經(jīng)是二階系統(tǒng),過大的積分系數(shù)會降低系統(tǒng)穩(wěn)定性,試湊后,1/Ti設為了0.005比較合適。
4.3微分環(huán)節(jié)參數(shù)Td整定
微分控制反映了偏差信號的變化速率,改控制是一種預見性控制,使得系統(tǒng)能在偏差信號變得太大之前,在系統(tǒng)中引入一個有效的早期修正信號,從而加快系統(tǒng)的動作速度,減少調(diào)節(jié)時間。對Td試湊時,最后選擇的Td的值為4。
將系統(tǒng)從Simulink環(huán)境寫入Arduino Mega后,由于小車采用了PID閉環(huán)控制控制系統(tǒng),很大程度上提高了小車運動的瞬態(tài)性能和穩(wěn)態(tài)性能,使小車能更快響應測速信號的變化,更準確地按照給定的指令運轉(zhuǎn),在出現(xiàn)外界干擾時能夠迅速調(diào)節(jié)回正常狀態(tài),小車運行穩(wěn)定性得到了改善。利用MATLAB/Simulink可以實現(xiàn)PID控制器的離線設計和整定,將Simulink與開源硬件Arduino配合使用,可以推廣到多種運動控制系統(tǒng)中,有較強的使用價值。
[1]李明.先進制造技術與應用前沿———機器人[M].上海:上??茖W技術出版社,2012.
[2]王紹坤.基于ARMS的無線遙控車系統(tǒng)設計與實現(xiàn)[D].長春:吉林大學,2011.
[3]陳松,宋曉琳.基于DSP的智能小車路徑跟隨系統(tǒng)設計[J].工程設計學報,2012,19(4):312-317.
[4]李波,楊衛(wèi),張文棟,等.一種智能小車自主尋/循跡系統(tǒng)設計[J].計算機測量與控制,2012,20(10):2798-2801.
[5]朱思敏.自循跡智能小車控制系統(tǒng)的設計與實現(xiàn)[D].杭州:浙江工業(yè)大學,2013.
[6]宋永獻,馬娟麗,賀乃寶,等.基于TMS320F2812的智能循跡小車控制系統(tǒng)設計[J].計算機測量與控制,2011,19(9):2128-2130.
[7]楊繼志,郭敬.Arduino的互動產(chǎn)品平臺創(chuàng)新設計[J].單片機與嵌入式系統(tǒng),2012,4:39-41.
[8]梁學修,陳志,趙博.基于FPGA的電機轉(zhuǎn)速高精度測量技術研究[J].制造業(yè)自動化,2015,37(12):50-52.
[9]呂云芳,等.基于C51高級語言程序控制的智能循跡小車設計與實現(xiàn)[J].實驗室研究與探索,2015,34(3):142-145.
Arduino;Simulink;Closed-Loop System;PID Control;Smart Vehicle
Design of Closed-Loop Control System for Vehicle Based on MATLAB/ Simulink
ZHU Zhi-qiang
(Jiangyin Polytechnic College,Jiangyin 214400)
Vehicle can be interfered by external factors,and motion appears uncertain state,to deal with these issues,proposes closed-loop system design based on MATLAB/Simulink,the system uses the target hardware library for Arduino by Simulink to drive the vehicle,speed measurement and modeling of the closed-loop system,the tuning system after downloading the MATLAB/Simulink environment to Arduino,the vehicle can achieve precise default state of motion.The result shows that:after the effective combination Arduino and Simulink,the development of flexible,low cost,motion control system based on the algorithm research has promotional value.
1007-1423(2016)28-0049-04
10.3969/j.issn.1007-1423.2016.28.014
朱志強(1981-),男,江蘇靖江人,講師,碩士,研究方向為電子通信及嵌入式系統(tǒng)
2016-07-28
2016-09-25