范碩 陶翔翔 王志明
摘要:該文介紹了一級(jí)旋轉(zhuǎn)倒立擺實(shí)驗(yàn)平臺(tái)下位機(jī)的系統(tǒng)結(jié)構(gòu)與實(shí)現(xiàn)。實(shí)驗(yàn)平臺(tái)實(shí)現(xiàn)了倒立擺在一定的角度范圍內(nèi)穩(wěn)定倒立以及做完整圓周運(yùn)動(dòng)。下位機(jī)系統(tǒng)基于STM32F103ZET6微控制器,通過(guò)角位移傳感器和電機(jī)編碼器得到系統(tǒng)變量,應(yīng)用雙閉環(huán)PD控制算法,控制直流減速電機(jī)調(diào)速對(duì)旋轉(zhuǎn)倒立擺進(jìn)行控制。上位機(jī)使用ActiveX控件MSComm與下位機(jī)通信,實(shí)現(xiàn)對(duì)旋轉(zhuǎn)倒立擺系統(tǒng)啟??刂婆c狀態(tài)監(jiān)測(cè)。同時(shí)下位機(jī)可以通過(guò)鍵盤(pán)設(shè)定運(yùn)行模式并且調(diào)節(jié)PD參數(shù),通過(guò)OLED顯示屏實(shí)時(shí)更新變量信息,具有較好人機(jī)界面,便于教學(xué)實(shí)驗(yàn)的進(jìn)行。
關(guān)鍵詞:旋轉(zhuǎn)倒立擺;下位機(jī);STM32;雙閉環(huán)PD控制
中圖分類(lèi)號(hào):TP223 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-5039(2018)16-0219-03
倒立擺是一個(gè)復(fù)雜的快速、非線(xiàn)性、多變量、強(qiáng)耦合、自然不穩(wěn)定的非最小相位系統(tǒng),是重心在上、支點(diǎn)在下控制問(wèn)題的抽象[1]。其用途主要有兩個(gè)方面。其一,作為一個(gè)非線(xiàn)性自然不穩(wěn)定系統(tǒng),倒立擺系統(tǒng)是進(jìn)行控制理論教學(xué)及開(kāi)展各種控制實(shí)驗(yàn)的理想實(shí)驗(yàn)平臺(tái)。許多抽象的控制概念如控制系統(tǒng)的穩(wěn)定性、可控性、收斂速度和抗干擾能力等,都可以通過(guò)倒立擺系統(tǒng)直觀(guān)地表現(xiàn)出來(lái)。其二,由于倒立擺系統(tǒng)具有高階次、不穩(wěn)定、多變量、非線(xiàn)性和強(qiáng)耦合等特性,其作為控制理論中的一個(gè)嚴(yán)格的控制對(duì)象,通常用于檢驗(yàn)控制策略的有效性[2]。研究人員不斷從倒立擺控制方法的研究中發(fā)掘出新的控制方法,并將其應(yīng)用于航天科技和機(jī)器人學(xué)等各種高新科技領(lǐng)域。因此,旋轉(zhuǎn)倒立擺實(shí)驗(yàn)平臺(tái)對(duì)于自動(dòng)控制原理、智能控制等課程的實(shí)驗(yàn)補(bǔ)充具有很好的幫助。
本文將介紹環(huán)型倒立擺實(shí)驗(yàn)平臺(tái)下位機(jī)軟件和硬件的實(shí)現(xiàn),側(cè)重于系統(tǒng)的構(gòu)建和雙閉環(huán)PD控制器[3~4]的介紹。實(shí)驗(yàn)平臺(tái)實(shí)現(xiàn)了上下位機(jī)串口通訊來(lái)調(diào)節(jié)PD參數(shù)和實(shí)時(shí)繪制擺桿角度,并且下位機(jī)可以獨(dú)立通過(guò)外部按鍵來(lái)調(diào)節(jié)參數(shù)和控制啟停,通過(guò)OLED顯示屏顯示參數(shù)和變量信息。
1 旋轉(zhuǎn)倒立擺平臺(tái)下位機(jī)總體架構(gòu)設(shè)計(jì)
旋轉(zhuǎn)倒立擺的機(jī)械結(jié)構(gòu)如圖1所示。電動(dòng)機(jī)固定在支架上,通過(guò)轉(zhuǎn)軸驅(qū)動(dòng)旋轉(zhuǎn)臂旋轉(zhuǎn)。擺桿通過(guò)轉(zhuǎn)軸固定在旋轉(zhuǎn)臂的一端,當(dāng)旋轉(zhuǎn)臂在電動(dòng)機(jī)驅(qū)動(dòng)下作往復(fù)旋轉(zhuǎn)運(yùn)動(dòng)時(shí),帶動(dòng)擺桿在垂直于旋轉(zhuǎn)臂的平面作自由旋轉(zhuǎn)。
測(cè)控部分裝置如圖2所示??刂破鞑捎肧TM32F103ZET6微控制器,該芯片具有接口豐富,資源充足,處理速度快等優(yōu)點(diǎn)。并且芯片具有64KB SRAM、512 KB FLASH、4個(gè)通用定時(shí)器、5個(gè)串口、1個(gè)USB、3個(gè)12位ADC以及112個(gè)通用IO口等豐富的資源,這些資源方便了系統(tǒng)的開(kāi)發(fā)。
電機(jī)采用原始轉(zhuǎn)速11000rpm、減速比30的直流減速電機(jī),經(jīng)過(guò)減速器減速后的直流電機(jī)扭矩更大、可控性更強(qiáng)。通過(guò)東芝公司生產(chǎn)的TB6612FNG驅(qū)動(dòng)芯片即可實(shí)現(xiàn)控制。并且電機(jī)尾部帶有光電編碼器,將STM32的定時(shí)器設(shè)置為編碼器模式后可以方便地獲取電機(jī)的速度以及與電機(jī)相連的旋轉(zhuǎn)臂位置信息。
角度傳感器選用了WDD35D4。通過(guò)STM32的AD轉(zhuǎn)換功能借助角度傳感器WDD35D4測(cè)量得到擺桿旋轉(zhuǎn)角度,并將其送入到控制器中,由PD控制器將角度誤差轉(zhuǎn)化為PWM信號(hào)提供給驅(qū)動(dòng)芯片,來(lái)驅(qū)動(dòng)直流電機(jī)轉(zhuǎn)動(dòng),從而帶動(dòng)旋臂在水平面內(nèi)旋轉(zhuǎn),最終實(shí)現(xiàn)控制擺桿直立的效果。
2 旋轉(zhuǎn)倒立擺下位機(jī)軟件設(shè)計(jì)
下位機(jī)基于STM32F103ZET6處理器開(kāi)發(fā),利用其豐富的固件庫(kù)可以對(duì)其硬件實(shí)現(xiàn)方便、快速地配置。在本次開(kāi)發(fā)中,我們需要配置三個(gè)定時(shí)器。其中一個(gè)用來(lái)作為中斷為PD控制器提供5ms精確定時(shí),一個(gè)配置為編碼器模式讀取光電編碼器信息,一個(gè)配置為PWM模式用來(lái)給驅(qū)動(dòng)提供控制信號(hào)。通過(guò)串口1來(lái)與上位機(jī)進(jìn)行通信。通過(guò)ADC來(lái)讀取角度傳感器的值。通過(guò)外部中斷的方式實(shí)現(xiàn)按鍵控制。
起擺過(guò)程中,通過(guò)對(duì)直流減速電機(jī)采取“突然加速—制動(dòng)—反向加速”的控制策略,使擺桿在慣性加速度的作用下完成起擺,達(dá)到設(shè)定角度后切換到穩(wěn)擺狀態(tài)。
在圓周運(yùn)動(dòng)過(guò)程中,系統(tǒng)為隨動(dòng)控制系統(tǒng),通過(guò)不斷微調(diào)穩(wěn)擺程序中擺桿位置目標(biāo)值實(shí)現(xiàn)在穩(wěn)擺過(guò)程中完成圓周運(yùn)動(dòng)。
本文中側(cè)重介紹上下位機(jī)通信與雙閉環(huán)PD控制器。
2.1 下位機(jī)與上位機(jī)的通信
上下位機(jī)通過(guò)串口1以中斷的方式進(jìn)行通信。通信內(nèi)容包括Angle、Position兩組PID參數(shù)、啟停狀態(tài)以及圓周運(yùn)動(dòng)方向,以“P=xxx; I=x.xx; D=xxx; p=xxx; i=x.xx; d=xxx,state=x;f=x;”固定格式發(fā)送,下位機(jī)可逐位分離參數(shù)信息。
上下位機(jī)以ASCII碼的形式傳輸數(shù)據(jù),通信協(xié)議中規(guī)定數(shù)據(jù)以回車(chē)(其ASCII碼有兩個(gè)字節(jié)表示,0x0D和0x0A)作為結(jié)束標(biāo)志。借助這個(gè)協(xié)議,配合一個(gè)數(shù)組USART_RX_BUF[]和一個(gè)全局變量USART_RX_STA就可以實(shí)現(xiàn)對(duì)串口數(shù)據(jù)的接收處理,大大提高了處理器的效率。具體過(guò)程為當(dāng)接收到從電腦發(fā)過(guò)來(lái)的數(shù)據(jù)后,串口中斷函數(shù)把接收到的數(shù)據(jù)保存在 USART_RX_BUF[] 中,同時(shí)在接收狀態(tài)寄存器(USART_RX_STA,其位定義見(jiàn)表1)中計(jì)數(shù)接收到的有效數(shù)據(jù)個(gè)數(shù),當(dāng)收到回車(chē)的第一個(gè)字節(jié) 0X0D 時(shí),計(jì)數(shù)器將不再增加,等待 0X0A 的到來(lái),而如果 0X0A 沒(méi)有來(lái)到,則認(rèn)為這次接收失敗,重新開(kāi)始下一次接收。如果順利接收到 0X0A,則標(biāo)記 USART_RX_STA 的第 15 位,這樣完成一次接收,并等待該位被其他程序清除,從而開(kāi)始下一次的接收,而如果遲遲沒(méi)有收到 0X0D,那么在接收數(shù)據(jù)超過(guò) USART_REC_LEN 的時(shí)候,則會(huì)丟棄前面的數(shù)據(jù),重新接收。
倒立擺系統(tǒng)傳遞函數(shù)如圖4所示。閉環(huán)控制系統(tǒng)(closed-loop control system)是指被控對(duì)象的輸出(被控制量)會(huì)反送回來(lái)影響控制器的輸入,形成一個(gè)或多個(gè)閉環(huán),以期得到一個(gè)較為穩(wěn)定的輸出。PID控制器(比例-積分-微分控制器)是一個(gè)在工業(yè)控制應(yīng)用中常見(jiàn)的反饋回路部件,通過(guò)誤差信號(hào)控制被控量[5],而控制器本身就是比例(proportion),積分(integral),微分(derivative)這三個(gè)部分的加和。其離散化計(jì)算公式為:
其中kp為比例調(diào)節(jié)系數(shù),ki為積分調(diào)節(jié)系數(shù),kd為微分調(diào)節(jié)系數(shù)。PID控制的基礎(chǔ)是比例控制;積分控制可消除穩(wěn)態(tài)誤差,但可能增加超調(diào);微分控制可加快大慣性系統(tǒng)響應(yīng)速度以及減弱超調(diào)趨勢(shì)。本文中僅使用PD控制即可滿(mǎn)足控制要求。
在倒立擺系統(tǒng)中我們通過(guò)角度傳感器和光電編碼器兩個(gè)測(cè)量元件來(lái)測(cè)量系統(tǒng)輸出值,將其與目標(biāo)值的差值送給PD控制器,得到電機(jī)驅(qū)動(dòng)控制信號(hào)。其中傾角環(huán)PD 控制,是最核心的控制,控制周期為5ms,其他的控制都是相對(duì)傾角控制而言都是干擾。位置環(huán)PD控制,在控制過(guò)程中對(duì)編碼器信息進(jìn)行一階低通濾波可以削弱位置控制的比重,提高系統(tǒng)穩(wěn)定性[6],控制周期 25ms。
3 運(yùn)行效果
經(jīng)過(guò)測(cè)試,我們發(fā)現(xiàn)倒立擺實(shí)驗(yàn)平臺(tái)能夠?qū)崿F(xiàn)穩(wěn)定倒立,并且能夠?qū)崟r(shí)回傳角度數(shù)據(jù)。
3.1 倒立效果
擺桿在控制過(guò)程中穩(wěn)定倒立。
3.2 OLED顯示數(shù)據(jù)
OLED顯示兩組PD參數(shù)及其調(diào)節(jié)幅值,并實(shí)時(shí)更新角度、位置信息,顯示PWM輸出值及圓周運(yùn)動(dòng)方向。
3.3 通過(guò)串口回傳數(shù)據(jù)
與上位機(jī)通訊,上位機(jī)接收下位機(jī)回傳的角度信息并繪制曲線(xiàn)。
4 總結(jié)
通過(guò)實(shí)踐發(fā)現(xiàn)該倒立擺實(shí)驗(yàn)平臺(tái)具有很好的穩(wěn)定性和人機(jī)交互性,在實(shí)驗(yàn)過(guò)程中能夠及時(shí)有效地反映出PD參數(shù)的變化對(duì)系統(tǒng)穩(wěn)定性的影響,對(duì)自控控制等學(xué)科的實(shí)驗(yàn)教學(xué)有很大的幫助。
參考文獻(xiàn):
[1] 張姝,朱善安. 環(huán)形單極倒立擺起擺控制研究[J]. 江南大學(xué)學(xué)報(bào)(自然科學(xué)版),2004,3(5):482-485.
[2] Meier H,F(xiàn)arwig Zu,Unbehauen H.Discrete computer control of a triple-inverted Pendulum.Optimal. Control Application & Methods,1990,11(2):157-171.
[3] 王東亮,劉斌,張?jiān)? 環(huán)形一級(jí)倒立擺擺起及穩(wěn)定控制研究[J]. 微計(jì)算機(jī)信息,2007,23(4):1-2.
[4] 王福永,雙閉環(huán)調(diào)速系統(tǒng)PID調(diào)節(jié)器的設(shè)計(jì)[J]. 蘇州工學(xué)院學(xué)報(bào),2001,21(5):35-39.
[5] 陳書(shū)謙,張麗虹. BP神經(jīng)網(wǎng)絡(luò)在PID控制器參數(shù)整定中的作用[J]. 計(jì)算機(jī)仿真,2010,27(10):171-174.
[6] 楊勛濤,樊利,顏新華,等. 兩輪自平衡小車(chē)啟動(dòng)暫態(tài)過(guò)程的研究[J]. 西南師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,39(12):87-93.