双轮载人平衡车设计完整教程之硬件篇
雙輪載人平衡車設計完整教程
雙輪載人平衡車采用無污染的電能作為動力,具備體積小、運動靈活、停車方便、狹小地方作業能力強等特點,針對當今社會交通擁擠、汽車尾氣污染等問題提出了新型的出行方式解決方案。便捷、智能、迷你實用、純綠色的平衡車既可以有效的解決中短距離的交通問題,又能健身娛樂,得到了廣大群眾的擁護和喜好。同時,自平衡車作為高度靈敏的非線性不穩定體,具有強耦合、欠驅動等特征,是研究自控技術及理論的絕佳實驗平臺。
設計中充分分析了自平衡技術的工作及控制原理,運用了經典的牛頓力學建立載人平衡車的動力學與運動學模型,參考倒立擺的運動設計了自平衡控制算法。對系統的可控角度、最大爬坡角度、可控性、可觀測性進行了分析,得到了載人平衡車設計的指導性結論。硬件系統設計包括車體、車輪、19花鍵免法蘭輪胎、直流減速電機、鉛酸電池以及STM32主控制電路、MPU6050姿態檢測電路、AS5040增量式編碼器電路和兩個超大功率H全橋電機驅動。通過對編碼器與姿態傳感器的數據融合,獲得了實時的、低噪聲的車身傾角信息與電機轉動速度信息,采用雙閉環控制算法調整PWM占空比控制電機轉動實現了車身的原地平衡直立、前行后退、轉向等功能。
實測結果表明,本文所設計的載人平衡車能夠很好的實現自平衡并且穩定的運行,其快恢復性,準確性和穩定性能良好。
關鍵詞:非線性;超大功率H全橋;雙閉環控制算法;STM32;MPU6050;
研究目的及意義
生活是向著智能化,便捷化的方向發展。而在交通和環境問題日益突出的當今,作為適合多種場合使用的代步工具,平衡車順應了時代的潮流,具有使用簡單、節能環保、移動靈敏便捷等特點,尤其在空間狹窄、急轉角度大的工作場合作業優勢更凸顯。如今全球變暖將給地球帶來嚴重災害,而氣溫變暖的罪魁禍首,便是工業廢氣、汽車尾氣等大量的排放。當今世界的另一個危機就是能源危機,節能環保交通工具取代傳統是必然趨勢,為平衡車的發展提供了廣闊的發展空間。同時,作為新式健身器材鍛煉平衡性發展警用型設備,在原有基礎上進行合理的優化和設計,更適用于道路交通防治工作的代步,從而獲得了廣泛關注。作為一個非線性的對稱系統,具有強耦合、多變量、參數不確定等特性。其原理和傳統的倒立擺系統類似,本身是一個自然重心不穩定的物體,需要電機的控制來維持姿態的平衡,通過姿態傳感器、控制算法、微控制器數據擬合驅動電機轉動及車體機械集裝配置整體協調制衡,是集環境感知、姿態檢測、動態規劃與決策、行為控制與執行等多種功能于一體的非線性系統,其控制難度大,控制算法復雜,給自動控制理論體系提出了很大的挑戰,具有較強的理論研究和實踐價值。
1.2 國內外研究現狀
近年來,國內外諸多科研工作單位、企業及自平衡機器人愛好者都對自平衡載人機器人領域的發展做出了許多突破性的貢獻,積累了寶貴的理論與實踐經驗,極大地促進了自平衡技術的前進速度,同時也將一批具有代表性的自平衡機器人和載人代步產品展現在世人眼前。
2002年,美國賽格威(Segway)發布了全球第一款雙輪載人平衡車,時速可達20Km/h。如圖1.2.2所示,賽格威自平衡車顛覆了人們日常以低重心、大而寬、多點平衡式的地盤設計的傳統觀念。讓世人得以見識本身即自然不穩定的雙輪車體通過內置的姿態傳感器和編碼器數據融合驅動大功率無刷伺服電機來保持車體直立以及靈活運動的類似倒立擺的機械結構也是可以平衡直立與穩定行駛的。。平衡車只需要三個陀螺儀就可以完全監測車身的前后左右傾與側傾斜程度,賽格威更是安裝了五個航空級別的固態陀螺儀以作為行車安全防范作用的備用裝置。除了修正前后傾與前進后退外,賽格威車身的轉向可以通過兩種方式來控制。其中一種可以扭轉其把手部分,使得車輛左右輪產生速差來控制其轉向;除此之外駕駛人在行進過程中通過傾斜身體,利用駕駛人的體重所產生與賽格威車體縱向垂直的分量,作為拐彎轉角時的內向心力而達到扭轉方向的目的,這是只有賽格威辦得到的動作。
可實現載人原地平衡直立,前進后退;
(2)平坦道路上可安全、平穩行駛;
(3)設計雙閉環控制算法;
(4)可爬坡8°以上;
(5)低速行駛狀態下可安全通過路面減速帶;
(6)大功率高亮LED前后車燈,方便晚上行駛;
(7)實時車速顯示;
(8)最大載重80KG以上,續航20KM,最高時速10KM/H;
(9)傾角過大,轉速過高或失控等,發出相對應提示;
2 載人平衡車建模和控制策略
2.1 載人平衡車工作原理
自平衡車是建立在基于動態平衡的自動控制系統上的一種高度靈敏、快恢復的非線性系統。而載人平衡車則是建立在自平衡的基礎之上,與人體操作相融合的高度協調的“思維車”。相較于一般的自平衡小車而言,載人平衡車具備更高的抗干擾能力和更快速的自平衡恢復能力[8]。車身內置高精度、高速的姿態傳感器實時監測車體傾斜角度,并通過數字濾波算法與電機測速的編碼器數據相融合,根據接收到的傾斜角與加速度信息,中央控制器隨即的做出相應的判斷指令并輸出頻率固定、動態可調幅度的PWM波以驅動電機轉動去維持系統的平衡[5]。通過采集把手帶動轉向電位器轉過的模擬值,判斷在當前行進速度下安全平穩轉彎的角度大小,達到穩定、靈活的行進。
2.2 載人平衡車動力學與運動學建模
參照日常生活中手托木棒保持直立的現象,我們以木棒直立控制來建立自平衡系統的模型。如圖2.2.1手托木棒控制系統所示,首先我們理想的狀態是要保值木棒的直立,但是實際中以手掌掌托為零點平面的話,木棒總會朝著這個圓面的任意一個可能的方向傾斜甚至倒下,此刻我們的大腦就會通過眼睛觀察木棒與掌托平面之間的傾斜角與大致判斷在這個傾斜方向上的加速度并不斷的發送指令給我們的執行機構(手掌)不斷地以不同的速度移動位置來盡可能的達到木棒的直立[3]。而雙輪載人平衡車的控制相對于手托木棒保持直立來說較為簡單一些。因為小車具備兩個輪子接觸地面,所以車身只需要在一維上面保持平衡即可,理想的情況下,只需要不斷地調整輪子前后移動的速度即可維持車身的平衡。
圖2.2.1 手托木棒控制系統
2.3 載人平衡車控制算法
自平衡的控制算法可以參考單擺系統的運動來做分析,如圖2.3所示,在重力場的作用下,單擺擺動的角度與其運動方向相反的回復力成正比。但由于空氣阻力的存在,單擺最終會停留在豎直位置上。但是對于自平衡車而言,我們不但要通過MCU控制使電機輸出與車身傾角成正比的回復力,還要施加與角速度成正比關系、方向相反的阻尼力。針對上述,可以得到平衡控制算法: 。所以只需計算角速度及角度的偏差便可得到可以維持小車平衡的回復力[10]。
圖2.3 單擺系統
3 系統方案分析論證及選擇
3.1 主控芯片選型
方案一: ARM V7-M架構作為目前的主流構架,被英國的ARM公司應用到Cortex-M3當中,和曾流行一時的 ARMV4T 架構相比,它擁有性能更強運算核心、更低的功耗和優良的性價比。STM32F103xx系列運行主頻為72MHz,外設資源豐富,集成一整套完整固件庫,和51單片機直接操作寄存器的方式有所區別,可直接調用標準庫函數進行項目開發,操作簡單,調試方便,通用、高級定時器包含的編碼器接口模式在電機測速上擁有無與倫比的優勢,是同價類產品中性能最高的產品。
方案二:選擇宏晶科技的STC12C5A60S2增強型51單片機。STC12C5A60S2抗干擾能力強、消耗功率極低,和傳統的51單片機運行速度相比較,它的運行加快了10倍,而且它們兩者之間的指令代碼具有無縫的兼容性。內部集成MAX810專用復位電路,一旦接上電源便可以實現自動復位。但內部的資源相對較少,運算速度不足以滿足自平衡系統快速、復雜的數據運算和融合,內部存儲空間小,性價比低。
考慮到系統的復雜度、自平衡車身內置的高精度姿態傳感器數據融合和編碼器數據處理的復雜計算任務,需要與傳感器進行IIC通訊,通過ADC采集電池電壓、轉向電位器數據并輸出多路靈活可控的PWM信號。結合以上所述方案,選擇方案一,即用STM32F103C8T6作為本系統的主控芯片較為合適。
3.2 姿態檢測傳感器方案選擇
方案一:MMA7260和ENC-03是美國飛思卡爾公司的姿態傳感器,廣泛應用于運動與控制系統中。MMA7260三軸加速度傳感器與ENC-03陀螺儀數據融合后可檢測傾角,跌落狀態等諸多方面。運用角速度原理,將由物理位置偏移情況所產生的位移轉換成電流輸送到主控IC中,通過觀察再對它所產生的位移進行一些調整,以便達到穩定的目的。在照相機、飛機模型等產品設計中得以廣泛應用。
方案二: MPU-6050三軸陀螺儀三軸加速度計擁有良好的性能而被廣泛應用于飛行器,機器人等運動控制類產品中。其將 6軸運動處理組件使用多種方案進行整合得出最優值,來解決陀螺儀與加速度計軸間差的問題。縮減了物理包裝空間,便于安裝在各種不同環境下的物理位置。通過IIC協議讀取內部原始的數據并由四元數矩陣計算出歐拉角。經過卡爾曼濾、DMP、互補等波算法濾波后輸出的角度精確穩定,足以滿足高靈敏度的隨動控制系統在姿態檢測上的要求。在DMP方面,它還支持多種操作系統系統,為應用開發提供了架構化的API。
綜合以上所敘述的:選擇MPU6050模塊作為自平衡系統的姿態檢測部分,可以有效地解除物理上的軸間差問題,實現了載人平衡車工作的可靠性和系統工作的穩定性。
3.3 電機選擇方案
方案一:步進電機的步進角與脈沖數屬正比關系,調節速度范圍相對較寬,在配合驅動器的情況下可以做到步進角度細分,提高其運行精確度,產生的誤差也不會進行累積。但是步進電機步距角是固定化的,對于分辨率的靈活性是有所欠缺的,而且步進驅動時容易造成車體震蕩,不利于小車的穩定。步進電機雖然可以使用細分驅動方式克服上述缺點,但是細分驅動電路結構復雜,且大功率的步進電機價格相對較高,性價比極低。
方案二:直流無刷電機繼承了直流有刷電機機械特性好的優點,同時擁有較寬的調節速度范圍,而且無刷電機的構造沒有安裝換向器和電刷,讓無刷電機具有高度的可靠性和長期的使用壽命,運行時產生的噪音小。市面上一般的無刷電機輸出扭矩小,全橋逆變器電路極其復雜,負載性能不強且價格偏高。
方案三:直流有刷減速電機。直流有刷減速電機具有扭矩大,機械特性硬,運行響應速度快,可調節速度范圍寬,可控制性強的特點,雙輪載人平衡車對靈敏性、快速性等性能的要求可以被滿足,雖然電機的電刷會導致電機的使用壽命減短,電磁干擾的產生也無法避免。但是基于負載較輕的設計,換向器和電刷的損失功耗比較低。為了能夠有效率地降低電磁干擾,多層機械結構被選擇應用到車體中,使得電機驅動電路能夠與其他電路進行分離開。綜上,選擇兩個36V 350W帶有減速齒輪的直流有刷電機驅動自平衡車較為合適。
3.4 系統組成
綜合以上所敘述的,選擇STM32F103C8T6單片機作為主控芯片,MPU-6050姿態傳感器,直流有刷減速電機,大功率H全橋電機驅動器組成雙輪載人平衡車硬件系統。輔以卡爾曼濾波算法對陀螺儀和加速度計數據進行融合,計算出車身傾角與角速度的最優估計值。并以最優姿態角和車身速度作為反饋量構成雙閉環控制反饋回主控制系統中產生兩路動態可調的PWM波驅動電機前后轉動以維持車身的平衡與直立。系統框圖如圖3.4所示。
圖3.4 系統框圖
4 平衡車硬件設計
4.1 STM32主控電路
雙輪載人平衡車選擇的是STM32F103C8T6作為中央控制器,其內部包含豐富的資源。自平衡車主控系統設計中采用核心板+轉接板的方式工作,力求精簡小巧,其板載資源如下:
1個復位按鈕,可用于復位MCU系統以及轉接板上的相關外設;
1個采用2x3 6Pin排針的啟動模式選擇配置接口,用于選擇復位后MCU的啟動模式;
1個4線SWD調試下載接口,極大的精簡了下載調試需要占用的IO資源和PCB整體尺寸,SWD只需兩個IO口即可在線仿真調試,清楚的觀測到MCU內核寄存器運行狀態及相關變量,給后期的程序設計與調試帶來很大的便利;1個3.3V電源指示燈,用于指示電源狀態,在按下電源開關時,若是通路,指示燈亮起,反之燈會不亮,通過觀察這顆LED指示燈的狀態,可以清楚明了的判斷核心板的上電情況是否正常,防止電源短接造成芯片燒毀等嚴重失誤;
圖4.1 STM32最小系統
三組16Pin的排針將MCU的所有IO口(除了被晶振占用的2個IO口)資源按芯片管腳順序引出,在核心板上標號分別為J1,J2,J3,非常方便后期硬件接線實驗與調試,最小系統原理圖如圖4.1所示。
4.2 電源電路
小車系統共使用了四路電源,其中還包括對模擬與數字、高壓與低壓以及高速信號部分的供電,這對PCBA的布局布線、信號完整性以及元器件的選用都提出了很大的挑戰。在高壓、高速開關功率MOS管這部分模擬電路VCC連接的是鉛酸電池的正極VCC_36V(三個12V的電瓶串聯相接),能夠穩定輸出36V電壓,12安培的電流,給予電機強勁的運行動力。此外,在電路最前端放置一只耐壓值45V的反向保護二極管防止電源短接對后面的電路造成短路燒毀的危險。過大的壓差會使電源芯片負載過大而發熱進而影響系統穩定性,遂通過200歐姆/5W的分壓電阻對36V分壓得到20V電壓,經過220uF/50V的鋁殼電解電容濾去低頻紋波再經一個0.1uF的陶瓷電容濾去高頻紋波后流入三端可調線性穩壓器LM317中,同時在LM317輸入與輸出兩端并聯肖特基二極管增加電源系統穩定性,通過5.1K和0.51K的電阻對其進行分壓后輸出穩定的15V正向電壓給半橋驅動器IR2104S供電。考慮到除了功率開關管部分功耗極大之外其余皆為耗電量較小的系統,MCU系統,外設,半橋驅動器等加起來功耗不大,但對電源穩定性要求較高,遂決定采用上述的線性穩壓器LM317來作為除功率MOS管外的系統的總電源轉換芯片,該芯片在1.2V~37V可調輸出并且保證1%的容差和0.01%的線性調整率,能夠穩定輸出超過1.5安培的電流,足以滿足系統的使用。相比開關電源所帶來的大噪聲,線性電源在小功耗場合下更為適用。第二部分為5V正向電壓輸出,前端放置一個100Ω/2W的功率電阻分掉一部分電壓以減小壓差,再經過220uF/50V的鋁殼電解電容濾波后流入LM7805三端線性穩壓芯片,輸出穩定的VCC正5V電源給高速光耦HCPL2631供電。高速光耦隔離的信號電路作為主控板與大功率電機驅動唯一的橋梁,不但沒有削弱主控的PWM控制信號,并且在主控板與大功率電機驅動板之間做了良好的隔離,放置大電流回灌而燒毀主控,對光耦單獨供電是必須的。第三部分是由三端穩壓芯片ASM1117_3.3V輸出的3.3.V正向電源,它擁有最大0.2%線性調整率,0.4%的負載調整率,可輸出最大800mA電流,性能非常優秀,是小功耗電系統極佳選型。設計中使用的是總線式電源分配方案,為所有的器件供電的同時適當的鋪設接地過孔(類似于電源層式分配方案),具有良好的阻抗特性和盡可能小的電源噪聲。電源電路原圖如圖4.2所示。
圖4.2 電源電路
4.3 電機驅動電路
平衡車使用的是350W 36V的有刷直流減速電機,額定工作電流10A左右,堵轉電流20A以上。市面上少有大功率集成的直流有刷電機驅動器,價格昂貴。利用功率NMOS管的開關特性,配合IR2104S半橋驅動器組成H全橋電機驅動電路方案簡單實用、廉價、性能滿足使用需求。IR2104S芯片相比傳統的高端低端柵極驅動器具備自動插入520納秒死區時間、耐壓值為600V、開啟電壓10~20V超寬、高側輸出與輸入相位相同動態范圍等優點。特別是內置死區時間,在電機驅動H橋控制中是不可或缺的。鑒于開關元件通性,導通時間與關斷時間是不一樣的,這樣就會造成MOS管導通與關斷過程中存在時間相疊合的死區,也稱之為開關損耗,當上下管子同時導通,會在瞬間把管子燒毀。而IR2104S芯片內置520納秒死區時間,相對于高速開關管來說既保護了場效應管不被燒毀也不會對管子的開關頻率造成影響,是做H橋驅動器的極佳選擇。設計中選用IR2104S半橋驅動器芯片搭配耐壓值600V的超快速恢復二極管RS1M FR107以及10uF鉭電容和10Ω電阻構成的泄放回路組成電荷泵來控制H橋MOS管的導通與斷開。如圖4.3.1所示,C11為自舉電容,D6為超快速恢復二極管RS1M FR107,PWM在上橋臂調制。當Q1斷開時,A點電位由于Q3續流回零,此時C11通過VCC_15V和D6進行充電。當輸入信號P1導通,上橋臂的驅動電壓由C11提供且C11電壓不變,Vb隨Vs的升高而浮動,即自舉。每一個PWM周期,電路都會給C11充電來確保其電壓狀態基本保持不變。在Q1斷開時,D6則為C11的充電提供正向電流通道,當Q1導通時則阻止電流反向流入控制電壓VCC_15V。直流電機一端接正,另一端接負即可讓電機轉動起來;調換兩端極性,電機即反向轉動。在平衡車這種高靈敏度自控系統中需要快速的切換高低電平的極性來驅動電機前后轉動以達到平衡的狀態,顯然手動的把電機線反接過來是不現實的。通過實驗可知,當頻繁的切換開關狀態時候,電機就不在是勻速轉動,而是變化的了。相應的,扭矩也隨之變化。而H橋驅動電路能夠方便的實現電機的四象限運動,即正反轉、正反轉制動。H橋驅動電路原理如圖4.3.2所示,組成H橋驅動電路的四只開關管工作在開關的狀態,S1,S4與S2,S3為兩組互補狀態關系的開關。當S1、S4導通,S3,、S4關閉時,電機兩端施以正向電壓實現電機正轉,反之,電機反轉。實際控制中,常用75NF75功率MOS管代替以上四只開關管,輔以合適電容與電阻搭建的泄放回路以及高速肖特基二極管保護電路組成的大功率H橋電機驅動器,耐壓值可達75V,可承受最大80A的瞬間放電、50A的穩定放電電流。各項性能參數可通過更換不同元器件獲得,價格低廉,可二次開發和調試。
;
PC14→數據線(SDA);
PC13→MOSI;
PB4→MISO;
OLED接口電路如圖4.7所示。
圖4.7 OLED接口電路
4.8 腳踏開關和LED車燈控制電路
實驗研究階段曾經出現按下電源開關,車子立馬往一個方向跑的情況,這在使用中是絕對不許的,毫無安全措施保障。于是設計中使用了四個防銹防水金屬按鈕自復位開關作為腳踏板的感應開關,四個開關為并聯關系,分別于四個通用GPIO口相接并兩兩分布在兩邊腳踏板之間,當人們踩踏在平衡車上時即開關導通,可通過程序設置開關首次被按下必須檢測到四個開關都被按下,才啟動平衡程序,而在行進過程中,只要感應到左右任各一個開關還被按下即繼續運行程序。MCU通過檢測IO口高低電平即可判斷開關是否處于導通狀態,進而決定是否進入平衡行駛模式,看似微小的四個自復位開關卻有效的提高了平衡車在行駛上的安全性能,最大限度保障駕駛人身安全。車身前后左中右共安裝了六顆高亮貼片式食人魚藍色LED,在行進過程中,直線行走會觸發前后中間兩顆LED高亮顯示,前行則會相應的閃爍前面中間那顆LED,反之亦然。當操縱把進行向左轉彎操作時,左車燈進入閃爍模式,提醒路人本車正進行左轉彎動作。同理,右車燈亦然。相應的燈光提示,炫彩奪目,作為裝飾的同時也起到了照明的作用,具有良好的人機交互功能。
4.9 硬件設計中抗干擾措施
電機驅動板中存在模擬(42V和15V)和數字(MCU系統)電路信號,電機自身運行過程中會產生感生電動勢給電路系統帶來強烈的電磁干擾,H橋電機驅動器中包含的大功率的NMOS管以開關的方式工作,這無疑會產生大量的高頻諧波。這對PCB布線接地方式和整車的電氣系統提出了嚴峻的挑戰,這些信號電路不進行抗干擾措施就會影響編碼器輸送到MCU的速度信號和四路PWM、電平輸出的功率NMOS管的開關信號,使得整個系統工作收到極大干擾,甚至不能工作,接地不佳情況下甚至會導致電流回灌到MCU系統燒毀主控電路。針對上述問題,設計中采取以下幾個措施來提高硬件系統的抗干擾能力:在主控制電路輸出四路PWM脈寬調制信號到電機驅動板之間放置高速光耦做光電隔離,防止驅動板的大電流信號對主控板的小信號造成干擾。查閱相關資料和實踐表明,高速光耦對控制信號幾乎沒有衰減,但卻有效的隔離大信號與小信號之間的干擾,設計中選用的是HCPL2631光電隔離器件。HCMOS兼容,搞CMR,10MBd的速度足以滿足H橋20KHz的開關頻率的使用;在旋轉磁編碼器A,B正交信號干路上放置濾波RC濾波器進行濾波處理;從電磁兼容性EMC角度出發,在PCBA布局布線上采取一些提高系統抵抗干擾能力的措施:在對噪聲有高要求的時鐘電路中,走線盡可能短,元件擺放順序按照電源通路來放置并做包地處理;在電源和地之間加去耦電容,均走直線或弧形走線;充分考慮大功率場效應管部分電路的散熱問題必要情況下應該添加散熱片或者風扇進行散熱并與MOS管保持一定的距離,高頻部分盡量布置在板子邊緣處以減少信號線走線長度等措施是保證一塊PCB成功的關鍵因素。
(未完待續,下篇一起聊聊嵌入式軟件控制系統編寫及調試經驗,歡迎一起交流…)
總結
以上是生活随笔為你收集整理的双轮载人平衡车设计完整教程之硬件篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Arduino GPS 车速表(Ardu
- 下一篇: 【YOLOV5-5.x 源码讲解】整体项