兩輪自平衡小車控制系統設計探討

時間:2022-09-08 10:24:30

導語:兩輪自平衡小車控制系統設計探討一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

兩輪自平衡小車控制系統設計探討

摘要:介紹了一種采用數字信號控制器dsPIC33EP16GS502和運動傳感器MPU-6050等設計的兩輪自平小車控制系統。該系統利用卡爾曼濾波算法對陀螺儀和加速度計的信號進行融合,計算出小車傾角和角速度的最優估計值,采用PID算法對驅動電機的兩路PWM信號進行控制,從而實現兩輪小車的自平衡控制。文中詳細介紹了兩輪小車自平衡控制系統硬件和軟件的設計。

關鍵詞:卡爾曼濾波;數據融合;自平衡;兩輪;dsPIC33EP16GS502

兩輪自平衡車系統是一種高度不穩定系統,具有傳統的一階倒立擺的特性,其平衡控制系統利用安裝在車體上的陀螺儀和加速度傳感器,來檢測車體姿態的變化,再通過伺服控制系統驅動電機進行精確地調整,以實現系統的動態穩定[1,2]。本文利用數字信號控制器、加速度傳感器等設計了一種兩輪自平衡小車的控制系統。

1系統總體設計

兩輪自平衡小車的控制系統主要由數字信號控制器dsPIC33EP16GS502、加速度傳感器MPU-6050、藍牙串口模塊(型號:DX-BT04)、直流雙電機驅動TB6612FNG等組成。系統框圖如圖1所示。加速度傳感器MPU-6050用于車體傾角及小車加速度的測量,藍牙串口通信模塊用于實現手機對小車的控制,安裝在兩個車輪上的光電檢測電路各輸出AB兩路信號,處理后可以得到小車的速度及方向信息,TB6612FNG用于驅動車輪動作,OLED模塊用于數據和狀態顯示,所有的通信、測量及控制都在數字信號控制器dsPIC33EP16GS502控制下實現,下面介紹主要電路的設計。

2硬件電路設計

2、1控制電路

系統控制電路如圖2所示。由數字信號控制器(DSC)dsPIC33EP16GS502實現,這是一種16位數字信號控制器,適合電機控制類應用,其工作時鐘高達70MHz,內部有5個16位、輸入時鐘頻率為960MHz的高速PWM模塊(每個PWM模塊可有兩個輸出),可以輸出高分辨率、高速PWM信號[3],本設計中用于平衡車車輪的精確控制。此外,該DSC具有I2C接口、SPI接口及UART接口,方便與MPU-6050、OLED顯示模塊及藍牙串口模塊接口的設計。控制模塊的主要功能為:(1)讀取MPU-6050內部寄存器,獲取三軸加速度傳感器和三軸陀螺儀數據,再利用卡爾曼濾波法對加速度傳感器輸出的數據和陀螺儀輸出的數據進行解算,計算出角速度、角速度誤差等;(2)與藍牙串口模塊通信,接收手機APP發來的命令,發送當前數據、狀態到手機上顯示;(3)控制OLED模塊顯示數據、狀態;(4)讀取光電傳感器對安裝在車輪上的光柵編碼盤的檢測信號,處理后得到小車的速度和運動方向;(5)輸出30kHz、15位分辨率(實際范圍為0~32000)的PWM信號給電機驅動芯片,從而實現對兩個車輪的精確控制。

2、2電機驅動電路

電機驅動電路如圖3所示。TB6612FNG是東芝公司推出的一種電機控制專用芯片,其集成度高、驅動能力強[4],分別控制兩個直流電機。設計中使用了DSC的6個I/O腳用于對TB6612的控制,其中4個I/O腳用于電機正轉/反轉/停止等功能控制,另外2個I/O腳輸出兩路30kHz的PWM信號,實現電機轉速控制。

2、3測量及通信電路

車體傾角、加速度測量及通信電路如圖4所示,DSC通過2個I/O腳與MPU-6050相連,以I2C接口的方式讀取MPU-6050的測量結果[5];為實現手機以藍牙方式對小車進行控制,設計中使用了藍牙串口模塊,該模塊與DSC的串行口相連,如圖4所示,圖中的D3用于指示藍牙連接狀態,按下S1鍵可以斷開藍牙連接。

3軟件設計

系統程序采用模塊化編程方式,每個模塊實現一定的功能,各模塊在主程序調用下協同運作實現小車的平衡控制。系統程序由MPU-6050讀寫、卡爾曼濾波、車速及運動方向檢測、PID控制、藍牙串口通信及數據顯示等模塊組成。系統主程序流程圖如圖5所示。MPU6050的姿態解算采用DMP(DMP是MPU6050內部的運動引擎,全稱DigitalMotionProcessor,直接輸出四元數)方式,在平衡車實際調試中發現卡爾曼濾波進行數據融合和通過DMP輸出的四元數得到的角度最為穩定。平衡小車的卡爾曼濾波器設計關鍵要素是選取狀態向量,平衡小車的車體傾斜角度和車體的傾斜角速度是倒數關系,所以狀態向量的元素可以選擇為車體的角速度(Q_gyro)、車體的傾角(Q_angle)等來估計陀螺儀的零位偏(Q_bias),卡爾曼濾波采樣時間為dt=0005,觀查噪聲協方差矩陣(R_angle)[6,7]。卡爾曼濾波融合流程圖如圖6所示。程序設計中每5ms測量一次傾角及加速度的值,這樣的測量頻率可以取得較好的卡爾曼濾波和互補濾波的效果。系統啟動后調用各個模塊采集數據,速度環采用PI(比例-積分)控制、轉向環P(比例)控制、直立(平衡)環采用PD(比例-微分)控制。數據處理后最終輸出兩路PWM控制左右兩個電機的運動,從而實現小車的控制。在實際調試中,上述各環的參數需要實際測試得出,以直立環PD控制參數確定為例,其確定流程如圖7所示。其余各環的控制參數的確定與直立環類似,不再贅述。

4系統調試

平衡小車的調試主要分為三個環節:車體直立調試、小車速度控制、小車轉向控制,下面分別介紹。

4、1車體直立調試

平衡小車直立環使用PD(比例微分)控制器,直立控制調試,由此可以得出結論見表1、表2所示。從表1、表2可以看出直立環中應取:kp=500、kd=1�7,根據實踐經驗,對kp、kd都乘以06,然后取整即得:kp=300、kd=1。

4、2小車速度控制

在平衡小車的速度控制中,采用最常使用的PI(比例積分)控制器,PI控制器是一種線性控制器,是將偏差的比例(P)和積分(I)通過線性組合構成控制量,對被控對象進行控制。根據速度控制調試,由此可以得出結論見表3所示。根據表3,設計中選取kp=80、kd=0.4。

4、3小車轉控制

平衡小車轉向控制比較簡單,設計中僅使用了比例(P)控制。具體而言,就是使用Z軸陀螺儀的數據作為轉向速度偏差進行比例控制,目的是保持轉向速度為設定值。這種方法算法簡單、避免了編碼器對車輪滑動無法檢測現象、陀螺儀漂移等問題。轉向環的作用是使小車行駛的過程中,跟隨給定的Z軸角速度,例如若設定的Z軸目標角速度為零,那么小車應該走一個直線,根據轉向控制調試,由此可以得出結論見表4所示。根據表4中的數據,設計中轉向環控制中,取kp=1。綜上所述,各控制環的選擇適當的PID參數,然后再進行綜合調試,可以使平衡小車能穩定的做自平衡運動。

5結束語

文中介紹了一種硬件上采用數字信號控制器dsPIC33EP16GS502、加速度傳感器MPU-6050等,軟件上主要采用卡爾曼數據融合算法、PID控制算法的兩輪自平衡小車控制系統的設計。實際測試表明該小車在一般的水泥地面上自平衡控制范圍約為±15°,施加一定的干擾,小車仍能保持平衡;可以完成通過手機以藍牙方式發出的前進、倒退、轉彎等指令,控制過程穩定、可靠。

作者:乙金林 陳雯雯 張亞煒 沙春芳 單位:鹽城師范學院物理與電子工程學院