基于FPGA控制的懸掛運(yùn)動控制系統(tǒng)設(shè)計
掃描二維碼
隨時隨地手機(jī)看文章
引 言
在現(xiàn)代的工業(yè)控制、車輛運(yùn)動和醫(yī)療設(shè)備等系統(tǒng)中,懸掛運(yùn)動系統(tǒng)的應(yīng)用越來越多,在這些系統(tǒng)中懸掛運(yùn)動部件通常是具體的執(zhí)行機(jī)構(gòu),因而懸掛部件的運(yùn)動精確性是整個系統(tǒng)工作效能的決定因素,而在實際中實現(xiàn)懸掛運(yùn)動控制系統(tǒng)的精確控制是非常困難的。靠改變懸掛被控對象的繩索長短來控制被控對象運(yùn)動軌跡的懸掛運(yùn)動控制系統(tǒng),在生產(chǎn)控制等領(lǐng)域有很廣的應(yīng)用范圍,但受技術(shù)上的制約,使用也有一定限制。傳統(tǒng)的懸掛控制系統(tǒng)設(shè)計是采用單片機(jī)作為系統(tǒng)控制器,通過軟件編程實現(xiàn)各種算法和邏輯控制,但由于其芯片資源有限,運(yùn)算速率慢和易受干擾等因素,因而在較大系統(tǒng)的開發(fā)上受到限制。FPGA可實現(xiàn)各種復(fù)雜的邏輯功能,密度高,體積小,穩(wěn)定性高,運(yùn)算速度快,還可進(jìn)行軟件仿真和調(diào)試,適合作為大規(guī)模實時系統(tǒng)的控制核心。本文采用Verilog FPGA設(shè)計懸掛運(yùn)動控制系統(tǒng)的控制器,通過輸入模塊傳送控制參數(shù),采用HDL語言編程實現(xiàn)的控制算法,驅(qū)動步進(jìn)電機(jī),對懸掛運(yùn)動物體進(jìn)行精確的控制。
1 系統(tǒng)設(shè)計方案
本設(shè)計具體設(shè)計目標(biāo)為控制系統(tǒng)能夠通過鍵盤或其他方式任意設(shè)定物體坐標(biāo)點參數(shù),且物體在80 cm×100 cm的范圍內(nèi)做自行設(shè)定的運(yùn)動,運(yùn)動軌跡既有曲線(圓),也有直線(任意兩點和定點),物體在運(yùn)動時能夠在板上畫出運(yùn)動軌跡,限制在一定的時間內(nèi)完成。根據(jù)設(shè)計指標(biāo),需要實現(xiàn)勾畫設(shè)定軌跡和對設(shè)定軌跡的搜尋功能,并能實時地顯示物體中畫筆所在位置坐標(biāo)。其系統(tǒng)方案框圖如圖1所示。
控制模塊是整個系統(tǒng)的核心,鍵盤輸入模塊產(chǎn)生按鍵信號,按鍵信號送人FPGA對物體進(jìn)行設(shè)置校正以及軌跡參數(shù)設(shè)定,F(xiàn)PGA對送來的信號進(jìn)行分析、運(yùn)算、處理,將控制信號輸送到電機(jī)驅(qū)動模塊,控制電動機(jī)的轉(zhuǎn)速,使物體的運(yùn)動軌跡得以控制,同時由顯示模塊顯示物體中畫筆的坐標(biāo)。
2 系統(tǒng)各模塊的設(shè)計與實現(xiàn)
2.1 控制模塊
系統(tǒng)結(jié)構(gòu)圖如圖2所示。其中,控制模塊是系統(tǒng)設(shè)計的核心,由FPGA實現(xiàn)。此模塊是通過HDL硬件描述語言,在智能型可編程邏輯器件開發(fā)試驗系統(tǒng)KH- 310的硬件平臺來控制設(shè)計的,利用FPGA芯片可實現(xiàn)對步進(jìn)電機(jī)的控制功能。功能包括:步進(jìn)電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、定位功能及調(diào)速等功能。FPGA由輸入的數(shù)據(jù)來計算物體要移動的距離,直接發(fā)出控制脈沖控制電機(jī)的轉(zhuǎn)動,進(jìn)而控制物體的運(yùn)動方向。由于少了反饋電路,系統(tǒng)的精度只與FPGA采用的算法準(zhǔn)確性有關(guān),此種方式電路結(jié)構(gòu)簡單,成本低且易于調(diào)整和維護(hù),是一種較理想的方式。
2.2 鍵盤模塊
鍵盤是實現(xiàn)人機(jī)交流的一種裝置。在本系統(tǒng)中,采用4×4矩陣式鍵盤共陽極接法。鍵盤上的每一個按鍵其實就是一個開關(guān)電路,當(dāng)某鍵被按下時,該按鍵的接點會呈現(xiàn)0的狀態(tài)設(shè)置鍵;反之,未被按下時則呈現(xiàn)邏輯1的狀態(tài)。鍵盤各鍵布局及功能介紹如圖3所示。
“0”~“9”:數(shù)字輸入,用于設(shè)定一個坐標(biāo)點的X,Y值;而且鍵1、鍵2、鍵3、鍵4、鍵5、鍵6和鍵9具有第二功能。
“A”:啟動鍵,用于所選運(yùn)行方式的開始運(yùn)行控制鍵。
“B”:復(fù)位,用于各項初始化。
“C”:確定鍵,用于設(shè)置、方式輸入值的確定。
“D”:停止,用于停止步進(jìn)電機(jī)轉(zhuǎn)動。
“E”:設(shè)置鍵,手動對位或任意設(shè)定坐標(biāo)點參數(shù)鍵,按上、下、左、右鍵進(jìn)行手動對位控制,再按確認(rèn)鍵確認(rèn)(圖4所示)。
“F”:方式鍵:首先按下方式鍵,然后按數(shù)字鍵選擇方式再確認(rèn)(如圖5所示),方式有以下幾種:
方式1:歸位,讓物體自行回到原點。
方式2:做自行設(shè)定的運(yùn)動。
方式3:畫圓,首先利用數(shù)字鍵設(shè)置圓半徑進(jìn)行確認(rèn)后,再按啟動鍵運(yùn)行。
方式4:定點運(yùn)動,首先利用數(shù)字鍵設(shè)置一個坐標(biāo)點的X,Y值進(jìn)行確認(rèn)后,再按啟動鍵運(yùn)行。
方式5:尋跡,首先讓物體運(yùn)行在軌跡起點,按下啟動鍵開始尋跡。
2.3 電機(jī)驅(qū)動模塊
采用功率驅(qū)動電路L298內(nèi)含4通道邏輯驅(qū)動電路,分別控制步進(jìn)電機(jī)四組線圈A,/A,B,/B通電與否。步進(jìn)電機(jī)的激磁信號則由智能型可編程邏輯器件開發(fā)試驗系統(tǒng)KH-310試驗平臺上的JP4的信號輸入控制,分別驅(qū)動步進(jìn)電機(jī)的A,/A,B,/B線圈,采用兩相激磁方式。
2.4 電機(jī)電路
電機(jī)是整個系統(tǒng)實現(xiàn)功能的主要載體之一,它的主要功能是通過對纏繞其上的繩子的伸縮來實現(xiàn)懸掛物體的運(yùn)動。步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。本系統(tǒng)使用42BYG型號步進(jìn)電機(jī),其原理是將電脈沖信號轉(zhuǎn)換成角位移,它的轉(zhuǎn)子的轉(zhuǎn)角與輸入的電脈沖數(shù)成正比,轉(zhuǎn)速與輸入的電脈沖的頻率成正比,旋轉(zhuǎn)方向由脈沖的分配順序決定,可以通過控制脈沖個數(shù)控制步進(jìn)電機(jī)的角位移量,從而達(dá)到準(zhǔn)確定位的目的。
2.5 顯示模塊
液晶顯示器是將液晶置于兩片導(dǎo)電玻璃之間,靠兩個電極間電場的驅(qū)動,引起液晶分子扭曲向列的電光效應(yīng),在電源的開關(guān)之間控制光源透射或遮蔽,產(chǎn)生明暗兩種效果。本系統(tǒng)采用16×2 LCD液晶顯示屏作為人機(jī)對話的友好界面。系統(tǒng)設(shè)計實現(xiàn)物體所在坐標(biāo)和畫筆所畫線段的長度的動態(tài)顯示,并有輸入光標(biāo)跟隨和開機(jī)等待提示等人性化功能。
3 系統(tǒng)軟件設(shè)計
設(shè)計系統(tǒng)的總流程相對比較簡單,采用VerilogHDL語言。為達(dá)到設(shè)計指標(biāo)的控制精度和響應(yīng)時間,針對各項功能設(shè)計相應(yīng)的控制算法。系統(tǒng)流程圖如圖6所示。
3.1 兩點運(yùn)動算法與實現(xiàn)
采用數(shù)學(xué)建模法,運(yùn)用幾何知識把物體運(yùn)動軌跡和兩個電機(jī)所在的位置聯(lián)系起來,通過坐標(biāo)用數(shù)學(xué)表達(dá)式表示出來,并轉(zhuǎn)換成電機(jī)所要轉(zhuǎn)動的偏移量,最后把偏移量轉(zhuǎn)化為電機(jī)所要轉(zhuǎn)的速度。結(jié)合圖7說明,設(shè)L1為左繩在d點的線長,L2為右繩在d點的線長,L1'為左繩在e點的線長,L2'為右繩在e點的初始線長,被控對象物體的受限區(qū)域的頂點坐標(biāo)分別為a(xa,ya),b(xb,yb), c(xc,yc),o(0,0),當(dāng)懸掛物從d點運(yùn)動到e點時,左繩和右繩的長短必然發(fā)生變化,電機(jī)M1的收放線長度為△L1,當(dāng)△L1<0,電機(jī)正轉(zhuǎn);△L1>0時,電機(jī)反轉(zhuǎn)。電機(jī)M2的收放線長度為△L2,當(dāng)△L2<0,電機(jī)反轉(zhuǎn);當(dāng)△L2>0時,電機(jī)正轉(zhuǎn)。計算如下:
H=100 cm,x=15 cm,y=15 cm)
從鍵盤輸入起始坐標(biāo)值(xd,yd),將(xd,yd)代入式(1)和式(2)中計算出L1和L2,再從鍵盤輸入終點坐標(biāo)值(xe,ye)代入式(3)和式(4)中計算出L1'和L2',兩點(定點)運(yùn)動算法流程圖如圖8所示。
3.2 做圓運(yùn)動的算法和實現(xiàn)
本系統(tǒng)設(shè)計指標(biāo)懸掛物能夠畫一個圓,采用微分曲線直線逼近法,首先將圓周等分為N 份,將每小份弧線段等效為直線段畫出,N越大,曲線就越光滑。設(shè)所畫圓的圓心坐標(biāo)為(x0,y0),半徑為25 cm,(x,y)為圓周上的任意一點,由此確定圓的方程為:(x-x0)2+(y-y0)2=252。若直接使用該方程來求圓上點的坐標(biāo),算法復(fù)雜;若采用圓的參數(shù)方程:X=x0+25cosθ,Y=y0+25sinθ,則圓的坐標(biāo)僅與參數(shù)θ有關(guān)。因此,使角度以θ某一設(shè)定的角度步長ω累加,使θ+pω在周期[θ,θ+2π]內(nèi)變化,其中p為累加值。這樣就可以采樣到圓上均勻的點,顯然,角度步長ω越小,在圓周上取得點越多,控制也會更精確。根據(jù)圓的參數(shù)方程,計算圓上點的坐標(biāo),通過調(diào)用定點程序來實現(xiàn)。畫圓流程圖如圖9所示。
4 結(jié) 語
系統(tǒng)硬件在智能型可編程器件實驗系統(tǒng)KH-310集成開發(fā),軟件設(shè)計在QuartusⅡ環(huán)境下。系統(tǒng)各組成模塊通過Modelsim進(jìn)行仿真,選用優(yōu)化效率和兼容性好的綜合器Synplify對程序進(jìn)行綜合,用A1tera公司的EPEC6Q24OC8L作為編程芯片,系統(tǒng)在1 MHz下工作,經(jīng)現(xiàn)場實驗,其結(jié)果表明:該系統(tǒng)可以通過鍵盤任意設(shè)置懸掛運(yùn)動物體的位置;在規(guī)定時間和運(yùn)動區(qū)域的情況下,可以快速地完成運(yùn)動距離;可以完成運(yùn)動坐標(biāo)點的顯示和電機(jī)啟/停功能。
本文設(shè)計的基于FPGA控制的步進(jìn)電機(jī)懸掛運(yùn)動控制系統(tǒng)具有可靠的硬件和優(yōu)良的軟件設(shè)計支持,可實現(xiàn)對懸掛運(yùn)動的精確定位。利用FPGA實時控制能力和步進(jìn)電機(jī)的精確定位能力,完全可以設(shè)計出高性能高精度的控制系統(tǒng),例如改善人工清洗高樓幕墻容易發(fā)生危險狀況,將懸掛物設(shè)置成清洗機(jī)構(gòu)。在現(xiàn)代工業(yè)、農(nóng)業(yè)和國防建設(shè)中,使用和推廣這種系統(tǒng),有著十分重要的現(xiàn)實意義。