LabVIEW開發(fā)空氣動(dòng)力學(xué)實(shí)驗(yàn)室的采集和控制系統(tǒng)
LabVIEW開發(fā)空氣動(dòng)力學(xué)實(shí)驗(yàn)室的采集和控制系統(tǒng)
在航空航天模擬設(shè)施中,通常的做法是準(zhǔn)備一種針對(duì)當(dāng)前正在進(jìn)行的實(shí)驗(yàn)的數(shù)據(jù)采集和控制軟件。該軟件通常是根據(jù)當(dāng)前要求編輯的更通用程序的修訂版,或者可能是專門為該測(cè)試編寫的自定義程序,具體取決于測(cè)試規(guī)范和復(fù)雜性。這些軟件以多種語言編寫,如FORTRAN,C/C++甚至自定義語言以及最近的環(huán)境,如LabVIEW和MATLAB。它們通常被編寫為按順序控制和觸發(fā)子系統(tǒng)的數(shù)據(jù)流過程。LabVIEW有利于這一傳統(tǒng),使修訂更輕松、更快捷。
從每個(gè)單獨(dú)的實(shí)驗(yàn)的角度來看,這似乎是權(quán)宜之計(jì):獲取最適合當(dāng)前需求的現(xiàn)有軟件并進(jìn)行一些修改來完成工作,或者編寫一個(gè)完全適合您需求的新程序。但是,隨著時(shí)間的推移,這種方法存在嚴(yán)重的缺點(diǎn)。它導(dǎo)致反映這種可變性的軟件版本和數(shù)據(jù)激增。不斷的代碼更改意味著反復(fù)引入錯(cuò)誤,這些錯(cuò)誤在傳播到其他測(cè)試之前可能會(huì)或可能不會(huì)檢測(cè)到。這些不一致加劇了支持和維護(hù)工作,并且隨著時(shí)間的推移,臨時(shí)修訂會(huì)累積,導(dǎo)致軟件變得越來越難以理解和修訂。從設(shè)施的角度來看,而不是從測(cè)試的角度來看,許多相同或類似的事情正在一遍又一遍地完成,但微小的差異會(huì)產(chǎn)生大部分問題,并消耗了不斷增加的大部分努力。如果有一種架構(gòu)可以適應(yīng)測(cè)試的可變性,而無需不斷進(jìn)行軟件修訂,那么這個(gè)問題的大部分都將被消除。
許多現(xiàn)有系統(tǒng)由一個(gè)中央的全知過程或控制相對(duì)愚蠢的子系統(tǒng)的過程組成。職責(zé)按采集、實(shí)時(shí)顯示、運(yùn)動(dòng)控制、報(bào)警等行劃分。并在進(jìn)程之間劃分或僅在一個(gè)整體進(jìn)程中運(yùn)行。此過程或這些進(jìn)程的代碼需要密切了解系統(tǒng)硬件的詳細(xì)信息。不幸的是,系統(tǒng)硬件在物理或功能上并沒有按照相同的路線劃分。因此,系統(tǒng)硬件的任何更改都會(huì)導(dǎo)致整個(gè)代碼中的軟件更改。
但是,如果智能可以推送到子系統(tǒng),并且這些子系統(tǒng)能夠相互協(xié)調(diào),并與促進(jìn)其協(xié)調(diào)的中央程序協(xié)調(diào),那么任何子系統(tǒng)的細(xì)節(jié)都將在該子系統(tǒng)中隔離。隨著子系統(tǒng)的添加、重新配置或從設(shè)施中刪除,中央程序和子系統(tǒng)代碼都不需要更改。
優(yōu)點(diǎn)很多,一旦代碼不再需要不斷修改,它就會(huì)變得徹底調(diào)試和穩(wěn)定。重新配置和排除設(shè)施故障變得更快、更容易、更可靠。任何新硬件都可以獨(dú)立于整個(gè)設(shè)施軟件編寫子系統(tǒng)軟件,只要它可以通過一個(gè)通用接口與之協(xié)調(diào)。對(duì)這種穩(wěn)定系統(tǒng)提供的數(shù)據(jù)有更大的信心。
從中央流程到更自主的子系統(tǒng)的轉(zhuǎn)變與結(jié)構(gòu)化編程和面向?qū)ο缶幊讨g的區(qū)別非常相似。子系統(tǒng)作為一個(gè)對(duì)象,也與可能從設(shè)施中連接或移除的真實(shí)硬件平行。這種匹配使得探索修訂后的體系結(jié)構(gòu)的面向?qū)ο缶幊套兊煤茏匀?。還有其他選擇,但這是一個(gè)很好的選擇。
關(guān)于面向?qū)ο缶幊檀嬖谠S多誤解。有些人認(rèn)為面向?qū)ο缶幊淌且粋€(gè)難以掌握且令人困惑的概念,它取代了他們更熟悉的結(jié)構(gòu)化編程,并且需要學(xué)習(xí)一種新的面向?qū)ο笳Z言。他們可能會(huì)反駁說,在面向?qū)ο缶幊讨锌梢酝瓿傻娜魏问虑槎伎梢酝ㄟ^傳統(tǒng)的結(jié)構(gòu)化編程來完成,那么為什么要付出努力呢?但這就像說,如果沒有飛機(jī),我們可以到達(dá)地球上任何我們想去的地方,所以為什么要經(jīng)歷制造它們的麻煩。飛機(jī)的許多優(yōu)點(diǎn)是顯而易見的。它們更快、更直接、更便宜,適合長途旅行。它們也更安全,有時(shí)可以避免其他旅行方式無法避免的惡劣天氣。但有些飛機(jī)的制造完全是為了利用飛行提供的獨(dú)特視角。面向?qū)ο缶幊桃彩侨绱?。我們將在下面探討許多優(yōu)點(diǎn),但也許最重要的是它為編程問題提供了更好的視角,特別是隨著它的范圍和復(fù)雜性的增長。
面向?qū)ο缶幊痰膬?yōu)勢(shì)現(xiàn)在已經(jīng)確立,大多數(shù)組織都在利用它們。大多數(shù)商業(yè)應(yīng)用程序都是面向?qū)ο蟮木帉懀蠖鄶?shù)大型開發(fā)項(xiàng)目也使用它。

LabVIEW的開發(fā)人員使用面向?qū)ο蟮木幊虂韯?chuàng)建它。但是,它提供的編程環(huán)境最初并不是面向?qū)ο蟮?,它遵循?shù)據(jù)流范式。LabVIEW旨在提供一種簡單、快速的方法來獲取采集設(shè)備收集數(shù)據(jù)。為此,它非常成功。環(huán)境響應(yīng)速度非???,可以快速開發(fā)和排除代碼故障。但是,隨著LabVIEW應(yīng)用范圍和復(fù)雜程度的不斷增長,將面向?qū)ο缶幊碳夹g(shù)應(yīng)用于它們的自然需求也隨之發(fā)展。在LabVIEW的后續(xù)版本中添加了各種函數(shù),以及一個(gè)向?qū)В糜趧?chuàng)建標(biāo)準(zhǔn)實(shí)用工具以啟用LabVIEW對(duì)象。面向?qū)ο缶幊毯蚅abVIEW的功能現(xiàn)在結(jié)合了,盡管其他面向?qū)ο笳Z言中自動(dòng)完成的許多工作必須“手動(dòng)”完成。這種組合被命名為面向圖形對(duì)象編程GOOP。它是面向?qū)ο缶幊痰囊环N獨(dú)特風(fēng)格,需要一些努力才能掌握,但結(jié)果的改進(jìn)是值得的。LabVIEW8.2引入了完全面向?qū)ο蟮木幊?,包括繼承等。
GOOP采集和控制系統(tǒng)的試點(diǎn)應(yīng)用
隧道不僅用于進(jìn)行空氣動(dòng)力學(xué)實(shí)驗(yàn),還用于測(cè)試各種風(fēng)洞設(shè)計(jì)。它具有各種可互換的測(cè)試部分。添加/刪除或重新配置的子系統(tǒng)包括天平、橫移器、壓力掃描儀、風(fēng)速計(jì)、模擬掃描儀、PIV等。為每個(gè)子系統(tǒng)開發(fā)了一個(gè)類,這些子系統(tǒng)被聚合v進(jìn)入一個(gè)名為PLTDAS的容器類,用于PiLot隧道數(shù)據(jù)采集系統(tǒng),該系統(tǒng)控制和協(xié)調(diào)子系統(tǒng)。
由此產(chǎn)生的系統(tǒng)成功地展示了分布式子系統(tǒng)方法以及GOOP在航空航天仿真設(shè)施中的應(yīng)用。該界面足夠用戶友好,研究人員只需半小時(shí)的培訓(xùn)即可使用它。子系統(tǒng)更多的標(biāo)準(zhǔn)化也是可能的和有用的。
一系列測(cè)試需要一個(gè)具有開路隧道和結(jié)冰設(shè)施相結(jié)合功能的設(shè)施。為了提供這一點(diǎn),在開路推進(jìn)風(fēng)洞中添加了一個(gè)結(jié)冰系統(tǒng)。這個(gè)結(jié)冰系統(tǒng)的控制系統(tǒng)為應(yīng)用GOOP和分布式架構(gòu)提供了另一個(gè)機(jī)會(huì)。
噴霧系統(tǒng)由一系列噴霧桿組成,空氣和水流向由一系列開/關(guān)閥控制的桿上的各個(gè)噴嘴。閥門可以按偶數(shù)、奇數(shù)或全部模式分組。為了保持一致的噴霧,有必要單獨(dú)不斷調(diào)整每個(gè)酒吧的流量,因?yàn)閹子⒊叩母叨茸兓瘯?huì)使水壓變化到足以使噴霧無法接受。該流程由前饋PID回路維持。供水和氣壓也由PID回路維持。用壓力傳感器測(cè)量棒之間的壓力。
在控制系統(tǒng)軟件中,每個(gè)條由相應(yīng)的噴條對(duì)象表示。它根據(jù)傳遞給對(duì)象的設(shè)定點(diǎn)管理閥門的配置。這些對(duì)象被聚合到一個(gè)噴霧條陣列對(duì)象中,該對(duì)象管理各個(gè)條形以提供各種整體模式和相對(duì)設(shè)定點(diǎn)。該系統(tǒng)是聚合的一個(gè)例子,以及抽象如何將職責(zé)劃分為更易于管理的層。
然后將這些對(duì)象合并到一個(gè)更大的,主要是結(jié)構(gòu)化的程序中。然而,這些對(duì)象被證明是該程序中最穩(wěn)定和可靠的部分。修訂可以忽略不計(jì)。它展示了將程序抽象為對(duì)象級(jí)別的優(yōu)勢(shì),既可以澄清問題,也可以控制程序不同部分之間的范圍和相互依賴關(guān)系。
?
這是LabVIEW的一個(gè)應(yīng)用,更多的開發(fā)案例,歡迎登錄北京瀚文網(wǎng)星官網(wǎng),了解更多信息。有需要LabVIEW項(xiàng)目合作開發(fā),請(qǐng)與我們聯(lián)系。