劉拓晟
摘要:倒立擺是開展各種控制實(shí)驗(yàn)及進(jìn)行控制理論的理想實(shí)驗(yàn)平臺,是一個不穩(wěn)定的、非線性的復(fù)雜控制系統(tǒng),其控制方法在軍工、航天、機(jī)器人和一般工業(yè)過程領(lǐng)域中都有著廣泛的用途。該系統(tǒng)采用stm32f103rct6單片機(jī)為控制器,以角位移傳感器為反饋裝置,以直流減速電機(jī)作為執(zhí)行裝置,采用PID控制算法,設(shè)計了一個簡易的旋轉(zhuǎn)倒立擺控制系統(tǒng)。能夠完成倒立擺的穩(wěn)定倒立、起擺倒立、旋轉(zhuǎn)倒立等動作。
關(guān)鍵詞:stm32f103rct6;角位移傳感器;直流減速電機(jī);PID算法;倒立擺
中圖分類號:TP302? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ? 文章編號:1009-3044(2018)36-0213-03
Abstract:Inverted pendulum is an ideal experimental platform for carrying out various control experiments and control theory teaching. It is an unstable and nonlinear complex control system. Its control methods are widely used in military, aerospace, robotics and general industrial processes. use. In this paper, the stm32f103rct6 micro-controller is used as the controller, the angular displacement sensor is used as the feedback device, the DC geared motor is used as the actuator, and the PID control algorithm is used to design a simple rotary inverted pendulum control system. The final test results show that the design of this program is basically feasible, and it can complete the actions of the inverted pendulum, such as a stable inverted handstand, a pendulum upside down, and an inverted handstand.
Key words: stm32f103rct6; Angular displacement sensor; DC geared motor; PID algorithm; Inverted pendulum
1 背景
倒立擺控制系統(tǒng)是一種經(jīng)典的研究自動化控制的實(shí)驗(yàn)裝置,其應(yīng)用已經(jīng)廣泛分布于機(jī)器人控制、工業(yè)自動化控制、航空航天及人工智能等領(lǐng)域,在自動化控制領(lǐng)域占據(jù)著非常重要的地位。同時,倒立擺因?yàn)榻Y(jié)構(gòu)簡單、成本低廉等特點(diǎn),許多學(xué)校和相關(guān)研究機(jī)構(gòu)都將其作為教學(xué)、實(shí)驗(yàn)平臺,進(jìn)行控制理論教學(xué)和開展各種控制實(shí)驗(yàn)[1]。近年來,倒立擺控制系統(tǒng)的運(yùn)用越來越廣泛,控制技術(shù)與方法也愈加成熟。人們通過對倒立擺控制系統(tǒng)的研究,處理各種多變量問題、非線性問題及不穩(wěn)定系統(tǒng)問題,進(jìn)而延伸到各類工控領(lǐng)域,與工業(yè)應(yīng)用相結(jié)合,對解決實(shí)際問題有著顯著的幫助[2]。
2 總體方案設(shè)計
倒立擺硬件系統(tǒng)包括STM32主控模塊、角位移傳感器模塊、電機(jī)驅(qū)動模塊、穩(wěn)壓模塊、直流減速電機(jī)等。系統(tǒng)的電源采用3節(jié)18650電池供電,利用穩(wěn)壓模塊為電機(jī)驅(qū)動模塊提供8V的電壓,給單片機(jī)提供5V的電壓。將角位移傳感器傳回的實(shí)時角度和直流減速電機(jī)傳回的速度傳入主控制器,主控制器通過PID控制器計算并輸出電機(jī)下一步運(yùn)行所需的PWM值,驅(qū)動電機(jī)運(yùn)行,最終實(shí)現(xiàn)擺桿的動態(tài)平衡。系統(tǒng)運(yùn)行期間,利用Nokia 5110進(jìn)行實(shí)時數(shù)據(jù)顯示與模式調(diào)節(jié)顯示,方便整個系統(tǒng)的運(yùn)行。在機(jī)械結(jié)構(gòu)方面,采用不銹鋼制成的支架,提高了整體結(jié)構(gòu)的穩(wěn)定性;采用導(dǎo)線環(huán)與電機(jī)相連,解決了系統(tǒng)運(yùn)行時的繞線問題。系統(tǒng)整個結(jié)構(gòu)圖如圖1所示。
3 系統(tǒng)硬件設(shè)計
3.1 主控最小系統(tǒng)設(shè)計
該設(shè)計選用STM32F103RCT6作為控制核心,需要調(diào)用幾個片內(nèi)外設(shè),Nokia5110顯示器需要一組連續(xù)的普通GPIO口資源,驅(qū)動定時器需要定時器的PWM輸出,還需要一個串口USART用來調(diào)試。外部晶振采用了8MHz的無源晶振,另外還增加了22pF的補(bǔ)償電容,作為系統(tǒng)時鐘源。STM32F103RCT6的引腳數(shù)目能夠滿足要求。
3.2 穩(wěn)壓模塊設(shè)計
該系統(tǒng)選用了LM317穩(wěn)壓模塊為直流電機(jī)提供穩(wěn)定電壓。LM317是一種可調(diào)3端正電壓穩(wěn)壓器,具有穩(wěn)壓性能好、輸出電壓可調(diào)、噪聲低、價格低廉等優(yōu)點(diǎn),廣泛應(yīng)用于一些小型嵌入式系統(tǒng)。穩(wěn)壓模塊原理圖如圖2所示。LM317模塊輸出電壓公式為:
3.3 電機(jī)驅(qū)動模塊
該系統(tǒng)選用的電機(jī)驅(qū)動模塊是L298N驅(qū)動模塊。L298N是ST公司生產(chǎn)的一種高電壓、大電流電機(jī)驅(qū)動芯片,可以用來驅(qū)動直流電動機(jī)和步進(jìn)電動機(jī)、繼電器線圈等感性負(fù)載;采用標(biāo)準(zhǔn)邏輯電平控制,有四個信號輸入口,通過單片機(jī)輸出的PWM信號驅(qū)動模塊正常工作,實(shí)現(xiàn)電機(jī)的加減速與正反轉(zhuǎn)等動作[3]。該系統(tǒng)利用L298N驅(qū)動一個直流電機(jī)。
3.4 角位移傳感器
該系統(tǒng)采用WDD35D4角位移傳感器作為擺桿的實(shí)時姿態(tài)檢測與反饋裝置。WDD35D4角位移傳感器采用3.3V電壓供電,只有一根信號輸出線,由該信號線輸出角位移傳感器的實(shí)時電位值[4]。采用Stm32f103上集成的ADC外設(shè)直接測量傳感器的電位值,將ADC1的通道10(PC0)配置成模擬輸入模式,采用DMA方式將采集到的電位值周期性地存放到指定內(nèi)存位置,在需要使用該變量時將其取出。擺桿與角位移傳感器的轉(zhuǎn)軸連接,系統(tǒng)通過實(shí)時測出的電位值,與擺桿處于平衡位置時的電位值進(jìn)行比較,算出實(shí)時偏差并將其傳入PID控制器,控制電機(jī)糾正偏差,形成一個負(fù)反饋系統(tǒng)。
3.5 Nokia5110液晶模塊
該系統(tǒng)選用Nokia5110液晶模塊作為系統(tǒng)的顯示器件,用來顯示工作模式、角度與速度、PID參數(shù)等,方便系統(tǒng)調(diào)試。Nokia5110液晶模塊采用PCD8544作為驅(qū)動芯片,通過模擬串行總線協(xié)議發(fā)送指令和寫入數(shù)據(jù)RAM來控制和顯示數(shù)據(jù);采用串行接口與主處理器進(jìn)行數(shù)據(jù)通信,接口信號線相較于其他液晶模塊大幅減少,除去電源、背光電源與地,僅有5根信號線。其電路原理圖如圖3。
4 系統(tǒng)軟件設(shè)計
4.1 主程序流程圖
軟件設(shè)計的主體是一個閉環(huán)的負(fù)反饋系統(tǒng):在6ms的采樣周期內(nèi),主控制器首先采集實(shí)時的角度、速度,通過Nokia5110實(shí)時顯示,然后將采集到的角度與平衡位置進(jìn)行比較,判斷擺桿是否達(dá)到平衡;如果達(dá)到平衡,擺桿繼續(xù)保持當(dāng)前位置;如果與平衡位置偏差較遠(yuǎn),則將采集的角度、速度傳入PID控制器,輸出合適的PWM值控制電機(jī),調(diào)節(jié)擺桿靠近平衡位置,再進(jìn)入下一個采樣周期。軟件設(shè)計的主程序流程圖如圖4:
4.2 角度采集
角度采集部分,該系統(tǒng)使用的是WDD35D4角位移傳感器,WDD35D4角位移傳感器實(shí)質(zhì)上是一個高精度的電位器,擺桿連接在電位器上能夠旋轉(zhuǎn)的軸承之上。當(dāng)擺桿處于運(yùn)動狀態(tài)時,電位器的電阻也會時刻發(fā)生變化。通過將采樣點(diǎn)采回的電阻值與擺桿平衡時的電阻值進(jìn)行比較,計算出一個類似角度的變量,傳入PID控制器中進(jìn)行計算。
4.3 速度采集
速度采集部分,該系統(tǒng)采用的是帶編碼器的直流減速電機(jī),電機(jī)尾部自帶了13線的磁(霍爾)編碼器,以減速比20:1的電機(jī)為例,車輪轉(zhuǎn)一圈,電機(jī)可以輸出260個脈沖,倍頻之后是1040。編碼器的額定工作電壓是5V,集成了上拉電阻和比較整形功能,可以直接輸出方波。利用stm32上的TIM2編碼器功能采集電機(jī)輸出的脈沖,測出電機(jī)的轉(zhuǎn)速。
4.4 電機(jī)控制
在電機(jī)控制方面,該系統(tǒng)采用stm32f103rct6 定時器3模擬PWM輸出來控制電機(jī)的調(diào)速,利用L298N模塊控制電機(jī)的正反轉(zhuǎn)。PWM全名為脈沖寬度調(diào)制,通過在一定周期時間內(nèi)調(diào)節(jié)高低電平各自所占的時間,達(dá)到改變PWM占空比的目的。該次使用的直流減速電機(jī),采用10Khz的PWM控制頻率,一個PWM周期內(nèi)高電平的占空比越大,電機(jī)的轉(zhuǎn)速越快。因此控制電機(jī)轉(zhuǎn)速的問題就演變成了改變PWM高電平占空比的問題,具體控制流程如圖5。
4.5 PID控制器
該系統(tǒng)PID采用的是傾角PD控制與速度PI控制雙環(huán)控制??刂破鞯幕玖鞒倘鐖D6。
5 參數(shù)整定
該系統(tǒng)是雙環(huán)PID控制,需要整定的是倒立擺的角度環(huán)與速度環(huán)四個PID參數(shù)。
5.1 平衡位置角度整定
確定平衡位置的角度,該角度是由機(jī)械結(jié)構(gòu)的安裝位置決定。將擺桿拉至平衡位置,讀出并記錄該位置角位移傳感器的AD值,并將此AD值作為角度環(huán)中的“0”度,后面角度環(huán)測出的角度都是以此為標(biāo)準(zhǔn)換算出來[5]。轉(zhuǎn)動擺桿,觀察到角位移傳感器的AD值變化正常,開始直立調(diào)試。
5.2 角度環(huán)整定
角度環(huán)使用的是PID控制器中的PD控制器:當(dāng)在單位時間內(nèi),倒立擺擺桿由一個角度運(yùn)動到另一個角度時,角速度從零變大再變成零,這里的角速度就可以理解為此次角度與平衡位置的差值和上次角度差值的差值(因?yàn)榻嵌炔钪党詥挝粫r間就是角速度),這剛好契合PID控制器中微分部分參數(shù)的要求。
5.3 速度環(huán)整定
當(dāng)角度環(huán)有偏差的時候,電機(jī)本身也會存在一定的速度,倒立擺以什么速度維持平衡,光靠直立環(huán)無法做到。因此該系統(tǒng)加入了速度環(huán),采用PID控制器中的PI控制器控制速度環(huán)輸出的PWM值。
6 結(jié)束語
該文提出基于stm32f103rct6單片機(jī)倒立擺控制系統(tǒng)設(shè)計方案,并通過綜合調(diào)試完成倒立擺的穩(wěn)定倒立、起擺倒立、旋轉(zhuǎn)倒立等動作,確認(rèn)設(shè)計方案可行。
參考文獻(xiàn):
[1] 翟彥彥. 一級倒立擺模糊控制、LQR控制和PID控制的比較研究[J]. 電子設(shè)計工程, 2016(6):116-124.
[2] 王俊. 基于倒立擺的PID控制算法的研究[J]. 現(xiàn)代電子技術(shù), 2012(23):152-154.
[3] 羅文韜. 基于Matlab和Automation Studio的倒立擺控制仿真[J]. 農(nóng)業(yè)開發(fā)與設(shè)備, 2017(7):63-67.
[4] 曾憲陽, 楊紅莉. 基于單片機(jī)控制的旋轉(zhuǎn)倒立擺建模分析與系統(tǒng)設(shè)計[J]. 電子技術(shù)應(yīng)用, 2016(9):76-79.
[5] 房朝暉, 蔣云鵬, 袁浩. 旋轉(zhuǎn)二級倒立擺的雙閉環(huán)模糊控制[J]. 實(shí)驗(yàn)技術(shù)與管理, 2017, 34(6):50-53.
[通聯(lián)編輯:謝媛媛]