STK與Matlab的接口及其在復(fù)雜航天任務(wù)仿真分析中的應(yīng)用課件_第1頁
STK與Matlab的接口及其在復(fù)雜航天任務(wù)仿真分析中的應(yīng)用課件_第2頁
STK與Matlab的接口及其在復(fù)雜航天任務(wù)仿真分析中的應(yīng)用課件_第3頁
STK與Matlab的接口及其在復(fù)雜航天任務(wù)仿真分析中的應(yīng)用課件_第4頁
STK與Matlab的接口及其在復(fù)雜航天任務(wù)仿真分析中的應(yīng)用課件_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

STK與Matlab的接口及其在復(fù)雜航天任務(wù)仿真分析中的應(yīng)用

STK實驗室二零一一年八月STK與Matlab的接口及其STK實驗室1主要內(nèi)容1STK與Matlab接口簡介2在復(fù)雜航天任務(wù)仿真分析中的應(yīng)用使用STK與Matlab接口應(yīng)用場合與必要性STK與Matlab互聯(lián)的設(shè)置與接口函數(shù)庫常用接口函數(shù)的使用循環(huán)——星座對地觀測特性分析循環(huán)+嵌套迭代——交會對接對遠距離導(dǎo)引精度分析迭代——交會對接目標飛行器調(diào)相分析主要內(nèi)容1STK與Matlab接口簡介2在復(fù)雜航天任21STK與Matlab接口簡介—必要性STK與Matlab互聯(lián)——兩個強大成熟商業(yè)軟件的強強聯(lián)合1STK與Matlab接口簡介—必要性STK與Matlab31STK與Matlab接口簡介—必要性有效的工程應(yīng)用例子——交會對接遠距離導(dǎo)引精度論證1STK與Matlab接口簡介—必要性有效的工程應(yīng)用例子—41STK與Matlab接口簡介—必要性遠距離導(dǎo)引精度仿真分析流程圖1STK與Matlab接口簡介—必要性遠距離導(dǎo)引精度仿真分51STK與Matlab接口簡介—必要性應(yīng)用效果高效(快)建模與修改快捷可靠(好)輔助實現(xiàn)關(guān)鍵技術(shù)環(huán)節(jié)突破高效+可靠->技術(shù)優(yōu)勢->話語權(quán)->地位1STK與Matlab接口簡介—必要性應(yīng)用效果高效(快61STK與Matlab接口簡介—互聯(lián)與接口函數(shù)STK與Matlab互聯(lián)的初始設(shè)置參考《STK在計算機仿真中的應(yīng)用》-復(fù)制文件“agiCleanPath.m”、“agiInit.m”和“stkInit.m”到指定目錄-在Matlab中運行指令“stkinit”-選擇M文件的位置-選擇Mex文件的位置-選擇默認的其他設(shè)置1STK與Matlab接口簡介—互聯(lián)與接口函數(shù)STK與M71STK與Matlab接口簡介—互聯(lián)與接口函數(shù)接口函數(shù)分類接口函數(shù)說明STKServerCommands(STK服務(wù)器命令)stkDefaultConID返回缺省的連接ID號stkDefaultHost返回缺省的主服務(wù)器stkSetDefaultHost設(shè)置與STK的遠程連接ApplicationCommands(應(yīng)用命令)stkAutoSave自動保存stkHomeDir返回STK安裝目錄stkCurrentDir返回當前目錄stkSetCurrentDir設(shè)置當前目錄stkObjNames返回STK對象名稱stkTimerStart啟動計時器stkTimer計時器時間GenericObjectCommands(普通對象命令)stkCentralBody返回坐標系中心體stkLoadObj導(dǎo)入對象stkSaveObj保存對象stkNewObj新建對象stkUnload卸載對象stkUnloadChildren卸載所有子對象stkRename重命名對象stkTimePeriod返回場景起止時間stkTimePeriodInSec返回場景起止時間,以秒為單位stkValidObj返回是否存在有效對象stkDescrip獲取對象的描述stkSetDescrip設(shè)置對象的描述1STK與Matlab接口簡介—互聯(lián)與接口函數(shù)接口函數(shù)分81STK與Matlab接口簡介—互聯(lián)與接口函數(shù)ScenarioCommands(場景命令)stkAnimTime返回當前STK動畫時間stkEpoch返回STK場景歷元stkSetEpoch設(shè)置STK場景歷元stkSetEpochInSec改變STK場景歷元,以秒為單位stkSyncEpoch同步aeroToolbox和STK場景歷元stkConvertDate轉(zhuǎn)換日期格式stkSetTimePeriod設(shè)置場景起止時間stkSetTimePeriodInSec設(shè)置場景起止時間,以秒為單位stkScenFilePath返回STK場景文件目錄stkValidScen返回是否存在有效場景BasicVehicleData(基本飛行器數(shù)據(jù))stkTimePeriod返回航天器或場景起止時間stkTimePeriodInSec返回航天器或場景起止時間,以秒為單位stkSetTimePeriod設(shè)置航天器或場景起止時間SatellitePropagators(衛(wèi)星屬性)stkSetPropCart設(shè)置笛卡爾坐標形式的衛(wèi)星運動參數(shù)stkSetPropClassical設(shè)置經(jīng)典軌道根數(shù)形式的衛(wèi)星運動參數(shù)stkSetPropEqui設(shè)置第二類無奇點根數(shù)形式的衛(wèi)星運動參數(shù)stkSetPropSGP4設(shè)置SGP4形式的衛(wèi)星運動參數(shù)stkPropagate衛(wèi)星軌道積分計算VehiclePositionandVelocity(飛行器的位置速度)stkPosVelCBF獲取中心體固連坐標系下的位置速度stkPosVelCBI獲取慣性坐標系下的位置速度stkEphemerisCBF獲取中心體固連坐標系下的星歷stkEphemerisCBI獲取慣性坐標系下的星歷stkSetEphemerisCBF設(shè)置中心體固連坐標系下的星歷stkSetEphemerisCBI設(shè)置慣性坐標系下的星歷stkLoadEphemeris從文件中載入星歷stkSaveEphemerisCBF保存中心體固連坐標系下的星歷stkSaveEphemerisCBI保存慣性坐標系下的星歷stkSaveDynState將工作空間中所有數(shù)據(jù)保存成.mat文件stkDynState產(chǎn)生動力學(xué)狀態(tài)數(shù)據(jù)1STK與Matlab接口簡介—互聯(lián)與接口函數(shù)Scenar91STK與Matlab接口簡介—互聯(lián)與接口函數(shù)VehicleAttitude(飛行器姿態(tài))stkAttitudeCBF獲取中心體固連坐標系中的姿態(tài)四元數(shù)stkAttitudeCBI獲取慣性坐標系中姿態(tài)四元數(shù)stkSetAttitudeCBF設(shè)置中心體固連坐標系中的姿態(tài)四元數(shù)stkSetAttitudeCBI設(shè)置慣性坐標系中姿態(tài)四元數(shù)stkLoadAttitude從文件中載入姿態(tài)數(shù)據(jù)stkSaveAttitudeCBF保存中心體固連坐標系中的姿態(tài)stkSaveAttitudeCBI保存慣性坐標系中姿態(tài)BasicVehicleAttitudeTypes(飛行器基本姿態(tài)類型)stkSetAttBasic設(shè)置基本姿態(tài)類型stkSetAttSpinSun設(shè)置自旋軸指向太陽stkSetAttSpinNadir設(shè)置自旋軸指向天底stkSetAttYawNadir設(shè)置偏航軸指向天底stkSetAttSpinning設(shè)置自旋軸為給定方向stkSetAttFixed設(shè)置慣性系中姿態(tài)stkAttOffset設(shè)置姿態(tài)偏移量Aircraft,GroundVehicleandShipPropagators(飛機,車輛與船艦屬性)stkSetWaypoints設(shè)置路徑點stkLoadWaypoints載入路徑點文件stkSetGreatArcStart設(shè)置起始時間MissilePropagators(導(dǎo)彈運動積分)stkSetPropBallistic設(shè)置彈道導(dǎo)彈積分參數(shù)FacilitiesandTargets(設(shè)施與目標)stkPosVelCBF返回中心體固連坐標系中的位置stkSetFacPosCBF設(shè)置中心體固連坐標系中設(shè)施的位置stkSetFacPosLLA設(shè)置設(shè)施的經(jīng)度、緯度、高度AreaTargets(面目標)stkGetBoundary設(shè)置面目標邊界STKTools(STK工具)stkAccess返回過境時間段stkReport生成目標報告stkAccReport生成過境報告stkFindData從報告中提取數(shù)據(jù)ConnectCommands(連接指令)stkOpen打開STK連接stkClose關(guān)閉STK連接stkExec向STK發(fā)送指令stkConnect連接指令發(fā)送函數(shù)1STK與Matlab接口簡介—互聯(lián)與接口函數(shù)Vehicl101STK與Matlab接口簡介—常用接口函數(shù)1)初始化需要的接口函數(shù)stkinit——完成STK和Matlab的互聯(lián)和初始化conid=stkOpen(stkDefaultHost);——返回互聯(lián)成功的主機端口的連接句柄2)初始窗口管理ifstkValidScen==1stkUnload('/*')end——如果已經(jīng)有打開的場景,則關(guān)閉場景。1STK與Matlab接口簡介—常用接口函數(shù)1)初始化需要111STK與Matlab接口簡介—常用接口函數(shù)也可以通過交互提示進行窗口管理,如:scen_open=stkValidScen;ifscen_open==1rtn=questdlg('Closethecurrentscenario?');if~strcmp(rtn,'Yes')stkClose(conid)returnelsestkUnload('/*')endend——如果已經(jīng)有打開的場景,則彈出提示對話框,詢問是否要關(guān)閉現(xiàn)有場景。1STK與Matlab接口簡介—常用接口函數(shù)也可以通過交互121STK與Matlab接口簡介—常用接口函數(shù)3)建立場景stkNewObj('/','Scenario','場景名稱');——建立給定名稱的場景。stkSetTimePeriod('10Apr200300:00:00.0','12Apr200300:00:00.0','GREGUTC');——設(shè)置場景的起止時間和采用的時間系統(tǒng)。stkSetEpoch('10Apr200300:00:00.0','GREGUTC');——設(shè)置場景的歷元。注:在STK輸出的各類報告中,時間起點將以該歷元作為時間零點。1STK與Matlab接口簡介—常用接口函數(shù)3)建立場景131STK與Matlab接口簡介—常用接口函數(shù)stkSyncEpoch;——同步aeroToolbox和STK場景歷元。注:aeroToolbox函數(shù)庫包含“安裝盤:\ProgramFiles\AGI\STK\Matlab”目錄下各種atb開頭的內(nèi)部函數(shù),可以與STK場景歷元保持獨立。STK場景時間發(fā)生改變時,通過調(diào)用該語句可保持二者時間同步。rtn=stkConnect(conid,'Animate','Scenario/場景名稱','SetValues"10Apr200300:00:00.0"600.1');rtn=stkConnect(conid,'Animate','Scenario/場景名稱','Reset');——設(shè)置STK場景動畫歷元。1STK與Matlab接口簡介—常用接口函數(shù)stkSync141STK與Matlab接口簡介—常用接口函數(shù)4)建立航天器stkNewObj('*/','Satellite','航天器名稱');——建立衛(wèi)星。最基礎(chǔ)最常用的接口函數(shù):stkSetPropClassical語法:stkSetPropClassical('objPath','propagator','coordSystem',tStart,tStop,dt,orbitEpoch,semimajorAxis,eccentricity,inclination,argOfPerigee,RAAN,meanAnomaly,coordEpoch)1STK與Matlab接口簡介—常用接口函數(shù)4)建立航天器151STK與Matlab接口簡介—常用接口函數(shù)objPath–有效路徑。Propagator–選用的動力學(xué)模型,可選擇為‘TwoBody’,‘J2Perturbation’,‘J4Perturbation’,‘HPOP’or‘PODS’,分別表示“二體”、“J2攝動”、“J4攝動”、“HPOP模型”或“PODS模型”,區(qū)分大小寫。coordSystem–選用的坐標系,可選擇為‘Fixed’,‘J2000’,‘MeanOfDate’,‘MeanOfEpoch’,‘TrueOfDate’,‘TrueOfEpoch’,‘B1950’,‘TEMEOfDate’,‘TEMEOfEpoch’,‘AlignmentAtEpoch’,區(qū)分大小寫。tStart,tStop–起止時刻,以相對于歷元時刻的秒為單位。dt–積分步長,以秒為單位。orbitEpoch–軌道歷元。1STK與Matlab接口簡介—常用接口函數(shù)objPath161STK與Matlab接口簡介—常用接口函數(shù)semimajorAxis,eccentricity,inclination,argOfPerigee,RAAN,meanAnomaly–6個軌道根數(shù)。其中,若坐標系選為‘AlignmentAtEpoch’,RAAN為升交點地理經(jīng)度,若坐標系選為‘J2000’,RAAN為升交點赤經(jīng)。coordEpoch–坐標歷元,所有'...OfEpoch'選項均需提供對應(yīng)的坐標歷元。同樣重要的接口函數(shù):stkSetPropCart語法:stkSetPropCart('objPath','propagator','coordSystem',tStart,tStop,dt,orbitEpoch,pos,vel,coordEpoch)1STK與Matlab接口簡介—常用接口函數(shù)semimaj171STK與Matlab接口簡介—常用接口函數(shù)若動力學(xué)模型選為“HPOP模型”,則還需要通過stkConnect函數(shù)設(shè)置各種力模型參數(shù)。第一類:“HPOPforcemodel”設(shè)置重力、第三體引力、太陽光壓、固體潮、海潮、輻射壓參數(shù)。第二類:“HPOPdragmodel”設(shè)置大氣密度模型及參數(shù)。1STK與Matlab接口簡介—常用接口函數(shù)若動力學(xué)模型選181STK與Matlab接口簡介—常用接口函數(shù)第一類:“HPOPforcemodel”語法:HPOP<ObjectPath>Force{ForceModel}<ModelParameters>其中,<>中的參數(shù)表示需要用戶根據(jù)具體目錄安裝或參數(shù)使用情況設(shè)置的,{}中的參數(shù)表示STK固有的關(guān)鍵字,例如:stkConnect(conid,'HPOP','Scenario/場景名/Satellite/航天器名','ForceSolarRadOff')其中,<ObjectPath>為'Scenario/場景名/Satellite/航天器名',{ForceModel}為SolarRad,<ModelParameters>為Off。1STK與Matlab接口簡介—常用接口函數(shù)第一類:“HP191STK與Matlab接口簡介—常用接口函數(shù){ForceModel}和<ModelParameters>的可選參數(shù)如表所示。{ForceModel}<ModelParameters>說明Gravity"<FilePath>"或<MaxDegreeValue>或<MaxOrderValue><MaxDegreeValue>和<MaxOrderValue>取值為0.0~1000.0,<MaxOrderValue>必須小于等于<MaxDegreeValue>,并且都小于所選擇的重力場文件的最高階數(shù)。ThirdBodyGravity<CentralBodyName>{On|Off}{GravSource}[<UserGravValue>]{GravSource}有效值可通過CB,JPL的DE文件或用戶自定義設(shè)置,用戶自定義值需為正值。SolarRad{SolarRadState}[<Coeff><AreaMassRatio>][ShadowModel{ModelType}][BoundaryMitigation{On|Off}]{SolRadState}可設(shè)置為On或Off。如果設(shè)置為On,還需要設(shè)置-100.0~100.0的光壓系數(shù)<Coeff>,和0.0~9999.00的面質(zhì)比參數(shù)<AreaMassRatioValue>。陰影模型參數(shù){ModelType}]可取為空、圓柱或雙圓錐。SolidTides{Full|Permanent|Off}[IncTimeDep{On|Off}][MinAmplitude<Amplitude>]如果設(shè)置為Off則不需要再輸入其他參數(shù)。<Amplitude>在0.0~1.0范圍內(nèi),單位是米。如果輸入Permanent則只考慮與時間不相關(guān)的永久固體潮部分,如果輸入Full則考慮全部固體潮。OceanTides{On|Off}[MaxDegree<MaxDegreeValue>][MaxOrder<MaxOrderValue>][MinAmplitude<Amplitude>]如果設(shè)置為Off不需要再輸入其他參數(shù)。<MaxDegreeValue>為2~30之間的整數(shù),<MaxOrderValue>為0~30之間的整數(shù),<Amplitude>在0.0~1.0范圍內(nèi),單位是米。RadiationPressureAlbedo{On|Off}Thermal{On|Off}Coefficient<CoeffValue>AreaMassRatio<AMRValue>File"<FilePath>"<CoeffValue>為-100~100.0之間的實數(shù)。<AMRValue>為0.0~9999.0之間的實數(shù),單位是m^2/kg。"<FilePath>"地面反射模型文件。1STK與Matlab接口簡介—常用接口函數(shù){ForceM201STK與Matlab接口簡介—常用接口函數(shù)stkConnect(conid,'HPOP','Scenario/場景名稱/Satellite/航天器名稱','ForceGravity"C:\ProgramFiles\AGI\STK\STKData\CentralBodies\Earth\JGM3.grv"88');stkConnect(conid,'HPOP','Scenario/場景名稱/Satellite/航天器名稱','ForceSolarRadOff');stkConnect(conid,'HPOP','Scenario/場景名稱/Satellite/航天器名稱','ForceThirdBodyGravitySunOff');stkConnect(conid,'HPOP','Scenario/場景名稱/Satellite/航天器名稱','ForceThirdBodyGravityMoonOff');1STK與Matlab接口簡介—常用接口函數(shù)stkConn211STK與Matlab接口簡介—常用接口函數(shù)第二類:“HPOPdragmodel”語法:HPOP<ObjectPath>Drag{DragState}<Coeff><AreaMassRatio>{"AtmDensModel"}其中,<>與{}中的參數(shù)的含義不變。{DragState}設(shè)置為On或Off。設(shè)置為Off則不需要輸入其他參數(shù)。設(shè)置為On時,<Coeff>為-10.0~10.0之間的實數(shù),<AreaMassRatio>為0.0~9999.0之間的實數(shù),{"AtmDensModel"}的有效輸入值和相應(yīng)的<Parameters>輸入值見表所示。1STK與Matlab接口簡介—常用接口函數(shù)第二類:“HP221STK與Matlab接口簡介—常用接口函數(shù){"AtmDensModel"}<Parameters>"Harris-Priester"附加參數(shù)可通過手工或flux/geomag文件輸入:Manual<AverageF10.7>File"<FilePath>""1976Standard"N/A"Jacchia1960"N/A"Jacchia1971"附加參數(shù)可通過手工或flux/geomag文件輸入:Manual<DailyF10.7><AverageF10.7><GeoMagIndex>File"<FilePath>""Jacchia1970""Jacchia-Roberts""CIRA1972""NRLMSISE2000""MSISE1990""MSIS1986""<UserModelName>""<FilePath>"1STK與Matlab接口簡介—常用接口函數(shù){"AtmDe231STK與Matlab接口簡介—常用接口函數(shù)例如:stkConnect(conid,'HPOP','Scenario/場景名稱/Satellite/航天器名稱','DragOn2.20.0022"NRLMSISE2000"Manual1501502.667');stkConnect(conid,'HPOP','Scenario/場景名稱/Satellite/航天器名稱','DragOn2.00.0022"NRLMSISE2000"File"C:\ProgramFiles\AGI\STK\DynamicEarthData\stkFluxGeoMag.fxm"');1STK與Matlab接口簡介—常用接口函數(shù)例如:241STK與Matlab接口簡介—常用接口函數(shù)5)建立地面站stkNewObj('*/','Facility','測站名稱')——建立地面站。stkSetFacPosLLA('Scenario/場景名稱/Facility/測站名稱',[phi;namda;h])——設(shè)置地面站的經(jīng)度、緯度和高度。stkConnect(conid,'SetConstraint','Scenario/場景名稱/Facility/測站名稱','ElevationAngleMin最低仰角值')——設(shè)置地面站的最低仰角。stkConnect(conid,‘SetConstraint’,‘Scenario/場景名稱/Facility/測站名稱’,‘RangeMax最大探測距離值');——設(shè)置地面站的最大探測距離。1STK與Matlab接口簡介—常用接口函數(shù)5)建立地面站251STK與Matlab接口簡介—常用接口函數(shù)6)輸出計算結(jié)果stkPropagate('*/Satellite/航天器名稱',t_start,t_stop)[T,r,v,cb]=stkEphemerisCBI('Scenario/場景名稱/Satellite/航天器名稱',dt,t_start,t_stop)——運行航天器并輸出給定起止時間內(nèi)的慣性坐標系位置和速度。注:輸出航天器位置、速度之前必須運行stkPropagate函數(shù),否則力模型參數(shù)設(shè)置不生效。interval=stkAccess('Scenario/場景名稱/Satellite/航天器名稱','Scenario/場景名稱/Facility/測站名稱')——輸出航天器相對于測站的可見時間段。1STK與Matlab接口簡介—常用接口函數(shù)6)輸出計算結(jié)261STK與Matlab接口簡介—常用接口函數(shù)7)關(guān)閉STK和Matlab連接采用接口函數(shù)輸出的數(shù)據(jù)上雖然不如手工設(shè)置時形式多樣,但因為可以在Matlab環(huán)境下通過編程進行數(shù)據(jù)處理,依然可以獲得多種需要的計算結(jié)果,并且可實現(xiàn)手工設(shè)置無法完成的循環(huán)計算和多重迭代功能。上述1)~6)過程為利用STK/Matlab接口進行計算分析的常用或基本函數(shù)。stkClose(conid)注:STK和Matlab最多同時可創(chuàng)建2個連接,因此每次程序運行結(jié)束通常需要關(guān)閉連接,以免下次運行重新建立連接時個數(shù)超過限制。1STK與Matlab接口簡介—常用接口函數(shù)7)關(guān)閉STK272在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)循環(huán)——星座對地觀測特性分析設(shè)某一對地觀測衛(wèi)星星座含多顆星,各星之間通過保持一定的幾何構(gòu)型,實現(xiàn)對某一特定區(qū)域的重點觀測。在系統(tǒng)設(shè)計階段,需要分析對某種給定的構(gòu)型,星座對某一特定區(qū)域進行觀測時,各星觀測該區(qū)域的時間間隔特性,如該特定區(qū)域重訪時間間隔平均值、最大值等。對某一給定點,通過手工設(shè)置STK中各類參數(shù)可計算和輸出星座中各星訪問該地點的時間間隔,但對于某一給定區(qū)域,需要在該區(qū)域內(nèi)密集采樣,采用手工輸入輸出方式已不再可能,因此需要通過Matlab作為計算引擎調(diào)用STK循環(huán)計算。

以下給出計算過程和結(jié)果。2在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)循環(huán)——星座對地觀測特性282在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)1)初始化并關(guān)閉所有打開的窗口%初始化stkinitremMachine=stkDefaultHost;%關(guān)閉所有打開的窗口delete(get(0,'chiSatren'));conid=stkOpen(remMachine);scen_open=stkValidScen;ifscen_open==1stkUnload('/*')end2在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)1)初始化并關(guān)閉所有打開292在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)2)建立場景、航天器和測站%建立場景并設(shè)置場景屬性stkNewObj('/','Scenario','RemoteSensor');stkSetTimePeriod('1Jan201000:00:00.0','5Jan201000:00:0.0','GREGUTC');stkSetEpoch('1Jan201000:00:00.0','GREGUTC');stkSyncEpoch;rtn=stkConnect(conid,'Animate','Scenario/RemoteSensor','SetValues"1Jan201000:00:00.0"600.1');rtn=stkConnect(conid,'Animate','Scenario/RemoteSensor','Reset');%建立航天器和測站stkNewObj('*/','Satellite','Sat1');stkNewObj('*/','Satellite','Sat2');stkNewObj('*/','Satellite','Sat3');stkNewObj('*/','Satellite','Sat4');stkNewObj('*/','Facility','Station');2在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)2)建立場景、航天器和302在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)3)設(shè)置星座中各衛(wèi)星的屬性t_start=0;t_stop=4*(24*3600);dt=60;orbitEpoch=t_start;a_sat=7000*1000;e_sat=0;i_sat=60;w_sat=0;Raan_sat=0;M_sat=0;stkSetPropClassical('*/Satellite/Sat1','J2Perturbation','J2000',t_start,t_stop,dt,orbitEpoch,a_sat,e_sat,i_sat,w_sat,Raan_sat,M_sat);stkPropagate('*/Satellite/Sat1',t_start,t_stop)stkSetPropClassical('*/Satellite/Sat2','J2Perturbation','J2000',t_start,t_stop,dt,orbitEpoch,a_sat,e_sat,i_sat,w_sat,Raan_sat+pi/4,M_sat+pi);stkPropagate('*/Satellite/Sat2',t_start,t_stop)stkSetPropClassical('*/Satellite/Sat3','J2Perturbation','J2000',t_start,t_stop,dt,orbitEpoch,a_sat,e_sat,i_sat,w_sat,Raan_sat+pi/2,M_sat+2*pi);stkPropagate('*/Satellite/Sat3',t_start,t_stop)stkSetPropClassical('*/Satellite/Sat4','J2Perturbation','J2000',t_start,t_stop,dt,orbitEpoch,a_sat,e_sat,i_sat,w_sat,Raan_sat+3*pi/4,M_sat+pi);stkPropagate('*/Satellite/Sat4',t_start,t_stop)2在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)3)設(shè)置星座中各衛(wèi)星的312在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)4)循環(huán)計算區(qū)域內(nèi)各點的重訪時間間隔及最大值namda_min=0;namda_max=2*pi;n_namda=40;deta_namda=(namda_max-namda_min)/n_namda;phi_min=-60*pi/180;phi_max=60*pi/180;n_phi=30;deta_phi=(phi_max-phi_min)/n_phi;fori=1:n_namda+1forj=1:n_phi+1remain=(n_namda+1)*(n_phi+1)-(i-1)*(n_phi+1)-jnamda=namda_min+(i-1)*deta_namda;X(i,j)=namda*180/pi;phi=phi_min+(j-1)*deta_phi;Y(i,j)=phi*180/pi;

stkSetFacPosLLA('Scenario/RemoteSensor/Facility/Station',[phi;namda;0]);2在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)4)循環(huán)計算區(qū)域內(nèi)各點的322在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)stkConnect(conid,'SetConstraint','Scenario/RemoteSensor/Facility/Station','ElevationAngleMin56.8164');interval1=stkAccess('Scenario/RemoteSensor/Satellite/Sat1','Scenario/RemoteSensor/Facility/Station');interval2=stkAccess('Scenario/RemoteSensor/Satellite/Sat2','Scenario/RemoteSensor/Facility/Station');interval3=stkAccess('Scenario/RemoteSensor/Satellite/Sat3','Scenario/RemoteSensor/Facility/Station');interval4=stkAccess('Scenario/RemoteSensor/Satellite/Sat4','Scenario/RemoteSensor/Facility/Station');2在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)stkConnect(c332在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)ifsize(interval1)==[00]&size(interval2)==[00]&size(interval3)==[00]&size(interval4)==[00]Z(i,j)=20;else

temp1=[interval1.start,interval2.start,interval3.start,interval4.start,interval1.stop,interval2.stop,interval3.stop,interval4.stop];temp2=sort(temp1);Z(i,j)=max(diff(temp2))/3600;endendend2在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)if342在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)5)繪制計算結(jié)果并關(guān)閉連接save('mat')set(gcf,'color',[1,1,1])figuresurf(X,Y,Z)xlabel('namda/deg')ylabel('phi/deg')stkClose(conid)2在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)5)繪制計算結(jié)果并關(guān)閉連352在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代迭代——交會對接目標飛行器調(diào)相分析交會對接任務(wù)中,目標飛行器在飛船入軌前2~3個月先行入軌,目標飛行器入軌后在一天時間內(nèi)通過兩次變軌進入某一高度的近圓軌道,之后通過大氣衰減和主動變軌,使2~3個月后飛船入軌時刻目標飛行器軌道的相位、高度和偏心率滿足要求。在任務(wù)分析階段,需要根據(jù)給定的空間環(huán)境設(shè)計目標飛行器的圓化軌道高度,在后續(xù)2~3個月的時間內(nèi)盡可能通過大氣衰減作用滿足各種終端約束條件,減少主動變軌的能量消耗。第4圈變軌第13圈變軌2在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代迭代——交會對接目標飛行362在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代為了重點說明STK/Matlab接口的使用,對上述設(shè)計進行簡化,假定不進行調(diào)整相位、高度和偏心率的變軌,設(shè)計過程簡化為迭代搜索滿足飛船入軌時刻相位約束條件的目標飛行器圓化軌道的高度,為單層迭代過程。需要補充說明的是,在STK中盡管Astrogator模式可實現(xiàn)一定功能的迭代,但在Astrogator模式下空間環(huán)境參數(shù)無法根據(jù)需要進行設(shè)置,并且難以設(shè)定某些特殊的約束條件,這種情況下可以利用Matlab的編程能力通過STK/Matlab接口實現(xiàn)迭代求解。以下給出計算過程。2在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代372在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代1)初始化和并關(guān)閉所有打開的窗口與前述過程相同,不再重復(fù)。2)建立場景和航天器目標飛行器入軌后,在第4圈近地點變軌抬高遠地點高度,在第13圈遠地點變軌進入圓軌道,之后進入大氣衰減自由飛行階段。以下建立場景后,再建立3個航天器分別用于不同階段的軌道預(yù)報。stkNewObj('/','Scenario','GM');stkSetTimePeriod(‘6Sep20112:11:53',6Dec20112:11:53','GREGUTC');stkSetEpoch(6Sep20112:11:53','GREGUTC');stkSyncEpoch;rtn=stkConnect(conid,'Animate','Scenario/GM','SetValues"6Sep20112:11:53"600.1');rtn=stkConnect(conid,'Animate','Scenario/GM','Reset');stkNewObj('*/','Satellite','MB_1');stkNewObj('*/','Satellite','MB_2');stkNewObj('*/','Satellite','MB_3');2在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代1)初始化和并關(guān)閉所有打382在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代3)外推至第4圈近地點%設(shè)置J2000坐標系中初始軌道根數(shù)t_start_1=0;t_stop_1=0.187*(24*3600);dt=60;orbitEpoch=t_start_1;coordEpoch=t_start_1;a_MB=6645999;e_MB=0.01129;i_MB=42.747;w_MB=124.342;Raan_MB=7.309;M_MB=0;2在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代3)外推至第4圈近地點%392在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代%選用HPOP模型,設(shè)置大氣密度模型、重力場模型、光壓和第三體攝動模型。stkSetPropClassical('*/Satellite/MB_1','HPOP','AlignmentAtEpoch',t_start_1,t_stop_1,dt,orbitEpoch,a_MB,e_MB,i_MB,w_MB,Raan_MB,M_MB,coordEpoch);stkConnect(conid,'HPOP','Scenario/GM/Satellite/MB_1','DragOn2.20.0039"NRLMSISE2000"Manual1501502.667');stkConnect(conid,'HPOP','Scenario/GM/Satellite/MB_1','ForceGravity"C:\ProgramFiles\AGI\STK\STKData\CentralBodies\Earth\JGM3.grv"88');stkConnect(conid,'HPOP','Scenario/GM/Satellite/MB_1','ForceSolarRadOff');stkConnect(conid,'HPOP','Scenario/GM/Satellite/MB_1','ForceThirdBodyGravitySunOff');stkConnect(conid,'HPOP','Scenario/GM/Satellite/MB_1','ForceThirdBodyGravityMoonOff');stkPropagate('*/Satellite/MB_1',t_start_1,t_stop_1)[T_MB_1,r_MB_1,v_MB_1,cb]=stkEphemerisCBI('Scenario/GM/Satellite/MB_1',dt,t_start_1,t_stop_1);2在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代%選用HPOP模型,設(shè)402在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代4)迭代求解第4圈近地點變軌速度增量(或求解圓化軌道高度)%采用牛頓迭代法求解,約束條件為第89天目標飛行器軌道面與飛船入軌點共面時刻的相位在114°±10°范圍內(nèi)。deta_v_2=9;error=100;whileabs(error)>1

Cal_remain;index_RG=find(T_interp>89);error=beta_interp(index_RG(1))-114

deta_v_2=deta_v_2+error/3600;End其中,Cal_remain為需要循環(huán)計算的用戶自定義子函數(shù),用于計算給定一個第4圈近地點變軌速度增量后,從第4圈近地點變軌外推至第13圈遠地點并進行軌道圓化變軌后的軌道,軌道外推一直到第89天目標飛行器軌道面與飛船入軌點共面時刻。輸出結(jié)果外共面時刻的相位。2在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代4)迭代求解第4圈近地點412在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代Cal_remain子函數(shù)為:%第4圈變軌外推至第13圈變軌pos_2=r_MB_1(:,length(r_MB_1));vel_2=v_MB_1(:,length(v_MB_1));ix=vel_2/norm(vel_2);ir=pos_2/norm(pos_2);iz=CrossProduct(ir,ix)/norm(CrossProduct(ir,ix));iy=CrossProduct(ix,iz);thita_2=0;vel_2=vel_2+deta_v_2*(cos(thita_2)*ix+sin(thita_2)*iy);t_start_2=t_stop_1;t_stop_2=0.782*(24*3600);dt=60;orbitEpoch=t_start_2;stkSetPropCart('*/Satellite/MB_2','HPOP','J2000',t_start_2,t_stop_2,dt,orbitEpoch,pos_2,vel_2)stkConnect(conid,'HPOP','Scenario/GM/Satellite/MB_2','DragOn2.20.0039"NRLMSISE2000"Manual1501502.667');stkConnect(conid,'HPOP','Scenario/GM/Satellite/MB_2','ForceGravity"C:\ProgramFiles\AGI\STK\STKData\CentralBodies\Earth\JGM3.grv"88');2在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代Cal_remain子422在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代stkConnect(conid,'HPOP','Scenario/GM/Satellite/MB_2','ForceSolarRadOff');stkConnect(conid,'HPOP','Scenario/GM/Satellite/MB_2','ForceThirdBodyGravitySunOff');stkConnect(conid,'HPOP','Scenario/GM/Satellite/MB_2','ForceThirdBodyGravityMoonOff');stkPropagate('*/Satellite/MB_2',t_start_2,t_stop_2)[T_MB_2,r_MB_2,v_MB_2,cb]=stkEphemerisCBI('Scenario/GM/Satellite/MB_2',dt,t_start_2,t_stop_2);%第13圈變軌外推至飛船入軌時刻pos_3=r_MB_2(:,length(r_MB_2));vel_3=v_MB_2(:,length(v_MB_2));u_e=3.986005e+014;ix=vel_3/norm(vel_3);ir=pos_3/norm(pos_3);iz=CrossProduct(ir,ix)/norm(CrossProduct(ir,ix));iy=CrossProduct(ix,iz);it=CrossProduct(iz,ir);vel_3=sqrt(u_e/norm(pos_3))*it;2在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代stkConnect(c432在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代t_start_3=T_MB_2(length(T_MB_2));t_stop_3=92*(24*3600);dt=60;orbitEpoch=t_start_3;stkSetPropCart('*/Satellite/MB_3','HPOP','J2000',t_start_3,t_stop_3,dt,orbitEpoch,pos_3,vel_3)stkConnect(conid,'HPOP','Scenario/GM/Satellite/MB_3','DragOn2.20.0039"NRLMSISE2000"Manual1501502.667');stkConnect(conid,'HPOP','Scenario/GM/Satellite/MB_3','ForceGravity"C:\ProgramFiles\AGI\STK\STKData\CentralBodies\Earth\JGM3.grv"88');stkConnect(conid,'HPOP','Scenario/GM/Satellite/MB_3','ForceSolarRadOff');stkConnect(conid,'HPOP','Scenario/GM/Satellite/MB_3','ForceThirdBodyGravitySunOff');stkConnect(conid,'HPOP','Scenario/GM/Satellite/MB_3','ForceThirdBodyGravityMoonOff');stkPropagate('*/Satellite/MB_3',t_start_3,t_stop_3)[T_MB_3,r_MB_3,v_MB_3,cb]=stkEphemerisCBI('Scenario/GM/Satellite/MB_3',dt,t_start_3,t_stop_3);2在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代t_start_3=T_442在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代%計算共面時刻相位T_MB_all=[T_MB_1,T_MB_2(2:length(T_MB_2)),T_MB_3(2:length(T_MB_3))]'/(24*3600);R_MB_all=[r_MB_1,r_MB_2(:,2:length(r_MB_2)),r_MB_3(:,2:length(r_MB_3))]';V_MB_all=[v_MB_1,v_MB_2(:,2:length(v_MB_2)),v_MB_3(:,2:length(v_MB_3))]';data_RGD=load('data_pos_RGD.m');%讀入入軌點在慣性系中的位置。

T_RGD_all=data_RGD(:,1);r_RGD_all=data_RGD(:,2:4);step_window=1/60/24;t_start=0;t_end=92;T=[t_start:step_window:t_end]';index1=find(T_MB_all>t_start&T_MB_all<t_end);R_MB=[interp1(T_MB_all(index1),R_MB_all(index1,1),T),interp1(T_MB_all(index1),R_MB_all(index1,2),T),interp1(T_MB_all(index1),R_MB_all(index1,3),T)];V_MB=[interp1(T_MB_all(index1),V_MB_all(index1,1),T),interp1(T_MB_all(index1),V_MB_all(index1,2),T),interp1(T_MB_all(index1),V_MB_all(index1,3),T)];index2=find(T_RGD_all>t_start&T_RGD_all<t_end);R_RGD=[interp1(T_RGD_all(index2),r_RGD_all(index2,1),T),interp1(T_RGD_all(index2),r_RGD_all(index2,2),T),interp1(T_RGD_all(index2),r_RGD_all(index2,3),T)];2在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代%計算共面時刻相位452在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代j=1;fori=1:length(T)AngMomentum_MB=CrossProduct(R_MB(i,:),V_MB(i,:))/norm(CrossProduct(R_MB(i,:),V_MB(i,:)));alpha(i)=acos(Dotproduct(R_RGD(i,:)/norm(R_RGD(i,:)),AngMomentum_MB'))*180/pi;beta(i)=acos(Dotproduct(R_RGD(i,:)/norm(R_RGD(i,:)),R_MB(i,:)/norm(R_MB(i,:))))*180/pi;ifDotProduct(CrossProduct(R_RGD(i,:),R_MB(i,:)),AngMomentum_MB)<=0beta(i)=-beta(i);endifi>1&alpha(i)<90&alpha(i-1)>90index(j)=i;T_interp(j)=interp1([alpha(i),alpha(i-1)],[T(i),T(i-1)],90);

beta_interp(j)=interp1([T(i),T(i-1)],[beta(i),beta(i-1)],T_interp(j));j=j+1;endend2在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代j=1;462在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代5)繪制計算結(jié)果并關(guān)閉連接%迭代收斂后,將迭代結(jié)果對應(yīng)的軌道主要特征繪制出來。set(gcf,'color',[1,1,1])subplot(2,1,1)holdon;plot(T_interp,beta_interp,'k.',T_interp,beta_interp,'k');holdon;plot([0t_end],[104,104],'r',[0t_end],[114,114],'g',[0t_end],[124,124],'r')axis([0,t_end,-180,180])subplot(2,1,2)h=(sqrt(R_MB_all(:,1).^2+R_MB_all(:,2).^2+R_MB_all(:,3).^2)-6378140)/1000;plot(T_MB_all,h,'k');holdon;plot([0t_end],[332,332],'g','LineWidth',2)axis([0,t_end,300,400])holdon;stkClose(conid)2在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代5)繪制計算結(jié)果并關(guān)閉連472在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代飛船入軌時刻相位取值范圍飛船入軌時刻目標飛行器相位需要的終點軌道高度初始圓軌道高度2在復(fù)雜航天任務(wù)分析中的應(yīng)用—迭代飛船入軌時刻飛船入軌時刻482在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)+嵌套迭代循環(huán)+嵌套迭代——交會對接對遠距離導(dǎo)引精度分析入軌第1次變軌(抬高近地點)第2次變軌(修正軌道面)第3次變軌(抬高遠地點)第4次變軌(抬高近地點)第5次變軌(組合修正)導(dǎo)引終點目標飛船2在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)+嵌套迭代循環(huán)+嵌套迭代492在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)+嵌套迭代遠距離導(dǎo)引的終端約束為:在給定時刻,飛船與目標飛行器共面,處于比目標飛行器軌道略低的近圓軌道上,且相對目標飛行器相位滿足要求。上述約束條件的數(shù)學(xué)描述即為給定時刻飛船相對于目標飛行器的相對位置和相對速度滿足給定要求(標稱值及誤差范圍)??捎糜谝?guī)劃的變量即為各次變軌的時刻及變軌速度增量。為減少可變因素并簡化工程實施,變軌時刻通常選擇在近地點或遠地點,變軌速度增量限定為水平方向(軌道面修正除外)。由于各次變軌均會對終點狀態(tài)產(chǎn)生影響,因此每次變軌規(guī)劃都是后續(xù)剩余變軌規(guī)劃變量的統(tǒng)一綜合規(guī)劃。2在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)+嵌套迭代502在復(fù)雜航天任務(wù)分析中的應(yīng)用—循環(huán)+嵌套迭代遠距離導(dǎo)引精度分析具體計算過程可分為兩個層次的循環(huán)或迭代:最外層循環(huán)為誤差樣本空間中循環(huán)多次采樣

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論