侯波濤
(中國西南電子技術(shù)研究所,四川 成都 610036)
STK是由AnalyticalGrapfics公司開發(fā)的一款在航天領(lǐng)域處于絕對領(lǐng)先地位的商業(yè)化分析軟件,廣泛應(yīng)用于航天、雷達、通信和電子對抗等領(lǐng)域。Matlab作為科學(xué)計算和數(shù)據(jù)分析方面的商業(yè)數(shù)學(xué)軟件,強大的計算功能可以顯著增強STK的效能[1],STK通過Connect模塊提供對Matlab的支持,使得Matlab用戶可以像調(diào)用自身函數(shù)一樣使用STK進行分析、處理和計算[2],并在一些循環(huán)、嵌套及繁瑣的參數(shù)設(shè)置上更具優(yōu)勢[3]。高機動平臺間采用定向通信技術(shù),通過多個定向相控陣天線實現(xiàn)窄波束的形成與對準(zhǔn)。每個天線覆蓋一定空間,實現(xiàn)平臺空間全覆蓋。窄波束定向天線的應(yīng)用能有效降低被截獲和干擾的概率[4],提高平臺射頻隱身性能[5]。由于天線數(shù)量有限及機體安裝位置限制,某些空域的天線可能需要工作在大俯仰角度(電性能較差)。在高機動情況下,平臺姿態(tài)劇烈變化,為了使定向窄波束持續(xù)精確對準(zhǔn),天線孔徑及天線波束需頻繁切換,會造成波束指向有一定偏差。同一天線不同角度的發(fā)射及接收性能差異較大,不同天線間性能也有差異,導(dǎo)致通信鏈路余量會出現(xiàn)波動,影響通信性能。本文通過STK/Matlab實現(xiàn)了飛行數(shù)據(jù)的波束指向誤差計算和鏈路余量計算,可提高對基于窄波束的高機動平臺通信數(shù)據(jù)的分析能力。
STK允許用外部文件輸入飛行器的位置、速度及姿態(tài)數(shù)據(jù)。其中,位置和速度數(shù)據(jù)由星歷文件輸入,姿態(tài)數(shù)據(jù)由姿態(tài)文件輸入。傳感器指向文件由真實天線的波束指向文件生成。外部天線方向圖根據(jù)實測天線方向圖數(shù)據(jù)生成。表1為外部輸入格式一覽表。
表1 外部輸入格式
后續(xù)計算涉及4種坐標(biāo)系,即機體直角坐標(biāo)系、機體球面坐標(biāo)系、天線直角坐標(biāo)系和天線球面坐標(biāo)系。STK中的機體坐標(biāo)定義機翼右方為Y軸,機頭前方為X軸,垂直于機面向下為Z軸。STK的傳感器瞄準(zhǔn)線指向定義,如圖1所示。向量R為傳感器的瞄準(zhǔn)線向量,XYZ為機體坐標(biāo)系,方位角Az為從XOY平面X軸繞Z軸以右手定則旋轉(zhuǎn)到向量R在XOY平面投影的角度,俯仰角El為以Z軸正向為基準(zhǔn)的XOY平面與向量R的夾角,Az范圍[-180°,180°],El范圍[-90°,90°]。天線球面坐標(biāo)系,如圖2所示。以天線陣面中心為原點,X軸、Y軸在陣面上,Z軸垂直陣面指向機體外,XYZ滿足右手定則。天線指向為(r,φ,θ),φ為天線指向向量在xoy平面的投影與x軸之間的夾角,從x軸正向算起。θ為天線指向與z軸正向的夾角。φ范圍[0°,360°],θ范圍[0°,180°],z軸為天線法向。
圖1 STK飛行器機體坐標(biāo)系
圖2 天線球面坐標(biāo)系
機體球面坐標(biāo)系(R,Az,El)與機體直角坐標(biāo)系(X,Y,Z)、天線球面坐標(biāo)系(r,φ,θ)與天線直角坐標(biāo)系(x,y,z)之間,是典型的球面坐標(biāo)系與直角坐標(biāo)系的轉(zhuǎn)換關(guān)系,只是角度取值范圍不同。機體直角坐標(biāo)系通過坐標(biāo)系的平移及旋轉(zhuǎn)得到天線直角坐標(biāo)系。
STK的矢量幾何工具(Vector GeometryTool)可以創(chuàng)建自定義的坐標(biāo)系,構(gòu)成坐標(biāo)系的元素(坐標(biāo)軸、矢量、點,角和面)。坐標(biāo)系等于坐標(biāo)原點加坐標(biāo)軸,兩個坐標(biāo)系之間的旋轉(zhuǎn)等同于坐標(biāo)原點的平移加上坐標(biāo)軸的旋轉(zhuǎn)。平移即坐標(biāo)矩陣相加減,旋轉(zhuǎn)可用坐標(biāo)轉(zhuǎn)換矩陣相乘完成。Euler(歐拉)旋轉(zhuǎn)將參考坐標(biāo)系轉(zhuǎn)動3次得到目標(biāo)坐標(biāo)系,每次的旋轉(zhuǎn)軸是參考坐標(biāo)系的坐標(biāo)軸,旋轉(zhuǎn)角度為Euler角。兩個坐標(biāo)系的旋轉(zhuǎn)等同于3次單坐標(biāo)軸的旋轉(zhuǎn)結(jié)合。將參考坐標(biāo)系分別繞xyz軸旋轉(zhuǎn)角度α,對應(yīng)的坐標(biāo)轉(zhuǎn)換矩陣分別為:
如果參考坐標(biāo)系坐標(biāo)為(X,Y,Z),目標(biāo)坐標(biāo)系坐標(biāo)為(x,y,z),歐拉角旋轉(zhuǎn)次序為ijk,對應(yīng)旋轉(zhuǎn)角度為ABC,則(X,Y,Z)與(x,y,z)的轉(zhuǎn)換關(guān)系為:
反之,(x,y,z)與(X,Y,Z)轉(zhuǎn)換關(guān)系為:
星歷文件及姿態(tài)文件由飛行數(shù)據(jù)記錄中慣導(dǎo)數(shù)據(jù)生成,其中經(jīng)緯高數(shù)據(jù)生成星歷文件,滾動角、俯仰角和偏航角數(shù)據(jù)生成姿態(tài)文件。
傳感器指向是由天線工作時的實際波束指向轉(zhuǎn)換而來。天線波束指向(r,φ,θ)先轉(zhuǎn)換為天線直角坐標(biāo)系(x,y,z),再根據(jù)坐標(biāo)旋轉(zhuǎn)式(5)得到機體直角坐標(biāo)系坐標(biāo)(X,Y,Z),進一步轉(zhuǎn)換到機體球面坐標(biāo)系坐標(biāo)(R,Az,El),從而生成傳感器指向文件。
STK中,天線方向圖PhiThetaPattern格式角度定義如圖3所示。此定向通信系統(tǒng)相對于機體空域全覆蓋,機體天線方向圖是多個定向天線方向圖的疊加。向量r為連接向量(波束方向),將天線安裝方向選為方位角俯仰角模式,角度(0,90°)。此方式下的方位角、俯仰角即為STK機體球面坐標(biāo),。按照式(6)、式(7)將(Phi,Thata)轉(zhuǎn)換為機體球面坐標(biāo)(Az,El ),然后和傳感器指向坐標(biāo)轉(zhuǎn)換順序相反,先將機體球面坐標(biāo)(R,Az,El)轉(zhuǎn)換為機體直角坐標(biāo)(X,Y,Z),再根據(jù)式(4)轉(zhuǎn)換到天線直角坐標(biāo)(x,y,z),進而轉(zhuǎn)換到天線球面坐標(biāo)(r,φ,θ),選擇天線孔徑,根據(jù)該角度實測增益值(φ,θ,Gain)生成映射(Phi,Theta,Gain),最終生成天線方向圖文件,每個平臺需生成接收和發(fā)射兩個方向圖文件。
圖3 PhiThetaPattern格式角度定義
場景架構(gòu)如圖4所示,場景包括2架飛機,4個傳感器,2個發(fā)射機,2個接收機,1個通信鏈路。
圖4 場景架構(gòu)
STK利用雙機的位置姿態(tài),在傳感器指向設(shè)置為跟蹤模式時,可得到傳感器的瞄準(zhǔn)指向。該指向為相對于機體坐標(biāo)系的球面坐標(biāo)。真實天線的波束指向是根據(jù)雙機的位置姿態(tài)經(jīng)過一系列的坐標(biāo)系轉(zhuǎn)換和外推計算得到的。將該天線指向轉(zhuǎn)換到機體球面坐標(biāo)系后,與STK計算的傳感器理論指向差值即為指向誤差。
(1)建立Matlab與STK連接
stkInit;
conid=stkOpen(stkDefaultHost);
(2)根據(jù)圖4新建場景LinkMargin,飛機A、B,傳感器S1、S2、S3、S4,發(fā)射機T1、T2,接收機R1、R2。下面語句為新建場景,其他對象語法相同。
stkExec(conid,'New / Scenario LinkMargin');
(3)設(shè)置場景時間參數(shù),場景射頻參數(shù)僅考慮大氣吸收損耗。
stkExec(conid,'SetAnalysisTimePeriod * "12Sep 2017 09:10:01.0""12Sep 2017 10:00:01.0"');
stkExec(conid,'SetAnimation * StartTimeOnly"12Sep 2017 09:50:01.0" TimeStep 0.01');
stkExec(conid,'Animate * Reset');
stkExec(conid,'Environment * SetValue PropagationChannel.AtmosAbsorptionModel ITU-R_P676-9');
(4)導(dǎo)入飛機的星歷文件和姿態(tài)文件。
stkExec(conid,'SetState */Aircraft/A File "H: A_Ephemeris.e"');
stkExec(conid,'AddAttitude */Aircraft/A File"H:A_Attitude.a"');
(5)設(shè)置傳感器參數(shù),簡單錐體,半角波束寬度7.5°,傳感器S1指向設(shè)置為外部模式,并導(dǎo)入生成的傳感器指向文件,傳感器S2指向設(shè)置為跟蹤模式,跟蹤對象為飛機B。
stkExec(conid,'Point */Aircraft/A/Sensor/S1 External "H: A_Point.sp"');
stkExec(conid,'Point */Aircraft/A/Sensor/S2Targeted Tracking Aircraft/B Rotate');
(6)通過矢量幾何工具創(chuàng)建傳感器S1與S2瞄準(zhǔn)線夾角矢量DeltaAngle。
stkExec(conid,'VectorTool * Aircraft/A/Sensor/S1 Create Angle DeltaAngle "Between Vectors""Aircraft/A/Sensor/S1 Boresight""Aircraft/A/Sensor/S2 Boresight"');
(7)創(chuàng)建自定義報告DeltaAngle,在Angles中添加DeltaAngle的角度,獲取仿真報告。
[secData,secNames]=stkReport('*/Aircraft/Aircraft_B/Sensor/Sensor_B1','My Styles/DeltaAngle',0,3000,0.01);
Time=stkFindData(secData{1},'Time');
Angle=stkFindData(secData{1},'Angle');
角度誤差如圖5所示。由于飛機周期性的機動導(dǎo)致指向誤差波動,波束寬度15°,最大指向誤差1.4°,系統(tǒng)跟蹤性能良好。此誤差主要是外推算法導(dǎo)致的波束指向誤差,總的誤差為兩個平臺誤差之和。
圖5 波束指向誤差計算結(jié)果
STK通信模塊提供了分析通信系統(tǒng)性能的工具,可生成通信鏈路報表,計算空間損耗、雨衰、大氣衰減以及其他系統(tǒng)干擾等。通信模塊包括多種接收機、發(fā)射機模型及天線模型,鏈路模塊將發(fā)射機和接收機按次序加入作為整體分析,生成所需的鏈路信息,最后設(shè)置通信約束條件,生成鏈路可見性圖表。
(1)設(shè)置發(fā)射機及接收機參數(shù)
通過GetValue命令可獲得發(fā)射機及接收機的所有參數(shù)格式,再通過SetValue命令設(shè)置使用的參數(shù)。以速率設(shè)置為例,其他設(shè)置格式相同。發(fā)射機選擇復(fù)雜發(fā)射機模型,頻率16.5 GHz,功率10dBW,調(diào)制方式OQPSK,數(shù)據(jù)速率15 Mb/s,信號帶寬14 MHz,天線選擇外部模式,并導(dǎo)入發(fā)射天線方向圖。STK允許自定義衰減值,增加饋線損耗、天線指向誤差、極化損耗等。此處,添加2.5 dB的固定衰減。接收機設(shè)置方式類似,復(fù)雜接收機,導(dǎo)入接收機天線方向圖,選擇計算系統(tǒng)噪聲方式,設(shè)置天線低噪放噪聲系數(shù)為5,用于STK計算接收機品質(zhì)因數(shù)G/T。
stkExec(conid,'Transmitter_RM */Aircraft/A/Transmitter/T1 GetValue');
stkExec(conid,'Transmitter*/Aircraft/A/Transmitter/T1SetValueModel.DataRate 15 Mb*sec^-1');
(2)新建鏈路,按次序添加發(fā)射機T1、接收機R2加入目標(biāo)列表。
stkExec(conid,'New / */Chain CommLink');
stkExec(conid,'Chains */Chain/CommLinkAdd */Aircraft/A/Transmitter/T1');
stkExec(conid,'Chains */Chain/CommLink Add */Aircraft/B/Receiver/R2');
(3)鏈路報告的LinkInformation包含所有鏈路參數(shù),如EIRP、自由空間衰減、大氣吸收衰減、G/T、C/N0、C/N和Eb/N0等,添加所需鏈路參數(shù)到自定義報告LinkMargin,啟動通信鏈路訪問計算并生成報告。
stkExec(conid,'Chains_RM/Access All');
[secData1,secNames]=stkReport('*/Chain/CommLink1','My Styles/LinkMargin',0,3000,0.01);
Time=stkFindData(secData1{1},'Time');
Range=stkFindData(secData1{1},'Range1')/1000;
EbNo=stkFindData(secData1{1},'Eb/No1');
接收端Eb/N0及距離與時間的關(guān)系如圖6所示。目標(biāo)在轉(zhuǎn)彎及機動條件下,相同距離Eb/N0有最大6 dB的波動。此波動由高機動情況下天線孔徑切換及波束切換造成,若雙機同時做機動,波動值會更大。通信余量為計算Eb/N0與解調(diào)所需Eb/N0門限之差,相同速率情況下,通信余量減小6 dB會造成可通信距離下降一半。
圖6 鏈路Eb/N0計算結(jié)果
(1)設(shè)置通信鏈路約束,將接收機Eb/N0門限最小值設(shè)為10 dB,生成鏈路可見性圖表,如圖7所示,豎線分隔的空白區(qū)域表示鏈路不可通。
stkExec(conid,'SetConstraint */Aircraft/B/Receiver/R2 Eb/No Min 10');
stkExec(conid,'GraphCreate */Chain/CommLink1 Type Display Style "Complete Chain Access" TimeStep 0.01');
圖7 鏈路可見性圖表
以上計算針對的是從平臺A到B的單邊鏈路,而B到A的鏈路計算方法相同。此外,還可將所有發(fā)射機、接收機及傳感器按特定順序依次加入到鏈路目標(biāo)列表中,生成結(jié)合波束誤差及鏈路余量的可見性圖表。
本文結(jié)合STK/Matlab的數(shù)據(jù)處理能力,對定向通信系統(tǒng)的波束指向及通信鏈路進行了仿真建模,計算了高動態(tài)情況下飛行數(shù)據(jù)的波束指向誤差和鏈路余量,并對結(jié)果進行了分析,對定向通信系統(tǒng)數(shù)據(jù)分析具有一定意義,同時可作為相關(guān)領(lǐng)域設(shè)計及仿真的參考。