李豫南 郭夢輝 閆德建 劉林博
摘要:倒立擺系統(tǒng)廣泛應(yīng)用于許多工程領(lǐng)域,所以倒立擺系統(tǒng)的研究具有重要的現(xiàn)實(shí)意義。為了使一階小車倒立擺系統(tǒng)處于平衡運(yùn)動狀態(tài),在主控模塊中采用STM32F103C8T6單片機(jī)作為主控制器,并采用18650鋰電池提供電源且LM317穩(wěn)壓,通過MPU6050模塊陀螺儀和加速度計(jì)來檢測車內(nèi)的傾角和加速度,用TB6612FNG驅(qū)動兩臺直流電機(jī),利用霍爾編碼器獲取電機(jī)的轉(zhuǎn)速。算法上是運(yùn)用了PI和PD串級控制,并對MPU6050采集的數(shù)據(jù)進(jìn)行卡爾曼濾波,再對PID參數(shù)進(jìn)行調(diào)整,實(shí)現(xiàn)對一階小車倒立擺系統(tǒng)的控制。
關(guān)鍵詞:小車倒立擺系統(tǒng);STM32單片機(jī);PID
1項(xiàng)目背景
小車倒立擺系統(tǒng)的特點(diǎn)是復(fù)雜、不穩(wěn)定和非線性,控制倒立擺系統(tǒng)的任務(wù)是使擺體不作大角度和大速度的擺動,以達(dá)到平衡位置,然后系統(tǒng)克服擾動保持穩(wěn)定。對倒立擺系統(tǒng)的研究可以反映許多典型的控制問題,如非線性問題、可靠性問題、跟蹤問題等。同時倒立擺系統(tǒng)具有重要的工程背景,在其他領(lǐng)域得到廣泛應(yīng)用。
2硬件設(shè)計(jì)
圖1為一階小車倒立擺系統(tǒng)的結(jié)構(gòu)框圖。該系統(tǒng)主要包含了主控模塊、穩(wěn)壓模塊、電機(jī)驅(qū)動模塊和MPU6050模塊。
2.1主控最小控制系統(tǒng)
主控模塊是以 STM32F103C8T6為最小控制系統(tǒng),它是基于Cortex-M3內(nèi)核的32位微型處理器,具有高性能、低成本的特點(diǎn)。STM32單片機(jī)通過調(diào)用多個內(nèi)部和外部模塊,對各項(xiàng)數(shù)據(jù)進(jìn)行實(shí)時監(jiān)控,并在單片機(jī)的一塊液晶顯示屏上面顯示。
2.2穩(wěn)壓模塊
穩(wěn)壓模塊采用LM317集成電路,外形簡單,具有輸出電壓可調(diào)的特點(diǎn),同時還具有穩(wěn)壓范圍寬、穩(wěn)壓性能好、噪聲低等優(yōu)點(diǎn)。 所以當(dāng)18650鋰電池為小車倒立擺系統(tǒng)供電時,LM317可以為整個系統(tǒng)提供穩(wěn)定的電壓。
2.3 電機(jī)驅(qū)動模塊
TB6612FNG電機(jī)驅(qū)動芯片是可獨(dú)立雙向控制兩個直流電機(jī)的一種新型驅(qū)動器件。當(dāng)單片機(jī)調(diào)節(jié)電機(jī)轉(zhuǎn)速時,STM32的I/O口輸出單片機(jī)帶載能力較弱,信號需要功率放大,電機(jī)驅(qū)動采用TB6612FNG。由于直流電機(jī)轉(zhuǎn)速高,輸出扭矩小,需要使用減速器來降低電機(jī)轉(zhuǎn)速,增加輸出扭矩。
在電機(jī)的末端是一個霍爾傳感器,它是一個旋轉(zhuǎn)傳感器,可以將角位移或角速度轉(zhuǎn)換成一系列數(shù)字脈沖。霍爾碼盤周圍有兩個霍爾元件,因此可以產(chǎn)生兩個速度脈沖:分別為A相和B相。小車的速度可以通過單位時間內(nèi)的脈沖數(shù)來計(jì)算。
2.4 MPU6050模塊
MPU6050傳感器用于采集小車擺體姿態(tài)的信號,MPU6050是一個六軸方位傳感器,結(jié)合了三軸加速度計(jì)和三軸陀螺儀。在MPU6050中,陀螺儀用來測量擺體的傾斜角,加速度計(jì)用來測量加速度,采集到的數(shù)據(jù)需要經(jīng)過卡爾曼濾波處理。 MPU6050的通信方式為IIC通信,芯片內(nèi)置16字節(jié)A/D轉(zhuǎn)換器,可輸出16位數(shù)據(jù)。
3 PID算法設(shè)計(jì)
獲取小車倒立擺系統(tǒng)的傾斜角和速度是系統(tǒng)平衡的前提,這些數(shù)據(jù)在STM32中斷控制中結(jié)合PID算法,將輸出值賦給PWM寄存器來控制電機(jī),從而實(shí)現(xiàn)倒立擺系統(tǒng)的平衡控制。倒立擺系統(tǒng)的運(yùn)動控制分為平衡控制、速度控制和轉(zhuǎn)向控制,即直立環(huán)、速度環(huán)和角度環(huán)。
為了將倒立擺系統(tǒng)穩(wěn)定在平衡位置,不僅需要對電機(jī)施加與傾斜角成正比的回復(fù)力,而且還要增加與角速度成正比的阻尼力。直立控制系統(tǒng)采用PD控制。因此,如果能夠測出倒立擺的傾斜角和角速度,控制加速度,就可以完成直立控制。小車的前進(jìn)速度與倒立擺的傾斜度有關(guān),如果要提高小車的前進(jìn)速度,則需要增加小車的傾斜角度,在直立控制下,小車必須向前移動以保持倒立擺系統(tǒng)平衡,速度增加。速度控制系統(tǒng)采用PI控制。將直立控制和速度控制串聯(lián)起來,形成串級控制系統(tǒng)。
4結(jié)論
本文研究了一階小車倒立擺系統(tǒng),倒立擺系統(tǒng)主要用于保持小車自平衡。本設(shè)計(jì)介紹了主控機(jī)和各模塊的功能,還提供了直立控制中的PD控制、速度控制中的PI控制、一階小車倒立擺系統(tǒng)的串級PID控制。 PID算法使用PD算法測量小車的角度,讓小車在直立控制時保持平衡,使用PI算法測量小車的速度,讓小車通過改變傾斜角來控制速度,進(jìn)而調(diào)整位置。通過調(diào)節(jié)PID控制器的參數(shù),可以有效控制一階小車倒立擺系統(tǒng)。
參考文獻(xiàn):
[1]張思豪,王新榮,鄭成德,李向前,李慧敏.基于STM32的倒立擺PID學(xué)習(xí)研究平臺[J].中國科技信息,2021(12):59-61.
[2]劉拓晟.基于STM32的倒立擺控制系統(tǒng)設(shè)計(jì)[J].電腦知識與技術(shù),2018,14(36):213-215.
[3]徐猛.基于STM32自平衡小車的設(shè)計(jì)與制作[J].計(jì)算機(jī)產(chǎn)品與流通,2019(09):110.
[4]杜麗敏,王巖.基于單片機(jī)的兩輪自動平衡小車系統(tǒng)的設(shè)計(jì)[J].長春大學(xué)學(xué)報(bào),2020,30(12):19-24+38.
基金項(xiàng)目:河南科技大學(xué)2021年度大學(xué)生研究訓(xùn)練計(jì)劃,項(xiàng)目編號:2021087