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