王 楊,李東年,宋立強,姜 鵬
(1. 青島理工大學,山東 青島 266520;2. 中國科學院國家天文臺,北京 100101)
500 米口徑球面射電望遠鏡(Five-hundred-meter Aperture Spherical Telescope,FAST)是現今國際上口徑最大、最靈敏的單口徑射電望遠鏡,通過主動反射面形成的瞬時拋物面來匯集電磁波,采用輕型鋼索拖動饋源艙實現望遠鏡的高精度指向跟蹤。在1993年國際無線電聯合會的大會上,包括中國在內的10個國家,提出構建大型射電望遠鏡的構想[1],各國的研究團隊開始進行構建大型望遠鏡工程的研究,經過不斷地探索選址,中國的天文學家于1994年提出利用貴州喀斯特洼坑作為500m射電望遠鏡的建造地點[2]。2003年,哈爾濱工業大學空間結構研究中心開始參與FAST反射面索網支撐結構的研究[3-5],提出了索網結構與背架結構相結合的反射面結構方案,按照網格劃分支撐索網,每個索網節點下連接下拉索,背架與其上反射面單元構成一個獨立的單元覆蓋在一個索網網格之上。目前FAST已經完成國家驗收,并正式運行,已確認觀測到百余顆新脈沖星,對于實現我國相關領域原創突破具有重要意義。
OpenSceneGraph(簡稱OSG)是一個開源的場景圖形開發庫,主要是為圖形應用程序提供場景管理和渲染優化功能,OSG采用OpenGL作為底層渲染的API,廣泛應用于虛擬現實、視景仿真、科學計算可視化等領域。郭靖[6]在麒麟操作系統上利用OSG進行場景渲染,以星空場景以及數字地球為背景,建立衛星在軌飛行、變軌飛行的仿真系統。鮑娣等[7]利用攝影傾斜技術建立地表的三維場景,將模型與三維場景進行融合,并利用OSG進行場景展示。陳奎等[8]建立了合理的虛擬對象體系,實現虛擬車間物流生成過程的三維仿真。
數字孿生作為實現智能制造、工業4.0等理念的技術和手段,受到了學術界、企業界的關注,其中數字孿生的落地應用更是關注的熱點。數字孿生的概念是由Grieves于2003年提出[9],并將其定義為物理實體、虛擬實體以及二者間連接的模型,早期主要被應用于軍工和航天領域。陶飛等[10]將數字孿生應用于智能制造領域,提出了由物理實體、虛擬實體、服務體系、孿生數據及其之間連接構成的五維數字孿生模型。
FAST通過電磁波信號來對天體進行觀測,其中主動反射面、饋源艙是接收電磁波信號的核心組成部分,也是FAST主要的運動機構。進行觀測活動時,通過促動器下拉索驅動,使反射面變形為300m口徑拋物面以達到匯聚電磁波的目的。同時,使用饋源支撐塔上的6根鋼索拖動饋源艙,實現對目標天體高精度定位及跟蹤。
當FAST進行觀測活動時,需要各部門之間協調配合,同時需要大量人力、物力,為了對觀測活動進行模擬、規劃,本文對其主要的運動機構主動反射面、饋源艙以及鋼索進行了運動仿真。針對三個運動部件之間需要配合運動導致空間變換過于復雜的問題,本文分析了觀測活動過程中運動部件的運動變換,利用OSG的運動節點和矩陣變換對運動部件進行了運動仿真,本文主要工作如下:依據FAST實體尺寸建立了虛擬模型,利用OSG的場景樹對FAST的模型進行組織管理,并對拋物面、饋源艙以及鋼索模型進行了運動仿真,然后利用Qt建立了交互界面,最后在FAST運動仿真系統的基礎上,建立了饋源艙位姿Redis數據庫,利用數據庫中的數據去驅動FAST模型進行運動。本文系統為FAST數字孿生系統的實現打下基礎,對FAST觀測活動規劃和作業指導具有重要的意義。
FAST運動仿真系統的整體技術方案如圖1所示,主要分三個部分:OSG場景組織、OSG場景顯示窗口、交互界面。首先利用OSG節點對FAST模型進行場景組織,然后通過OSG的osgQt類建立OSG場景顯示窗口,對FAST場景進行更新和顯示,最后利用Qt中QMainWindow類創建FAST運動仿真系統的交互主界面。

圖1 FAST運動仿真系統的技術方案
FAST虛擬三維場景如圖2所示,利用3dmax、Solidworks等建模軟件對FAST的主動反射面、拋物面、饋源艙、饋源支撐塔、鋼索、圈梁等主要部件以及地形進行了建模,并對模型添加紋理、材質等屬性信息。

圖2 FAST三維場景
本文利用OSG對FAST模型進行圖形管理和渲染,OSG采用了一種自頂向下的、分層的圖形場景樹來組織空間數據集,圖形場景樹由根節點、組節點以及葉節點組成[11]。一個圖形場景最頂層的節點為根節點,根節點向下包含多個組節點和葉節點,組節點包含物體的渲染狀態信息,葉節點為最底層的節點包含場景中物體實際的幾何信息[12]。把模型導入OSG中進行管理,如圖3所示,建立場景結構樹。根節點為最頂層的節點,根節點下包含三部分:1)靜態模型,即固定不動的模型。包括地形、圈梁、饋源支撐塔以及反射面等模型。2)運動節點1,包含饋源艙模型、拋物面模型及其矩陣變換。3)運動節點2,包含鋼索模型及其矩陣變換。

圖3 FAST三維場景結構
射電望遠鏡是在無線電波段接收電磁波來觀測天體。饋源艙和主動反射面是FAST的核心組成部分,也是用來接收電磁波的核心裝置,其工作原理如圖4所示。通過主動反射面下的促動器拉動主索節點,使主動反射面發生變形,形成300m口徑的瞬時拋物面以匯聚電磁波,饋源支撐系統對饋源艙進行一次調整。但是在觀測活動時,變形區域的反射面單元數量眾多,難以計算每個單元的變位過程,因此為了更加直觀的反映反射面的變形,同時為了減少運算量,本文利用一個球冠模型來模擬反射面的拋物面變形區域。

圖4 FAST觀測原理
FAST的主動反射面是口徑為500m,半徑為300m的反球冠狀,觀測時反射面形成瞬時300m口徑拋物面用于匯集電磁波。根據哈爾濱工業大學空間結構研究中心的研究[13],給出拋物線的方程
x2+2py+c=0
(1)
其中,p為-276.647,c為-162250。
本文根據反射面實際的坐標尺寸在3dmax中建立了主動反射面的靜態模型,近似地把
(x-a)2+(y-b)2+(z-c)2=5002
(2)
作為反射面的球面方程。在實際的觀測活動中反射面在進行觀測時變形量微小,肉眼不易觀察出所形成的瞬時拋物面。因而,針對視景仿真需求,本文在仿真系統中建立一個300m口徑球冠模型來對工作拋物面進行近似表示。該球冠模型的方程為:
(x-a)2+(y-b)2+(z-c)2=(500-r)2
(3)
其中,r為球冠模型與反射面之間的距離。
虛擬場景下反射面與拋物面的位置關系如圖5所示,其中用透明系數為0.5的紅色球冠模型表示拋物面模型,拋物面模型在500m口徑反射面球面模型上進行運動。

圖5 拋物面與反射面位置關系
在仿真系統中,假定拋物面的運動范圍是覆蓋整個反射面,本文設置拋物面繞x、y軸的運動范圍分別為-26°到26°。OSG中的坐標系為右手坐標系,繞x軸旋轉矩陣為Rx,繞y軸旋轉矩陣為Ry,得到拋物面球冠模型在OSG下的變換矩陣:
M1=Rx·Ry
(4)
饋源艙是FAST的核心部件,如圖6所示,主要包括星型框架、AB軸以及Stewart平臺,是一個集結構、機構、測量、控制等相關技術于一體的光機電一體化的復雜系統,其主要功能是克服風擾和系統的其它擾動,通過饋源艙內的二次調整裝置,實現對電磁波的匯集[14-15]。進行觀測活動時,饋源艙位于待觀測天體和拋物面中心的連線上,本文依據饋源艙實際運動范圍,利用OSG中的旋轉矩陣對饋源艙模型運動進行控制。

圖6 饋源艙模型
FAST反射面所在球面半徑R為300m,焦距f=0.467R(約為140m)[16],饋源艙運動范圍的極限位置為圖7所示與z軸夾角成40°時的位置[17]。當饋源艙軸線與z軸夾角超過一定角度時,反射面就不能形成完整的300m瞬時拋物面,超出反射面范圍的區域視為無效光照區域。
本文在仿真系統中將饋源艙的極限運動位置設置為與z軸夾角呈26°時的位置,此時拋物面只會覆蓋反射面,并不會出現實際情況中的無效照明區域。在仿真系統中,觀測過程中饋源艙的運動方程為
(x-a)2+(y-b)2+(z-c)2=(500-f)2
(5)
其中,焦距f=0.467R。
饋源艙和拋物面同時繞拋物面球冠模型中心進行旋轉運動,在觀測過程中,二者在同一軸線上,因此拋物面和饋源艙在平移后沿x軸、y軸旋轉的角度一致,拋物面模型和饋源艙模型的變換矩陣如式(4)所述。
饋源支撐系統是FAST的核心組件之一,如圖8所示,它由饋源支撐塔、柔性鋼索、卷揚機等組成。柔性鋼索一端與饋源艙鉸接,另一端通過饋源支撐塔頂部的定滑輪延伸到塔底的卷揚機中,當進行觀測活動時,卷揚機不斷地收放鋼索從而對饋源艙的位姿進行改變。在仿真系統當中,當饋源艙位姿改變時,6根鋼索模型同時發生變形,跟隨饋源艙進行運動,本文通過旋轉矩陣和縮放矩陣對鋼索模型的運動進行模擬。

圖8 饋源支撐系統
本文利用矢量去分析鋼索模型在OSG場景中的縮放和旋轉變換,將鉸接點與饋源支撐塔塔頂之間的位置矢量去替代鋼索模型進行分析。設模型靜止時鋼索模型的位置矢量為A,進行變換后的矢量為B,矢量A與矢量B的公式為
A=T-C
(6)
B=T-M1·C
(7)
其中,T為塔頂坐標,C為鉸接點坐標,M1為饋源艙的變換矩陣。由于饋源艙為剛體,因此六個鉸接點的坐標變換與饋源艙的變換是一致的,變換后鉸接點坐標應為其靜止時的坐標與饋源艙變換矩陣的點乘。
如圖9所示為縮放變換前后鋼索模型的位置矢量,鋼索模型的長度變化L和縮放比例α為
L=|B|-|A|
(8)
α=1.0+L/|A|
(9)
然后將鋼索模型變換至與x軸平行,通過縮放比例α,在x軸方向對鋼索進行縮放,得出鋼索模型的縮放變換矩陣S。

圖9 鋼索模型的位置矢量
鋼索模型旋轉矩陣中的旋轉角是通過矢量A與B夾角來確定的,由式(6)、(7)得出矢量A、B,通過余弦定理求得兩矢量之間的夾角,然后將夾角分解到各個軸,求得對應鋼索在各軸的旋轉矩陣Rx、Ry、Rz。得出鋼索運動時的變換矩陣M2
M2=Rx·Ry·Rz·S
(10)
圖10所示為FAST觀測活動數字孿生框架,由FAST實體、FAST虛擬模型、Redis數據庫、控制平臺構成。FAST實體主要包括構成FAST各部件、機構的實體,FAST虛擬模型包括與實體尺寸大小統一的模型和渲染信息等,控制平臺功能是對FAST觀測活動進行規劃預測,并確定對各部件控制的策略。Redis數據庫儲存了饋源艙位姿數據,通過Redis數據庫數據驅動的方式連接各部分。

圖10 FAST觀測活動數字孿生框架
Redis是一種鍵值對數據庫,采用鍵值對的形式去存儲數據,與傳統數據庫不同的是,Redis中的數據是直接寫入內存當中的,所以對數據的讀寫速度非常快[18]。通過Redis客戶端可以連接到Redis服務器,對服務器內的數據進行存取。對于饋源艙的運動模擬,可以通過Redis數據庫實現數據驅動,調取服務器中存儲的饋源艙位置姿態數據,實現數據通信。首先,在一臺計算機開啟Redis服務器,利用set key value命令將數據寫入服務器中,另一臺計算機作為客戶端,通過密碼以及服務器的IP地址去訪問服務器,通過get key value去讀取數據,完成數據在客戶端與服務器之間的傳輸。
如圖11所示,本文FAST仿真系統中集成了Redis客戶端程序,OSG場景下運動節點利用get key value獲取饋源艙運動姿態數據,運動節點通過數據庫中的運動姿態數據建立運動變換矩陣,饋源艙、鋼索根據各自變換矩陣完成相應的變換。完成一次運動變換后,重新在Redis數據庫中讀取新的數據,然后重復上一個過程。

圖11 Resdis數據庫驅動流程
本文開發的仿真系統也支持對模型進行交互式的控制,利用OSG中的鍵盤事件去控制模型的運動。在交互控制方式中,首先通過鍵盤對拋物面的運動進行控制,本文設置拋物面在x、y軸的旋轉范圍為-26°到26°,通過鍵盤w、s鍵控制拋物面沿x軸旋轉,a、d鍵控制拋物面沿y軸旋轉。拋物面進行運動變換的同時,饋源艙、鋼索也根據各自的運動變換矩陣完成相應的運動變換,最終實現對FAST觀測過程的模擬。
本文在win10操作系統下,采用vs2013編譯器開發了FAST三維運動仿真原型系統,系統運行在一臺CPU為i5-7400,GPU為NVIDIA GeForce GT730,內存為8G的PC機上。
本文提出了兩種FAST運動模擬控制方式:Redis數據庫驅動方式和交互式控制方式。圖12給出了當進行Redis數據庫驅動時,不同位置姿態下的饋源艙與鋼索。Redis數據庫中存儲著饋源艙的位置姿態信息,通過get key value讀取位置姿態數據,對饋源艙進行空間運動變換,鋼索根據其變換矩陣跟隨饋源艙運動。由圖12可以看出饋源艙運動時鋼索可以精準連接饋源艙鉸接點。
當進行交互式控制時,通過鍵盤按鍵響應,模型完成相應的矩陣變換。圖13所示為通過交互式控制方式得到的觀測過程中拋物面、饋源艙、鋼索模型的不同位置姿態,可以得出拋物面、饋源艙、鋼索模型的運動變換符合矩陣變換的分析。
本文系統在初始化時,對虛擬場景的加載時間約為20s。通過OSG中的場景狀態句柄來查看系統運行時的狀態,表1給出了模型靜止、交互式控制以及Redis數據庫驅動時場景渲染的各項時間參數。從表1中可以得出當利用鍵盤進行交互式運動控制,與模型靜止時相比,場景中的各個時間參數幾乎不變,并不影響系統運行的流暢性;然而,當采用Redis數據庫驅動模型時,可以看出運行時幀率略有下降,場景更新、揀選以及繪制所耗時間有所上升,但系統仍然能實時流暢地運行。

表1 場景渲染運行時參數
本文提出了一種基于OSG的FAST三維運動仿真系統,對FAST主要運動部件進行了分析,利用OSG的運動節點對拋物面、饋源艙以及鋼索進行了運動仿真,實現了Redis數據庫驅動和交互式控制兩種運動控制方式。實驗證明本文仿真系統可以對FAST拋物面、饋源艙以及鋼索模型進行準確的三維運動變換,為FAST數字孿生系統的實現打下基礎。但是本文系統還沒有與真實的FAST系統建立統一的數據格式解析接口并進行聯調測試,需要在日后的工作中進一步完善。

圖12 Redis數據庫驅動下場景演示

圖13 交互式控制下場景演示