楊風健 王永歡







摘 要:為驗證角動量守恒定律,設計完成了單輪自平衡機器人的軟硬件實現(xiàn)方案。基于角動量守恒定理,以STM32單片機為主控制器,通過MPU6050陀螺儀加速度傳感器檢測機器人姿態(tài)信息,利用PID算法計算出PWM驅動電機的占空比,進而驅動直流電機和無刷電機轉動來保持機器人平衡。實驗表明,本方案可以實現(xiàn)單輪自平衡機器人的自啟動、站立及行進功能。
關鍵詞:角動量守恒;STM32單片機;PID算法;MPU6050*基金項目:吉林省高等教育教學改革研究課題,項目編號JLJY202337849316
角動量是描述物體轉動特征的一個物理量,角動量守恒定律是自然界的基本守恒定律之一[1],是大學物理課程教學的重點和難點[2]。在日常生活中,經(jīng)常會遇到質點或質點系圍繞某一定點或定軸轉動的情況。例如,地球的自轉、飛機機翼的轉動等[3],以往角動量守恒多采用陀螺儀實驗進行演示,趣味性一般。本文利用角動量守恒原理進行單輪自平衡機器人的設計與研究,并實現(xiàn)機器人的站立與行進等操作,可極大提升學生的學習興趣,演示效果更加直觀,并通過機械結構設計、電路設計及編程控制等操作,有助于學生理解其理論實質。
1 角動量守恒定律
動量是反映質點運動狀態(tài)的物理量,而角動量是反映剛體轉動狀態(tài)的物理量,角動量守恒定律是物理學中一種普遍的定律[4]。在不受外力的作用下,或所受諸外力對某定點(或定軸)的合外力矩始終等于零的質點和質點系圍繞該點(或軸)運動的普遍規(guī)律。質點角動量圖,如圖1 所示。
2 硬件設計
硬件設計包括電路設計與機械結構設計2 個部分,電路設計部分需要重點考慮電源設計及電機驅動電路設計。機械結構部分根據(jù)電機與電路的大小進行裝配,需要考慮行進輪與慣量輪的安裝及位置。
2.1 電路設計
電路設計部分采用stm32f103c8t6 作為核心控制器,用于系統(tǒng)的整體協(xié)調控制與PID 算法實現(xiàn),MPU6050傳感器用于采集當前機器人的角度狀態(tài),OLED12864用于顯示各項指標參數(shù),如:車輪轉速、電池電量、角速度顯示、角度顯示等信息,電機驅動電路需要驅動1個直流電機和1 個無刷電機,無刷電機帶動慣量輪轉動,直流電機帶動行進輪轉動,電機的驅動電壓為12 V,該電源由鋰電池直接提供,單片機及其余電路均在3.3 V電壓下工作,因此需采用DC-DC 變換電路將電壓轉換至3.3 V。
2.2 電機驅動電路
TB6612FNG 芯片能耗相對較低,具有大電流MOSFET-H 橋結構,雙通道電路輸出。系統(tǒng)有兩個電機,分別是位于上方的無刷電機和位于下方的直流電機,無刷電機驅動慣性輪控制機器人的左右方向平衡,直流電機驅動行進輪控制機器人的前后方向平衡。具體驅動電路如圖3 所示。
2.3 機械結構設計
機械結構部分的設計主要是各個器件之間的裝配,需要盡量在重量上保持前后方向和水平方向上的平衡,圖4 為機器人整體設計結構的示意圖,主要由慣量輪、行進輪,2 個電機,電池、以及電路板組成,行進輪與慣量輪均與電機連接,慣量輪的尺寸參數(shù)如圖4 所示。
3 程序設計
3.1 軟件總體結構圖
軟件部分包括4 個部分,分別是姿態(tài)信息采集程序、PID 控制程序、電機驅動程序、OLED 顯示程序,軟件總體結構圖如圖5 所示。
3.2 機器人平衡控制原理
如圖6 所示為行進輪與慣量輪的PID 控制框圖,結合框圖說明機器人保持平衡的原理。行進輪用于控制機器人的俯仰角度,相當于一個倒立擺的模型,最終的目標是要保持擺桿的角度達到90°,也就是垂直的狀態(tài),這是理想狀態(tài),實際上很難達到,因此需要借助PID控制來實現(xiàn),通過MPU6050 實時采集姿態(tài)信息,結合PID 算法,驅動電機轉動,進而控制行進輪轉動,保持擺桿角度在90°左右擺動。慣量輪用于控制機器人的橫滾角度,理想狀態(tài)是要達到慣量輪的轉速為0 m/s,也就是慣量輪不轉動,處于動量守恒狀態(tài),實際上很難達到,需要借助PID 控制不斷修正慣量輪的轉速,借助慣量輪旋轉的反作用了使機器人保持平衡[5]。
3.3主程序設計
單片機的主程序流程圖如圖7 所示。STM32 單片機每5 ms 中斷1 次獲取MPU6050 信息,采集到角速度、加速度信息,再通過PID 算法控制,先計算出偏差,將采集到的角度信息,計算傾角偏差,即平衡的角度中值和機械中值之差,再求偏差的微分,進行微分控制,最后計算出傾角控制的機PWM 值并進行返回。將得到的控制量作用于電機,實現(xiàn)PID 控制,并不斷循環(huán)往復。
3.4 PID計算
位置閉環(huán)控制是根據(jù)電機的實時位置信息與機械中值做差得到位置偏差,然后對偏差進行比例、積分、微分控制,使偏差趨向于零的過程[6,7]。機械中值是設定在平衡狀態(tài)下的一個值,有前后平衡和左右平衡的機械中值。利用式(4)計算PWM 值,derivative 為微分項,integral 為積分項,error 為誤差。
pwm_ control = Kp * error + Ki * integral + Kd *derivative; (4)
4 系統(tǒng)測試
設計完成的作品實物如圖8 所示,PID 參數(shù)的具體數(shù)值需要根據(jù)具體的單輪自平衡小車的機械結構、電路特性以及環(huán)境條件等因素來確定。通常情況下,PID 參數(shù)的調整需要進行一定的試驗和優(yōu)化,以達到最佳的控制效果。比例系數(shù)Kp:根據(jù)經(jīng)驗數(shù)據(jù),可以設置為車身重心高度與車輪半徑之比的2~3 倍。積分系數(shù)Ki:一般可以設置為Kp 的1/10 或1/20。微分系數(shù)Kd:一般可以設置為Kp 的1/5 或1/10。