?

航天器環模試驗三維溫度監測軟件設計

2018-10-24 15:31王根源李民馬蕾
科學與財富 2018年26期

王根源 李民 馬蕾

摘 要:航天器在發射前需進行空間環境模擬試驗,模擬航天器飛行的真空、冷黑和外熱流環境,試驗中必須對航天器上多個測溫點進行實時監測?,F有溫度監測軟件僅能實時顯示溫度數值和繪制溫度變化曲線,對于航天器的溫度分布顯示不夠直觀。

本文利用VC++和Open Inventor搭建三維溫度監測軟件,通過溫度采集設備實時監測各測點溫度,在監測窗口顯示航天器模型,并利用不同顏色對航天器各部件溫度進行區分,實現三維溫度監測功能。

關鍵詞:空間環模試驗;三維溫度;監測軟件

引言

航天器在研制過程中,必須在地面模擬的空間環境中進行試驗(簡稱環模試驗)以提高其可靠性,其中航天器軌道飛行中的溫度分布,以及溫度條件下航天器各組件的性能與功能是重要的考察要素,所以環模試驗中需實時對各部組件的溫度進行監測[1]?,F行的溫度監測軟件可通過數據采集器讀取各測點溫度,但是只能以數值和變化曲線的形式進行顯示,不能直觀的展現航天器在試驗中的實時溫度分布情況。本文基于可視化技術,根據當前采集到的各部件溫度,直接在衛星模型上更改相應部件的顏色,幫助研究人員和測試人員直觀地掌握航天器實時的溫度分布狀況[2]。

2總體設計

本文利用VC++和Active X控件編寫了航天器環模試驗三維溫度監測軟件,通過數據采集器以一定的時間間隔讀取航天器和環模設備各測點溫度數據,并實現了溫度數據的數值顯示、曲線繪制、超限報警、數據存儲功能?;贠pen Inventor搭建可視化模塊,根據設定的溫度-顏色關系,對環模設備和航天器各部組件進行著色渲染,實現溫度的直觀顯示。

2.1 系統結構

三維溫度監測軟件結構如圖1所示,溫度數據由若干個溫度數據采集器測量,通過以太網與控制計算機連接,軟件的溫度采集模塊按設定的時間間隔讀取數據采集器的測量數據,根據配置文件,將溫度數值與各部組件匹配,以列表和曲線的形式顯示。用戶可在超限報警模塊設定每個通道的溫度報警范圍,當該通道的溫度超過報警范圍時,可以發出聲光報警給予提示。軟件數據存儲模塊每天自動創建csv格式的文件,保存所有溫度數據。

三維顯示模塊可顯示測試產品、環模設備及配套工裝等的三維模型,每個需要測溫的部件作為一個模型節點,根據該部件的溫度和設置好的溫度-顏色配置,實時更改每個節點的顏色屬性,溫度較高時采用偏紅的暖色系,溫度較低時采用偏藍的冷色系以此直觀顯示各部件的溫度分布。

2.2 界面設計

軟件采用CPropertySheet為主界面,包含三個屬性頁。第一個屬性頁顯示三維溫度模型,并配以溫度--顏色對照尺,以及一些用于操作或顯示的控件。第二個屬性頁采用網格控件來顯示所有溫度測點的測點名稱、當前溫度、溫度范圍、設置信息、超限報警等信息,以及實現對單個或者多個通道的模型顯示、溫度范圍等進行設置。第三個屬性頁為繪制溫度曲線界面,每個曲線繪制窗口可最多顯示12個通道溫度隨時間變化的曲線。

2.3 幾何建模

幾何建模通過VC++與Open Inventor聯合編程實現。Open Inventor是一個面向對象的交互性三維圖形軟件開發包,操作者可以在其提供的三維圖形瀏覽器中以任意比例或角度觀察模型[3]。但是通常Open Inventor繪制零件幾何模型的工作較為復雜,所以實際由ProE建模再將模型和裝配關系轉換為可用的“.iv”格式后,再從Open Inventor中搭建模型。每個模型作為一個節點,該模型的紋理、運動等屬性作為其子節點,通過改變其子節點的域的數值即可實現外觀、運動狀態等的顯示[3]。航天器部件模型和環模設備間也應遵從一定的父子關系,父節點運動狀態改變時,子節點也會相應改變。

2.4 多線程設計

監測軟件共包含四個線程,分別為主界面線程、語音報警線程、數據讀取線程和數據寫入線程。主線程負責響應Windows消息,如菜單命令、定時器事件、窗口大小變化、關閉窗口等,以及處理數據寫入線程發來的消息,并實現三維溫度及其他數據的顯示功能。

主線程中設置一個時長為30秒的定時器,定時器超時后就通知數據讀取線程去查詢數據采集器的當前測量溫度,通知數據寫入線程將溫度數據寫入文件。同時設置一個10秒的定時器,定期檢查計算機與數據采集器間的通信連接情況,并根據情況進行重連操作。

主線程與數據寫入線程間通過信號量進行通信。主線程與數據寫入線程之間通過信號量進行通信。串口線程調等待信號量變成有信號狀態。主界面線程則在定時器超時后,設置該信號量為有信號狀態,使得數據寫入線程從等待狀態轉入到就緒狀態。數據寫入線程得到主界面線程的通知后,將數據讀取線程獲取的溫度數據寫入文件,并發送一條消息給主界面線程。主界面線程收到消息后,更新所有的相關頁面,并檢查是否有溫度超限報警發生。如有超限,則啟動語音報警線程。

3主要模塊設計

3.1 溫度采集模塊

溫度采集模塊用于實現從Kethley 2701數據采集器讀取各測量通道的溫度值,其功能由數據采集器管理類實現。該類封裝了對數據采集器的操作、數據讀取線程以及數據寫入線程。主界面線程通過訪問數據采集器管理類提供的函數實現對數據采集器的訪問,以及數據的處理和保存。每當定時器超時,即發送SCPI指令至數據采集器,數據采集器接收指令后將溫度數據發送到連接的Socket中,當讀取數據進程監測到Socket中存有數據時將其接收并處理問溫度數值。當需要從控溫儀讀取當前溫度數據時,主界面線程就調用數據采集器管理類提供的SaveData函數,由SaveData函數激活數據寫入線程。數據寫入線程則將已經讀取的溫度數據發送至主界面線程,并寫入到csv格式的文件中。讀取數據線程和數據寫入線程間采用了互斥機制,避免同時訪問溫度數據而產生信息處理矛盾和錯誤。

3.2 三維溫度顯示模塊

溫度采集模塊完成溫度數據采集后,三維溫度顯示模塊對模型進行更新。Open Inventor提供的SoTexture2類可以創建一個2D的紋理貼圖,然后將紋理圖映射到3D模型表面。本文中的紋理貼圖通過調用SoTexture2節點的Image域,創建RGB顏色紋理映射,以區分航天器內的不同溫度特征。需要注意的是,由于模型本身底色的原因,在調用紋理渲染SoTexture2節點時,屬性應選擇DECAL模式,即使用紋理顏色代替底色,而不是缺省的混合運算MODULATE模式[4]。RGB中每個顏色分量均由0~255的數值表示,溫度較高時,提高暖色調的R值,溫度較低時調高冷色調的B值,溫度適中則相應調高G值。假設采集的溫度最高值為TMAX,溫度最低值為TMIN,中間溫度TMID=((TMAX+TMIN))·2,則溫度與RGB各分量的對應關系如下所示:

最高溫度TMAX時:RGB(255,0,0);

中間溫度TMID時:RGB(0,255,0);

最低溫度TMIN時:RGB(255,0,0);

此外,還可通過SoText節點將部件名稱和當前溫度數值顯示在該部件模型附近。

3.3 監測配置模塊

為提高操作的靈活性,方便對網絡設置、監控通道、溫度范圍等進行設置,軟件提供了配置窗口,以便讓試驗值班人員按照實際情況進行設置,并將配置信息保存在監視配置類里,每次打開軟件可自動讀取上一次的配置信息。監視設置類使用了單件模式,利用C++面向對象程序設計的訪問控制機制,將構造函數和析構函數設計成private函數,確保無法直接生成類的實例,然后提供一個public的靜態訪問點(本文中的GetInstance函數)和一個private的類實例的靜態指針。靜態訪問點首先檢查類實例的指針是否為空,為空則生成一個類的實例并賦值給類實例的靜態指針,否則直接返回類實例的靜態指針[5]。

3.4 碰撞檢測模塊

環模設備中空間有限,工裝和測試產品形狀多不規則,因此一些需要工裝或產品運動的試驗,可能會發生碰撞,造成產品的損壞。Open Inventor提供了多種用于碰撞檢測的類。將環模設備、工裝等相對不會運動的節點設置為靜態節點,運動模擬器和產品設置為動態節點,當檢測到某一動態節點的transform節點非空,即該節點發生了運動時,就調用碰撞檢測函數checkCollision檢測該動節點及其子節點和靜態節點之間是否發生了碰撞。一旦碰撞檢測函數發現了碰撞的發生,就會調用一些碰撞響應函數,可以用來顯示碰撞點的位置、高亮顯示碰撞對等。這樣在試驗之前即可發現碰撞風險,提高試驗的可靠性。采用這種碰撞檢測方式,只對正在發生運動的節點和其他節點進行碰撞檢測,計算量較小,檢測效率較高。

結論

本文通過將溫度以顏色的形式賦予航天器模型,實現了三維溫度的顯示,并結合數據采集、數據保存、碰撞檢測等模塊,操作者可以在航天器環模試驗對溫度進行直觀地實時監測,方便地對各測點溫度范圍進行設置并查看超限情況。

參考文獻:

[1]黃本誠,馬有禮 航天器空間環境試驗技術[M].北京:國防工業出版社.2002:1-3.

[2]毛鑫龍.深空目標紅外輻射特性仿真和溫度場可視化[D].南京理工大學碩士學位論文,2014:55-57.

[3]閻鋒欣,侯增選,張定華,等.Open Inventor程序設計從入門到精通[M].北京:清華大學出版社.2007:7-10.

[4]Josie Wernecke. The Inventor Mentor [M]//Silicon Graphics, 1994:165-173.

[5]微軟.MSDN Library for Visual Studio 2008[CP/DK], 2007.

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合