2015年微型機(jī)與應(yīng)用第8期 作者: 劉 晉,,蘇 臣,,金禹含,步亞男 摘 要: 選取STM32系列的STM32F103RBT6作為主控系統(tǒng),,以L6203作為直流電機(jī)的驅(qū)動(dòng),;根據(jù)小車(chē)的位置通過(guò)PID算法調(diào)節(jié)小車(chē)的速度,對(duì)主控中高級(jí)定時(shí)器進(jìn)行設(shè)計(jì),,通過(guò)UART顯示數(shù)據(jù),;觀測(cè)小車(chē)運(yùn)行過(guò)程中能否消除慣性帶來(lái)的影響并立刻轉(zhuǎn)向,及PID算法是否可以應(yīng)用在噴繪機(jī)小車(chē)的控制系統(tǒng)中,。經(jīng)過(guò)理論分析和軟硬件結(jié)合測(cè)試表明,,該設(shè)計(jì)不但解決了直流電機(jī)中由于慣性大難以剎車(chē)的問(wèn)題,并驗(yàn)證了PID算法在噴繪機(jī)控制系統(tǒng)中的可行性和實(shí)用性,。 0 引言 噴墨式噴繪機(jī)為保證噴繪出圖像精準(zhǔn)細(xì)膩,,小車(chē)上的噴頭每行掃描過(guò)程中按需進(jìn)行噴墨,但是來(lái)自小車(chē)的平穩(wěn)性以及在改變方向時(shí)小車(chē)的運(yùn)動(dòng)狀態(tài),,直接影響噴頭墨滴噴出的位置,。如何在保證小車(chē)平穩(wěn)運(yùn)行前提下,根據(jù)提供的信號(hào)改變小車(chē)的運(yùn)行狀態(tài)值得深入研究和探討,。 1 系統(tǒng)設(shè)計(jì)理念 攜帶噴頭的小車(chē)在噴繪軌道上來(lái)回運(yùn)動(dòng),,在需要的位置上(即像素點(diǎn))噴頭進(jìn)行噴墨,。主控發(fā)控制信號(hào)給電機(jī)驅(qū)動(dòng)模塊來(lái)控制電機(jī),從而控制小車(chē)的方向和位置,。電機(jī)可以是步進(jìn)電機(jī),、位置控制方式的伺服電機(jī)和直流電機(jī)。步進(jìn)電機(jī)啟動(dòng)力矩大,,易于精確控制位置,,但很難達(dá)到高速,實(shí)際應(yīng)用中使用較少,。位置控制方式的伺服電機(jī)不但具有步進(jìn)電機(jī)的優(yōu)點(diǎn),,而且內(nèi)置的控制器具有電子齒輪易改傳動(dòng)比,實(shí)際應(yīng)用中采用較多,,但此電機(jī)非常昂貴,,從實(shí)際的成本出發(fā)不易選用。綜合考慮,,采用成本較低的普通直流電機(jī),,通過(guò)調(diào)整驅(qū)動(dòng)電壓調(diào)整速度,但直流電機(jī)不能精確定位,,必須為其配備精密的位置檢測(cè)機(jī)構(gòu)以及伺服控制機(jī)構(gòu)才能實(shí)現(xiàn)較精確的定位,。由于攜帶噴頭的小車(chē)慣性很大,方向調(diào)整時(shí)很難瞬時(shí)根據(jù)控制信號(hào)來(lái)更改方向,,總是在主控發(fā)送完調(diào)整方向信號(hào)后速度慢慢減到0,,然后才能調(diào)整方向從0慢慢加速。由于機(jī)械特性增加了誤差,,不少研發(fā)人員采用在改變方向前先加高占空比反相沖擊電壓,然后再調(diào)整適合的占空比,,但實(shí)際應(yīng)用過(guò)程中此方法并不完全合適,。這是因?yàn)橘|(zhì)量太大,高脈沖難以沖擊反相速度并調(diào)整方向,。綜合不同的方法和經(jīng)驗(yàn),,借助STM32主控系統(tǒng)的優(yōu)勢(shì),通過(guò)理論研究和實(shí)際應(yīng)用迅速調(diào)整方向,,基本消除了物體質(zhì)量過(guò)大帶來(lái)的慣性影響,,而且小車(chē)在實(shí)際運(yùn)行中通過(guò)PID算法[1]達(dá)到平穩(wěn)。噴繪機(jī)的噴繪軌道是帶光柵的,,小車(chē)實(shí)際運(yùn)行過(guò)程中接收光柵編碼器的位置信號(hào),,從而計(jì)算小車(chē)的位置和運(yùn)動(dòng)速度。由于機(jī)械,、系統(tǒng)成本,、復(fù)雜性,、實(shí)驗(yàn)環(huán)境等多方面限制,本設(shè)計(jì)系統(tǒng)沒(méi)有真正采用噴繪系統(tǒng)的小車(chē)作為研究對(duì)象,,但為了說(shuō)明和解決實(shí)際問(wèn)題,,本設(shè)計(jì)系統(tǒng)采用同等系統(tǒng)的等效法進(jìn)行實(shí)驗(yàn)。設(shè)計(jì)系統(tǒng)等效法如下:在電機(jī)上固定噴頭和小車(chē)同等重量的物體(相當(dāng)于小車(chē)攜帶噴頭的運(yùn)動(dòng)系統(tǒng)),,并在物體上綁定多圈可調(diào)電位器(相當(dāng)于光柵編碼器來(lái)傳送位置信號(hào)),,電位器上綁定一定質(zhì)量的擺,擺偏移設(shè)定點(diǎn)(相當(dāng)于小車(chē)系統(tǒng)的原點(diǎn))的角度記作位置(相當(dāng)于小車(chē)偏移位置),,通過(guò)PID算法調(diào)節(jié)擺的占空比(相當(dāng)于小車(chē)的速度),,擺在偏移點(diǎn)左右轉(zhuǎn)動(dòng)時(shí)瞬間改變電機(jī)的方向(相當(dāng)于小車(chē)方向調(diào)整)。通過(guò)系統(tǒng)等效法驗(yàn)證了此設(shè)計(jì)方法在噴繪系統(tǒng)的實(shí)用性和可行性,。 2 基于系統(tǒng)的硬件設(shè)計(jì) 圖1,、2為控制系統(tǒng)硬件結(jié)構(gòu)架構(gòu),其中圖1是系統(tǒng)硬件的總體架構(gòu),,圖2是電機(jī)的驅(qū)動(dòng)電路,。主控系統(tǒng)選取的是STM32系列的STM32F103RBT6,選此控制系統(tǒng)是因?yàn)橹骺夭坏褂梅奖?、成本較低,、通過(guò)高級(jí)定時(shí)器編程設(shè)計(jì)直接實(shí)現(xiàn)電機(jī)驅(qū)動(dòng)的死區(qū)設(shè)置,并可適當(dāng)?shù)馗乃绤^(qū)時(shí)間,,而且普通定時(shí)器也具有編碼功能,,可直接應(yīng)用在噴繪機(jī)控制系統(tǒng)中的光柵編碼器,從而正交采集光柵信號(hào)檢測(cè)小車(chē)[2]的運(yùn)行位置,。PC與STM32主控交互,,可通過(guò)J-Link向主控中的Flash下載程序或通過(guò)PC的串口工具接收單片機(jī)發(fā)送的信息等。設(shè)計(jì)中選取STM32為主控,,選取支持死區(qū)模式的TIM1定時(shí)器的PWM輸出供給L6203信號(hào),。主控中集成的AD主要是為了采樣搖擺偏移原點(diǎn)的位置(相當(dāng)于小車(chē)偏移位置),主控中的DMA主要是為了快速傳遞AD采樣信息,。為實(shí)現(xiàn)嵌入式經(jīng)典理論中前后臺(tái)系統(tǒng)設(shè)計(jì),,采用中斷方式(NVIC)來(lái)處理任務(wù)。主控中的RCC為系統(tǒng)需要的時(shí)鐘配置,;GPIO為需要的引腳配置,,既包括AD引腳的采樣輸入引腳,又包括定時(shí)器的PWM輸出引腳等,;UART接口通過(guò)串口線和PC連接來(lái)顯示信息,;Tim4定時(shí)顯示處理向PC發(fā)送電機(jī)的狀態(tài)信息;SysTick定時(shí)中斷處理不同角度下通過(guò)PID調(diào)整的占空比任務(wù),。 L6230電機(jī)的驅(qū)動(dòng)模塊是手動(dòng)焊接且通過(guò)測(cè)試可正常工作的,。之所以選擇以L6203為主芯片模塊,,是因?yàn)榇四K可以提供最大電流4 A、最大電壓48 V,,以便可以提供搖擺足夠大的速度,,來(lái)觀察高速運(yùn)動(dòng)下通過(guò)設(shè)置死區(qū)能否克服物體由于質(zhì)量大帶來(lái)的難以剎車(chē)問(wèn)題,從而驗(yàn)證此設(shè)計(jì)系統(tǒng)在噴繪領(lǐng)域的實(shí)用性,。主控和L6203跳線時(shí),,為保護(hù)主控系統(tǒng)又要滿足主控和電機(jī)模塊的對(duì)地接入,L6203模塊在接入時(shí)的GND引腳先跳線到SEMSE引腳,,然后再跳線到L6203 GND引腳,,再接入到主控STM32的GND。此方法的主要作用是當(dāng)系統(tǒng)中電流過(guò)大時(shí),,電流只會(huì)貫穿L6203,,不會(huì)燒壞STM32主控,對(duì)主控起到保護(hù)作用,。L6203的IN1和IN2為兩路PWM輸入,,Vs和SEMSE接入穩(wěn)壓電源的正負(fù)極,EN為主控提供使能信號(hào),,OUT1和OUT2供給普通直流電機(jī)的電壓,。 3 基于系統(tǒng)的軟件設(shè)計(jì) 整個(gè)軟件架構(gòu)分別對(duì)串行通信、高級(jí)定時(shí)器,、AD角度采樣,、PID算法設(shè)計(jì)、主控狀態(tài)機(jī)切換等進(jìn)行設(shè)計(jì)與研究,,最后借助PC上的串口調(diào)試器人機(jī)交互來(lái)設(shè)置采樣位置和檢測(cè)系統(tǒng)的執(zhí)行狀態(tài),,從而證明系統(tǒng)可行性。 3.1 軟件中狀態(tài)機(jī)切換 圖3為控制系統(tǒng)中狀態(tài)機(jī)間的切換,。程序設(shè)計(jì)思想借助于嵌入式實(shí)時(shí)操作系統(tǒng)提出的前后臺(tái)系統(tǒng)理論,。為避免后臺(tái)系統(tǒng)打斷前臺(tái)系統(tǒng)對(duì)任務(wù)的處理有影響,任務(wù)做在后臺(tái)中斷里,,前臺(tái)的While()死循環(huán)(LOOP狀態(tài))中沒(méi)有任務(wù),后臺(tái)通過(guò)中斷信號(hào)來(lái)告知處理器,,從而刺激中斷的發(fā)生,。從狀態(tài)機(jī)的切換圖可以看出,INIT狀態(tài)是系統(tǒng)初始化過(guò)程,,主要包括主控的定時(shí)器,、輸入輸出引腳、AD以及DMA等時(shí)鐘初始化,,定時(shí)器,、AD轉(zhuǎn)化以及串口的輸入輸出引腳初始化,,定時(shí)器、DMA,、系統(tǒng)定時(shí)中斷的初始化以及DMA傳輸設(shè)置初始化,。初始化時(shí)設(shè)置的PC.4(GPIO_Mode_AIN模式)即模擬輸入模式,當(dāng)PC.4引腳的信號(hào)發(fā)生變化時(shí),,即位置傳感器傳入當(dāng)前位置后進(jìn)入ADC狀態(tài),。為提高AD轉(zhuǎn)化速度和程序處理能力,DMA初始化時(shí)借助DMA1的第12通道,,直接把AD配置成從ADC1->DR的地址傳送到ad_sm地址,,此時(shí)為DMA狀態(tài)。傳輸完數(shù)值后進(jìn)入SMO狀態(tài),,此狀態(tài)下任務(wù)對(duì)傳遞的ad_sm做平滑處理,,平滑處理次數(shù)越多值越精確,此處做了8次平滑處理,。選擇8次處理,,首先是因?yàn)榻?jīng)過(guò)實(shí)際應(yīng)用知平滑處理過(guò)的AD數(shù)值誤差精度已達(dá)要求。其次,,做8次平滑處理只需在數(shù)值累加時(shí)右移3位,、結(jié)果中最后左移3位,相比于復(fù)雜的乘除運(yùn)算,,左右移操作不會(huì)占處理器太多處理時(shí)間,,一定程度上提高了系統(tǒng)的效率,,,否則需乘除法和借助浮點(diǎn)庫(kù),,加大了主控需求,給主控帶來(lái)了難度和挑戰(zhàn),。最后在SMO狀態(tài)(DMA中斷的處理程序)輸出處理后的位置采樣AD值ad_sm_new,,并將此處的ad_sm_new設(shè)置為全局變量數(shù)據(jù)共享即可進(jìn)入到Verify_Keep狀態(tài)。TIM4狀態(tài)中定時(shí)器設(shè)置為1 s中斷的方式采集ad_sm_new并通過(guò)串口發(fā)送給上位機(jī),,通過(guò)串口調(diào)試器顯示給程序員調(diào)試,。為滿足調(diào)整的精度要求,系統(tǒng)初始化時(shí)設(shè)置系統(tǒng)定時(shí)器(滴答定時(shí)器),,程序運(yùn)行后處于Sys狀態(tài),,每10 ?滋s產(chǎn)生系統(tǒng)定時(shí)中斷對(duì)當(dāng)前位置采集到的AD值(即ad_sm_new),根據(jù)當(dāng)時(shí)的實(shí)際情形進(jìn)行PID調(diào)試或PI調(diào)試狀態(tài)后進(jìn)入PWM狀態(tài),,輸出調(diào)整PWM占空比(速度),。采集到的位置要改變方向時(shí)(即到達(dá)一方向的終點(diǎn)時(shí),在Verify_Keep狀態(tài)下的判斷),,進(jìn)行Deal2處理進(jìn)入Die狀態(tài),。由于在改變方向時(shí)直流電機(jī)不能立刻停下來(lái)改變方向,,每次都是在原始的方向減小到0然后再改變方向,這種情況不滿足實(shí)際的工作狀態(tài),。此狀態(tài)下通過(guò)初始化時(shí)設(shè)置的高級(jí)定時(shí)器,,設(shè)置死區(qū)加以控制小車(chē)方向的改變??刂葡到y(tǒng)需要更改位置初始點(diǎn)設(shè)置以及系統(tǒng)定時(shí)中斷時(shí)間等參數(shù)時(shí),,通過(guò)按鍵中斷促使發(fā)生,進(jìn)入到Key狀態(tài),,此狀態(tài)下有相應(yīng)的消抖處理,,一旦確認(rèn)特定的按鍵按下則進(jìn)入到Change狀態(tài),通過(guò)串口顯示信息提示來(lái)更改初始點(diǎn)位置以及系統(tǒng)中斷時(shí)間等參數(shù),。 3.2 系統(tǒng)中PID算法的應(yīng)用 圖4為PID算法在程序中的應(yīng)用,。從程序框圖可知,在初始點(diǎn)處設(shè)Uk=0,,每10 ?滋s后進(jìn)入系統(tǒng)中斷采集位置AD值,,然后計(jì)算出偏差err。若err大于設(shè)定的最大偏差,,則需進(jìn)行比例,、積分、微分共同調(diào)節(jié),;若小于設(shè)定偏差,,則只需比例、積分調(diào)節(jié),,最后通過(guò)偏差數(shù)值乘以設(shè)定的比例值算出需要的Templ,,并把Uk進(jìn)行累積(最后的Uk為T(mén)IM1定時(shí)器需要裝載的值)來(lái)更改占空比。若求出的偏差err>0則正向輸出PWM波形,,否則反向輸出,。 PID程序設(shè)計(jì)重要的是調(diào)節(jié)適當(dāng)?shù)谋壤⒎e分,、微分系數(shù),,本系統(tǒng)在PID調(diào)節(jié)過(guò)程中首先把微分、積分系數(shù)設(shè)為0,,使之成為純比例調(diào)節(jié),。調(diào)節(jié)比例系數(shù)Kp由0增大,直至出現(xiàn)震蕩后,,減小Kp使震蕩消失后記此比例系數(shù)Kp。比例系數(shù)確定后調(diào)節(jié)積分系數(shù)Ki,,積分系數(shù)的時(shí)間常數(shù)設(shè)為較大的Ti,,然后為較小Ti使之出現(xiàn)振蕩,,然后再反過(guò)來(lái)增加Ti使振蕩消失后記此Ki。最后在微分調(diào)節(jié)時(shí)先觀察,,若發(fā)現(xiàn)控制有明顯的滯后時(shí),,需對(duì)Kd進(jìn)行調(diào)節(jié)到合適,否則不需調(diào)節(jié)Kd,。通過(guò)此調(diào)節(jié)過(guò)程可知PID算法在此控制系統(tǒng)的簡(jiǎn)單性和實(shí)用性,。 3.3 高級(jí)定時(shí)器在程序中的應(yīng)用設(shè)置 主控中的高級(jí)定時(shí)器TIM1能夠輸出兩路互補(bǔ)的PWM信號(hào)并能瞬時(shí)地關(guān)斷和接通,同時(shí)設(shè)置定時(shí)器中的CCxE和CCxNE位插入死區(qū),。設(shè)置適當(dāng)?shù)牟迦胨绤^(qū)時(shí)間可以瞬間地調(diào)整搖擺(相當(dāng)于噴繪機(jī)中的小車(chē))的方向,,不會(huì)因?yàn)閼T性太大而難以剎車(chē)。設(shè)置時(shí)定時(shí)器的PA9和PB14引腳對(duì)應(yīng)到OCx和OCxN,。庫(kù)函數(shù)通過(guò)設(shè)置TIM_BDTRInitStructure.TIM_DeadTime值來(lái)改變插入的死區(qū)時(shí)間,。系統(tǒng)上電初期,TIM1_BDTR寄存器中的MOE低即剎車(chē)功能禁止,。方向調(diào)整需要更改時(shí),,調(diào)整TIM1_BDTR寄存器BKE位來(lái)使能剎車(chē)功能。當(dāng)不需要調(diào)整方向而在一個(gè)方向上平穩(wěn)運(yùn)行時(shí),,通過(guò)位置檢測(cè)來(lái)調(diào)整需要的占空比,。圖5為系統(tǒng)剎車(chē)時(shí)序圖,是搖擺調(diào)整方向時(shí)通過(guò)示波器測(cè)出的,。圖中1通道引入的是定時(shí)器1的PA9引腳,,2互補(bǔ)通道引入的是定時(shí)器1 PB14引腳,可看出兩條豎線間是插入的死區(qū)時(shí)間,,從右邊黑圈內(nèi)讀出兩豎線間的時(shí)間為300 ?滋s與高級(jí)定時(shí)器的設(shè)置相吻合,。經(jīng)實(shí)際操作驗(yàn)證,此系統(tǒng)在此死區(qū)時(shí)間以及互補(bǔ)PWM信號(hào)設(shè)置下可瞬時(shí)改變方向,,基本消除了機(jī)械上慣性帶來(lái)的干擾,。 4 系統(tǒng)的測(cè)試 結(jié)合系統(tǒng)總體架構(gòu)的軟件和硬件平臺(tái)以及過(guò)程方法步驟的闡述,最后測(cè)試結(jié)果如圖6,、圖7所示,。其中圖6顯示了運(yùn)動(dòng)過(guò)程中的位置采樣信息,從圖可知,,在COM1下,、9 600 b/s傳輸率、8個(gè)數(shù)據(jù)位,、1個(gè)停止位,、無(wú)奇偶校驗(yàn)下,第一時(shí)刻采集到的位置值為198。圖7是PID在此位置調(diào)試下的示波器截圖,,顯示了此位置下通過(guò)PID調(diào)節(jié)后輸出的占空比PWM波形,。從截圖黑圈中可看出,在平穩(wěn)狀態(tài)下運(yùn)行時(shí)的頻率為20 kHz,,占空比為28%,,滿足搖擺平穩(wěn)的運(yùn)行狀態(tài)與實(shí)際的設(shè)置相吻合。結(jié)合圖5,、圖6,、圖7可看出搖擺在調(diào)整方向時(shí)的剎車(chē)以及PID在搖擺平穩(wěn)狀態(tài)下運(yùn)行的可行性和實(shí)用性,證明此設(shè)計(jì)系統(tǒng)正確,,可投放到應(yīng)用領(lǐng)域,。 5 結(jié)論 隨著噴繪技術(shù)發(fā)展,對(duì)噴繪機(jī)中小車(chē)控制系統(tǒng)要求越來(lái)越高,。本設(shè)計(jì)從簡(jiǎn)單,、方便、實(shí)用性考慮,,將STM32作為主控制平臺(tái),、L6203作為電機(jī)驅(qū)動(dòng),系統(tǒng)結(jié)合軟件設(shè)計(jì)出噴繪機(jī)中小車(chē)的控制系統(tǒng),。通過(guò)實(shí)踐和理論研究證明此方案可行,,系統(tǒng)不僅簡(jiǎn)捷、方便,,而且更改容易,,且執(zhí)行過(guò)程中一定程度上提高了系統(tǒng)的效率并解決了一定技術(shù)難題,達(dá)到了理想的預(yù)期效果,。但此設(shè)計(jì)控制系統(tǒng)沒(méi)能真正地面向噴繪機(jī)中小車(chē)系統(tǒng),,只是采取了系統(tǒng)等效法進(jìn)行了演示,一定還有不少缺陷和不足,,需以后加以彌補(bǔ)和改正,。也希望將來(lái)此設(shè)計(jì)系統(tǒng)可廣泛應(yīng)用到噴繪機(jī)小車(chē)的控制系統(tǒng)中。 參考文獻(xiàn) [1] 李博,,馬訓(xùn)鳴,,霍建鋒.基于PID的變量馬達(dá)恒速控制系統(tǒng)研究[J].西安工程大學(xué)學(xué)報(bào),2014,,27(2):231-233. [2] 劉晉,,劉卓.USB接口在噴繪機(jī)中的應(yīng)用[J].航空計(jì)算技術(shù),2007,,37(2):62-65.
|
|