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