本文設計的智能車以STC16F40K128最小系統(tǒng)板為系統(tǒng)核心控制,通過陀螺儀MPU6050讀取車身角度以及通過編碼器對電機轉(zhuǎn)速的控制,調(diào)節(jié)S3010舵機控制轉(zhuǎn)向,從而實現(xiàn)車在一定速度下保持直立狀態(tài),車上裝載著工字電感和校正電容用來采集電磁線賽道中20khz的電磁信號,并通過OPA4377運算放大器,對信號進行放大,并使用PID控制算法控制轉(zhuǎn)向舵機的角度和調(diào)節(jié)電機的轉(zhuǎn)速,對車進行閉環(huán)控制,從而實現(xiàn)單車對方向的判斷。為了提高單車的穩(wěn)定性,在單車的機械結(jié)構(gòu)和算法上做了許多工作。
學校:大連海事大學
隊伍名稱:同舟拾隊
參賽隊員:閆恩鵬、莫智榮、薛蘇展
指導老師:牛小兵、薛征宇
第一章 引言
1. 智能車大賽簡介
全國大學生智能汽車競賽是以智能汽車為研究對象的創(chuàng)意性科技競賽,是面向全國大學生的一種具有探索性工程實踐活動,是教育部倡導的大學生科技競賽之一。隨著21
世紀智能科學與控制,人工智能等技術的發(fā)展,智能控制與人們的生產(chǎn)生活聯(lián)系越來越緊密,智能汽車競賽以"
立足培養(yǎng),重在參與,鼓勵探索,追求卓越"
為指導思想旨在促進高等學校素質(zhì)教育,培養(yǎng)大學生的綜合知識運用能力、基本工程實踐能力和創(chuàng)新意識。截至2021
年智能汽車競賽已經(jīng)舉辦了16
屆,在行業(yè)領域內(nèi)具有很大影響力,大學生智能汽車競賽極大的激發(fā)了廣大學生的創(chuàng)新能力,為我國智能控制領域培養(yǎng)了大量后備人才,為我國在智能控制領域的發(fā)展做出了巨大貢獻。
在第十六屆大學生智能汽車競賽中,本組使用宏晶科技公司提供的STC16
F40K128的16
位微處理器作為核心控制單元。使用MPU6050
陀螺儀來讀取單車行駛過程中的傾角以及角加速度等信息以控制單車的直立運行以及實現(xiàn)轉(zhuǎn)向的穩(wěn)定,通過PID
算法構(gòu)成的平衡環(huán)使單車可以直立運行。使用編碼器并使用PI
算法來實現(xiàn)對單車的速度控制。車模上的電容電感在電磁線上方運動時會產(chǎn)生的電動勢,在通過外接運算放大器以及單片機的數(shù)模轉(zhuǎn)換來讀取動生電動勢以判斷單車在電磁線上的運動狀態(tài),通過讀取電動勢的值并使用歸一化,差比和,二階濾波等算法計算單車偏離賽道的程度并反饋到由PD
算法構(gòu)成的方向環(huán)來控制舵機打角以實現(xiàn)單車轉(zhuǎn)向,在通過實驗改良了車模的機械結(jié)構(gòu)調(diào)整重心使單車在低速時的運行更加穩(wěn)定。
綜上通過平衡環(huán),方向環(huán),速度環(huán)實現(xiàn)了對單車的閉環(huán)控制,有效提高了車模運行的穩(wěn)定性,快速性以及準確性。
第二章 設計方案
1. 系統(tǒng)總體方案設計
根據(jù)大賽的要求,智能車微處理器選用STC16F40K128最小系統(tǒng)板,采用PID控制算法通過陀螺儀MPU6050讀取車身角度以及通過編碼器對電機轉(zhuǎn)速的控制,從而調(diào)節(jié)S3010舵機控制轉(zhuǎn)向,通過對前輪方向的變化,從而實現(xiàn)車在一定速度下保持直立狀態(tài)。
▲ 圖2.1 系統(tǒng)結(jié)構(gòu)圖
車上裝載著10mH工字電感和6.8nf校正電容用來采集電磁線賽道中20khz的電磁信號,并通過OPA4377運算放大器,將信號進行放大,最小系統(tǒng)板對其采集并進行歸一化處理,通過使用PID控制算法控制轉(zhuǎn)向舵機的轉(zhuǎn)動角度和調(diào)節(jié)電機的轉(zhuǎn)速,對車進行閉環(huán)控制,從而實現(xiàn)單車對方向的判斷。在日常訓練階段,為了更好地提升單車的穩(wěn)定性,采用上位機軟件,對車的運行狀況進行實時監(jiān)控。
2. 整體效果
1. 電池置于單車底盤,以降低重心。
2. 車模前端靠近單車車頭處安裝輕便堅固的板子,橫向放置銅柱,用以摔倒后支撐車身,防止因車摔倒所導致主板、電磁支架板受損。
3. 主板置于單車后座,并通過銅柱將驅(qū)動板置于主板之下,進一步降低重心。
4. 使用兩根碳桿固定電磁支架板,防止因車模行進時產(chǎn)生的抖動所導致的信號波動。
▲ 圖2.2 車模左視圖
第三章 機械結(jié)構(gòu)設計
本次智能車比賽,單車拉力組采用最新引進的K型車模。為了更好地調(diào)節(jié)其穩(wěn)定性,在備賽之初,我們對K車模的行進方式、機械結(jié)構(gòu)進行了深入討論研究。在調(diào)試過程中我們發(fā)現(xiàn)了一些對車穩(wěn)定性影響的重要因素:轉(zhuǎn)向結(jié)構(gòu)、傳感器位置,重心結(jié)構(gòu)等。
1. 車體重心調(diào)整
對于電單車而言,重心的調(diào)整是穩(wěn)定行駛的基礎。根據(jù)實驗可以發(fā)現(xiàn),重心越靠前,轉(zhuǎn)向速度越慢,所以前瞻需要盡可能要輕,單車的重心整體靠后,同時還需做到左右兩邊重量,盡可能相等,這才不易于摔倒。車子重心盡量靠下,這樣可以減少橫向重力轉(zhuǎn)移,以防止總體抓地力的減少,有利于轉(zhuǎn)彎。
2. 前輪定位
前輪的安裝一共有1 3孔、2 4孔、3 6孔,由于受限于舵機S3010大小的限制,采用了2 4孔,使轉(zhuǎn)彎更加靈活。
▲ 圖3.1 結(jié)構(gòu)調(diào)整部分
3. 舵機的安裝
在舵機方面,在充分比較了單車配套的SD-12小舵機,選擇使用S3010舵機,其性能強且不易于損壞。由于前瞻裝備有牛角架的緣故,舵機的轉(zhuǎn)向有限,在誤差范圍內(nèi)左右轉(zhuǎn)向可實現(xiàn)0至18度。
▲ 圖3.2 舵機輸出安裝
4. 編碼器安裝
編碼器具有測定速度的功能,在智能車穩(wěn)定行進過程中起著至關重要的作用。通過編碼器去測量脈沖數(shù),我們可以讀出車的速度,從而將速度穩(wěn)定在我們所需要的狀態(tài)。
第四章 硬件設計
高效的硬件電路是智能車自動平穩(wěn)行駛的關鍵。為了讓單車更好地行駛循跡,我們對設計電路的可靠性,簡潔性進行了相對應的提升。可靠性是設計電路的第一要求,也是最為關鍵的部分。秉著電磁兼容的理念,我們對各個電路的各個環(huán)節(jié),進行接地濾波等。簡潔性則便于連接,以及便于后期的故障排查和程序調(diào)試,同時盡量保持左右兩邊器件重量一致。
本次比賽中我們設計的智能車硬件分為5大板塊,主板、電機驅(qū)動板、電磁支架板、運算放大器板、陀螺儀MPU6050,它們的作用分別是主導控制、電機驅(qū)動、信號采集、信號放大、角度采集。
1. 單片機系統(tǒng)
STC16F 系列單片機是 STC 生產(chǎn)的單時鐘/機器周期(1T)的單片機,是寬電壓、高速、高可靠、低功耗、強抗靜電、較強抗干擾的新一代 16 位 8051 單片機,超級加密。
STC16F40K128 核心板,使用內(nèi)部可調(diào)晶振作為時鐘源,預留外部晶振接口。內(nèi)置 CH340E,僅需一根 type-c 線即可下載和在線仿真。
2. 傳感器的選擇
(1) 10mH工字電感和6.8nf校正電容
對于一輛能自由行駛的單車而言,尋跡尤為重要。由于本次比賽條件限制,綜合比較紅外傳感器和電感電容傳感器對于循跡的優(yōu)劣性之后,我們決定采用電磁的方式進行循跡。
▲ 圖4.1 工字電感與校正電容
(2) 陀螺儀MPU6050
為了能讓車穩(wěn)定行駛,陀螺儀也是必不可少的。MPU6050為全球首例整合性6軸運動處理組件,相較于多組件方案,免除了組合陀螺儀與加速器時間軸之差的問題,減少了大量的封裝空間。通過陀螺儀可以讀到角速度、角度姿態(tài)等,從而可以通過程序使單車處于直立狀態(tài)。
▲ 圖4.2 陀螺儀
(3) 編碼器
本次比賽采用了帶方向的編碼器,其具有體積小,重量輕,精度高,抗干擾能力強等特點,可以精準的測量電機的轉(zhuǎn)速,從而使車跑得更穩(wěn)定。
▲ 圖4.3 編碼器
3. 電路設計
(1) 主板
主板主要包括兩個方面,分別為舵機驅(qū)動電路和穩(wěn)壓模塊電路。
SPX29302
芯片最大輸出電流3A
,且在高電流時具有低壓降的特性,穩(wěn)定高效且保證了舵機的靈敏度。同時還具有反極性電壓保護。
▲ 圖4.3.1 主板電源電路
穩(wěn)壓模塊,我們采用AMS1117
電源芯片,將電源電壓穩(wěn)定在5V
用來給陀螺儀,單片機等供電。
(2) 驅(qū)動板
本次比賽采用div8701
配合TPH1R403NL MOS
管驅(qū)動電機,其無需升壓電路,避免boost
升壓電路產(chǎn)生的電磁干擾,其還具有體積小,性價比高等特點,同時TPH1R403NL
體積小,內(nèi)阻低,可過大電流等特點,可以很好的節(jié)省空間,尤為適合電單車。
▲ 圖4.3.2 驅(qū)動電路圖
(3) 電磁支架板
電磁支架板可以更好的減輕前瞻的重量,使重心盡量靠單車中部,同時既美觀又便捷。其上裝載著10mH
工字電感和6.8nf
校正電容用來采集電磁線賽道中20khz
的電磁信號。從而達到尋跡的效果。
▲ 圖4.3.3 電磁支架上的電路
(4) 運放板
為了更好的尋跡,使單車能采集到相應的信號,需要將電磁信號進行放大。OPA4377
運算模塊是高性能的雙路低電壓軌至軌輸出運算放大器。相較于傳統(tǒng)的運放,OPA4377
具有超低噪音,失真極小,低功率等特點。
▲ 圖4.3.4 電機驅(qū)動電路圖
第五章 軟件設計
高效的軟件程序是智能車高速平穩(wěn)自動尋線的基礎。我們設計的智能車系統(tǒng)采用四電感采集的方式對賽道進行跟蹤與識別。在單車的平衡、轉(zhuǎn)向和速度控制方面,我們使用 了魯棒性很好的經(jīng)典 PID 控制算法,配合使用理論計算和實際參數(shù)補償?shù)霓k法, 使單車能夠穩(wěn)定快速尋線。
1.平衡環(huán)控制
靜止的單車屬于一維倒立擺,是不穩(wěn)定。為了使其穩(wěn)定,務必對系統(tǒng)進行調(diào)整與控制。
1) 平衡原理
對于倒立擺的特性:不穩(wěn)定,只要偏離平衡位置,就會有一個力(重力分力)使系統(tǒng)更加偏離平衡位置,這樣偏差就會越來越大。
為了使其平衡,需要一個力平衡重力的分離。當車身做圓周運動時,車身需要重力的分力提供向心力,當需要的向心力大于重力分力時,產(chǎn)生的這個離心力便會使車身做離心運動,往預定位置回正。
2) 姿態(tài)檢測
為了使車身平穩(wěn),我們需要實時檢測車身姿態(tài),并對其進行閉環(huán)控制。我們采用的傳感器是MPU6050,通過dmp解算,得到姿態(tài)角與角速度,從而進行控制。
3) 平衡環(huán)PID控制
平衡環(huán)PID為位置式PID
計算公式:
Servo_angle = Balance_Kp * Servo_Bias + Balance_Ki * Servo_Integration - Balance_Kd * Gyro_y;
- Kp:提供初始回復力,使舵機在車身向左傾斜時往左打角,向右傾斜時往右打角。Kd:由于當只有Kp作用時,當車身處于平衡狀態(tài)時車身具有一個未能消減的速度,故需要kd消除車身自身振蕩。Ki:消除穩(wěn)態(tài)誤差,提供穩(wěn)態(tài)時的舵機打角。
2.速度環(huán)控制
單車的速度環(huán)控制采用增量式PI控制的方法,該控制方法在單車平穩(wěn)運行時和上下坡時具有良好的性能。
3.方向環(huán)控制
1)電感采集與歸一化處理
為實現(xiàn)較好的巡線,我們采用4電感檢測,其中兩個水平電感用于巡線,兩個垂直電感用于識別賽道元素。
電感產(chǎn)生的電動勢經(jīng)運放放大后由單片機的4個ADC通道采集。經(jīng)過多次采集得到最大值與最小值,經(jīng)
ADC_100=100*(ADC-ADCmin)/(ADCmax-ADCmin)將其換算到0--100的范圍。
最后采用差比和的方法得到車身距離電磁線的距離。
error = -1*(ADC0_100-ADC3_100)/(ADC0_100+ADC3_100+0.00001);
2)方向環(huán)PD控制
方向環(huán)為位置式PD控制。
車身與電磁線的偏差值進行方向環(huán)的相關運算后得到隨動的理想傾角,理想傾角作用于平衡環(huán)改變單車航線,從而達到巡線目的。
對于kd對于的微分項,若采用離散的一階微分,隨著采樣時間的縮短,存在較大的噪聲信號。為了消除噪聲,我們采樣了二階線性微分,有效抑制了噪聲。
黃色為二階線性微分。
除此之外,對于單車出現(xiàn)的轉(zhuǎn)角過大,沖出賽道問題。我們通過讀取陀螺儀轉(zhuǎn)向的角速度,用以抑制單車轉(zhuǎn)角。提高單車穩(wěn)定性。
▲ 圖5.1 數(shù)據(jù)曲線
4.賽道元素處理
1)坡道
由于單車是一個不穩(wěn)定系統(tǒng)。上坡與下坡的速度改變會導致車身不穩(wěn),故需要盡量保證單車速度的穩(wěn)定。
我們將過坡分為3個過程。上坡、坡上與下坡,通過陀螺儀檢測俯仰角來判斷過程。
上坡加速,在坡上初步減速,下坡再次減速,使車身能夠平穩(wěn)過坡。
2)直角彎
由于直角彎存在一條與車身垂直的電磁線,故可以通過單車電磁板上的垂直電感識別出直角。
檢測出直角后,單車經(jīng)過一個固定的流程,行駛到垂直線上,并啟用巡線程序。
3)十字路口
十字路口存在左右兩條垂直電磁線,通過垂直電感識別。
觸發(fā)識別后對單車進行穩(wěn)定性處理。
5.慢車道與快車道區(qū)別
對于慢賽道,單車需要更穩(wěn)定的平衡環(huán)參數(shù),同時,由于車速較慢與抖動的加劇,過大的方向環(huán)PD參數(shù)會導致車身不穩(wěn)定。我們選擇將方向PD參數(shù)減小,利用陀螺儀轉(zhuǎn)彎角速度來抑制車身往一邊傾倒。
第六章 總結(jié)
經(jīng)過了大半年智能車的制作與調(diào)試,我們學到了很多。在機械結(jié)構(gòu)、重心結(jié)構(gòu)上嘗試了大量的方案,在電路的設計與實驗上經(jīng)歷了各種改進,在程序上一步一步的深入探討優(yōu)化。從最初的直立到轉(zhuǎn)圈,再到沿線尋跡,我們經(jīng)歷了許許多多。在這大半年里,我們一步一個腳印,從中學到了不少知識,總結(jié)了不少經(jīng)驗,盡最大努力將小車改進與完善。
在智能單車機械結(jié)構(gòu)調(diào)整方面,首先考慮的是車身左右兩邊的重量,其次則是重心在車身的布局,力求重心靠后,分布集中,為此不斷地更換結(jié)構(gòu),進行各種嘗試,努力做到更好。在智能單車硬件電路設計方面,采用模塊化管理,便于后期故障維修、排查,同時做好濾波、接地等工作,力求可靠簡潔。軟件上,運用自控原理,嘗試了各種算法,深入剖析智能單車的特點,對其的認識也在不斷加深。從簡單的確定中值到直立行進再到循跡行進,從簡單的直線到十字、直角、坡道。
在做車的半年里,曾為單車在賽場上飛奔時感到興奮,也曾為硬件、軟件上各種問題所苦惱。焊板子,換場地,重新裝車,程序調(diào)試,故障分析,這些舉動再平常不過。印象最為深刻的是在比賽前一天,由于我們的疏忽導致信號發(fā)生器進水,更換新的之后,單車還得重調(diào),同時隨時還有陀螺儀卡死的危險,最終我們克服困難,懷揣著緊張而又激動的心情,完成了本次比賽。在智能車的比賽中,我們收獲的不僅僅是做車的經(jīng)驗,同時還收獲了深厚的友誼??粗鴨诬嚲拖窨粗约旱暮⒆右粯樱瑸樗某晒Χ矏?,也為它的失敗而懊惱。
最后感謝主委會為我們舉辦了一場別開生面的比賽,感謝學校對同舟學社的大力支持,以及牛小兵老師和薛征宇老師的幫助與指導。
參考文獻
[1] 張昊飏, 馬旭, 卓晴. 基于電磁場檢測的尋線智能車設計[J]. 電子產(chǎn)品世界, 2009(11):54-56.
[2] 學做智能車[M]. 北京航空航天大學出版社 , 卓晴, 2007
[3] 李宏揚.跟蹤微分器改進算法的應用分析[J] 吉林大學學報(信息科學版). 2021,39(01)
[4] 單片機控制PID調(diào)節(jié)的自平衡自行車[J]. 黨新安,唐鵬,楊立軍. 機械設計與制造. 2019(10)
[5] 自平衡自行車機器人的運動學分析[J]. 郭磊,黃用華,廖啟征,魏世民. 北京郵電大學學報. 2011(06)
[6] 基于STM32和MPU6050的姿態(tài)控制系統(tǒng)[J]. 范浩,徐龍,賴福明,蔡文廣,呂明澤,李媛. 電子元器件與信息技術. 2020(02)