王 楊,李東年,宋立強(qiáng),姜 鵬
(1. 青島理工大學(xué),山東 青島 266520;2. 中國科學(xué)院國家天文臺,北京 100101)
500 米口徑球面射電望遠(yuǎn)鏡(Five-hundred-meter Aperture Spherical Telescope,F(xiàn)AST)是現(xiàn)今國際上口徑最大、最靈敏的單口徑射電望遠(yuǎn)鏡,通過主動反射面形成的瞬時拋物面來匯集電磁波,采用輕型鋼索拖動饋源艙實現(xiàn)望遠(yuǎn)鏡的高精度指向跟蹤。在1993年國際無線電聯(lián)合會的大會上,包括中國在內(nèi)的10個國家,提出構(gòu)建大型射電望遠(yuǎn)鏡的構(gòu)想[1],各國的研究團(tuán)隊開始進(jìn)行構(gòu)建大型望遠(yuǎn)鏡工程的研究,經(jīng)過不斷地探索選址,中國的天文學(xué)家于1994年提出利用貴州喀斯特洼坑作為500m射電望遠(yuǎn)鏡的建造地點[2]。2003年,哈爾濱工業(yè)大學(xué)空間結(jié)構(gòu)研究中心開始參與FAST反射面索網(wǎng)支撐結(jié)構(gòu)的研究[3-5],提出了索網(wǎng)結(jié)構(gòu)與背架結(jié)構(gòu)相結(jié)合的反射面結(jié)構(gòu)方案,按照網(wǎng)格劃分支撐索網(wǎng),每個索網(wǎng)節(jié)點下連接下拉索,背架與其上反射面單元構(gòu)成一個獨立的單元覆蓋在一個索網(wǎng)網(wǎng)格之上。目前FAST已經(jīng)完成國家驗收,并正式運行,已確認(rèn)觀測到百余顆新脈沖星,對于實現(xiàn)我國相關(guān)領(lǐng)域原創(chuàng)突破具有重要意義。
OpenSceneGraph(簡稱OSG)是一個開源的場景圖形開發(fā)庫,主要是為圖形應(yīng)用程序提供場景管理和渲染優(yōu)化功能,OSG采用OpenGL作為底層渲染的API,廣泛應(yīng)用于虛擬現(xiàn)實、視景仿真、科學(xué)計算可視化等領(lǐng)域。郭靖[6]在麒麟操作系統(tǒng)上利用OSG進(jìn)行場景渲染,以星空場景以及數(shù)字地球為背景,建立衛(wèi)星在軌飛行、變軌飛行的仿真系統(tǒng)。鮑娣等[7]利用攝影傾斜技術(shù)建立地表的三維場景,將模型與三維場景進(jìn)行融合,并利用OSG進(jìn)行場景展示。陳奎等[8]建立了合理的虛擬對象體系,實現(xiàn)虛擬車間物流生成過程的三維仿真。
數(shù)字孿生作為實現(xiàn)智能制造、工業(yè)4.0等理念的技術(shù)和手段,受到了學(xué)術(shù)界、企業(yè)界的關(guān)注,其中數(shù)字孿生的落地應(yīng)用更是關(guān)注的熱點。數(shù)字孿生的概念是由Grieves于2003年提出[9],并將其定義為物理實體、虛擬實體以及二者間連接的模型,早期主要被應(yīng)用于軍工和航天領(lǐng)域。陶飛等[10]將數(shù)字孿生應(yīng)用于智能制造領(lǐng)域,提出了由物理實體、虛擬實體、服務(wù)體系、孿生數(shù)據(jù)及其之間連接構(gòu)成的五維數(shù)字孿生模型。
FAST通過電磁波信號來對天體進(jìn)行觀測,其中主動反射面、饋源艙是接收電磁波信號的核心組成部分,也是FAST主要的運動機(jī)構(gòu)。進(jìn)行觀測活動時,通過促動器下拉索驅(qū)動,使反射面變形為300m口徑拋物面以達(dá)到匯聚電磁波的目的。同時,使用饋源支撐塔上的6根鋼索拖動饋源艙,實現(xiàn)對目標(biāo)天體高精度定位及跟蹤。
當(dāng)FAST進(jìn)行觀測活動時,需要各部門之間協(xié)調(diào)配合,同時需要大量人力、物力,為了對觀測活動進(jìn)行模擬、規(guī)劃,本文對其主要的運動機(jī)構(gòu)主動反射面、饋源艙以及鋼索進(jìn)行了運動仿真。針對三個運動部件之間需要配合運動導(dǎo)致空間變換過于復(fù)雜的問題,本文分析了觀測活動過程中運動部件的運動變換,利用OSG的運動節(jié)點和矩陣變換對運動部件進(jìn)行了運動仿真,本文主要工作如下:依據(jù)FAST實體尺寸建立了虛擬模型,利用OSG的場景樹對FAST的模型進(jìn)行組織管理,并對拋物面、饋源艙以及鋼索模型進(jìn)行了運動仿真,然后利用Qt建立了交互界面,最后在FAST運動仿真系統(tǒng)的基礎(chǔ)上,建立了饋源艙位姿Redis數(shù)據(jù)庫,利用數(shù)據(jù)庫中的數(shù)據(jù)去驅(qū)動FAST模型進(jìn)行運動。本文系統(tǒng)為FAST數(shù)字孿生系統(tǒng)的實現(xiàn)打下基礎(chǔ),對FAST觀測活動規(guī)劃和作業(yè)指導(dǎo)具有重要的意義。
FAST運動仿真系統(tǒng)的整體技術(shù)方案如圖1所示,主要分三個部分:OSG場景組織、OSG場景顯示窗口、交互界面。首先利用OSG節(jié)點對FAST模型進(jìn)行場景組織,然后通過OSG的osgQt類建立OSG場景顯示窗口,對FAST場景進(jìn)行更新和顯示,最后利用Qt中QMainWindow類創(chuàng)建FAST運動仿真系統(tǒng)的交互主界面。
圖1 FAST運動仿真系統(tǒng)的技術(shù)方案
FAST虛擬三維場景如圖2所示,利用3dmax、Solidworks等建模軟件對FAST的主動反射面、拋物面、饋源艙、饋源支撐塔、鋼索、圈梁等主要部件以及地形進(jìn)行了建模,并對模型添加紋理、材質(zhì)等屬性信息。
圖2 FAST三維場景
本文利用OSG對FAST模型進(jìn)行圖形管理和渲染,OSG采用了一種自頂向下的、分層的圖形場景樹來組織空間數(shù)據(jù)集,圖形場景樹由根節(jié)點、組節(jié)點以及葉節(jié)點組成[11]。一個圖形場景最頂層的節(jié)點為根節(jié)點,根節(jié)點向下包含多個組節(jié)點和葉節(jié)點,組節(jié)點包含物體的渲染狀態(tài)信息,葉節(jié)點為最底層的節(jié)點包含場景中物體實際的幾何信息[12]。把模型導(dǎo)入OSG中進(jìn)行管理,如圖3所示,建立場景結(jié)構(gòu)樹。根節(jié)點為最頂層的節(jié)點,根節(jié)點下包含三部分:1)靜態(tài)模型,即固定不動的模型。包括地形、圈梁、饋源支撐塔以及反射面等模型。2)運動節(jié)點1,包含饋源艙模型、拋物面模型及其矩陣變換。3)運動節(jié)點2,包含鋼索模型及其矩陣變換。
圖3 FAST三維場景結(jié)構(gòu)
射電望遠(yuǎn)鏡是在無線電波段接收電磁波來觀測天體。饋源艙和主動反射面是FAST的核心組成部分,也是用來接收電磁波的核心裝置,其工作原理如圖4所示。通過主動反射面下的促動器拉動主索節(jié)點,使主動反射面發(fā)生變形,形成300m口徑的瞬時拋物面以匯聚電磁波,饋源支撐系統(tǒng)對饋源艙進(jìn)行一次調(diào)整。但是在觀測活動時,變形區(qū)域的反射面單元數(shù)量眾多,難以計算每個單元的變位過程,因此為了更加直觀的反映反射面的變形,同時為了減少運算量,本文利用一個球冠模型來模擬反射面的拋物面變形區(qū)域。
圖4 FAST觀測原理
FAST的主動反射面是口徑為500m,半徑為300m的反球冠狀,觀測時反射面形成瞬時300m口徑拋物面用于匯集電磁波。根據(jù)哈爾濱工業(yè)大學(xué)空間結(jié)構(gòu)研究中心的研究[13],給出拋物線的方程
x2+2py+c=0
(1)
其中,p為-276.647,c為-162250。
本文根據(jù)反射面實際的坐標(biāo)尺寸在3dmax中建立了主動反射面的靜態(tài)模型,近似地把
(x-a)2+(y-b)2+(z-c)2=5002
(2)
作為反射面的球面方程。在實際的觀測活動中反射面在進(jìn)行觀測時變形量微小,肉眼不易觀察出所形成的瞬時拋物面。因而,針對視景仿真需求,本文在仿真系統(tǒng)中建立一個300m口徑球冠模型來對工作拋物面進(jìn)行近似表示。該球冠模型的方程為:
(x-a)2+(y-b)2+(z-c)2=(500-r)2
(3)
其中,r為球冠模型與反射面之間的距離。
虛擬場景下反射面與拋物面的位置關(guān)系如圖5所示,其中用透明系數(shù)為0.5的紅色球冠模型表示拋物面模型,拋物面模型在500m口徑反射面球面模型上進(jìn)行運動。
圖5 拋物面與反射面位置關(guān)系
在仿真系統(tǒng)中,假定拋物面的運動范圍是覆蓋整個反射面,本文設(shè)置拋物面繞x、y軸的運動范圍分別為-26°到26°。OSG中的坐標(biāo)系為右手坐標(biāo)系,繞x軸旋轉(zhuǎn)矩陣為Rx,繞y軸旋轉(zhuǎn)矩陣為Ry,得到拋物面球冠模型在OSG下的變換矩陣:
M1=Rx·Ry
(4)
饋源艙是FAST的核心部件,如圖6所示,主要包括星型框架、AB軸以及Stewart平臺,是一個集結(jié)構(gòu)、機(jī)構(gòu)、測量、控制等相關(guān)技術(shù)于一體的光機(jī)電一體化的復(fù)雜系統(tǒng),其主要功能是克服風(fēng)擾和系統(tǒng)的其它擾動,通過饋源艙內(nèi)的二次調(diào)整裝置,實現(xiàn)對電磁波的匯集[14-15]。進(jìn)行觀測活動時,饋源艙位于待觀測天體和拋物面中心的連線上,本文依據(jù)饋源艙實際運動范圍,利用OSG中的旋轉(zhuǎn)矩陣對饋源艙模型運動進(jìn)行控制。
圖6 饋源艙模型
FAST反射面所在球面半徑R為300m,焦距f=0.467R(約為140m)[16],饋源艙運動范圍的極限位置為圖7所示與z軸夾角成40°時的位置[17]。當(dāng)饋源艙軸線與z軸夾角超過一定角度時,反射面就不能形成完整的300m瞬時拋物面,超出反射面范圍的區(qū)域視為無效光照區(qū)域。
本文在仿真系統(tǒng)中將饋源艙的極限運動位置設(shè)置為與z軸夾角呈26°時的位置,此時拋物面只會覆蓋反射面,并不會出現(xiàn)實際情況中的無效照明區(qū)域。在仿真系統(tǒng)中,觀測過程中饋源艙的運動方程為
(x-a)2+(y-b)2+(z-c)2=(500-f)2
(5)
其中,焦距f=0.467R。
饋源艙和拋物面同時繞拋物面球冠模型中心進(jìn)行旋轉(zhuǎn)運動,在觀測過程中,二者在同一軸線上,因此拋物面和饋源艙在平移后沿x軸、y軸旋轉(zhuǎn)的角度一致,拋物面模型和饋源艙模型的變換矩陣如式(4)所述。
饋源支撐系統(tǒng)是FAST的核心組件之一,如圖8所示,它由饋源支撐塔、柔性鋼索、卷揚機(jī)等組成。柔性鋼索一端與饋源艙鉸接,另一端通過饋源支撐塔頂部的定滑輪延伸到塔底的卷揚機(jī)中,當(dāng)進(jìn)行觀測活動時,卷揚機(jī)不斷地收放鋼索從而對饋源艙的位姿進(jìn)行改變。在仿真系統(tǒng)當(dāng)中,當(dāng)饋源艙位姿改變時,6根鋼索模型同時發(fā)生變形,跟隨饋源艙進(jìn)行運動,本文通過旋轉(zhuǎn)矩陣和縮放矩陣對鋼索模型的運動進(jìn)行模擬。
圖8 饋源支撐系統(tǒng)
本文利用矢量去分析鋼索模型在OSG場景中的縮放和旋轉(zhuǎn)變換,將鉸接點與饋源支撐塔塔頂之間的位置矢量去替代鋼索模型進(jìn)行分析。設(shè)模型靜止時鋼索模型的位置矢量為A,進(jìn)行變換后的矢量為B,矢量A與矢量B的公式為
A=T-C
(6)
B=T-M1·C
(7)
其中,T為塔頂坐標(biāo),C為鉸接點坐標(biāo),M1為饋源艙的變換矩陣。由于饋源艙為剛體,因此六個鉸接點的坐標(biāo)變換與饋源艙的變換是一致的,變換后鉸接點坐標(biāo)應(yīng)為其靜止時的坐標(biāo)與饋源艙變換矩陣的點乘。
如圖9所示為縮放變換前后鋼索模型的位置矢量,鋼索模型的長度變化L和縮放比例α為
L=|B|-|A|
(8)
α=1.0+L/|A|
(9)
然后將鋼索模型變換至與x軸平行,通過縮放比例α,在x軸方向?qū)︿撍鬟M(jìn)行縮放,得出鋼索模型的縮放變換矩陣S。
圖9 鋼索模型的位置矢量
鋼索模型旋轉(zhuǎn)矩陣中的旋轉(zhuǎn)角是通過矢量A與B夾角來確定的,由式(6)、(7)得出矢量A、B,通過余弦定理求得兩矢量之間的夾角,然后將夾角分解到各個軸,求得對應(yīng)鋼索在各軸的旋轉(zhuǎn)矩陣Rx、Ry、Rz。得出鋼索運動時的變換矩陣M2
M2=Rx·Ry·Rz·S
(10)
圖10所示為FAST觀測活動數(shù)字孿生框架,由FAST實體、FAST虛擬模型、Redis數(shù)據(jù)庫、控制平臺構(gòu)成。FAST實體主要包括構(gòu)成FAST各部件、機(jī)構(gòu)的實體,F(xiàn)AST虛擬模型包括與實體尺寸大小統(tǒng)一的模型和渲染信息等,控制平臺功能是對FAST觀測活動進(jìn)行規(guī)劃預(yù)測,并確定對各部件控制的策略。Redis數(shù)據(jù)庫儲存了饋源艙位姿數(shù)據(jù),通過Redis數(shù)據(jù)庫數(shù)據(jù)驅(qū)動的方式連接各部分。
圖10 FAST觀測活動數(shù)字孿生框架
Redis是一種鍵值對數(shù)據(jù)庫,采用鍵值對的形式去存儲數(shù)據(jù),與傳統(tǒng)數(shù)據(jù)庫不同的是,Redis中的數(shù)據(jù)是直接寫入內(nèi)存當(dāng)中的,所以對數(shù)據(jù)的讀寫速度非常快[18]。通過Redis客戶端可以連接到Redis服務(wù)器,對服務(wù)器內(nèi)的數(shù)據(jù)進(jìn)行存取。對于饋源艙的運動模擬,可以通過Redis數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)驅(qū)動,調(diào)取服務(wù)器中存儲的饋源艙位置姿態(tài)數(shù)據(jù),實現(xiàn)數(shù)據(jù)通信。首先,在一臺計算機(jī)開啟Redis服務(wù)器,利用set key value命令將數(shù)據(jù)寫入服務(wù)器中,另一臺計算機(jī)作為客戶端,通過密碼以及服務(wù)器的IP地址去訪問服務(wù)器,通過get key value去讀取數(shù)據(jù),完成數(shù)據(jù)在客戶端與服務(wù)器之間的傳輸。
如圖11所示,本文FAST仿真系統(tǒng)中集成了Redis客戶端程序,OSG場景下運動節(jié)點利用get key value獲取饋源艙運動姿態(tài)數(shù)據(jù),運動節(jié)點通過數(shù)據(jù)庫中的運動姿態(tài)數(shù)據(jù)建立運動變換矩陣,饋源艙、鋼索根據(jù)各自變換矩陣完成相應(yīng)的變換。完成一次運動變換后,重新在Redis數(shù)據(jù)庫中讀取新的數(shù)據(jù),然后重復(fù)上一個過程。
圖11 Resdis數(shù)據(jù)庫驅(qū)動流程
本文開發(fā)的仿真系統(tǒng)也支持對模型進(jìn)行交互式的控制,利用OSG中的鍵盤事件去控制模型的運動。在交互控制方式中,首先通過鍵盤對拋物面的運動進(jìn)行控制,本文設(shè)置拋物面在x、y軸的旋轉(zhuǎn)范圍為-26°到26°,通過鍵盤w、s鍵控制拋物面沿x軸旋轉(zhuǎn),a、d鍵控制拋物面沿y軸旋轉(zhuǎn)。拋物面進(jìn)行運動變換的同時,饋源艙、鋼索也根據(jù)各自的運動變換矩陣完成相應(yīng)的運動變換,最終實現(xiàn)對FAST觀測過程的模擬。
本文在win10操作系統(tǒng)下,采用vs2013編譯器開發(fā)了FAST三維運動仿真原型系統(tǒng),系統(tǒng)運行在一臺CPU為i5-7400,GPU為NVIDIA GeForce GT730,內(nèi)存為8G的PC機(jī)上。
本文提出了兩種FAST運動模擬控制方式:Redis數(shù)據(jù)庫驅(qū)動方式和交互式控制方式。圖12給出了當(dāng)進(jìn)行Redis數(shù)據(jù)庫驅(qū)動時,不同位置姿態(tài)下的饋源艙與鋼索。Redis數(shù)據(jù)庫中存儲著饋源艙的位置姿態(tài)信息,通過get key value讀取位置姿態(tài)數(shù)據(jù),對饋源艙進(jìn)行空間運動變換,鋼索根據(jù)其變換矩陣跟隨饋源艙運動。由圖12可以看出饋源艙運動時鋼索可以精準(zhǔn)連接饋源艙鉸接點。
當(dāng)進(jìn)行交互式控制時,通過鍵盤按鍵響應(yīng),模型完成相應(yīng)的矩陣變換。圖13所示為通過交互式控制方式得到的觀測過程中拋物面、饋源艙、鋼索模型的不同位置姿態(tài),可以得出拋物面、饋源艙、鋼索模型的運動變換符合矩陣變換的分析。
本文系統(tǒng)在初始化時,對虛擬場景的加載時間約為20s。通過OSG中的場景狀態(tài)句柄來查看系統(tǒng)運行時的狀態(tài),表1給出了模型靜止、交互式控制以及Redis數(shù)據(jù)庫驅(qū)動時場景渲染的各項時間參數(shù)。從表1中可以得出當(dāng)利用鍵盤進(jìn)行交互式運動控制,與模型靜止時相比,場景中的各個時間參數(shù)幾乎不變,并不影響系統(tǒng)運行的流暢性;然而,當(dāng)采用Redis數(shù)據(jù)庫驅(qū)動模型時,可以看出運行時幀率略有下降,場景更新、揀選以及繪制所耗時間有所上升,但系統(tǒng)仍然能實時流暢地運行。
表1 場景渲染運行時參數(shù)
本文提出了一種基于OSG的FAST三維運動仿真系統(tǒng),對FAST主要運動部件進(jìn)行了分析,利用OSG的運動節(jié)點對拋物面、饋源艙以及鋼索進(jìn)行了運動仿真,實現(xiàn)了Redis數(shù)據(jù)庫驅(qū)動和交互式控制兩種運動控制方式。實驗證明本文仿真系統(tǒng)可以對FAST拋物面、饋源艙以及鋼索模型進(jìn)行準(zhǔn)確的三維運動變換,為FAST數(shù)字孿生系統(tǒng)的實現(xiàn)打下基礎(chǔ)。但是本文系統(tǒng)還沒有與真實的FAST系統(tǒng)建立統(tǒng)一的數(shù)據(jù)格式解析接口并進(jìn)行聯(lián)調(diào)測試,需要在日后的工作中進(jìn)一步完善。
圖12 Redis數(shù)據(jù)庫驅(qū)動下場景演示
圖13 交互式控制下場景演示