劉棟材,練國富
(1.合肥師范學(xué)院 電子信息工程學(xué)院,合肥 230601; 2.福建工程學(xué)院 機(jī)械與汽車工程學(xué)院,福州 350118)
?
基于虛擬硬件在環(huán)的控制軟件開發(fā)
劉棟材1,練國富2
(1.合肥師范學(xué)院 電子信息工程學(xué)院,合肥230601; 2.福建工程學(xué)院 機(jī)械與汽車工程學(xué)院,福州350118)
摘要:傳統(tǒng)的軟件產(chǎn)品開發(fā)過程一般首先是完成控制硬件單元的設(shè)計與制造,再進(jìn)行控制軟件的開發(fā)及測試。這種開發(fā)方式不僅延長了開發(fā)周期,而且在調(diào)試過程中由于硬件的影響,當(dāng)軟件運行發(fā)生錯誤時難以快速定位問題所在。為此,提出了虛擬硬件在環(huán)的概念,并在此基礎(chǔ)上進(jìn)行軟/硬件的并行開發(fā),為設(shè)計人員提供了一種高效的軟件開發(fā)方法,提高了開發(fā)效率。最后以光柵刻劃機(jī)控制軟件為例,詳細(xì)闡述了基于虛擬硬件在環(huán)的軟件開發(fā)方法,并將開發(fā)完成的控制軟件移植到實際系統(tǒng)中進(jìn)行測試。
關(guān)鍵詞:軟件開發(fā);虛擬硬件在環(huán);光柵刻劃機(jī)
目前,高精度復(fù)雜的控制系統(tǒng)大多采用計算機(jī)通過專用控制軟件進(jìn)行邏輯與數(shù)據(jù)運算。但是,隨著用戶需求的提高,軟件的功能和規(guī)模也在日益增加,軟件的開發(fā)與測試變得更為重要[1]。傳統(tǒng)的軟件開發(fā)方法一般是在產(chǎn)品硬件完成后再進(jìn)行相關(guān)軟件的編寫與調(diào)試,但是在調(diào)試過程中,由于與硬件的交互性,當(dāng)調(diào)試出現(xiàn)錯誤時,難以快速準(zhǔn)確地定位問題所在,因此造成了軟件開發(fā)測試效率低、周期長等問題[2-3]。
在軟件開發(fā)過程中,為了避免硬件的干擾,更好地將精力集中于軟件本身[4],本文提出了虛擬硬件在環(huán)的概念,并基于此構(gòu)建控制系統(tǒng)應(yīng)用軟件的仿真開發(fā)平臺。利用計算機(jī)構(gòu)建控制硬件單元與被控對象的虛擬模型,為開發(fā)人員提供了一個方便高效的軟件開發(fā)平臺。采用基于虛擬硬件在環(huán)的仿真開發(fā)平臺,解決了傳統(tǒng)開發(fā)需要等待硬件完成后才能進(jìn)行軟件開發(fā)的問題,提高了開發(fā)效率。由于不和實際硬件單元相連接,所以開發(fā)的軟件通常具有較高的移植性。
1虛擬硬件在環(huán)
硬件在環(huán)技術(shù)使用仿真模型來描述實際的被控對象,并通過實際的控制硬件單元與該仿真模型相連接,進(jìn)行控制系統(tǒng)軟件的開發(fā)[5-6],如圖1所示。
圖1硬件在環(huán)仿真
基于硬件在環(huán)的開發(fā)方式可以用來測試控制硬件單元以及系統(tǒng)軟件的運行情況。但在測試的過程中,系統(tǒng)軟件需要與控制硬件單元進(jìn)行交互,軟/硬件的耦合會給測試帶來不便,而且軟件的測試也需要在控制硬件單元全部制造完成之后才能進(jìn)行,延長了軟件的開發(fā)周期[7]。
圖2所示為虛擬硬件在環(huán)仿真,通過利用計算機(jī)構(gòu)建控制硬件單元與被控對象的仿真模型來進(jìn)行系統(tǒng)軟件的開發(fā)?;谔摂M硬件在環(huán)仿真所搭建的開發(fā)平臺是系統(tǒng)軟件開發(fā)與測試的“軟”平臺,與實際控制硬件單元無關(guān),因此對于偏重算法的系統(tǒng)開發(fā)效果更為顯著。
圖2虛擬硬件在環(huán)仿真
2基于虛擬硬件在環(huán)的軟件開發(fā)
基于虛擬硬件在環(huán)的軟件開發(fā),首先要構(gòu)建實際控制硬件單元的仿真模型。目前,控制類軟件大多直接運行于計算機(jī)上,少數(shù)需要移植到嵌入式系統(tǒng)等其他設(shè)備系統(tǒng)中[8]。為了將來能更有效地利用現(xiàn)有代碼,采用模塊化編程方法[9],將控制軟件分為用戶界面、控制邏輯、硬件驅(qū)動以及虛擬硬件等4個模塊,如圖3所示。
圖形用戶界面模塊主要實現(xiàn)與用戶進(jìn)行交互的界面接口,如參數(shù)設(shè)置、算法選擇、運行狀態(tài)顯示等[10]。
控制邏輯模塊實現(xiàn)單個控制硬件單元的控制邏輯及多個單元的協(xié)同邏輯。該模塊采用C語言進(jìn)行代碼編寫,以便于未來應(yīng)用中由計算機(jī)向嵌入式系統(tǒng)等移植的可能性[11]。
硬件驅(qū)動模塊實現(xiàn)控制邏輯與硬件的連接。在仿真開發(fā)平臺中,該模塊根據(jù)控制結(jié)果驅(qū)動虛擬硬件執(zhí)行相應(yīng)的操作。在后期系統(tǒng)實際運行中,該模塊需要根據(jù)控制硬件單元的接口情況進(jìn)行相應(yīng)的改寫[12]。
虛擬硬件模塊通過編程模擬控制硬件單元的各種設(shè)備元件,構(gòu)建虛擬硬件子系統(tǒng),如設(shè)備驅(qū)動元件及反饋測量元件等。該模塊用于驅(qū)動被控對象的仿真模型執(zhí)行相應(yīng)操作[13]。
完成以上4個模塊的編制后,運行系統(tǒng)按照測試軟件的執(zhí)行情況,并根據(jù)輸出結(jié)果修正相應(yīng)的軟件代碼直到獲取期望的控制邏輯輸出為止。
圖3 控制應(yīng)用軟件模塊結(jié)構(gòu)
基于虛擬硬件在環(huán)的軟件開發(fā)方式在硬件制造的同時通過仿真的方式測試軟件的運行邏輯,在硬件制造完成后,將硬件驅(qū)動模塊改寫為實際的驅(qū)動接口,從而節(jié)約了實際調(diào)試過程中的軟件測試時間,縮短了開發(fā)周期[14-17]。
3光柵刻劃機(jī)系統(tǒng)軟件設(shè)計與測試
3.1光柵刻劃機(jī)
如圖4(a)所示為光柵刻劃機(jī)三維模型,由分度系統(tǒng)與刻劃系統(tǒng)兩個部分構(gòu)成[18]。分度系統(tǒng)用于完成光柵毛坯的定位操作,將光柵移動到指定位置處;刻劃系統(tǒng)則用于完成光柵的刻劃,當(dāng)光柵到達(dá)目標(biāo)位置時,驅(qū)動刻刀完成光柵上刻線的刻劃。
如圖4(b)所示,光柵毛坯放置于內(nèi)臺上,內(nèi)臺與外臺之間通過懸掛彈簧片與壓電陶瓷連接,而外臺則經(jīng)由絲杠螺母與蝸輪蝸桿連接至伺服電機(jī)。分度系統(tǒng)在伺服電機(jī)與壓電陶瓷的共同作用下,帶動光柵毛坯精確運動至目標(biāo)位置處,并保持位置恒定。此時,刻劃系統(tǒng)則驅(qū)動刻刀完成光柵刻劃。兩者的運動關(guān)系曲線如圖5所示。
3.2編程工具選擇
光柵刻劃機(jī)的控制軟件是一款運行于計算機(jī)上的單機(jī)應(yīng)用軟件。目前, Windows系統(tǒng)使用較為廣泛,但Linux等系統(tǒng)仍然存在著一定的用戶基礎(chǔ)。考慮應(yīng)用程序應(yīng)具有良好的移植性,本文采用了QT來進(jìn)行程序開發(fā)。QT以C++ 語言作為編程語言,能跨平臺編譯,并允許組件編程[19],因此采用Nokia公司所提供的QT Creator來進(jìn)行光柵刻劃機(jī)系統(tǒng)軟件的開發(fā)。
圖4 光柵刻劃機(jī)三維立體機(jī)構(gòu)圖
圖5 運動曲線
3.3軟件模塊編寫
3.3.1用戶界面模塊
用戶界面為操作人員提供了交互式接口。一款優(yōu)秀的界面在滿足用戶功能需求的基礎(chǔ)上,應(yīng)界面美觀、簡潔,同時易于操作[20]。光柵刻劃機(jī)控制軟件分為參數(shù)設(shè)置、狀態(tài)顯示及曲線顯示等子模塊,如圖6所示。
3.3.2控制邏輯模塊
控制邏輯模塊是系統(tǒng)的核心模塊,單個控制硬件單元的控制邏輯及多個單元的協(xié)同邏輯均需要在該模塊中進(jìn)行實現(xiàn)。實現(xiàn)系統(tǒng)的控制邏輯開發(fā)是基于虛擬硬件在環(huán)的軟件仿真開發(fā)方法的最主要目的。該模塊的結(jié)構(gòu)如圖7所示。
圖6 用戶界面模塊
圖7 控制邏輯模塊
3.3.3虛擬硬件模塊
虛擬硬件模塊用于模擬光柵刻劃機(jī)的實際控制硬件單元,從功能上來說,可以分為控制單元與測量單元兩個部分,包含了控制與測量等相關(guān)設(shè)備,如帶動光柵毛坯運動的伺服電機(jī),以及測量光柵毛坯位置的激光干涉儀等。
虛擬硬件模塊是在基于虛擬硬件在環(huán)的控制軟件開發(fā)的關(guān)鍵環(huán)節(jié)。虛擬硬件仿真的正確與否直接決定了軟件的運行結(jié)果??紤]到將來虛擬硬件的重用性,在編寫各個硬件子系統(tǒng)時,為了代碼的復(fù)用性和可移植性,接口函數(shù)采用與實際設(shè)備相同的控制接口[21]。
為了將來程序改寫與移植的便利性,虛擬硬件設(shè)備均采用各自獨立的線程來完成,在軟件實際應(yīng)用時,刪除相應(yīng)的程序內(nèi)容即可。
3.3.4硬件驅(qū)動模塊
硬件驅(qū)動模塊主要用于連接控制邏輯模塊與虛擬硬件模塊。在仿真開發(fā)時,硬件驅(qū)動模塊接收控制線程的控制指令,之后驅(qū)動虛擬硬件執(zhí)行相應(yīng)動作。當(dāng)向?qū)嶋H系統(tǒng)中移植時,根據(jù)控制硬件單元設(shè)備的接口情況,重新編寫硬件驅(qū)動模塊驅(qū)動實際硬件單元。
3.4光柵刻劃機(jī)系統(tǒng)軟件用戶界面
在進(jìn)行控制軟件的UI界面設(shè)計時,在滿足用戶操作需求的同時,界面應(yīng)盡量方便、簡潔。
光柵刻劃機(jī)系統(tǒng)軟件的主窗口界面如圖8所示,共分為3個窗口:① 主窗口顯示光柵刻劃機(jī)的二維模型示意圖以及刻劃過程中的狀態(tài)參數(shù);② 左側(cè)的控制面板用于設(shè)定各種參數(shù),如刻劃道數(shù)、數(shù)據(jù)保存位置等;③ 底部窗口實時顯示刻劃曲線以及用戶操作狀態(tài)等相關(guān)信息。
圖8 光柵刻劃機(jī)系統(tǒng)軟件界面
在圖形用戶界面模塊中,還提供了與用戶進(jìn)行交互的各種界面。
在光柵刻劃機(jī)進(jìn)行定位控制操作時,有多種控制算法均能實現(xiàn)精確定位,但控制效果的優(yōu)劣需要實際檢測。因此,本文在控制軟件中提供了多種算法以供用戶選擇,如圖9所示。用戶可以根據(jù)實際測試結(jié)果選擇控制效果最優(yōu)的算法。
圖10所示為數(shù)據(jù)曲線界面,由于刻劃數(shù)據(jù)量較大,在刻劃過程中所顯示的曲線不夠精細(xì),因此提供數(shù)據(jù)曲線界面,用于后期的數(shù)據(jù)整理分析。導(dǎo)入刻劃過程中實時保存的數(shù)據(jù)信息,并顯示為曲線形式。在導(dǎo)入數(shù)據(jù)過程中,考慮到一次完整的刻劃數(shù)據(jù)量非常龐大,同時,操作人員只對某些關(guān)鍵性數(shù)據(jù)比較關(guān)心,因此還提供了數(shù)據(jù)起止位置選擇功能,用戶可以根據(jù)自身實際需求選擇指定的數(shù)據(jù),并計算誤差等信息。
圖9 算法選擇交互界面
圖10 數(shù)據(jù)曲線顯示界面
3.5光柵刻劃機(jī)實驗
在光柵刻劃機(jī)控制硬件與系統(tǒng)軟件均開發(fā)完成后,為驗證仿真開發(fā)方式的有效性,將軟件移植到實際設(shè)備中。光柵刻劃機(jī)的定位分為粗定位與精定位兩步,但最終精度主要取決于精定位的定位精度,因此需要重點測試壓電陶瓷控制的準(zhǔn)確性。為了簡化測試流程,去除粗定位的伺服電機(jī),采用單神經(jīng)元PID控制算法驅(qū)動壓電陶瓷進(jìn)行500 nm的階躍定位實驗,采樣頻率設(shè)定為1 000 Hz。
實驗結(jié)果如圖11所示,在給出目標(biāo)位置時,在單神經(jīng)元PID控制算法的作用下,系統(tǒng)較快地到達(dá)目標(biāo)值,同時穩(wěn)態(tài)誤差呈現(xiàn)正態(tài)分布, 3σ值為8.2 nm。
圖11 單神經(jīng)元PID定位實驗
4結(jié)束語
基于虛擬硬件在環(huán)的軟件仿真開發(fā)平臺,利用計算機(jī)構(gòu)建控制硬件單元與被控對象的虛擬模型,為開發(fā)人員提供了一個方便高效的軟件開發(fā)平臺。為實現(xiàn)軟件復(fù)用功能,采用模塊化編程方法,將控制軟件分為用戶界面、控制邏輯、硬件驅(qū)動以及虛擬硬件等既相對獨立又有機(jī)結(jié)合的4個模塊。本文以光柵刻劃機(jī)系統(tǒng)控制軟件為例,結(jié)合4個模塊介紹了軟件的開發(fā)流程,并在軟件開發(fā)完成后將其移植到實際光柵刻劃機(jī)設(shè)備中進(jìn)行了內(nèi)層工作臺的階躍定位實驗,驗證了基于虛擬硬件在環(huán)的控制系統(tǒng)軟件開發(fā)模式的可行性。
參考文獻(xiàn):
[1]戴筱妍.車輛動力傳動綜合控制系統(tǒng)設(shè)計方法及關(guān)鍵技術(shù)研究[D].北京:北京理工大學(xué),2014.
[2]苗斌,劉克,劉海龍.電子器件仿真軟件技術(shù)發(fā)展動態(tài)[J].電子元件與材料,2013(11):80-81.
[3]易愷,周正超.嵌入式軟件仿真開發(fā)平臺的設(shè)計與實現(xiàn)[J].科學(xué)時代,2015(8):55-57.
[4]陳實.嵌入式軟件仿真開發(fā)平臺的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2007.
[5]杜寶江,呂韋斌,林靈,等.基于虛擬樣機(jī)技術(shù)的印刷系統(tǒng)仿真研究[J].信息技術(shù),2015(7):147-151.
[6]王紅軍,陳佳鑫,鄒湘軍,等.SimulationX及硬件在環(huán)仿真在伺服壓力機(jī)設(shè)計和研究中的應(yīng)用[J].機(jī)械工程學(xué)報,2012,48(6):51-56.
[7]張恒.純電動汽車整車控制器硬件在環(huán)仿真系統(tǒng)的研究[D].長春:吉林大學(xué),2013.
[8]祝義.嵌入式軟件需求規(guī)約到軟件體系結(jié)構(gòu)模型的轉(zhuǎn)換研究[D].南京:南京航空航天大學(xué),2011.
[9]張博,王志信.模塊化編程思想在PLC系統(tǒng)中的應(yīng)用[J].化工自動化及儀表,2013,40(3):416-418.
[10]熊杰,劉新德,馮仁劍.嵌入式圖形用戶界面系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)工程與設(shè)計,2012,33(7):2602-2606.
[11]羅莎.論C語言開發(fā)下的DSP嵌入式系統(tǒng)[J].軟件導(dǎo)刊,2012,11(11):26-28.
[12]田軍輝.純電動客車整車控制器硬件在環(huán)測試系統(tǒng)開發(fā)及驅(qū)動控制策略研究[D].長春:吉林大學(xué),2013.
[13]王璟.基于硬件虛擬技術(shù)的Rootkit檢測技術(shù)研究[D].鄭州:解放軍信息工程大學(xué),2009.
[14]韓芳,袁宇賓. 計算機(jī)桌面虛擬化技術(shù)在教學(xué)及管理中的實現(xiàn)路徑研究[J]. 重慶理工大學(xué)學(xué)報(自然科學(xué)),2014( 7): 105 -109.
[15]張飛,耿紅琴,陳萍.采用虛擬儀器的近紅外無損液體識別電子舌設(shè)計[J].激光雜志,2015(1):74-77.
[16]許鋼,楊會成,張明艷.虛擬儀器平臺在數(shù)字圖像處理課程中的應(yīng)用[J].重慶工商大學(xué)學(xué)報(自然科學(xué)版),2014(8):42-45.
[17]陸飛,郭建中.基于虛擬儀器的超聲換能器阻抗分析儀設(shè)計[J].壓電與聲光,2011(3):425-428.
[18]申遠(yuǎn),王怡影,竺長安,等.光柵刻劃機(jī)超精密定位系統(tǒng)定位控制研究[J].中國科學(xué)技術(shù)大學(xué)學(xué)報,2014,44(2):165-170.
[19]閆鋒欣.軟C++ GUI Qt 4編程[M].北京:電子工業(yè)出版社, 2008.
[20]盧金鐸.多軸運動控制系統(tǒng)人機(jī)界面設(shè)計與控制策略的研究[D].濟(jì)南:山東大學(xué),2006.
[21]李秋玲.Android硬件抽象層關(guān)鍵技術(shù)研究及其在USB攝像頭中的實現(xiàn)[D].北京:中國科學(xué)院研究生院,2011.
(責(zé)任編輯楊黎麗)
Development of Grating Ruling Engine Control Software Based on Virtual Hardware-in-the-Loop
LIU Dong-cai1, LIAN Guo-fu2
(1.School of Electronic and Information Engineering, Hefei Normal University,Hefei 230601, China; 2.School of Mechanical and Automotive Engineering,Fujian University of Technology, Fuzhou 350118, China)
Abstract:Traditional developing process includes several steps, and the manufacture of hardware is finished, and then the software will be developed and debugged. The traditional methods increase the developing period, and more importantly it is hard to detect problems due to the disturbance of hardware in the system. We proposed the concept of virtual hardware in the loop. Hardware and software developing were based on the concept. The efficiency can be increased largely due to the novel software developing method. The detail of the virtual hardware in the loop developing method was presented in the last part of our paper, with the example of developing control software of grating ruling engine. Finally, the developed software was embedded in real systems to make some experimental test.
Key words:software development; virtual hardware in the loop; grating ruling engine
收稿日期:2016-01-18
基金項目:福建省自然科學(xué)基金資助項目(2015J01181);安徽省高校自然科學(xué)研究重點項目(KJ2016A576);合肥師范學(xué)院人才啟動基金(2015rcjj04)
作者簡介:劉棟材(1984—),男,安徽池州人,講師,主要從事智能設(shè)計與控制研究。
doi:10.3969/j.issn.1674-8425(z).2016.06.019
中圖分類號:TP311.52
文獻(xiàn)標(biāo)識碼:A
文章編號:1674-8425(2016)06-0115-06
引用格式:劉棟材,練國富.基于虛擬硬件在環(huán)的控制軟件開發(fā)[J].重慶理工大學(xué)學(xué)報(自然科學(xué)),2016(6):115-120.
Citation format:LIU Dong-cai, LIAN Guo-fu.Development of Grating Ruling Engine Control Software Based on Virtual Hardware-in-the-Loop[J].Journal of Chongqing University of Technology(Natural Science),2016(6):115-120.