基于角動量守恒的單輪自平衡機器人實驗設(shè)計
*基金項目:吉林省高等教育教學(xué)改革研究課題,項目編號JLJY202337849316
本文引用地址:http://cafeforensic.com/article/202308/449161.htm角動量是描述物體轉(zhuǎn)動特征的一個物理量,角動量守恒定律是自然界的基本守恒定律之一[1],是大學(xué)物理課程教學(xué)的重點和難點[2]。在日常生活中,經(jīng)常會遇到質(zhì)點或質(zhì)點系圍繞某一定點或定軸轉(zhuǎn)動的情況。例如,地球的自轉(zhuǎn)、飛機機翼的轉(zhuǎn)動等[3],以往角動量守恒多采用陀螺儀實驗進行演示,趣味性一般。本文利用角動量守恒原理進行單輪自平衡機器人的設(shè)計與研究,并實現(xiàn)機器人的站立與行進等操作,可極大提升學(xué)生的學(xué)習(xí)興趣,演示效果更加直觀,并通過機械結(jié)構(gòu)設(shè)計、電路設(shè)計及編程控制等操作,有助于學(xué)生理解其理論實質(zhì)。
1 角動量守恒定律
動量是反映質(zhì)點運動狀態(tài)的物理量,而角動量是反映剛體轉(zhuǎn)動狀態(tài)的物理量,角動量守恒定律是物理學(xué)中一種普遍的定律[4]。在不受外力的作用下,或所受諸外力對某定點(或定軸)的合外力矩始終等于零的質(zhì)點和質(zhì)點系圍繞該點(或軸)運動的普遍規(guī)律。質(zhì)點角動量圖,如圖1 所示。
圖1 質(zhì)點角動量圖
如式(1) 所示,式中L為角動量; r為半徑;P為動量; m為質(zhì)量;v為質(zhì)點線速度; w為角速度;轉(zhuǎn)動慣量就是質(zhì)量m乘以半徑r的平方;當(dāng)質(zhì)量m與半徑r不變時,角動量L 只與角速度w 有關(guān)。
(1)
(2)
式(2)中,M為合外力矩,若M = 0 ,則L = 常矢量,這稱為角動量守恒定律。守恒條件,如公式(3) 所示。
(3)
2 硬件設(shè)計
硬件設(shè)計包括電路設(shè)計與機械結(jié)構(gòu)設(shè)計2 個部分,電路設(shè)計部分需要重點考慮電源設(shè)計及電機驅(qū)動電路設(shè)計。機械結(jié)構(gòu)部分根據(jù)電機與電路的大小進行裝配,需要考慮行進輪與慣量輪的安裝及位置。
2.1 電路設(shè)計
電路設(shè)計部分采用STM32F103c8t6 作為核心控制器,用于系統(tǒng)的整體協(xié)調(diào)控制與PID 算法實現(xiàn),MPU6050傳感器用于采集當(dāng)前機器人的角度狀態(tài),OLED12864用于顯示各項指標(biāo)參數(shù),如:車輪轉(zhuǎn)速、電池電量、角速度顯示、角度顯示等信息,電機驅(qū)動電路需要驅(qū)動1個直流電機和1 個無刷電機,無刷電機帶動慣量輪轉(zhuǎn)動,直流電機帶動行進輪轉(zhuǎn)動,電機的驅(qū)動電壓為12 V,該電源由鋰電池直接提供,單片機及其余電路均在3.3 V電壓下工作,因此需采用DC-DC 變換電路將電壓轉(zhuǎn)換至3.3 V。
圖2 電路總體框架圖
2.2 電機驅(qū)動電路
TB6612FNG 芯片能耗相對較低,具有大電流MOSFET-H 橋結(jié)構(gòu),雙通道電路輸出。系統(tǒng)有兩個電機,分別是位于上方的無刷電機和位于下方的直流電機,無刷電機驅(qū)動慣性輪控制機器人的左右方向平衡,直流電機驅(qū)動行進輪控制機器人的前后方向平衡。具體驅(qū)動電路如圖3 所示。
圖3 電機驅(qū)動電路圖
2.3 機械結(jié)構(gòu)設(shè)計
機械結(jié)構(gòu)部分的設(shè)計主要是各個器件之間的裝配,需要盡量在重量上保持前后方向和水平方向上的平衡,圖4 為機器人整體設(shè)計結(jié)構(gòu)的示意圖,主要由慣量輪、行進輪,2 個電機,電池、以及電路板組成,行進輪與慣量輪均與電機連接,慣量輪的尺寸參數(shù)如圖4 所示。
圖4 機器人結(jié)構(gòu)及慣量輪參數(shù)圖
3 程序設(shè)計
3.1 軟件總體結(jié)構(gòu)圖
軟件部分包括4 個部分,分別是姿態(tài)信息采集程序、PID控制程序、電機驅(qū)動程序、OLED 顯示程序,軟件總體結(jié)構(gòu)圖如圖5 所示。
圖5 軟件總體結(jié)構(gòu)圖
3.2 機器人平衡控制原理
如圖6 所示為行進輪與慣量輪的PID 控制框圖,結(jié)合框圖說明機器人保持平衡的原理。行進輪用于控制機器人的俯仰角度,相當(dāng)于一個倒立擺的模型,最終的目標(biāo)是要保持?jǐn)[桿的角度達到90°,也就是垂直的狀態(tài),這是理想狀態(tài),實際上很難達到,因此需要借助PID控制來實現(xiàn),通過MPU6050 實時采集姿態(tài)信息,結(jié)合PID 算法,驅(qū)動電機轉(zhuǎn)動,進而控制行進輪轉(zhuǎn)動,保持?jǐn)[桿角度在90°左右擺動。慣量輪用于控制機器人的橫滾角度,理想狀態(tài)是要達到慣量輪的轉(zhuǎn)速為0 m/s,也就是慣量輪不轉(zhuǎn)動,處于動量守恒狀態(tài),實際上很難達到,需要借助PID 控制不斷修正慣量輪的轉(zhuǎn)速,借助慣量輪旋轉(zhuǎn)的反作用了使機器人保持平衡[5]。
圖6 行進輪及慣量輪PID控制框圖
3.3 主程序設(shè)計
單片機的主程序流程圖如圖7 所示。STM32 單片機每5 ms 中斷1 次獲取MPU6050 信息,采集到角速度、加速度信息,再通過PID 算法控制,先計算出偏差,將采集到的角度信息,計算傾角偏差,即平衡的角度中值和機械中值之差,再求偏差的微分,進行微分控制,最后計算出傾角控制的機PWM 值并進行返回。將得到的控制量作用于電機,實現(xiàn)PID 控制,并不斷循環(huán)往復(fù)。
圖7 主程序流程
3.4 PID計算
位置閉環(huán)控制是根據(jù)電機的實時位置信息與機械中值做差得到位置偏差,然后對偏差進行比例、積分、微分控制,使偏差趨向于零的過程[6,7]。機械中值是設(shè)定在平衡狀態(tài)下的一個值,有前后平衡和左右平衡的機械中值。利用式(4)計算PWM 值,derivative 為微分項,integral 為積分項,error 為誤差。
pwm_ control=Kp*error+Ki*integral+Kd *derivative (4)
4 系統(tǒng)測試
設(shè)計完成的作品實物如圖8 所示,PID 參數(shù)的具體數(shù)值需要根據(jù)具體的單輪自平衡小車的機械結(jié)構(gòu)、電路特性以及環(huán)境條件等因素來確定。通常情況下,PID 參數(shù)的調(diào)整需要進行一定的試驗和優(yōu)化,以達到最佳的控制效果。比例系數(shù)Kp:根據(jù)經(jīng)驗數(shù)據(jù),可以設(shè)置為車身重心高度與車輪半徑之比的2~3 倍。積分系數(shù)Ki:一般可以設(shè)置為Kp的1/10 或1/20。微分系數(shù)Kd:一般可以設(shè)置為Kp的1/5 或1/10。
圖8 平衡狀態(tài)實物圖
5 結(jié)束語
本文基于STM32 單片機及動量守恒定律實現(xiàn)了單輪自平衡機器人的設(shè)計,電路設(shè)計較為精簡,學(xué)生在設(shè)計過程中可以綜合利用機械設(shè)計、電路設(shè)計、單片機程序設(shè)計的知識和技能,并且對于PID 算法會有更深入的理解,因此將此作品作為電子信息類專業(yè)學(xué)生的項目式實踐教學(xué)案例是較好的選擇。
參考文獻:
[1] 姬洪偉,包敏,吳鵬,等.一種角動量守恒演示儀的設(shè)計[J].大學(xué)物理實驗,2020,33(3):72-74.
[2] 李小芳,王志梅.角動量守恒定律的應(yīng)用[J].長春工業(yè)大學(xué)學(xué)報,2019,40(4):378-382.
[3] 劉玉麗,王鈺茹,張蕓,等.角動量守恒定律在軍事中的應(yīng)用[J].江西科學(xué),2021,39(4):616-618+669.
[4] 喻莉,劉洋,周本元,等.關(guān)于“角動量及其守恒定律”的教學(xué)改革實踐[J].物理通報,2021(12):17-19.
[5] 呂強,王平,張皓潔.獨輪車自平衡控制系統(tǒng)實驗平臺設(shè)計[J].實驗室研究與探索,2017,36(7):35-38+79.
[6] 王婷婷,王宏志,劉清雪,等.遺傳算法優(yōu)化的無刷直流電機模糊PID控制器設(shè)計[J].吉林大學(xué)學(xué)報(理學(xué)版),2020,58(6):1421-1428.
[7] 王祎晨.增量式PID和位置式PID算法的整定比較與研究[J].工業(yè)控制計算機,2018,31(5):123-124.
(本文來源于《電子產(chǎn)品世界》雜志2023年7月期)
評論