STK/MATLAB/Aerospace联合仿真函数总集
2013-06-17 11:47
363 查看
整理者:龚德仁
2008年10月7日
目 录
一、Matlab/Simulink、STK联合仿真的优势.
1
二、mexConnect函数详细介绍.
2
2.1 STK服务器命令(STK Server Commands)...
2
2.1.1 stkDefaultConID.
2
2.1.2 stkDefaultHost.
2
2.1.3 stkSetDefaultHost.
2
2.2 应用命令(Application Commands)...
2
2.2.1 stkAutoSave.
2
2.2.2 stkHomeDir.
2
2.2.3 stkCurrentDir.
2
2.2.4 stkSetCurrentDir.
2
2.2.5 stkObjNames.
2
2.2.6 stkTimerStart.
3
2.2.7 stkTimer.
3
2.3 普通对象命令(Generic Object Commands)...
3
2.3.1 stkCentralBody.
3
2.3.2 stkLoadObj.
3
2.3.3 stkSaveObj.
3
2.3.4 stkNewObj.
3
2.3.5 stkUnload.
4
2.3.6 stkUnloadChildren.
4
2.3.7 stkRename.
4
2.3.8 stkTimePeriod.
4
2.3.9 stkTimePeriodInSec.
5
2.3.10 stkValidObj.
5
2.3.11 stkDescrip.
5
2.3.12 stkSetDescrip.
5
2.4 场景命令(Scenario Commands)...
6
2.4.1 stkAnimTime.
6
2.4.2 stkEpoch.
6
2.4.3 stkSetEpoch.
6
2.4.4 stkSetEpochInSec.
6
2.4.5 stkSyncEpoch.
6
2.4.6 stkConvertDate.
6
2.4.7 stkSetTimePeriod.
6
2.4.8 stkSetTimePeriodInSec.
7
2.4.9 stkScenFilePath.
7
2.4.10 stkValidScen.
7
2.5 基本飞行器数据(Basic Vehicle Data)...
7
2.5.1 stkTimePeriod.
7
2.5.2 stkTimePeriodInSec.
7
2.5.3 stkSetTimePeriod.
7
2.6 卫星运动属性(Satellite Propagators)...
8
2.6.1 stkSetPropCart.
8
2.6.2 stkSetPropClassical.
8
2.6.3 stkSetPropEqui.
9
2.6.4 stkSetPropSGP4.
9
2.6.5 stkPropagate.
10
2.7 飞行器位置与速度(Vehicle Position and Velocity)...
10
2.7.1 stkPosVelCBF.
10
2.7.2 stkPosVelCBI.
10
2.7.3 stkEphemerisCBF.
10
2.7.4 stkEphemerisCBI.
11
2.7.5 stkSetEphemerisCBF.
11
2.7.6 stkSetEphemerisCBI.
11
2.7.7 stkLoadEphemeris.
11
2.7.8 stkSaveEphemerisCBF.
12
2.7.9 stkSaveEphemerisCBI.
12
2.7.10 stkSaveDynState.
12
2.7.11 stkDynState.
12
2.8 飞行器姿态(Vehicle Attitude)...
12
2.8.1 stkAttitudeCBF.
12
2.8.2 stkAttitudeCBI.
13
2.8.3 stkSetAttitudeCBF.
13
2.8.4 stkSetAttitudeCBI.
13
2.8.5 stkLoadAttitude.
14
2.8.6 stkSaveAttitudeCBF.
14
2.8.7 stkSaveAttitudeCBI.
14
2.9 基本飞行器姿态类型(Basic Vehicle Attitude Types)...
14
2.9.1 stkSetAttBasic.
14
2.9.2 stkSetAttSpinSun.
15
2.9.3 stkSetAttSpinNadir.
15
2.9.4 stkSetAttYawNadir.
15
2.9.5 stkSetAttSpinning.
16
2.9.6 stkSetAttFixed.
16
2.9.7 stkAttOffset.
17
2.10 飞机,车辆与船舰属性(Aircraft,GroundVehicle and Ship Propagators)...
17
2.10.1 stkSetWaypoints.
17
2.10.2 stkLoadWaypoints.
18
2.10.3 stkSetGreatArcStart.
18
2.11 导弹运动属性(Missile Propagators)...
18
2.11.1 stkSetPropBallistic.
18
2.12 设备与目标(Facilities and Targets)...
18
2.12.1 stkPosVelCBF.
18
2.12.3 stkSetFacPosCBF.
18
2.12.3 stkSetFacPosLLA.
19
2.13 区域目标(Area Targets)...
19
2.13.1 Area Target boundary.
19
2.14 STK工具(STK Tools)...
19
2.14.1 stkAccess.
19
2.14.2 stkReport.
19
2.14.3 stkAccReport.
20
2.14.4 stkFindData.
21
2.15 连接命令(Connect Commands)...
21
2.15.1 stkOpen.
21
2.15.2 stkClose.
21
2.15.3 stkExec.
21
2.15.4 stkConnect.
22
三、aeroToolbox函数详细介绍.
22
3.1 坐标系中的历元与数据函数Coordinate System Epoch andDate functions)...
22
3.1.1 atbGetEpoch.
22
3.1.2 atbSetEpoch.
22
3.1.3 atbDateToEpochSec.
23
3.1.4 atbEpochSecToDate.
23
3.2 坐标系转换(Coordinate Conversions)...
24
3.2.1 atbCbfToCbi.
24
3.2.2 atbCbfToCbiMtx.
24
3.2.3 atbCbfToLhMtx.
24
3.2.4 atbCbfToLla.
24
3.2.5 atbCbfToLlr.
25
3.2.6 atbCbfToVvlhMtx.
25
3.2.7 atbCbiToCbf.
25
3.2.8 atbCbiToCbi.
26
3.2.9 atbCbiToCbiMtx.
26
3.2.10 atbLlaToCbf.
26
3.2.11 atbLlrToCbf.
27
3.2.12 atbCbCoordinates.
27
3.2.13 atbCoordXForm.
27
3.2.14 atbCoordXFormMtx.
28
3.3 转动与四元数(Rotations and Quaternions)...
28
3.3.1 atbAlignVecQuat.
28
3.3.2 atbEulerToMtx.
28
3.3.3 atbEulerToQuat.
29
3.3.4 atbMinRotQuat.
29
3.3.5 atbMtxToEuler.
29
3.3.6 atbMtxToQuat.
29
3.3.7 atbMtxToYpr.
30
3.3.8 atbQuatToMtx.
30
3.3.9 atbQuatXquat.
30
3.3.10 atbYprToMtx.
30
3.3.11 atbYprToQuat.
31
3.3.12 atbInterpQuat.
31
3.4 中心对象操作与程序(Central Body Operations andRoutines)...
31
3.4.1 atbCbEphemeris.
31
3.4.2 atbCbGetTangent.
31
3.4.3 atbCbGravParam.
32
3.4.4 atbCbGrazeAlt.
32
3.4.5 atbCbGrazeAngle.
32
3.4.6 atbCbIntersect.
33
3.4.7 atbCbLclRadCen.
33
3.4.8 atbCbLclRadDet.
33
3.4.9 atbCbSurfDistCen.
34
3.4.10 atbCbSurfDistDet.
34
3.4.11 atbCbSurfNormCen.
34
3.4.12 atbCbSurfNormDet.
34
3.5 指向,星历与姿态文件(Waypoint, Ephemeris andAttitude Files)...
35
3.5.1 atbReadAttitudeCBF.
35
3.5.2 atbReadAttitudeCBI.
35
3.5.3 atbWriteAttitudeCBF.
35
3.5.4 atbWriteAttitudeCBI.
35
3.5.5 atbReadEphemerisCBF.
36
3.5.6 atbReadEphemerisCBI.
36
3.5.7 atbWriteEphemerisCBF.
36
3.5.8 atbWriteEphemerisCBI.
36
3.5.9 atbWriteWaypointFile.
36
3.6 位置与速度函数(Position and Velocity Functions)...
37
3.6.1 atbGeometry.
37
3.6.2 atbGenGreatArc.
39
3.6.3 atbCreateDynStateCBF.
39
3.6.4 atbCreateDynStateCBI.
39
3.6.5 atbLhQuatCen.
40
3.6.6 atbLhQuatCBFDet.
40
3.6.7 atbFlatten.
41
3.7 轨道要素转换(Orbit Element Set Conversions)...
41
3.7.1 atbOrbCartToDel.
41
3.7.2 atbOrbCartToEqui.
41
3.7.3 atbOrbCartToMod.
42
3.7.4 atbOrbCartToSphere.
42
3.7.5atbOrbCartToMixedSphere.
43
3.7.6 atbOrbDelToCart.
43
3.7.7 atbOrbEquiToCart.
43
3.7.8 atbOrbModToCart.
43
3.7.9 atbOrbSphereToCart.
43
3.7.10atbOrbMixedSphereToCart.
43
3.8 轨道根数分量的转换(Orbit Element ParameterConversions)...
43
3.8.1 atbOrbEccToTrue.
43
3.8.2 atbOrbTrueToEcc.
44
3.8.3 atbOrbMeanToTrue.
44
3.8.4 atbOrbTrueToMean.
44
3.8.5 atbOrbLanToRaan.
44
3.8.6 atbOrbRaanToLan.
44
3.8.7 atbOrbPeriRadToPeriod.
44
3.8.8 atbOrbPeriodToPeriRad.
45
3.8.9atbOrbPeriRadToSMajAxis.
45
3.8.10atbOrbSMajAxisToPeriRad.
45
3.8.11 atbOrbTPANToTrue.
45
3.8.12 atbOrbTrueToTPAN.
45
3.8.13 atbOrbTPPToTrue.
46
3.8.14 atbOrbTrueToTPP.
46
3.9 DTED操作(DTED operations)...
46
3.9.1 atbCbListDtedTypes.
46
3.9.2 atbCbListDted.
46
3.9.3 atbCbAddDtedSource.
47
3.9.4 atbCbDtedSourceUI.
47
3.9.5 atbLoadNimaDted.
47
3.9.6 atbCbRemDtedSource.
47
3.9.7 atbCbGetDtedSourceForPos.
47
3.9.8 atbGetDtedPatch.
48
3.9.9 atbClearDtedPatch.
48
3.9.10 atbAllDtedPatches.
48
3.9.11 atbDtedPatchInfo.
48
3.9.12 atbDtedElev.
48
3.9.13 atbDtedPatchElev.
49
3.9.14 atbAzElMask.
49
3.9.15 atbDtedRes.
49
3.9.16 atbDtedLOSExist.
49
3.10 运动属性(Propagators)...
50
3.10.1 atbLambertFixedTime.
50
3.10.2 atbLambertMinEnergy.
50
3.10.3 atbLambertMinEccen.
50
3.10.4 atbKeplerProp.
50
3.10.5 atbJ2Prop.
51
3.10.6 atbJ4Prop.
51
3.10.7 atbLaunchProp.
52
3.10.8atbMissilePropDataFixedTime.
52
3.10.9atbMissilePropDataFixedAlt.
53
3.10.10atbMissilePropDataFixedDelta.
53
3.10.11atbMissilePropDataMinEnergy.
53
3.10.12 atbTLERead.
53
3.10.13 atbTLEGetAll.
54
3.10.14 atbTLEDelete.
54
3.10.15 atbTLEProp.
54
3.10.16 atbTLEEpoch.
54
3.10.17 atbTLEInfo.
54
3.11 导航精度(Navigation Accuracy)...
55
3.11.1 atbComputeDOP.
55
3.12 地图数据(Map Data)...
56
3.12.1 atbMapDetails.
56
3.12.2 atbPlotMapDetails.
56
3.13 覆盖网格(Coverage Grids)...
56
3.13.1 atbGetPolyHandle.
56
3.13.2 atbInsidePoly.
56
3.13.3 atbClearPolyHandle.
57
四、stkExec使用总结.
57
4.1 场景动画控制...
57
4.1.1 控制按钮...
57
五、示例.
57
4.1 卫星编队之构型设计...
57
4.2 使用心得...
58
STK/MATLAB接口为STK和MATLAB提供了双向通讯功能,在MATLAB工作区通过Connect模块以TCP/IP协议打开STK端口。 利用超过150个MATLAB命令增强STK的轨道、弹道、轨迹的分析能力,MexConnect还提供在MATLAB命令行直接使用任意 STK/Connect 命令的功能。MexConnect工具可以建立各种不同级别的STK对象,进行操作并生成报告。所有STK的数据,包括动态位置、速度和姿态数据,可以返回到MATLAB工作空间,用于数学分析。宇航工具箱让MATLAB用户可以输出多重坐标系,以及符合STK格式的星历和姿态文件用于VO模块的三维可视
化。另外此工具还可以使用STK附加模块的功能如STK/COMM(通信),STK/Coverage (覆盖)和STK/Radar(雷达)。
表1 STK模块
用法:stkSetDefaultHost('host:port')
用法:stkAutoSave('onOff','directory',period)
stkAutoSave('onOff')
说明:onOff- 'on' or 'off'
directory - string pathname of autosave directory
period -seconds between saves
用法:dir= stkHomeDir
用法:dir= stkHomeDir
用法:stkSetCurrentDir('directory')
用法:objNames= stkObjNames
objNames = stkObjNames(classCell)
说明:classCell- optional cell array of STK class names.
objNames- cell array of STK object names 2.2.4 stkSetCurrentDir
用法:stkTimerStart
用法:[split,total] = stkTimer
说明:split- elapsed time since last stkTimer command
total - elapsed time since last stkTimerStart command
用法:centBody= stkCentralBody('objPath')
说明:objPath - String name of object obtained fromstkObjNames.
If ommitted, the scenario central body is returned.
centBody - String name of object coordinate systemcentral body.
备注:更多内容参见stkObjNames、aeroToolbox。
用法:stkLoadObj('parentPath','class', 'fileName')
stkLoadObj('scenarioFileName')
说明:parentPath - Valid path, may be obtained fromstkObjNames.
class - Valid class name. Consult STK documentation for a
list of valid classes. Names are case-sensitive.
fileName - File path of object file
用法:stkSaveObj('objPath','dirName')
stkSaveObj('objPath')
说明:objPath - Valid path, may be obtained fromstkObjNames.
dirName - Directory path of object file. When omitted,
the default directory is used.
用法:stkNewObj('parentPath','class', 'name')
说明:parentPath - Valid path, may be obtained from stkObjNames.
class - Valid class name. Consult STK documentation for a
list of valid classes. Names are case-sensitive.
name -Name of new object
备注:创建场景时,语法为stkNewObj('Scenario',' ','Scenario1')
用法:stkUnload('objPath')
说明:objPath - Valid path, may be obtained fromstkObjNames.
用法:stkUnloadChildren('objPath')
说明:objPath - Valid path, may be obtained fromstkObjNames.
用法:stkRename('objPath','newName')
说明:objPath - Valid path, may be obtained fromstkObjNames.
newName -New instance name.
用法:timePeriod= stkTimePeriod('dateFormat')
timePeriod = stkTimePeriod('objPath', 'dateFormat')
说明:
objPath - Valid vehicle object path, defaults to scenario path.
timePeriod - Structure array with start andstop fields.
Each field contains a string date value.
dateFormat - Valid date format. Options are:
EPOCHSEC EPOCHSECOND
EPOCHMIN EPOCHMINUTE
EPOCHHR EPOCHHOUR
EPOCHDAY
GMT ZULU GMTSYSTEM
GREGLCL GREGORIANLOCAL GREGORIANLCL
GREGUTC GREGORIANUTC
GREGTAI GREGORIANTAI
GREGTDT GREGORIANTDT
GREGGPSTIME GREGGPS GREGORIANGPSTIME
GPSTIME GPS
JULDATE JULIANDATE
JULLCL JULIANLOCAL JULIANLCL
JULUTC JULIANUTC
JUL4 JULIAN4
JULIAN4UTC
JDATEOFF JDATEOFFSET JULDATEOFFSET
JULEPHEMDATE JULIANEPHEMERISDATE
JULIANEPHEM
JULTAI JULIANTAI
MISELAP MISSIONELAPSED
MODJULDATE MODIFIEDJULIANDATE
YYDDD
YYDDD.DDD
YYYYDDD
YYYYDDD.HHMMSS
YYYYMMDD
YYYYMMDD.DDD
YYYY/MM/DDTIME
YYYY/MM/DD
备注:更对内容参见stkConvertDate、stkObjNames
用法:[start,stop] = stkTimePeriodInSec(objPath)
[start, stop] = stkTimePeriodInSec
说明:objPath- valid object path, see stkObjNames. When
not provided, the scenario time period is returned.
start, stop - time in seconds
用法:result= stkValidObj('path')
说明:path - object path name
result - 1 if valid, 0 otherwise
用法:description= stkDescrip('objPath', 'shortLong')
说明:objPath - Valid path, may be obtained fromstkObjNames.
shortLong -Type of description to get, 'short' or 'long'.
用法:stkSetDescrip('objPath','shortLong', 'description')
说明:objPath - Valid path, may be obtained fromstkObjNames.
shortLong - Type of description to set, 'short' or'long'.
description - Description text.
用法:time= stkAnimTime
说明:time -current STK animation time (sec)
用法:epoch= stkEpoch('dateFormat')
说明:dateFormat - Valid date format.
epoch - string representation of scenarioepoch.
用法:stkSetEpoch('epoch','dateFormat')
说明:dateFormat - Valid date format.
epoch - string representation of scenario epoch.
用法:stkSetEpochInSec(newEpoch)
说明:newEpoch- number of seconds elapsed between current epoch
and the desired epoch.
用法:stkSyncEpoch
备注:STKand aeroToolbox maintain separate scenario epochs.
Thisfunction should be called anytime the STK epoch is changed
through mexConnect or via the STK GUI.
用法:newDate= stkConvertDate('date', 'format', 'newFormat')
用法:stkSetTimePeriod('start','stop', 'dateFormat')
stkSetTimePeriod('satpath', 'start', 'stop', 'dateFormat')
说明:satpath - satellite path name,defaults to scenario
start, stop - string dates
用法:stkTimePeriodInSec(start,stop)
说明:start, stop - time in seconds
用法:path= stkScenFilePath
说明:path - current STK scenariodirectory
用法:result= stkValidScen
说明:result - 1 if valid, 0 otherwise
用法:timePeriod= stkTimePeriod('dateFormat')
timePeriod =stkTimePeriod('objPath', 'dateFormat')
说明:objPath - Valid vehicle objectpath, defaults to scenario path.
timePeriod - Structure array with start and stopfields.
Each fieldcontains a string date value.
用法:[start,stop] = stkTimePeriodInSec(objPath)
[start, stop] = stkTimePeriodInSec
说明:objPath - valid object path, seestkObjNames. When
not provided,the scenario time period is returned.
start, stop - time inseconds
用法:stkSetTimePeriod('start','stop', 'dateFormat')
stkSetTimePeriod('satpath', 'start', 'stop', 'dateFormat')
说明:satpath - satellite path name,defaults to scenario
start, stop - string dates
用法:stkSetPropCart('objPath','propagator', 'coordSystem', ...
tStart, tStop,dt, orbitEpoch, pos, vel, coordEpoch)
说明:objPath - Valid path, may beobtained from stkObjNames.
propagator - 'TwoBody','J2Perturbation', 'J4Perturbation', 'HPOP' or 'PODS'
Thisparameter is case sensitive!
coordSystem - stringname of coordinate system, valid choices are:
'Fixed','J2000', 'MeanOfDate', 'MeanOfEpoch',
'TrueOfDate', 'TrueOfEpoch', 'B1950',
'TEMEOfDate', 'TEMEOfEpoch', 'AlignmentAtEpoch'.
Thisparameter is case sensitive!
tStart, tStop - times inepoch seconds.
dt - time step inseconds.
orbitEpoch - referencetime of orbit data, in scenario epoch seconds
pos - 3x1 vector ofpositions at reference time, meters
vel - 3x1 vector ofvelocity at reference time, meters/sec
coordEpoch - coordinatesystem epoch, required by all '...OfEpoch'
coordinatesystems.
用法:stkSetPropClassical('objPath','propagator', 'coordSystem', ...
tStart, tStop,dt, orbitEpoch, semimajorAxis, eccentricity,...
inclination,argOfPerigree, RAAN, meanAnomaly, coordEpoch)
说明:objPath - Valid path, may beobtained from stkObjNames.
propagator - 'TwoBody','J2Perturbation', 'J4Perturbation', 'HPOP' or 'PODS'
Thisparameter is case sensitive!
coordSystem - stringname of coordinate system, valid choices are:
'Fixed', 'J2000', 'MeanOfDate','MeanOfEpoch',
'TrueOfDate', 'TrueOfEpoch', 'B1950',
'TEMEOfDate', 'TEMEOfEpoch', 'AlignmentAtEpoch'.
Thisparameter is case sensitive!
tStart, tStop - times inepoch seconds.
dt - time step inseconds.
orbitEpoch - referencetime of orbit data, in scenario epoch seconds
coordEpoch - coordinatesystem epoch, required by all '...OfEpoch'
coordinatesystems.
semimajorAxis - units in meters
eccentricity - unitless
inclination - units in radians
argOfPerigree - units in radians
RAAN - units in radians
meanAnomaly - units in radians
用法:stkSetPropEqui('objPath','propagator', 'coordSystem', ...
tStart, tStop,dt, orbitEpoch, semimajorAxis, ...
h, k, p, q,meanLongitude, formulation, coordEpoch)
说明:objPath - Valid path, may beobtained from stkObjNames.
propagator - 'TwoBody','J2Perturbation', 'J4Perturbation', 'HPOP' or 'PODS'
Thisparameter is case sensitive!
coordSystem - string name ofcoordinate system, valid choices are:
'Fixed','J2000', 'MeanOfDate', 'MeanOfEpoch',
'TrueOfDate','TrueOfEpoch', 'B1950',
'TEMEOfDate','TEMEOfEpoch', 'AlignmentAtEpoch'.
Thisparameter is case sensitive!
tStart, tStop - times in epoch seconds.
dt - time step in seconds.
orbitEpoch - reference timeof orbit data, in scenario epoch seconds
coordEpoch - coordinatesystem epoch, required by all '...OfEpoch'
coordinatesystems.
semimajorAxis - units inmeters
h, k, p, q - unitless
meanLongitude - units inradians
formulation - string,'Posigrade' or 'Retrograde'
用法:stkSetPropSGP4('objPath', tStart,tStop, dt, tleInfo)
stkSetPropSGP4('objPath', tStart, tStop, dt, ...
'SSC','orbitEpoch', meanMotion, ...
eccentricity,inclination, argOfPerigree. ...
RAAN, meanAnomaly, meanMotionDot,meanMotionDotDot, bStar)
说明:objPath - Valid path, may beobtained from stkObjNames.
tStart, tStop - times inepoch seconds.
dt - time step in seconds.
tleInfo - tleInfo fromatbTLEInfo
SSC - U.S. Space SurveillanceCenter Catalog Number (as a char string)
orbitEpoch - string date,must be in YYDDD.SSSSSSS format
meanMotion - rev/day
eccentricity - unitless
inclination - units inradians
argOfPerigree - units inradians
RAAN - units in radians
meanAnomaly - units inradians
meanMotionDot
meanMotionDotDot
bStar - m^2/kg
用法:stkPropagate('satPath', tStart,tStop)
说明:satPath - Valid satellite path,may be obtained from stkObjNames.
tStart, tStop - times inepoch seconds.
用法:[pos, vel] =stkPosVelCBF('objPath', time)
说明:objPath - Vehicle or facilitypath, may be obtained from stkObjNames.
time - Scenario time (sec).
pos -Central Body Fixed position (meters).
vel -Central Body Fixed velocity (meters/sec).
备注:CBF coordinates may be convertedto any other system using
commands in the Aerospace Toolbox. The command stkCentralBody
may be used to obtain the central body name ofthe object.
用法:[cbiPos, cbiVel] = stkPosVelCBI('vehPath',time)
说明:vehPath - Vehicle path, may beobtained from stkObjNames.
time - Scenario time (sec).
cbiPos - Inertial position (meters).
cbiVel - Inertial velocity (meters/sec).
备注:CBI coordinates may be convertedto any other system using
commands in the Aerospace Toolbox. The command stkCentralBody
may be used to obtain the central body name ofthe object.
用法:[time, pos, vel, cb] =stkEphemerisCBF(objPath, dt)
[time, pos, vel, cb] =stkEphemerisCBF(objPath, dt, start, stop)
说明:objPath - valid STK object path
dt - time interval for data
start - starting time (sec)
stop - stop time (sec)
time - 1xN vector (sec)
pos - CBF cartesian position, 3xN (meters)
vel - CBF cartesian velocity, 3xN (meters/sec)
cb - central body name
用法:[time, pos, vel, cb] =stkEphemerisCBI(objPath, dt)
[time, pos, vel, cb] =stkEphemerisCBI(objPath, dt, start, stop)
说明:objPath - valid STK object path
dt - time interval for data
start - starting time (sec)
stop - stop time (sec)
time - 1xN vector (sec)
pos - CBF cartesian position, 3xN (meters)
vel - CBF cartesian velocity, 3xN (meters/sec)
cb - central body name
用法:stkSetEphemerisCBF(objPath, cb,time, pos, vel)
stkSetEphemerisCBF(objPath,cb, time, pos, vel, eFilePath)
说明:objPath - valid STK object path
cb -central body name
time - 1xN vector (sec)
pos -CBF cartesian position, 3xN (meters)
vel -CBF cartesian velocity, 3xN (meters/sec)
eFilePath - file name to create. Default is to create a file in the scenariodirectory named {objName}.e, where objName is derived from the objPath.
用法:stkSetEphemerisCBI(objPath, cb,time, pos, vel)
stkSetEphemerisCBI(objPath, cb, time, pos, vel, eFilePath)
说明:pos - CBI cartesian position, 3xN(meters)
vel - CBI cartesian velocity, 3xN (meters/sec)
用法:stkLoadEphemeris('objPath','fileName')
说明:objPath - Valid path, may beobtained from stkObjNames.
fileName - file name.
用法:stkSaveEphemerisCBF('objPath',timeStep, 'fileName')
stkSaveEphemerisCBF('objPath',timeStep, 'fileName', startTime, stopTime)
说明:objPath - Valid path, may beobtained from stkObjNames.
timeStep - Granularityof time steps (sec).
fileName - file name.
startTime - start time(sec).
stopTime - stop time(sec).
用法:stkSaveEphemerisCBF('objPath',timeStep, 'fileName')
stkSaveEphemerisCBF('objPath',timeStep, 'fileName', startTime, stopTime)
说明:objPath - Valid path, may beobtained from stkObjNames.
timeStep - Granularityof time steps (sec).
fileName - file name.
startTime - start time(sec).
stopTime - stop time(sec).
用法:stkSaveDynState('objPath','varName', 'fileName', dT)
说明:objPath - string name of vehicleor facility
varName - variable namefor MAT file
fileName - MAT file name
dT - time step ofdynamic state data
用法:dynState = stkDynState(objPath,dt)
说明:objPath - valid STK object path
dt - time interval for data
dynState - dynamic state data structure
用法:[time, quats, cb] =stkAttitudeCBF(objPath, dt)
[time, quats, cb] = stkAttitudeCBF(objPath, dt, start, stop)
说明:objPath - valid STK object path
dt - time interval for data
start - starting time(sec)
stop - stop time (sec)
time - 1xN vector (sec)
quats - CBF to bodyquaternions, 4xN
cb - central body name
用法:[time, quats, cb] =stkAttitudeCBI(objPath, dt)
[time,quats, cb] = stkAttitudeCBI(objPath, dt, start, stop)
说明:objPath - valid STK object path
dt - time interval for data
start -starting time (sec)
stop -stop time (sec)
time -1xN vector (sec)
quats -CBI to body quaternions, 4xN
cb -central body name
用法:stkSetAttitudeCBF(objPath, cb,time, quats)
stkSetAttitudeCBF(objPath, cb, time, quats, aFilePath)
说明:objPath - valid STK object path
cb - central body name
time -1xN vector (sec)
quats -CBF to body quaternions, 4xN
aFilePath - file name to create. Default is to
create a file in thescenario directory named
{objName}.a, whereobjName is derived from the
objPath.
用法:stkSetAttitudeCBI(objPath, cb,time, quats)
stkSetAttitudeCBI(objPath, cb, time, quats, aFilePath)
说明:objPath - valid STK object path
cb - central body name
time -1xN vector (sec)
quats -CBI to body quaternions, 4xN
aFilePath - file name to create. Default is to
create a file in thescenario directory named
{objName}.a, whereobjName is derived from the
objPath.
用法:stkLoadAttitude('objPath','fileName')
说明:objPath - Valid path, may beobtained from stkObjNames.
fileName - file name.
用法:stkSaveAttitudeCBF('objPath',timeStep, 'fileName')
stkSaveAttitudeCBF('objPath', timeStep, 'fileName', startTime, stopTime)
说明:objPath - Valid path, may beobtained from stkObjNames.
timeStep - Granularityof time steps (sec).
fileName - file name.
startTime - start time(sec).
stopTime - stop time(sec).
用法:stkSaveAttitudeCBI('objPath',timeStep, 'fileName')
stkSaveAttitudeCBI('objPath', timeStep, 'fileName', startTime, stopTime)
说明:objPath - Valid path, may beobtained from stkObjNames.
timeStep - Granularityof time steps (sec).
fileName - file name.
startTime - start time(sec).
stopTime - stop time(sec).
用法:stkSetAttBasic('satPath','attType', offset)
说明:satPath - string name ofsatellite
offset - either analignOffset or constraintOffset, depending on type (radians)
attType - attitude typestring. Valid choices are:
NADIRECIVEL
NADIRECFVEL
NADIRSUN
NADIRORBIT
ECIVELNADIR
ECFVELNADIR
SUNNADIR
SUNECLIPTIC
SUNECIZ
SUNOCCULT
用法:stkSetAttSpinSun('satPath', rate,offset, epoch)
说明:satPath - string name ofsatellite
rate - angular spin rate(rpm)
offset - angular(radians)
epoch - control phase ofspin (epoch sec)
备注:The body-fixed Z axis points tothe Sun and the satellite
rotates about the Sunvector. The spin rate is specified in revolutions
per minute; positive valuesindicate rotation in a right-handed
sense with respect to thespin axis. The initial orientation of
the satellite is specifiedby using the spin offset and offset
epoch fields. The spinoffset is an angular measure of the
difference between thesatellite orientation at the offset
epoch from the orientationachieved by orienting the Z axis.
用法:stkSetAttSpinNadir('satPath',rate, offset, epoch)
说明:satPath - string name ofsatellite
rate -angular spin rate (rpm)
offset- angular (radians)
epoch- control phase of spin (epoch sec)
备注:The satellite's Z axis is assumedto be the spin axis
and aligned to nadir. Thespin rate is specified in revolutions
per minute; positive valuesindicate rotation in a right-handed
sense with respect to thespin axis. The initial orientation of
the satellite is specifiedby using the spin offset and offset
epoch fields. The spinoffset is an angular measure of the
difference between thesatellite orientation at the offset
epoch from the orientationachieved by orienting the Z axis.
用法:stkSetAttYawNadir('satPath','PR', pitch, roll)
stkSetAttYawNadir('satPath', 'EULER', angle1, angle2, seq)
stkSetAttYawNadir('satPath', 'RaDec', RAAN, declination)
说明:satPath - string name ofsatellite
pitch, roll, angle1,angle2, RAAN, declination - yaw axis orientation angles (radians)
seq - Euler anglesequence, can be 12, 21, 31 or 32
备注:The satellite's Z axis is fixedin inertial space. The direction
of the satellite Z axis is specified throughtwo angles, as determined
by the Orientation Type. The satellite X axisis then constrained, via
motion in the yaw sense,toward the nadir direction. This profile is
useful for satellites inhighly elliptical orbits.
用法:stkSetAttSpinning('satPath',rate, offset, epoch, 'PR', pitch, roll)
stkSetAttSpinning('satPath', rate, offset, epoch, 'EULER', angle1,angle2, seq)
stkSetAttSpinning('satPath', rate, offset, epoch, 'RaDec', RAAN,declination)
说明:satPath - string name of satellite
rate - angular spin rate(rpm)
offset - angular(radians)
epoch - control phase ofspin (epoch sec)
pitch, roll, angle1,angle2, RAAN, declination - spin axis orientation angles (radians)
seq - Euler anglesequence, can be 12, 21, 31 or 32
备注:The satellite's Z axis is assumedto be the spin axis and
is fixed in inertialspace. The direction of the spin axis
is specified through twoangles, as determined by the
Orientation Type. The spinrate is specified in revolutions
per minute; positivevalues indicate rotation in a right-handed
sense with respect to thespin axis. The initial orientation of
the satellite is specifiedby using the spin offset and offset
epoch fields. The spinoffset is an angular measure of the
difference between thesatellite orientation at the offset
epoch from the orientationachieved by orienting the Z axis.
用法:stkSetAttFixed('satPath', 'YPR',yprVec, yprSeq)
stkSetAttFixed('satPath', 'EULER', eulerVec, eulerSeq)
stkSetAttFixed('satPath', 'QUAT', quaternion)
说明:satPath - string name ofsatellite
yprVec - CBI yaw, pitch,roll vector (3x1, radians)
yprSeq - rotationsequence, a string specifying
'RPY', 'RYP','PRY', 'PYR', 'YRP' or 'YPR'
eulerVec - CBI eulerangle vector (3x1, radians)
eulerSeq - rotationsequence, an integer specifying
121, 123, 131,132, 212, 213, 231, 232,
312, 313, 321or 323
quaternion - CBIorientation quaternion, 4x1
备注:Maintains a constant orientationof the body-fixed axes
with respect to the inertial coordinatesystem. The
orientation of the body-fixed axes isspecified by three
angles or a quaternion, as determined by theOrientation Type.
用法:stkAttOffset('objPath', offset)
说明:objPath - Valid path, may beobtained from stkObjNames.
offset - Angular offset (radians).
Offset is applied as anAlignOffset is attitude type is:
Sun alignment withnadir constraint
Sun alignment withecliptic normal constraint
Sun alignment withECI Z axis constraint
Sunalignment-occultation normal constraint
Offset is applied as anConstraintOffset is attitude type is:
Nadir alignment withECF velocity constraint
Nadir alignment withECI velocity constraint
Nadir alignment withSun constraint
ECI velocityalignment with nadir constraint
ECF velocityalignment with radial constraint
Nadir alignment withorbit normal constraint
There is no change ifattitude type is:
Yaw to nadir
Spinning
Spin about Nadir
Spin about Sun vector
Inertially fixed
用法:stkSetWaypoints('objPath','startTime', llaMat, speedVec)
stkSetWaypoints('objPath', 'startTime', llaMat, speedVec, accelVec)
stkSetWaypoints('objPath', 'startTime', llaMat, speedVec, wpFilePath)
stkSetWaypoints('objPath', 'startTime',llaMat, speedVec, accelVec, wpFilePath)
说明:objPath - valid STK object path
startTime - start time date string. See stkEpoch for valid formats.
llaMat - Matrix of LLA positions, 3xN, (radians andmeters)
speedVec - Vector of speeds Nx1 (meters/sec)
accelVec - Vector of accelerations, Nx1 (meters/sec^2)
wpFilePath - file nameto create. Default is to
create a file in thescenario directory named
{objName}.ga, whereobjName is derived from the
objPath.
用法:stkLoadWaypoints('objPath','fileName')
说明:objPath - Valid path, may beobtained from stkObjNames.
fileName - file name.
用法:stkSetGreatArcStart('gaVehPath',startTime)
说明:gaVehPath - string name of aircraft,groundVehicle or ship
startTime - time atfirst waypoint (epoch seconds)
用法:stkSetPropBallistic('missilePath',tLaunch, TOF, dT, launchLLA, impactLLA)
说明:missilePath- Valid missile path, may be obtained from stkObjNames.
tLaunch- launch time, epoch seconds
TOF- missile time of flight (seconds)
dT- time step in seconds.
launchLLA,impactLLA - geodetic lat/lon/alt vectors, [rad;rad;meters]
用法:[pos, vel] =stkPosVelCBF('objPath', time)
说明:objPath - Vehicle or facilitypath, may be obtained from stkObjNames.
time - Scenario time (sec).
pos - Central Body Fixed position (meters).
vel - Central Body Fixed velocity (meters/sec).
备注:CBF coordinates may be convertedto any other system using
commands in the AerospaceToolbox. The command stkCentralBody
may be used to obtain thecentral body name of the object.
用法:stkSetFacPosCBF('facPath', pos)
说明:facPath - Valid facility classpath, may be obtained from stkObjNames.
pos - Central Body Fixed position (3x1, inmeters).
备注:CBF coordinates may be obtainedfrom any other system using
commands in the AerospaceToolbox.
用法:stkSetFacPosLLA('facPath',llaPos)
说明:facPath -Valid facility class path, may be obtained from stkObjNames.
llaPos - Geodetic lat, long, alt position (3x1,[rad; rad; meters]),
or use the local terrain altitude by specifying
lat, long only (2x1, [rad; rad]).
备注:LLAcoordinates may be obtained from any other system using
commands in the Aerospace Toolbox.
用法:intervals = stkAccess('fromPath','toPath')
说明:fromPath, toPath - String name ofobjects obtained from stkObjNames.
intervals - Accessinterval times structure array with fields:
start - starttime of access interval
stop - stoptime of access interval
用法:[secData, secNames] =stkReport('objPath', 'rptStyle')
[secData, secNames] =stkReport('objPath', 'rptStyle', tStart, tStop, dT)
说明:objPath - String name of object obtained fromstkObjNames.
rptStyle - String name of existing STK report stylevalid for the object.
tStart - Start time for report (override styledefault).
tStop - Stop time for report (override styledefault).
dT - Time step of data (override style default).
secData - Cell array of report data, one cell perreport section.
secNames - Cell array of section names, one cell perreport section.
备注:Each section of an STK reportstyle is arranged into a fixed number
of rows and columns(MxN). Each cell array element ofsecData is a
1xN structure withfields:
name - the dataelement name, e.g. 'Time'
data - Mx1 matrixof element values
Use stkFindData toextract desired data elements from a report section.
Reports generated fromthis interface are unitless. This is adeparture from
STK reporting, whereusers may control the units of various dimensions. This
function returns all datain default internal units as follows:
Dimension Unit
--------------- ---------
Distance Meter
SmallDistance Meter
Time Second
Angle Radians
Mass Kilogram
Date EpochSec
Latitude Radians
Longitude Radians
Temperature Kelvin
Power Watt
Frequency Hertz
SmallTime Second
Ratio Decibel
Rcs Decibel
DopplerVelocity M/S
SARTimeResProd Meter*Sec
PowerDensity Db/Hz
PRF Hertz
Bandwidth Hertz
Duration Sec
Force Newton
用法:[secData, secNames] =stkAccReport('objPath', 'accObjPath', 'rptStyle')
[secData, secNames] =stkAccReport('objPath', 'accObjPath', 'rptStyle', tStart, tStop, dT)
说明:objPath - String name of object obtained fromstkObjNames.
accObjPath - String nameof access object.
rptStyle - String name ofexisting STK report style valid for the object.
tStart - Start time forreport (override style default).
tStop - Stop time forreport (override style default).
dT - Time step of data(override style default).
secData - Cell array ofreport data, one cell per report section.
secNames - Cell array ofsection names, one cell per report section.
Each section of an STKreport style is arranged into a fixed number
of rows and columns(MxN). Each cell array element ofsecData is a
1xN structure withfields:
name - the dataelement name, e.g. 'Time'.
data - Mx1 matrixof element values
用法:data = stkFindData(section,'name')
说明:section - report section, fromstkReport or stkAccReport
NOTE: stkReport and stkAccReport return a
cell array ofsections, this function must
be passed asingle element of the cell.
name - name of the dataelement, e.g. 'Time'.
data - data element
备注:assume vehPath is a validsatellite object path
[secData, secNames] =stkReport(vehPath, 'Beta Angle');
time = stkFindData(secData{1},'Time');
betaAngle =stkFindData(secData{1}, 'Beta Angle');
plot(time, betaAngle);
用法:conID = stkOpen('hostPortStr')
conID = stkOpen
说明:conID - STK/Connect handle.
hostPortStr - A string specifying the host andport for
theconnection. When not specified, the
hostPortStrwill be set to 'localhost:5001'.
用法:stkClose(conID)
stkClose('ALL')
stkClose
说明:conID STK/Connect connectionID obtained from stkOpen. Omitting this parameter will close the defaultconnection.
用法:rtn = stkExec(conID, 'conCmdStr')
说明:rtn - A character array containing the STK return
conID -STK/Connect connection ID, from stkOpen.
conCmdStr - Stringcontaining the Connect command
用法:rtnData = stkConnect(conID, 'command','objPath', 'cmdParamString')
说明:conID - connection ID, obtainedfrom stkOpen
command - STK/Connectcommand verb, see the STK/Connect documentation
objPath - hierarchicalname of object to receive command.
The function stkObjNamesis a useful source of names.
cmdParamString - astring containing the command parameters to be
processedby STK. This argument may be ommitted.
rtnData - string matrixof data returned by STK in repsonse to the command.
用法:epoch = atbGetEpoch
说明:epoch - structure with thefollowing fields:
year - e.g.2000
month - e.g. 1
days - e.g. 1
hours - e.g. 12
minutes - e.g.30
seconds - e.g.0
timeZone - e.g.'Z'
isDST - e.g. 0
The above examplecorresponds to the date 1 Jan 2000, 12:30:00.00 GMT
用法:atbSetEpoch(year, month, day,hour, minute, sec, 'timeZone', isDST)
atbSetEpoch(dateStruct)
atbSetEpoch(dateVec)
atbSetEpoch(dateVec,'timeZone', isDST)
说明:year - e.g. 2000
month - e.g. 1
day - e.g. 1
hour - e.g. 12
minute - e.g. 30
sec - e.g. 0
timeZone - e.g. 'Z'
isDST - e.g. 0
dateStruct - see atbGetEpoch for the format of this structure
dateVec - a Matlab datevector, see DATEVEC for more help
timeZone - a singlecharacter string, the default is 'Z'
isDST - a logical flag,the default is 0 (false)
The above examplecorresponds to the date 1 Jan 2000, 12:30:00.00 GMT
备注:This function sets the absolutedate corresponding to zero epoch seconds.
Inertial coordinatesystems are referenced to a particular date.
Certain functions withinthe aeroToolbox require input of a time
in seconds to indicatethe elapsed (relative) time since the coordinate
system epoch. This function sets the coordinate systemepoch.
用法:epochSec = atbDateToEpochSec(year, month, day, hour, minute, sec,'timeZone', isDST)
epochSec =atbDateToEpochSec(dateStruct)
epochSec =atbDateToEpochSec(dateVec)
epochSec =atbDateToEpochSec(dateVec, 'timeZone', isDST)
说明:year - e.g. 2000
month - e.g. 1
day - e.g. 1
hour - e.g. 12
minute - e.g. 30
sec - e.g. 0
timeZone - e.g. 'Z'
isDST - e.g. 0
dateStruct - seeatbGetEpoch for the format of this structure
dateVec - a Matlab datevector, see DATEVEC for more help
timeZone - a singlecharacter string, the default is 'Z'
isDST - a logical flag,the default is 0 (false)
The above examplecorresponds to the date 1 Jan 2000, 12:30:00.00 GMT
备注:This function returns the offsetin epoch seconds between the current
epoch and the inputdate. When a Matlab format dateVec isprovided as
the only input, thetimeZone is assumed to be 'Z' and isDST is assumed
to be false.
用法:date =atbEpochSecToDate(epochSec)
说明:
备注:This function returns theabsolute date corresponding to an offset
in seconds from thecurrent epoch.
用法: cbiPos = atbCbfToCbi('cbName', times,cbfPos)
[cbiPos, cbiVel] =atbCbfToCbi('cbName', times, cbfPos, cbfVel)
说明:cbName - Valid centralbody nam, e.g. 'Earth'
times - Length N vector of times for CBF pos andvel
cbfPos - 3xN matrix of CBF positions
cbfVel - 3xN matrix of CBF velocities
cbiPos - 3xN matrix of CBI positions
cbiVel - 3xN matrix of CBI velocities
备注:Converts position and velocity inthe central body fixed
coordinate system to aposition and velocity in the default
central body inertialcoordinate system at the provided times.
用法:T = atbCbfToCbiMtx('cbName',time)
说明:time - time in seconds
T - Coordinate transformation matrix
备注:Generates the transformationmatrix to convert a vector
in the Central BodyFixed (CBF) system to a vector in the
Central Body Inertial(CBI) system. Inputs are the central
body name and the time.
用法:T = atbCbfToLhMtx('cbName', lat,long)
说明:lat - Geodetic latitude
long - Geodetic longitude
T - Coordinatetransformation matrix
备注:Generates the transformationmatrix to convert a vector
in the Central BodyFixed (CBF) system to a vector in the
local horizontal (LH)system. Inputs are the geodetic
latitude and longitudeof the reference location.
用法: llaPos = atbCbfToLla('cbName', cbfPos)
[llaPos, llaRate] =atbCbfToLla('cbName', cbfPos, cbfVel)
说明:cbName - Valid central body name
cbfPos - CBF position, 3xN
cbfVel - CBF velocity, 3xN
llaPos - geodetic lat/long/alt, 3xN
llaRate - geodeticlat/long/alt rate, 3xN
备注:Determines the geodetic latitude,longitude, and altitude
and rates given acartesian position and velocity. The
cartesian vectors mustbe expressed in the central body
fixed coordinate system.
用法: llrPos = atbCbfToLlr(cbfPos)
[llrPos, llrRate] = atbCbfToLlr(cbfPos, cbfVel)
说明:cbfPos - CBF position, 3xN
cbfVel -CBF velocity, 3xN
llrPos -Geocentric lat/long/radius, 3xN
llrRate - Geocentric lat/long/radius rate, 3xN
备注:Determines the geocentriclatitude, longitude, and radius
and rates given thecartesian position and velocity. The
input cartesian vectorscan be in any coordinate system
and the output willrepresent the corresponding spherical coordinates.
用法:T = atbCbfToVvlhMtx(cbfPos,cbfVel)
说明:cbfPos - CBF position vector, 3x1
cbfVel - CBFvelocity vector, 3x1
T - Coordinate transformation matrix, 3x3
备注:Generates the transformationmatrix to convert a vector
in the input cartesiansystem to a vector in the Vehicle
Velocity LocalHorizontal (VVLH) system. Inputs are the
cartesian coordinatevector and velocity vector of the
vehicle. The VVLH local horizontal definition is based
on a spherical centralbody model.
用法: cbfPos= atbCbiToCbf('cbName', times, cbiPos)
[cbfPos, cbfVel] =atbCbiToCbf('cbName', times, cbiPos, cbiVel)
说明:cbName - Valid central body name
times - Length N vector of times for CBI pos andvel
cbiPos - 3xN matrix of CBI positions
cbiVel - 3xN matrix of CBI velocities
cbfPos - 3xN matrix of CBF positions
cbfVel - 3xN matrix of CBF velocities
备注:Converts position and velocityvectors in the default
central body inertialcoordinate system to a position
and velocity in thecentral body fixed coordinate system
at the provided time.
用法: toPos = atbCbiToCbi('fromCb', 'toCb',times, fromPos)
[toPos, toVel] =atbCbiToCbi('fromCb', 'toCb', times, fromPos, fromVel)
说明:fromCb, toCb - Valid central body names
times -Length N vector of times for CBF pos and vel
fromPos - 3xN matrix of original CBI positions
fromVel - 3xN matrix of original CBI velocities
toPos -3xN matrix of new CBI positions
toVel -3xN matrix of new CBI velocities
备注:Computes the inertial positionand velocity relative to the
"to" centralbody of an object whose inertial position and
velocity have beenspecified relative to the "from" central
body. This computation therefore accounts for boththe
difference in positionof the central bodies and the difference
in the orientations oftheir default inertial coordinate systems.
用法:T = atbCbiToCbiMtx('fromCB','toCB')
说明:T - Coordinate transformation matrix
备注:Generates the transformationmatrix to convert a vector
in one Central BodyFixed (CBF) system to a vector in
another Central BodyInertial (CBI) system. Inputs are the
two central body names
用法: cbfPos = atbLlaToCbf('cbName', llaPos)
[cbfPos, cbfVel] = atbLlaToCbf('cbName', llaPos,llaRate)
说明:cbName - Valid central body name
llaPos - Geodetic lat/long/alt, 3xN
llaRate - Geodeticlat/long/alt rate, 3xN
cbfPos - CBF position, 3xN
cbfVel - CBF velocity, 3xN
备注:Converts the geodetic latitude,longitude, and altitude
and rates to a cartesianposition and velocity. The
cartesian vectors willbe expressed in the central body
fixed coordinate system.
用法: cbfPos = atbLlrToCbf(llrPos)
[cbfPos, cbfVel] = atbLlrToCbf(llrPos,llrRate)
说明:llrPos - Geodetic lat/long/radius, 3xN
llrRate - Geodeticlat/long/radius rate, 3xN
cbfPos - CBF position, 3xN
cbfVel - CBF velocity, 3xN
备注:Converts the geocentric latitude,longitude, and radius
and rates to a cartesianposition and velocity. The
cartesian vectors will be expressed in thecentral body
fixed coordinate system.
用法:[names, descrips]=atbCbCoordinates('cb')
说明:cb - central body name
names - cell array ofcoordinate system names
descrips - cell array ofcoordinate system descriptions
备注:This function outputs thepossible coordinate systems which may
be converted betweenusing atbCoordXForm and atbCoordXFormMtx
用法:[ToPos, ToVel]=atbCoordXForm(time, 'FromCb', 'FromSystemName', FromEpoch,...
'ToCb', 'ToSystemName', ToEpoch,...
FromPos, FromVel)
说明:time - time offset from epoch inseconds of the FromPos and FromVel
Cb - central body names
SystemName - validcoordinate system name, obtained via atbCbCoordinates
Epoch - epochs for coordinatesystems, may be ignored (see below)
Pos - 3x1 positionvector (meters)
Vel - 3x1 velocityvector (meters) (optional)
备注:This function converts from onecoordinate system of one
central body to anothersystem of another central body.
Some coordinate systems require an epoch tofully define them,
in these cases, theEpoch inputs will be used, otherwise the
Epoch inputs will beignored. For example, the J2000 epoch is
intrinsic to thedefinition of the coordinate system and therefore
any input epoch will beignored. The various ...OfEpochcoordinate
systems are examples ofsystems that need an epoch.
用法:[TfmMtx, AngVelSysName, AngVel]= atbCoordXFormMtx('cb','FromSystemName', FromEpoch,'ToSystemName', ToEpoch)
说明:cb - central body name
SystemName - validcoordinate system name, obtained via atbCbCoordinates
Epoch - epochs forcoordinate systems, may be ignored (see below)
TfmMtx - transformationmatrix
AngVelSysName- name of the coordinate system in which the angular velocity is defined(optional)
AngVel - angularvelocity of the two systems (3x1) (optional)
备注:This function generates therotation matrix from one coordinate system
of a central body toanother system of the same central body.
Some coordinate systemsrequire an epoch to fully define them,
in these cases, theEpoch inputs will be used, otherwise the
Epoch inputs will beignored. For example, the J2000 epoch is
intrinsic to thedefinition of the coordinate system and therefore
any input epoch will beignored. The various ...Of Epochcoordinate
systems are examples ofsystems that need an epoch.
用法:rotQuat = atbAlignVecQuat(vec1A, vec1B)
rotQuat =atbAlignVecQuat(vec1A, vec1B,vec2A, vec3B)
说明:vec1A - a 3x1vector created by the user.
vec1B - a 3x1 vector created by the user.
vec2A -a 3x1 vector created by the user.
vec3B - a 3x1 vector created by the user.
rotQuat - a 4x1 vector quaternion
备注:Produces a quaternion for the transformation from coordinate systemA to coordinate system B where the vector 1 is known in both coordinate systems.Vectors 2A and 3B areused (if supplied) to resolve the ambiguity about the vector 1 direction. Afterthe
alignment of vector 1 is achieved, the components of vectors 2A and 3B which are perpendicular to vector 1are aligned. An example of this type of application would be to point a sensorboresight at a target while maintaining the minimum possible angle between
thesun vector and the solar panels on the satellite. None of the vectors need tobe unit vectors.
用法:cosMtx = atbEulerToMtx(angles,sequence)
说明:angles - 3x1 vector of Euler angles
sequence - 3 digit integer defining the order ofrotation.
(1-X, 2-Y, 3-Z). A common Euler angle is 313.
cosMtx - 3x3 direction cosine matrix.
备注:Computes a direction cosine matrix from a set of Euler angles. The direction cosine matrix gives the relationshipto transform from the reference coordinate system to the new coordinate system.
用法:quat = atbEulerToQuat(angles,sequence)
说明:angles - 3x1 vector of Euler angles
sequence - 3 digit integer defining the order ofrotation.
(1-X, 2-Y, 3-Z). A common Eulerangle is 313.
quat - 4x1 quaternion representingrotation
备注:Computes a rotation quaternionfrom a set of Euler angles.
用法:quat = atbMinRotQuat(vec1, vec2)
说明:vec1, vec2 - 3x1 position vectors
quat - 4x1 rotation quaternion
备注:Computes a quaternion to performthe minimum angle
rotation to align vec1 along vec2. This can
be useful in both active and passive applications.
An example of an active application would be the
generation of a maneuver quaternion to change the
pointing of a satellite. An example of a passive
application would be to determin the relationship
between two coordinate systems when a vector is
known in both systems. The quaternion would
represent the system1to system2 transformation.
用法:angles = atbMtxToEuler(cosMtx,sequence)
说明:cosMtx - 3x3 cosine matrix
sequence - 3 digit integer defining the rotation order.
(1-X,2-Y, 3-Z). A common Euler angle is 313.
angles - 3x1vector of Euler angles
用法:quat = atbMtxToQuat(cosMtx)
说明:cosMtx - 3x3 directional cosine matrix
quat -4x1 quaternion vector
用法:yprVec = atbMtxToYpr(cosMtx,sequence)
说明:cosMtx - 3x3direction cosine matrix
sequence -3 digit integer defining the rotation order
yprVec - YPR angles, 3x1
用法:cosMtx = atbQuatToMtx(quat)
说明:quat - 4x1 quaternion
cosMtx - 3x3 directional cosine matrix
用法:quatC = atbQuatXquat(quatA,quatB)
说明:quatA,quatB - input 4x1quaternions
quatC - 4x1 quaternion product
备注:Computes the resultant quaternion due to the combination of the twoinput quaternions. The input quaternionsmay be thought of as representing two different rotations. The resulting quaternion represents the newrotation which is equivalent to performing
the rotation of quaternion2 followedby the rotation of quaternion1. The order of the input quaternions is designedto resemble the way the rotations would appear on paper if you were writing outan equation. To rotate vector one through two rotations to produce
vector 2,you would write V2 = Q1 Q2 V1. Theresulting quaternion will have unit length.
用法:cosMtx = atbYprToMtx(yprVec,sequence)
说明:yprVec - 3x1 Yaw-Pitch-Roll angles
sequence - 3 digit integer defining the rotation order
(1-Roll, 2-Pitch, 3-Yaw). A Yaw-Pitch-Roll
sequencewould be 321.
cosMtx - 3x3 directional cosine matrix
备注:Builds a direction cosine matrixfrom yaw, pitch and roll
angles. The sequence variable is used to specify theorder
of the rotations(1-Roll, 2-Pitch, 3-Yaw). AYaw-Pitch-Roll
sequence would be 321.
用法:quat = atbYprToQuat(yprVec,sequence)
说明:yprVec - 3x1 yaw-pitch-roll vector
sequence - 3 digit integer defining the rotation order.
(1-Roll, 2-Pitch, 3-Yaw). A Yaw-Pitch-Roll
sequencewould be 321.
quat - 4x1 quaternion
备注:Builds a quaternion from yaw,pitch and roll angles. The
sequence variable isused to specify the order of the
rotations (1-Roll,2-Pitch, 3-Yaw). A Yaw-Pitch-Roll
sequence would be 321.
用法:interpQuat =atbInterpQuat(startQuat, endQuat, interpParam)
interpQuat =atbInterpQuat(startQuat, endQuat, interpParam, extraRot)
说明:startQuat - 4x1 quaternion
endQuat - 4x1 quaternion
interpParam - scalarinterp factor. 0 < interpParam < 1
extraRot - extra rotations.
interpQuat - 4x1 quaternion
备注:Interpolates two quaternionsassuming a constant rate of rotation
about a constant spin axis between the two endorientations.
用法:[pos, vel] =atbCbEphemeris('cbName', times)
说明:cbName - valid central body name,e.g. 'Earth'
times - vector of times to compute pos/vel for,length M
pos,vel - 3xM matricesof inertial pos/vel data
备注:This function computes theposition and velocity of the central
body in the defaultinertial coordinate system at the
specified time. The default inertial coordinate system
has its origin at thesolar system barycenter and axes that are
aligned with the J2000coordinate system.
用法:tanPts =atbCbGetTangent('cbName', posVec, normVec)
说明:cbName - Valid central body name, e.g. 'Earth'
posVec - 3x1 vector, CBF position
normVec - 3x1 vector,CBF normal direction
tanPts - 3x2 matrix, CBF points of tangency
备注:Computes vectors to the twotangent points on the
surface of the centralbody given a position vector specifying
a location outside ofthe central body and a normal vector.
The normal vector mustbe perpendicular to the position vector
and the two outputvectors will lie in the plane defined by the
normal vector. All vectors are expressed in central bodyfixed
coordinates.
用法:[gm, refDist, J2, J4] =atbCbGravParam('cbName')
说明:cbName - Valid central body name, e.g. 'Earth'
gm - gravitational parameter (meters^3 /sec^2)
refDistance - equatorialradius (meters)
J2 - zonal harmonic parameter (unitless)
J4 - zonal harmonic parameter (unitless)
用法:[alt, minAltVec, isBetween] =atbCbGrazeAlt('cbName', vec1, vec2)
[alt,minAltVec] = atbCbGrazeAlt('cbName', vec1, vec2)
alt = atbCbGrazeAlt('cbName', vec1, vec2)
备注:The input vectors are given inthe central body fixed
coordinate system. The function returns the minimum
altitude along the lineof sight between the two locations.
The CBF vector to theminimum altitude point is optionally computed.
An indication of whetheror not the minimum altitude point
is between the endpoints--as opposed to at an end point--
is provided if the isBetweenoutput is specified.
用法:angle = atbCbGrazeAngle('cbName',fromVec, toVec)
备注:The input vectors are given inthe central body fixed coordinate
system. The function returns the angle between theline of sight
vector and the closesttangent to the surface of the central body
which is coplanar withthe two input vectors. The sign of this
angle should be positiveif the line of sight does not intersect
the central body andnegative otherwise.
用法:[intx,intVec1, intVec2, mult1,mult2] = atbCbIntersect('cbName', posVec, dirVec)
[intx,intVec1, intVec2] =atbCbIntersect('cbName', posVec, dirVec)
intx = atbCbIntersect('cbName', posVec,dirVec)
说明:cbName - valid central body name, e.g. 'Earth'
posVec - 3x1 CBF position vector
dirVec - 3x1 CBF direction vector
intx - True/False
intVec* - Central bodyintercept points, CBF 3x1.
mult* - Multiplier to scale dirVec by to yield theintersections
备注:This function returns True if thevector specified by the
direction argument willintersect the central body and False
otherwise. The origin of the direction vector isspecified
by the positionvector. The optional vectors intx1 andintx2
are points ofintersection with the central body. Theoptional
outputs mult1 and mult2represent scalars by which the direction
vector is multiplied andthen added to the position vector to
yield the intersectionpoints. The multipliers may be positive
or negative depending onif the intersections occur in the
positive or negativedirection.
用法:radius = atbCbLclRadCen('cbName',lat, long)
说明:cbName - Valid central body name, e.g. 'Earth'
lat - Latitude
long - Longitude
radius - The central body radius
备注:This function returns the radiusof the central body
at the input geocentriclatitude and longitude. The
term geoocentric impliesthat the latitude and longitude
are measured based onthe vector from the origin of the central body.
用法:radius = atbCbLclRadDet('cbName',lat, long)
说明:cbName - Valid central body name, e.g. 'Earth'
lat - Latitude
long - Longitude
radius - The central body radius
备注:This function returns the radiusof the central body
at the input geodeticlatitude and longitude. The term
geodetic implies thatthe latitude and longitude are
measured from a vectornormal to the surface of the central body.
用法:dist = atbCbSurfDistCen('cbName',lat1, long1, lat2, long2)
说明:cbName - Valid central body name, e.g. 'Earth'
lat1, long1 - Latitudeand longitude of first location
lat2, long2 - Latitudeand longitude of second location
dist - Distance across the surface of thecentral body
备注:This function returns thedistance between two locations on
the surface of thecentral body as specified by the input
geocentric latitude andlongitude. The term geocentric implies
that the latitude andlongitude are measured based on the
vector from the originof the central body.
用法:dist = atbCbSurfDistDet('cbName',lat1, long1, lat2, long2)
说明:cbName - Valid central body name, e.g. 'Earth'
lat1, long1 - Latitudeand longitude of first location
lat2, long2 - Latitudeand longitude of second location
dist - Distance across the surface of thecentral body
备注:This function returns thedistance between two locations on
the surface of thecentral body as specified by the input
geodetic latitude andlongitude. The term geodetic implies
that the latitude andlongitude are measured from a vector
normal to the surface ofthe central body.
用法:normal =atbCbSurfNormCen('cbName', lat, long)
说明:cbName - Valid central body name, e.g. 'Earth'
lat - Latitude
long - Longitude
normal - 3x1 CBF vector representing the normal atthe lat/long
备注:This function computes a vectorwhich is normal to the surface
of the central body atthe specified geocentric latitude and
longitude. The term geocentric implies that the latitudeand
longitude are measuredbased on the vector from the origin of
the central body.
用法:normal =atbCbSurfNormDet('cbName', lat, long)
说明:cbName - Valid central body name, e.g. 'Earth'
lat - Latitude
long - Longitude
normal - 3x1 CBF vector representing the normal atthe lat/long
备注:This function computes a vectorwhich is normal to the surface
of the central body atthe specified geodetic latitude and
longitude. The term geodetic implies that the latitudeand
longitude are measuredbased on the vector normal to the
surface of the centralbody.
用法:[time, quats, epoch, cb] =atbReadAttitudeCBF('fileName')
说明:fileName - valid filename ofAttitude file
time - scenario time,1xN (sec)
quats - attitudequaternions, CBF to Body, 4xN
epoch - date string ofepoch, will be empty if not specified in file
cb - central body name,will be empty if not specified in file
用法:[time, quats, epoch, cb] =atbReadAttitudeCBF('fileName')
说明:同上
用法:atbWriteAttitudeCBF('fileName',timeVec, quatMat, 'epoch', 'cb')
说明:fileName - String file name, willbe overwritten if already exists
timeVec - Length N vector of times
quatMat - Matrix of CBF to body quaternions, 4xN
epoch - epoch of data, date string
cb - central body name
用法:atbWriteAttitudeCBI('fileName',timeVec, quatMat, 'epoch', 'cb')
说明:fileName - String file name, willbe overwritten if already exists
timeVec - Length N vector of times
quatMat - Matrix of CBI-to-body quaternions, 4xN
epoch - epoch of data, date string
cb - central body name
用法:[time, pos, vel, epoch, cb] =atbReadEphemerisCBF('fileName')
说明:fileName - valid filename ofephemeris file
time - scenario time,1xN (sec)
pos - CBF positionmatrix, 3xN (meters)
vel - CBF velocity matrix, 3xN (meters/sec)
epoch - date string ofepoch, will be empty if not specified in file
cb - central body name,will be empty if not specified in file
用法:[time, pos, vel, epoch, cb] =atbReadEphemerisCBI('fileName')
说明:fileName - valid filename ofephemeris file
time - scenario time,1xN (sec)
pos - CBI positionmatrix, 3xN (meters)
vel - CBI velocitymatrix, 3xN (meters/sec)
epoch - date string ofepoch, will be empty if not specified in file
cb - central body name,will be empty if not specified in file
用法:atbWriteEphemerisCBF('fileName',timeVec, posMat, velMat, 'epoch', 'cb')
说明:fileName - String file name, willbe overwritten if already exists
timeVec - Length N vector of times
posMat - Matrix of CBF positions, 3xN
velMat - Matrix of CBF velocities, 3xN
epoch - epoch of data, date string
cb - central body name
用法:atbWriteEphemerisCBI('fileName',timeVec, posMat, velMat, 'epoch', 'cb')
说明:fileName - String file name, willbe overwritten if already exists
timeVec - Length N vector of times
posMat - Matrix of CBI positions, 3xN
velMat - Matrix of CBI velocities, 3xN
epoch - epoch of data, date string
cb - central body name
用法:atbWriteWaypointFile('fileName','startTime', llaMat, speedVec, accelVec)
atbWriteWaypointFile('fileName', 'startTime', llaMat, speedVec)
说明:fileName - String file name, willbe overwritten if already exists
startTime - start time date string. See stkEpoch for valid formats.
llaMat - Matrix of LLA positions, 3xN, (radians andmeters)
speedVec - Vector of speeds Nx1 (meters/sec)
accelVec - Vector of accelerations, Nx1 (meters/sec^2)
用法: geom = atbGeometry(times, dynState)
[fromGeom, toGeom] = atbGeometry(times,fromDynState, toDynState)
说明:times - times to compute state
dynState - raw dynamic data generated by STKpropagators.
geom -array of currentData structures corresponding
toeach time.
备注:atbGeometry calculates absoluteand relative state
data for a single objector a pair of objects.
A dynState structurecontains a full description of
a vehicle's position,velocity and attitude over
the vehicle's lifetime.
atbGeometry interpolatesthe data in the dynState
structure for the timesgiven.
When two dynStates arepassed, relative geometry is
calculated in addition toabsolute geometry.
If a time is requestedthat is outside the time
interval of the dynState,geometry with each
field set to zero isreturned at the array index
corresponding to theinvalid time.
Users should test for azero'd currentData state
structure prior to usingit.
The currentData structurehas the following fields:
time in seconds from propagator epoch
pos in CBF cartesian coordinate (meters)
vel in CBF cartesian coordinates (m/s)
relPos in CBF cartesian coordinates (meters)
empty whencomputing absolute geometry only
relVel in CBF cartesian coordinates (m/s)
empty whencomputing absolute geometry only
range in meters
timeDelay in seconds
cbfToBody transfomation matrix from CBF to
object bodyframe
cb central body name, i.e. 'Earth'
isDir whether to position vectors represent
a directionas opposed to an
absoluteposition (Stars use this)
The atbFlatten command may beused to easily extract a given
field of a geometry structurearray.
SEE ALSO atbFlatten
EXAMPLE
Assume the user has generated two aircraft, ac1 and ac2 withoverlapping time intervals.
try the following commands:
minTime =max([min(ac1.dynState.times) min(ac2.dynState.times)]);
maxTime = min([max(ac1.dynState.times)max(ac2.dynState.times)]);
times = linspace(minTime,maxTime);
geom = atbGeometry(times,ac1.dynState, ac2.dynState);
pos =atbFlatten(geom,'pos');
lla =atbCbfToLla(geom(1).cb, pos);
lat = lla(1,:);
long = lla(2,:);
plot(long*180/pi,lat*180/pi, '+');
vel = atbFlatten(geom,'vel');
relPosCBF =atbFlatten(geom, 'relPos');
len = max(size(geom));
az = zeros(1, len);
el = zeros(1, len);
for k=1:len
relPosVVLH =atbCbfToVvlhMtx(pos(:,k), vel(:,k)) ...
*relPosCBF(:,k);
az(k) =atan2(-relPosVVLH(2), relPosVVLH(1));
el(k) = pi/2 -acos(relPosVVLH(3)/norm(relPosVVLH));
end
figure;
plot(az*180/pi,el*180/pi, '+');
用法:llaPos = atbGenGreatArc('cb',fromLLA, toLLA, angRes)
说明:cb - central bodyname
fromLLA - 3x1 LLA vector [rad;rad;meters].
toLLA - 3x1 LLA vector [rad;rad;meters].
angRes - angular resolution (rad)
llaPos - 3xN LLA vector of intermediate points
用法:dynState = atbCreateDynStateCBF('cb', posVelTimes, cbfPos, cbfVel,quatTimes, cbfQuat, angVel)
dynState = atbCreateDynStateCBF('cb',posVelTimes, cbfPos, cbfVel, quatTimes, cbfQuat)
说明:cb - valid central body name,i.e. 'earth'
posVelTimes - 1xN lengthtime array for pos and vel data
cbfPos - 3xN CBF position array [x;y;z] (meters)
cbfVel - 3xN CBF velocity array [vx;vy;vz](m/sec)
quatTimes - 1xM time array for attitude data
cbfQuat - 4xM attitude quaternion arrayrepresenting the rotation
from theCBF frame to the objects body axes frame
angVel - optional 3xM angular velocity arrayrepresenting the rotation rate
around eachbody frame axis [rx;ry;rz] (rad/sec). The default is
fornon-rotating objects in which case geometry calculations
willinterpolate the quaternions.
用法:dynState = atbCreateDynStateCBI('cb', posVelTimes, cbiPos, cbiVel,quatTimes, cbiQuat, angVel)
dynState = atbCreateDynStateCBI('cb',posVelTimes, cbiPos, cbiVel, quatTimes, cbiQuat)
说明:cb - valid central body name,i.e. 'earth'
posVelTimes - 1xN lengthtime array for pos and vel data
cbiPos - 3xN CBI position array [x;y;z] (meters)
cbiVel - 3xN CBI velocity array [vx;vy;vz](m/sec)
quatTimes - 1xM time array for attitude data
cbiQuat - 4xM attitude quaternion arrayrepresenting the rotation
from theCBI frame to the objects body axes frame
angVel - optional 3xM angular velocity array representing the rotation rate
around eachbody frame axis [rx;ry;rz] (rad/sec). The default is
fornon-rotating objects in which case geometry calculations
will interpolate the quaternions.
用法:quats = atbLhQuatCen(cbPos)
quats =atbLhQuatCen(cbPos, cbVel)
说明:cbPos - 3xN array of positionvectors [x;y;z] (meters)
cbVel - optional 3xNvelocity array [vx.vy;vz] (m/s).
Specification ofthis parameter will generate
a coordinatesystem with the X axis aligned with
the velocityvector. The default is to generate
a body frame with its X axis parallel to the
central bodyequator and its Y axis pointing
to the centralbody north pole.
quats - rotation matrixfrom CB coordinates into a body
frame with its XYplane perpendicular to the
CB positionvector.
用法:quats = atbLhQuatCBFDet('cbName',cbfPos)
quats =atbLhQuatCBFDet('cbName', cbfPos, cbfVel)
说明:cbName - valid central body name,e.g. 'earth'
cbfPos - 3xN array ofCBF position vectors [x;y;z] (meters)
cbfVel - optional 3xNCBF velocity array [vx.vy;vz] (m/s).
Specification ofthis parameter will generate
a coordinatesystem with the X axis aligned with
the velocityvector. The default is to generate
a body frame withits X axis parallel to the
central bodyequator and its Y axis pointing
to the centralbody north pole.
quats - rotation matrix from CBF coordinates into abody
framewith its XY plane tangent to the central
bodysurface.
用法:v = atbFlatten(s, 'field')
[v, fs] =atbFlatten(s, 'field')
说明:s - multidimension structure of length m
field - a fieldname of swith length n
v - flatten'd matrix of size m x n, the rows
of whichrepresent each field of s
fs - the size of each field. n = fs(1) * fs(2).
useful when thefield is a matrix.
Every field must have thesame length.
用法:delElems = atbOrbCartToDel(pos,vel, gravParam)
说明:pos -inertial cartesian position vector, 3x1, meters
vel - inertial cartesian velocity vector,3x1, meters/sec
gravParam - scalargravitational paramter, see atbCbGravParam
delElems - Delaunayorbit element set structure
This structurehas the following fields:
H - zcomponent of angular momentum
G - angularmomentum
L - sqrt(mu* a)
h - rightascension of ascending node (rad)
g - argument of perigree (rad)
l - meananomaly (rad)
备注:This function errors when themagnitude of eccenVec > 1, where
eccenVec = c1*pos -c2*vel
c1 = norm(vel)^2 /gravParam - 1/norm(pos)
c2 = dot(pos, vel) / gravParam
用法:equiElems = atbOrbCartToEqui(pos,vel, gravParam)
说明:pos -inertial cartesian position vector, 3x1, meters
vel - inertial cartesian velocity vector,3x1, meters/sec
gravParam - scalargravitational paramter, see atbCbGravParam
equiElems - equinoctialorbit element set structure
This structurehas the following fields:
a -semimajor axis length (meters)
h - e *sin(omegaBar) (unitless)
k - e *cos(omegaBar) (unitless)
p -tan(i/2) * sin(raan) (unitless)
q -tan(i/2) * cos(raan) (unitless)
lambda -mean longitude (rad)
isPosigrade - alternative is retrograde
Where:
e - orbiteccentricity
i - orbitinclination
raan -right ascension of ascending node
omegaBar -argument of perigree + raan for posigrade or
argument of perigree - raan for retrograde
备注:This function will generate anerror if:
2.0 / norm(pos) -norm(vel)^2 / gravParam < 0
用法:modElems = atbOrbCartToMod(pos,vel, gravParam)
说明:pos -inertial cartesian position vector, 3x1, meters
vel - inertial cartesian velocity vector,3x1, meters/sec
gravParam - scalargravitational paramter, see atbCbGravParam
modElems - modifiedorbit element set structure
This structurehas the following fields:
rp -periapsis radius (meters)
e -eccentricity (unitless)
i -inclination (rad)
raan -right ascension of ascending node (rad)
ap -argument of periapsis (rad)
ta - trueanomaly (rad)
用法:sphereElems =atbOrbCartToSphere(pos, vel)
说明:pos -inertial cartesian position vector, 3x1, meters
vel - inertial cartesian velocity vector,3x1, meters/sec
sphereElems - sphericalorbit element set structure
Thisstructure has the following fields:
ra -right ascension (rad)
dec - declination (rad)
r -radius (meters)
fpa -horizontal flight path angle (rad)
az -flight path aximuth (rad)
v -speed (meters/sec)
用法:mixedElems =atbOrbCartToMixedSphere('cb', time, pos, vel)
说明:cb -central body name, e.g. 'Earth'
time - coordinate time (seconds)
pos -inertial cartesian position vector, 3x1, meters
vel - inertial cartesian velocity vector,3x1, meters/sec
mixedElems - mixedspherical orbit element set structure
This structure has the following fields:
lon -longitude (rad)
lat -latitude (rad)
alt - altitude (meters)
fpa -horizontal flight path angle (rad)
az -flight path aximuth (rad)
v -speed (meters/sec)
用法:[pos, vel] =atbOrbDelToCart(delElems, gravParam)
用法:[pos, vel] =atbOrbEquiToCart(equiElems, gravParam)
用法:[pos, vel] =atbOrbDelToCart(delElems, gravParam)
用法:[pos, vel] =atbOrbDelToCart(delElems, gravParam)
用法:[pos, vel] =atbOrbDelToCart(delElems, gravParam)
用法:trueAnom =atbOrbEccToTrue(eccAnom, eccentricity)
说明:eccAnom - eccentric anomaly (rad)
eccentricity - unitless
trueAnom - true anomaly(rad)
用法:eccAnom =atbOrbTrueToEcc(trueAnom, eccentricity)
说明:trueAnom - true anomaly (rad)
eccentricity - unitless
eccAnom - eccentricanomaly (rad)
用法:trueAnom =atbOrbMeanToTrue(meanAnom, eccentricity)
说明:meanAnom - mean anomaly (rad)
eccentricity - unitless
trueAnom - true anomaly(rad)
用法:meanAnom =atbOrbTrueToMean(trueAnom, eccentricity)
说明:trueAnom - true anomaly (rad)
eccentricity - unitless
meanAnom - mean anomaly(rad)
用法:raan = atbOrbLanToRaan('cbName',lan, curTime, tpan)
说明:cbName - valid central body name,e.g. 'Earth'
lan - longitude of ascending node (rad)
curTime - current time(sec)
tpan - time pastascending node (sec)
raan - right ascensionof ascending node (rad)
用法:lan = atbOrbRaanToLan('cbName',raan, curTime, tpan)
说明:cbName - valid central body name,e.g. 'Earth'
raan - right ascensionof ascending node (rad)
curTime - current time(sec)
tpan - time pastascending node (sec)
lan - longitude ofascending node (rad)
用法:period = atbOrbPeriRadToPeriod(perigreeRad,eccentricity, gm)
说明:perigreeRad - perigree radius(meters)
eccentricity - unitless
gm - gravitationalparameter, see atbCbGravParam
period - orbit period(sec)
用法:perigreeRad =atbOrbPeriodToPeriRad(period, eccentricity, gm)
说明:perigreeRad - perigree radius(meters)
eccentricity - unitless
gm - gravitationalparameter, see atbCbGravParam
period - orbit period(sec)
用法:semimajorAxis =atbOrbPeriRadToSMajAxis(perigreeRad, eccentricity)
说明:perigreeRad - perigree radius(meters)
eccentricity - unitless
semimajorAxis -semimajor axis length (meters)
用法:perigreeRad =atbOrbSMajAxisToPeriRad(semimajorAxis, eccentricity)
说明:perigreeRad - perigree radius(meters)
eccentricity - unitless
semimajorAxis -semimajor axis length (meters)
用法:trueAnom = atbOrbTPANToTrue(tpan,argOfPerigree, sma, eccentricity, gm)
说明:tpan - time past ascending node(sec)
argOfPerigree - argumentof perigree (rad)
sma - semimajor axislength (meters)
eccentricity - unitless
gm - gravitationalparameter, see atbCbGravParam
trueAnom - true anomaly(rad)
用法:tpan = atbOrbTrueToTPAN(trueAnom,argOfPerigree, sma, eccentricity, gm)
说明:tpan - time past ascending node(sec)
argOfPerigree - argumentof perigree (rad)
sma - semimajor axislength (meters)
eccentricity - unitless
gm - gravitationalparameter, see atbCbGravParam
trueAnom - true anomaly(rad)
用法:trueAnom = atbOrbTPPToTrue(tpp,sma, eccentricity, gm)
说明:tpp - time past perigree (sec)
sma - semimajor axislength (meters)
eccentricity - unitless
gm - gravitationalparameter, see atbCbGravParam
trueAnom - true anomaly(rad)
用法:tpp = atbOrbTrueToTPP(trueAnom,sma, eccentricity, gm)
说明:tpp - time past perigree (sec)
sma - semimajor axislength (meters)
eccentricity - unitless
gm - gravitationalparameter, see atbCbGravParam
trueAnom - true anomaly(rad)
用法:typeInfo =atbCbListDtedTypes('cb')
说明:cb - central bodyname
typeInfo - structure array with following fields:
id - terraintype string, possible values are:
MRAS
NIMADMED
NIMAFILE
MTOP
DEM
XTRA
MOLA
CONVERTEDMOLA
provider
formalName
fileSuffix
用法:[sources, rect] =atbCbListDted('cb')
说明:cb - central bodyname
sources - cell array of source file names
rect - matrix of boundarys [minLon maxLonminLat maxLat] for each source (rad)
用法:atbCbAddDtedSource('cb', 'type','filePath')
说明:cb - central bodyname
type - valid terrain file type, choices are:
MRAS
NIMADMED
NIMAFILE
MTOP
DEM
XTRA
MOLA
CONVERTEDMOLA
filePath - full file path
用法:atbCbDtedSourceUI
备注:Associates terrain files withEarth.
用法:atbLoadNimaDted(rootFolder,wildcard)
说明:rootFolder - string name of theroot folder to recurse
wildcard - optional filename filter, default is '*.dt*'
用法:atbCbRemDtedSource('cb','fileName')
说明:cb - central bodyname
fileName - a string or cell array of strings
use thestring 'ALL' to remove all files
useatbCbListDted to obtain an array of loaded files
用法:sources =atbCbGetDtedSourceForPos('cbName', lat, lon)
说明:cbName - valid central body name,e.g. 'earth'
lat - geodetic latitude(radians)
lon - geodetic longitude(radians)
sources - cell array ofterrain sources with boundaries encompassing lat/lon
用法:h = atbGetDtedPatch('cb', minLon,maxLon, minLat, maxLat)
h =atbGetDtedPatch('cb', rect)
说明:cb - central bodyname
minLon - minimum longitude of bounding box (rad).
maxLon - maximum longitude of bounding box (rad).
minLat -minimum latitude of bounding box (rad).
maxLat - maximum latitude of bounding box (rad).
rect -1x4 array [minLon maxLon minLat maxLat] (rad).
h - handle to the terrain patch.
use atbClearDtedPatch to clear the patch frommemory.
用法:atbClearDtedPatch(h)
说明:h - terrain patch handle obtained fromatbGetDtedPatch
用法:hVec = atbAllDtedPatches
说明:hVec - terrain patch handles
用法:[rect, res] = atbDtedPatchInfo(h)
说明:h - terrain patch handle(s)
rect - matrix of boundarys [minLon maxLonminLat maxLat] for each handle
res - resolution of each handle [longReslatRes] (rad)
用法:altMN = atbDtedElev('cbName', lat, lon)
altN = atbDtedElev('cbName', latLon)
说明:cbName - valid central body name
lat - MxN latitude array (rad)
lon - MxN longitude array (rad)
latLon -2xN lat and lon array [lat;lon] (rad)
altMN - MxN altitude (meters)
altN - 1xN altitude vector (meters)
用法:altMN = atbDtedPatchElev(h, lat, lon)
altN = atbDtedPatchElev(h, latLon)
说明:h - terrain patch handle obtianed fromatbGetDtedPatch
lat - MxN latitude array (rad)
lon - MxN longitude array (rad)
latLon - 2xN lat and lon array [lat;lon] (rad)
altMN - MxN altitude (meters)
altN - 1xN altitude vector (meters)
用法:[az, maxEl, riseEl, riseDist] =atbAzElMask('cb', posLLA, NAz)
说明:cb -central body name
posLLA - 3x1 LLA observer position vector[rad;rad;meters].
NAz - number of azimuth points
az - NAz x 1 vector of azimuths (rad)
maxEl - NAz x 1 vector of maximum elevationsalong az (rad)
risEl - NAz x 1 cell array of intermediateelevations along az (rad)
用法:res = atbDtedRes('cb', lat, lon)
说明:cb -central body name
lat - latitude (rad)
lon - longitude (rad)
res - resolution of DTED data at lat/lon (rad)
用法:losAngle = atbDtedLOSExist('cb',fromLLA, toLLA)
说明:cb - central bodyname
fromLLA - 3x1 LLA vector [rad;rad;meters].
toLLA - 3x1 LLA vector [rad;rad;meters].
losAngle - angle between the maximum terrainelevation point
between thepoints and the direct line of sight
between thepoints. A positive number indicates the
terrain does notobstruct the line of sight.
用法:startVel =atbLambertFixedTime(startPos, finalPos, gm, deltaTime)
说明:startPos - 3x1 starting position [x;y;z] (meters)
finalPos - 3x1 final position [x;y;z] (meters)
gm - gravitational parameter (meters^3 /sec^2)
deltaTime - time to movefrom start to final pos
startVel - 3x1 starting velocity vector [vx;vy;vz](m/s)
备注:Computes the Lambert targetingalgorithm to design a two-body
trajectory between theinitial and final positions.
用法:[startVel, deltaTime] =atbLambertMinEnergy(startPos, finalPos, gm)
[startVel, deltaTime] =atbLambertMinEnergy(startPos, finalPos, gm, longWayFlag)
说明:startPos - 3x1 starting position [x;y;z] (meters)
finalPos - 3x1 final position [x;y;z] (meters)
gm - gravitational parameter (meters^3 /sec^2)
longWayFlag - flag tocompute the alternate long way around the orbit.
The defaultis the short way around.
startVel - 3x1 starting velocity vector [vx;vy;vz](m/s)
deltaTime - time to movefrom start to final pos
用法:[startVel, deltaTime] =atbLambertMinEccen(startPos, finalPos, gm)
[startVel, deltaTime] =atbLambertMinEccen(startPos, finalPos, gm, longWayFlag)
说明:startPos - 3x1 starting position [x;y;z] (meters)
finalPos - 3x1 final position [x;y;z] (meters)
gm - gravitational parameter (meters^3 /sec^2)
longWayFlag - flag tocompute the alternate long way around the orbit.
The defaultis the short way around.
startVel - 3x1 starting velocity vector [vx;vy;vz](m/s)
deltaTime - time to movefrom start to final pos
备注:Computes the Lambert targetingalgorithm to design a two-body
trajectory between theinitial and final positions.
用法:[pos, vel, accel] =atbKeplerProp(startPos, startVel, gm, times)
说明:startPos - 3x1 starting position [x;y;z] (meters)
startVel - 3x1 starting velocity [vx;vy;vz](meters/sec)
gm - gravitational parameter (meters^3 /sec^2)
times - N length vector of times at which tocompute the orbit.
The first timein the vector is considered to be the start time.
pos - 3xN orbit position [x;y;z] (meters)
vel - 3xN orbit velocity [vx;vy;vz] (m/s)
accel - 3xN orbit acceleration [ax;ay;az] (m^2/s)
备注:Propagates a two-body trajectoryfrom the given initial conditions.
用法:[pos, vel, accel] =atbJ2Prop(startPos, startVel, gm, eccRad, J2, times)
说明:startPos - 3x1 starting position [x;y;z] (meters)
startVel - 3x1 starting velocity [vx;vy;vz](meters/sec)
gm - gravitational parameter (meters^3 /sec^2)
eccRad - equatorial radius (meters)
J2 - zonal harmonic coefficient (unitless)
times - N length vector of times at which tocompute the orbit.
The first timein the vector is considered to be the start time.
pos - 3xN orbit position [x;y;z] (meters)
vel - 3xN orbit velocity [vx;vy;vz] (m/s)
accel - 3xN orbit acceleration [ax;ay;az](m^2/s)
备注:Propagates a two-body trajectoryfrom the given initial conditions.
The propagator uses afirst order J2 perturbation algorithm which models
only the secular effectson the orbital elements. The output positions,
velocities andaccelerations are in the same inertial coordinate system
as the inputelements. There is an implicitassumption in this algorithm
that the central body isin a simple spin about its Z axis and that the
inertial and central bodyfixed Z axes are aligned.
用法:[pos, vel, accel] =atbJ4Prop(startPos, startVel, gm, eccRad, J2, J4, times)
说明:startPos - 3x1 starting position [x;y;z] (meters)
startVel - 3x1 starting velocity [vx;vy;vz] (meters/sec)
gm - gravitational parameter (meters^3 /sec^2)
eccRad - equatorial radius (meters)
J2 - zonal harmonic coefficient (unitless)
J4 - zonal harmonic coefficient (unitless)
times - N length vector of times at which tocompute the orbit.
The first timein the vector is considered to be the start time.
pos - 3xN orbit position [x;y;z] (meters)
vel - 3xN orbit velocity [vx;vy;vz] (m/s)
accel - 3xN orbit acceleration [ax;ay;az](m^2/s)
备注:Propagates a two-body trajectoryfrom the given initial conditions.
The propagator uses asecond order J2/J4 perturbation algorithm which
models only the seculareffects on the orbital elements. J2 effects are
considered to the secondorder and J4 effects are considered to the first
order. The outputpositions, velocities and accelerations are in the same
inertial coordinatesystem as the input elements. There isan implicit
assumption in thisalgorithm that the central body is in a simple spin about
its Z axis and that theinertial and central body fixed Z axes are aligned.
用法:[pos, vel] = atbLaunchProp('centBody', launchLLA, burnoutLLA,burnoutSpeed, retroFlag, times)
说明:centBody - valid central body name, i.e. 'Earth'
launchLLA - 3x1 LatLonAlt vector [rad;rad;m]
burnoutLLA - 3x1 LatLonAlt vector [rad;rad;m]
burnoutSpeed - burnoutspeed (meters/sec)
retroFlag - retrograde flag
times - N length vector of times at which tocompute the orbit.
pos - 3xN orbit position [x;y;z] (meters)
vel - 3xN orbit velocity [vx;vy;vz] (m/s)
备注:Propagates an ellipticaltrajectory from the launch LLA point
to the burnout LLApoint, generating a velocity profile which is zero at
launch and burnoutSpeedat burnout. The burnout velocity vectorwill
be perpendicular to theburnout position vector. The initialvelocity
vector will be parallelto the launch positition vector. Thetrajectory
will be generated in theplane formed by the launch and burnout position
vectors.
用法:[posCBI, velCBI, apogeeAlt, deltaV] = atbMissilePropDataFixedTime('centBody',startPosCBF, endPosCBF, startTime, longWay, deltaTime)
说明:centBody - valid central body name, i.e. 'Earth'
startPosCBF - 3x1 CBF position vector [x;y;z] (meters)
endPosCBF - 3x1 CBF position vector [x;y;z] (meters)
startTime - time corresponding to startPosCBF (sec)
longWay - flag to generate the trajectory thelong way around the central body
deltaTime - time of flight (sec)
posCBI - 3x1 initial position [x;y;z] (meters)
velCBI -3x1 initial velocity [vx;vy;vz] (m/s)
apogeeAlt - apogee altitude of the trajectory(meters)
deltaV - velocity impulse required fortrajectory(m/s)
备注:Determines the initial inertialposition and velocity
for a missile trajectorybetween two CBF position vectors.
Use atbLambertMinEccento determine the minimum valid time.
用法:[posCBI, velCBI, deltaTime, deltaV] =atbMissilePropDataFixedAlt('centBody', startPosCBF, endPosCBF, startTime,longWay, apogeeAlt)
说明:centBody - valid central body name, i.e. 'Earth'
startPosCBF - 3x1 CBF position vector [x;y;z] (meters)
endPosCBF - 3x1 CBF position vector [x;y;z] (meters)
startTime - time corresponding to startPosCBF (sec)
longWay - flag to generate the trajectory thelong way around the central body
apogeeAlt - apogee altitude of the trajectory(meters)
posCBI - 3x1 initial position [x;y;z] (meters)
velCBI -3x1 initial velocity [vx;vy;vz] (m/s)
deltaTime - time of flight (sec)
deltaV - velocity impulse required fortrajectory(m/s)
备注:Determines the initial inertial position and velocity for a missiletrajectory between two CBF position vectors.
用法:
说明:
用法:[posCBI, velCBI, deltaTime,apogeeAlt, deltaV] = atbMissilePropDataMinEnergy ( 'centBody', startPosCBF, endPosCBF, startTime, longWay)
说明:centBody - valid central body name, i.e. 'Earth'
startPosCBF - 3x1 CBF position vector [x;y;z] (meters)
endPosCBF - 3x1 CBF position vector [x;y;z] (meters)
startTime - time corresponding to startPosCBF (sec)
longWay - flag to generate the trajectory thelong way around the central body
posCBI - 3x1 initial position [x;y;z] (meters)
velCBI - 3x1 initial velocity [vx;vy;vz] (m/s)
deltaTime - time of flight (sec)
apogeeAlt -apogee altitude of the trajectory (meters)
deltaV - velocity impulse required fortrajectory(m/s)
用法:vehNames = atbTLERead('fileName','prefix')
说明:fileName - full path to TLE file in a formatreadable by STK
prefix - string to prepend to the name of eachTLE in the file
vehNames - cell array of loaded TLE names
备注:Extracts TLEs from the specifiedfile and store for use by atbTLEProp
Consult STKdocumentaiton for further information on TLE files
用法:vehNames = atbTLEGetAll
说明:vehNames - cell array of all loaded TLE names
备注:Lists all TLEs available for useby atbTLEProp
Consult STKdocumentaiton for further information on TLE files
用法:atbTLEDelete(vehNames)
说明:vehNames - single name or cell array of TLE names
备注:Deletes the specified TLEs frommemory
用法:[times, posECF, velECF] =atbTLEProp('vehName', timeStart, timeStop, timeStep)
说明:vehName - loaded TLE name
timeStart - propagation start time (sec)
timeStop - propagation stop time (sec)
timeStep - propagation time step (sec)
times - N length array of times relative to theinternal ATB epoch
posECF - 3xN ECF position matrix [x;y;z](meters)
velECF - 3xN ECF velocity matrix [vx;vy;vz](m/s)
用法:epoch = atbTLEEpoch('vehName')
说明:vehName - loaded TLE name
epoch - the offset in sec form the internalATB epoch
备注:Returns the offset in sec fromthe internal ATB epoch
用法:tleInfo = atbTLEInfo('vehName')
说明:vehName - loaded TLE name
tleInfo - structure with the following fields:
orbitEpoch - string date in YYDDD.SSSSSSS format
meanMotion - rev/day
eccentricity - unitless
inclination - units in radians
argOfPerigree - units in radians
RAAN -units in radians
meanAnomaly - units in radians
meanMotionDot
meanMotionDotDot
bStar -m^2/kg
备注:Returns the two-line-element setdata for a loaded vehicle
用法:[dop,bestInd] = atbComputeDOP(posVecs, N)
dop = atbComputeDOP(posVecs)
说明:posVecs - a 3xM matrix of nav beacon positions[x;y;z] (meters), 4 <= M <= 30
N - optional integer value to computethe optimal subset
of the beacons. Meaningless unless N < M. N <= 30.
bestInd - a length N vector of indices into optimalbeacons.
dop - a structure with the following fields:
GDOP
PDOP
HDOP
VDOP
TDOP
HMajDOP - the local horizontal error ellipse major axis
HMinDOP - the local horizontal error ellipse minor axis
HMajAz - therotation angle (from the x axis) of the local horizontal error ellipse
备注:Computesdilution of precision based on the optimal set of
N beacons from the input array. The optimal set of N
is determined as the set that yieldsthe minimum GDOP.
The beacon positions should beexpressed in a local horizontal
coordinate system so the DOP valuesmay be interpreted as
stated. This local coordinate system should have Zpointed
toward the center of the Earth, orperpendicular to the
surface and X should be oriented ina north-south sense.
The best array will be filled withthe indices of the beacons
that yield the minimum GDOP
用法:xyCell = atbMapDetails(mapName)
说明:mapName - one of the followingstrings:
'coasts' -coastlines
'intl' -international boundaries
'islands' -ocean islands
'lakes' -freshwater lakes
'prov' -provincial boundaries, e.g. US State lines
'rivers' -freshwater rivers
xyCell - cell arraywith elements containing 2xN matrices of
[lon;lat](deg).
用法:hl = atbPlotMapDetails(hax,mapName, style)
说明:mapName - one of the followingstrings:
'coasts' -coastlines
'intl' -international boundaries
'islands' -ocean islands
'lakes' -freshwater lakes
'prov' -provincial boundaries, e.g. US State lines
'rivers' -freshwater rivers
style - a plot linestyle, see the help for PLOT
hl - handles to lines
用法:hGrid =atbGetPolyHandle(XYpolygon)
说明:XYpolygon - a 2xN matrix ofpositions [x;y] (unitless), N >= 3
hGrid - grid handle for use in atbInsidePoly andatbClearPolyHandle
备注:Generates a grid handle for a polygon. The grid handle is used by atbInsidePoly todetermine if a point is enclosed by the polygon.
用法:inside = atbInsidePoly(hGrid,XYpoints)
说明:hGrid - handle obtained from atbGetPolyHandle
XYpoints - 2xN matrix of points to check [x;y](unitless)
inside - 1xN vector of flags indicating if thecorresponding point
is enclosed bythe polygon represented by hGrid.
用法:atbClearPolyHandle(hGrid)
atbClearPolyHandle('ALL')
说明:hGrid - vector of handles to polygon grids toclear from memory.
用法:rtn = stkExec(conID, 'conCmdStr')
说明:rtn - A character array containing the STK return
conID -STK/Connect connection ID, from stkOpen.
可以说,所有的STK/Connect都可以通过调用函数stkExec( )来实现,具体使用参见STK/Help/Connect。下面仅就已经使用过的功能做介绍。
remMachine = stkDefaultHost;
conid=stkOpen(remMachine);
2、在STK中创建新场景前,需要检查STK中的当前场景,如果目前STK中已经存在一个场景,就可以利用语句stkUnload关闭场景,或者利用语句stkClose关闭当前连接。
scen_open = stkValidScen;
if scen_open == 1
rtn =questdlg('Close the current scenario?');
if~strcmp(rtn,'Yes')
stkClose(conid)
return
else
stkUnload('/*')
end
end
3、利用语句stkNewObj创建新场景。这里需要注意一个问题,stkNewObj在STK5.0中创建新场景时,语法为stkNewObj('Scenario','','Scenario1'),这应该是STK5.0的程序错误所致。stkNewObj的正确语法应该是stkNewObj('ParentPath','Class','Name'),其中ParentPath为场景或对象的路径,Class为新建对象的类别,Name为新建对象的名称。
disp('Create a new scenario: SatelliteFormation');
stkNewObj('Scenario','','SatelliteFormation');
stkNewObj('*/','Satellite','Chief');
4、场景建立完成后,需要为场景设置时间参数。其中场景的历元时刻设置这是通过语句stkSetEpoch和stkSyncEpoch实现的。而设置场景运行方式时是通过语句stkConnect直接调用STK连接命令的方式实现的。STK调用连接命令语句stkConnect非常重要,它的正确语法是
rtn=stkConnect(conid,'<Command>','<ObjectPath>','<Parameters>')
其中,conid代表通过语句stkOpen打开的当前连接,Command代表要执行的命令,
ObjectPath代表对象名称,Parameters代表相应命令的执行参数。
disp('Set scenario timeperiod');
stkSetTimePeriod('1 May 200700:00:00.00','2 May 2007 00:00:00.00','GREGUTC');
stkSetEpoch('1 May 200700:00:00.00','GREGUTC');
stkSyncEpoch;
rtn=stkConnect(conid,'Animate','Scenario/SatelliteFormation','SetValues"1 May 2007 00:00:00.00" 60 0.1');
rtn=stkConnect(conid,'Animate','Scenario/SatelliteFormation','Reset');
rtn = stkConnect(conid,'SetBoundary','Scenario1/sun_rfi/AreaTarget/BoxTarget','Pattern 10 10 -80 10 -70 10 -60 10 -50 10-40 -37 -40 -37 -50 -37
-60 -37 -70 -37 -80');
rtn=stkExec(conid,'<Command> <ObjectPath> <Parameters>')
具体应用需查询STK中的Help。如改变卫星模型尺寸,调用语句为:stkExec( conid,
'VO*/Satellite/Deputy ScaleLog 1' )
2008年10月7日
目 录
一、Matlab/Simulink、STK联合仿真的优势.
1
二、mexConnect函数详细介绍.
2
2.1 STK服务器命令(STK Server Commands)...
2
2.1.1 stkDefaultConID.
2
2.1.2 stkDefaultHost.
2
2.1.3 stkSetDefaultHost.
2
2.2 应用命令(Application Commands)...
2
2.2.1 stkAutoSave.
2
2.2.2 stkHomeDir.
2
2.2.3 stkCurrentDir.
2
2.2.4 stkSetCurrentDir.
2
2.2.5 stkObjNames.
2
2.2.6 stkTimerStart.
3
2.2.7 stkTimer.
3
2.3 普通对象命令(Generic Object Commands)...
3
2.3.1 stkCentralBody.
3
2.3.2 stkLoadObj.
3
2.3.3 stkSaveObj.
3
2.3.4 stkNewObj.
3
2.3.5 stkUnload.
4
2.3.6 stkUnloadChildren.
4
2.3.7 stkRename.
4
2.3.8 stkTimePeriod.
4
2.3.9 stkTimePeriodInSec.
5
2.3.10 stkValidObj.
5
2.3.11 stkDescrip.
5
2.3.12 stkSetDescrip.
5
2.4 场景命令(Scenario Commands)...
6
2.4.1 stkAnimTime.
6
2.4.2 stkEpoch.
6
2.4.3 stkSetEpoch.
6
2.4.4 stkSetEpochInSec.
6
2.4.5 stkSyncEpoch.
6
2.4.6 stkConvertDate.
6
2.4.7 stkSetTimePeriod.
6
2.4.8 stkSetTimePeriodInSec.
7
2.4.9 stkScenFilePath.
7
2.4.10 stkValidScen.
7
2.5 基本飞行器数据(Basic Vehicle Data)...
7
2.5.1 stkTimePeriod.
7
2.5.2 stkTimePeriodInSec.
7
2.5.3 stkSetTimePeriod.
7
2.6 卫星运动属性(Satellite Propagators)...
8
2.6.1 stkSetPropCart.
8
2.6.2 stkSetPropClassical.
8
2.6.3 stkSetPropEqui.
9
2.6.4 stkSetPropSGP4.
9
2.6.5 stkPropagate.
10
2.7 飞行器位置与速度(Vehicle Position and Velocity)...
10
2.7.1 stkPosVelCBF.
10
2.7.2 stkPosVelCBI.
10
2.7.3 stkEphemerisCBF.
10
2.7.4 stkEphemerisCBI.
11
2.7.5 stkSetEphemerisCBF.
11
2.7.6 stkSetEphemerisCBI.
11
2.7.7 stkLoadEphemeris.
11
2.7.8 stkSaveEphemerisCBF.
12
2.7.9 stkSaveEphemerisCBI.
12
2.7.10 stkSaveDynState.
12
2.7.11 stkDynState.
12
2.8 飞行器姿态(Vehicle Attitude)...
12
2.8.1 stkAttitudeCBF.
12
2.8.2 stkAttitudeCBI.
13
2.8.3 stkSetAttitudeCBF.
13
2.8.4 stkSetAttitudeCBI.
13
2.8.5 stkLoadAttitude.
14
2.8.6 stkSaveAttitudeCBF.
14
2.8.7 stkSaveAttitudeCBI.
14
2.9 基本飞行器姿态类型(Basic Vehicle Attitude Types)...
14
2.9.1 stkSetAttBasic.
14
2.9.2 stkSetAttSpinSun.
15
2.9.3 stkSetAttSpinNadir.
15
2.9.4 stkSetAttYawNadir.
15
2.9.5 stkSetAttSpinning.
16
2.9.6 stkSetAttFixed.
16
2.9.7 stkAttOffset.
17
2.10 飞机,车辆与船舰属性(Aircraft,GroundVehicle and Ship Propagators)...
17
2.10.1 stkSetWaypoints.
17
2.10.2 stkLoadWaypoints.
18
2.10.3 stkSetGreatArcStart.
18
2.11 导弹运动属性(Missile Propagators)...
18
2.11.1 stkSetPropBallistic.
18
2.12 设备与目标(Facilities and Targets)...
18
2.12.1 stkPosVelCBF.
18
2.12.3 stkSetFacPosCBF.
18
2.12.3 stkSetFacPosLLA.
19
2.13 区域目标(Area Targets)...
19
2.13.1 Area Target boundary.
19
2.14 STK工具(STK Tools)...
19
2.14.1 stkAccess.
19
2.14.2 stkReport.
19
2.14.3 stkAccReport.
20
2.14.4 stkFindData.
21
2.15 连接命令(Connect Commands)...
21
2.15.1 stkOpen.
21
2.15.2 stkClose.
21
2.15.3 stkExec.
21
2.15.4 stkConnect.
22
三、aeroToolbox函数详细介绍.
22
3.1 坐标系中的历元与数据函数Coordinate System Epoch andDate functions)...
22
3.1.1 atbGetEpoch.
22
3.1.2 atbSetEpoch.
22
3.1.3 atbDateToEpochSec.
23
3.1.4 atbEpochSecToDate.
23
3.2 坐标系转换(Coordinate Conversions)...
24
3.2.1 atbCbfToCbi.
24
3.2.2 atbCbfToCbiMtx.
24
3.2.3 atbCbfToLhMtx.
24
3.2.4 atbCbfToLla.
24
3.2.5 atbCbfToLlr.
25
3.2.6 atbCbfToVvlhMtx.
25
3.2.7 atbCbiToCbf.
25
3.2.8 atbCbiToCbi.
26
3.2.9 atbCbiToCbiMtx.
26
3.2.10 atbLlaToCbf.
26
3.2.11 atbLlrToCbf.
27
3.2.12 atbCbCoordinates.
27
3.2.13 atbCoordXForm.
27
3.2.14 atbCoordXFormMtx.
28
3.3 转动与四元数(Rotations and Quaternions)...
28
3.3.1 atbAlignVecQuat.
28
3.3.2 atbEulerToMtx.
28
3.3.3 atbEulerToQuat.
29
3.3.4 atbMinRotQuat.
29
3.3.5 atbMtxToEuler.
29
3.3.6 atbMtxToQuat.
29
3.3.7 atbMtxToYpr.
30
3.3.8 atbQuatToMtx.
30
3.3.9 atbQuatXquat.
30
3.3.10 atbYprToMtx.
30
3.3.11 atbYprToQuat.
31
3.3.12 atbInterpQuat.
31
3.4 中心对象操作与程序(Central Body Operations andRoutines)...
31
3.4.1 atbCbEphemeris.
31
3.4.2 atbCbGetTangent.
31
3.4.3 atbCbGravParam.
32
3.4.4 atbCbGrazeAlt.
32
3.4.5 atbCbGrazeAngle.
32
3.4.6 atbCbIntersect.
33
3.4.7 atbCbLclRadCen.
33
3.4.8 atbCbLclRadDet.
33
3.4.9 atbCbSurfDistCen.
34
3.4.10 atbCbSurfDistDet.
34
3.4.11 atbCbSurfNormCen.
34
3.4.12 atbCbSurfNormDet.
34
3.5 指向,星历与姿态文件(Waypoint, Ephemeris andAttitude Files)...
35
3.5.1 atbReadAttitudeCBF.
35
3.5.2 atbReadAttitudeCBI.
35
3.5.3 atbWriteAttitudeCBF.
35
3.5.4 atbWriteAttitudeCBI.
35
3.5.5 atbReadEphemerisCBF.
36
3.5.6 atbReadEphemerisCBI.
36
3.5.7 atbWriteEphemerisCBF.
36
3.5.8 atbWriteEphemerisCBI.
36
3.5.9 atbWriteWaypointFile.
36
3.6 位置与速度函数(Position and Velocity Functions)...
37
3.6.1 atbGeometry.
37
3.6.2 atbGenGreatArc.
39
3.6.3 atbCreateDynStateCBF.
39
3.6.4 atbCreateDynStateCBI.
39
3.6.5 atbLhQuatCen.
40
3.6.6 atbLhQuatCBFDet.
40
3.6.7 atbFlatten.
41
3.7 轨道要素转换(Orbit Element Set Conversions)...
41
3.7.1 atbOrbCartToDel.
41
3.7.2 atbOrbCartToEqui.
41
3.7.3 atbOrbCartToMod.
42
3.7.4 atbOrbCartToSphere.
42
3.7.5atbOrbCartToMixedSphere.
43
3.7.6 atbOrbDelToCart.
43
3.7.7 atbOrbEquiToCart.
43
3.7.8 atbOrbModToCart.
43
3.7.9 atbOrbSphereToCart.
43
3.7.10atbOrbMixedSphereToCart.
43
3.8 轨道根数分量的转换(Orbit Element ParameterConversions)...
43
3.8.1 atbOrbEccToTrue.
43
3.8.2 atbOrbTrueToEcc.
44
3.8.3 atbOrbMeanToTrue.
44
3.8.4 atbOrbTrueToMean.
44
3.8.5 atbOrbLanToRaan.
44
3.8.6 atbOrbRaanToLan.
44
3.8.7 atbOrbPeriRadToPeriod.
44
3.8.8 atbOrbPeriodToPeriRad.
45
3.8.9atbOrbPeriRadToSMajAxis.
45
3.8.10atbOrbSMajAxisToPeriRad.
45
3.8.11 atbOrbTPANToTrue.
45
3.8.12 atbOrbTrueToTPAN.
45
3.8.13 atbOrbTPPToTrue.
46
3.8.14 atbOrbTrueToTPP.
46
3.9 DTED操作(DTED operations)...
46
3.9.1 atbCbListDtedTypes.
46
3.9.2 atbCbListDted.
46
3.9.3 atbCbAddDtedSource.
47
3.9.4 atbCbDtedSourceUI.
47
3.9.5 atbLoadNimaDted.
47
3.9.6 atbCbRemDtedSource.
47
3.9.7 atbCbGetDtedSourceForPos.
47
3.9.8 atbGetDtedPatch.
48
3.9.9 atbClearDtedPatch.
48
3.9.10 atbAllDtedPatches.
48
3.9.11 atbDtedPatchInfo.
48
3.9.12 atbDtedElev.
48
3.9.13 atbDtedPatchElev.
49
3.9.14 atbAzElMask.
49
3.9.15 atbDtedRes.
49
3.9.16 atbDtedLOSExist.
49
3.10 运动属性(Propagators)...
50
3.10.1 atbLambertFixedTime.
50
3.10.2 atbLambertMinEnergy.
50
3.10.3 atbLambertMinEccen.
50
3.10.4 atbKeplerProp.
50
3.10.5 atbJ2Prop.
51
3.10.6 atbJ4Prop.
51
3.10.7 atbLaunchProp.
52
3.10.8atbMissilePropDataFixedTime.
52
3.10.9atbMissilePropDataFixedAlt.
53
3.10.10atbMissilePropDataFixedDelta.
53
3.10.11atbMissilePropDataMinEnergy.
53
3.10.12 atbTLERead.
53
3.10.13 atbTLEGetAll.
54
3.10.14 atbTLEDelete.
54
3.10.15 atbTLEProp.
54
3.10.16 atbTLEEpoch.
54
3.10.17 atbTLEInfo.
54
3.11 导航精度(Navigation Accuracy)...
55
3.11.1 atbComputeDOP.
55
3.12 地图数据(Map Data)...
56
3.12.1 atbMapDetails.
56
3.12.2 atbPlotMapDetails.
56
3.13 覆盖网格(Coverage Grids)...
56
3.13.1 atbGetPolyHandle.
56
3.13.2 atbInsidePoly.
56
3.13.3 atbClearPolyHandle.
57
四、stkExec使用总结.
57
4.1 场景动画控制...
57
4.1.1 控制按钮...
57
五、示例.
57
4.1 卫星编队之构型设计...
57
4.2 使用心得...
58
一、Matlab/Simulink、STK联合仿真的优势
STK/MATLAB,SIMULINKSTK与Matlab联合实现可视化仿真集成,该方案可以适用于航空航天、航海、作战模拟、电子对抗、卫星导航定位、遥感遥测、卫星通信等各个可视化仿真集成案例之中。STK/MATLAB接口为STK和MATLAB提供了双向通讯功能,在MATLAB工作区通过Connect模块以TCP/IP协议打开STK端口。 利用超过150个MATLAB命令增强STK的轨道、弹道、轨迹的分析能力,MexConnect还提供在MATLAB命令行直接使用任意 STK/Connect 命令的功能。MexConnect工具可以建立各种不同级别的STK对象,进行操作并生成报告。所有STK的数据,包括动态位置、速度和姿态数据,可以返回到MATLAB工作空间,用于数学分析。宇航工具箱让MATLAB用户可以输出多重坐标系,以及符合STK格式的星历和姿态文件用于VO模块的三维可视
化。另外此工具还可以使用STK附加模块的功能如STK/COMM(通信),STK/Coverage (覆盖)和STK/Radar(雷达)。
表1 STK模块
基本模块 | |
基本版 专业版 三维显示 高级三维显示 | Satellite Tool Kit(STK) STK/Professioal(STK/PRO) STK/Visualization Option(STK/VO) STK/Advanced VO |
分析模块 | |
轨道机动 链路分析 通信分析 接近分析 覆盖分析 拦截飞行工具 导弹飞行工具 精确定轨 雷达分析 空间环境 | STK/Astrogator STK/Chains STK/Comm STK/Conjunction Analysis Tools STK/Coverage STK/Interceptor Flight Tool(IFT) STK/Missile Flight Tool(MFT) STK/Precision Orbit DeterminationSystem(PODS) STK/Radar STK/Space Environment |
综合数据 | |
高精度数字地图 高分辨率地球影像 雷达高级环境 全球三维地形 | STK/High Resolution Maps STK/VO Earth Imagery STK/Radar Advanced Environment(RAE) STK/Terrain |
扩展与接口 | |
连接模块 网络实时播放 MATlLAB接口 分布式仿真 地理信息接口 程序开发库 | STK/Connect and STK/Server STK/WebCast STK/MATLAB Interface STK/Distributed Interactive Simulation(DIS) STK/Geographic InformationSystems(GIS) STK/Programmer's Library(PL) |
二、mexConnect函数详细介绍
2.1 STK服务器命令(STK Server Commands)
2.1.1 stkDefaultConID
作用:返回STK的默认标识2.1.2 stkDefaultHost
作用:返回STK的默认地址2.1.3 stkSetDefaultHost
作用:设置STK的新地址用法:stkSetDefaultHost('host:port')
2.2 应用命令(Application Commands)
2.2.1 stkAutoSave
作用:自动保存STK用法:stkAutoSave('onOff','directory',period)
stkAutoSave('onOff')
说明:onOff- 'on' or 'off'
directory - string pathname of autosave directory
period -seconds between saves
2.2.2 stkHomeDir
作用:返回STK的安装路径用法:dir= stkHomeDir
2.2.3 stkCurrentDir
作用:返回STK的当前路径用法:dir= stkHomeDir
2.2.4 stkSetCurrentDir
作用:设置STK的当前路径用法:stkSetCurrentDir('directory')
2.2.5 stkObjNames
作用:返回STK中对象的名字用法:objNames= stkObjNames
objNames = stkObjNames(classCell)
说明:classCell- optional cell array of STK class names.
objNames- cell array of STK object names 2.2.4 stkSetCurrentDir
2.2.6 stkTimerStart
作用:启动计时器用法:stkTimerStart
2.2.7 stkTimer
作用:返回计时器时间用法:[split,total] = stkTimer
说明:split- elapsed time since last stkTimer command
total - elapsed time since last stkTimerStart command
2.3 普通对象命令(Generic Object Commands)
2.3.1 stkCentralBody
作用:返回坐标系的中心体用法:centBody= stkCentralBody('objPath')
说明:objPath - String name of object obtained fromstkObjNames.
If ommitted, the scenario central body is returned.
centBody - String name of object coordinate systemcentral body.
备注:更多内容参见stkObjNames、aeroToolbox。
2.3.2 stkLoadObj
作用:导入对象文件用法:stkLoadObj('parentPath','class', 'fileName')
stkLoadObj('scenarioFileName')
说明:parentPath - Valid path, may be obtained fromstkObjNames.
class - Valid class name. Consult STK documentation for a
list of valid classes. Names are case-sensitive.
fileName - File path of object file
2.3.3 stkSaveObj
作用:将对象保存用法:stkSaveObj('objPath','dirName')
stkSaveObj('objPath')
说明:objPath - Valid path, may be obtained fromstkObjNames.
dirName - Directory path of object file. When omitted,
the default directory is used.
2.3.4 stkNewObj
作用:创建一个新对象用法:stkNewObj('parentPath','class', 'name')
说明:parentPath - Valid path, may be obtained from stkObjNames.
class - Valid class name. Consult STK documentation for a
list of valid classes. Names are case-sensitive.
name -Name of new object
备注:创建场景时,语法为stkNewObj('Scenario',' ','Scenario1')
2.3.5 stkUnload
作用:卸载对象用法:stkUnload('objPath')
说明:objPath - Valid path, may be obtained fromstkObjNames.
2.3.6 stkUnloadChildren
作用:卸载对象的所有子对象用法:stkUnloadChildren('objPath')
说明:objPath - Valid path, may be obtained fromstkObjNames.
2.3.7 stkRename
作用:将对象重命名用法:stkRename('objPath','newName')
说明:objPath - Valid path, may be obtained fromstkObjNames.
newName -New instance name.
2.3.8 stkTimePeriod
作用:获取对象起止时间用法:timePeriod= stkTimePeriod('dateFormat')
timePeriod = stkTimePeriod('objPath', 'dateFormat')
说明:
objPath - Valid vehicle object path, defaults to scenario path.
timePeriod - Structure array with start andstop fields.
Each field contains a string date value.
dateFormat - Valid date format. Options are:
EPOCHSEC EPOCHSECOND
EPOCHMIN EPOCHMINUTE
EPOCHHR EPOCHHOUR
EPOCHDAY
GMT ZULU GMTSYSTEM
GREGLCL GREGORIANLOCAL GREGORIANLCL
GREGUTC GREGORIANUTC
GREGTAI GREGORIANTAI
GREGTDT GREGORIANTDT
GREGGPSTIME GREGGPS GREGORIANGPSTIME
GPSTIME GPS
JULDATE JULIANDATE
JULLCL JULIANLOCAL JULIANLCL
JULUTC JULIANUTC
JUL4 JULIAN4
JULIAN4UTC
JDATEOFF JDATEOFFSET JULDATEOFFSET
JULEPHEMDATE JULIANEPHEMERISDATE
JULIANEPHEM
JULTAI JULIANTAI
MISELAP MISSIONELAPSED
MODJULDATE MODIFIEDJULIANDATE
YYDDD
YYDDD.DDD
YYYYDDD
YYYYDDD.HHMMSS
YYYYMMDD
YYYYMMDD.DDD
YYYY/MM/DDTIME
YYYY/MM/DD
备注:更对内容参见stkConvertDate、stkObjNames
2.3.9 stkTimePeriodInSec
作用:获取对象起止时间,以s为单位用法:[start,stop] = stkTimePeriodInSec(objPath)
[start, stop] = stkTimePeriodInSec
说明:objPath- valid object path, see stkObjNames. When
not provided, the scenario time period is returned.
start, stop - time in seconds
2.3.10 stkValidObj
作用:检查对象的有效性用法:result= stkValidObj('path')
说明:path - object path name
result - 1 if valid, 0 otherwise
2.3.11 stkDescrip
作用:获取对象的描述用法:description= stkDescrip('objPath', 'shortLong')
说明:objPath - Valid path, may be obtained fromstkObjNames.
shortLong -Type of description to get, 'short' or 'long'.
2.3.12 stkSetDescrip
作用:设置对象的描述用法:stkSetDescrip('objPath','shortLong', 'description')
说明:objPath - Valid path, may be obtained fromstkObjNames.
shortLong - Type of description to set, 'short' or'long'.
description - Description text.
2.4 场景命令(Scenario Commands)
2.4.1 stkAnimTime
作用:返回当前动画时间用法:time= stkAnimTime
说明:time -current STK animation time (sec)
2.4.2 stkEpoch
作用:返回当前场景历元用法:epoch= stkEpoch('dateFormat')
说明:dateFormat - Valid date format.
epoch - string representation of scenarioepoch.
2.4.3 stkSetEpoch
作用:设置场景历元用法:stkSetEpoch('epoch','dateFormat')
说明:dateFormat - Valid date format.
epoch - string representation of scenario epoch.
2.4.4 stkSetEpochInSec
作用:设置场景历元用法:stkSetEpochInSec(newEpoch)
说明:newEpoch- number of seconds elapsed between current epoch
and the desired epoch.
2.4.5 stkSyncEpoch
作用:aeroToolbox与STK场景有同样的历元用法:stkSyncEpoch
备注:STKand aeroToolbox maintain separate scenario epochs.
Thisfunction should be called anytime the STK epoch is changed
through mexConnect or via the STK GUI.
2.4.6 stkConvertDate
作用:转换日期格式用法:newDate= stkConvertDate('date', 'format', 'newFormat')
2.4.7 stkSetTimePeriod
作用:设置场景或卫星的时间周期用法:stkSetTimePeriod('start','stop', 'dateFormat')
stkSetTimePeriod('satpath', 'start', 'stop', 'dateFormat')
说明:satpath - satellite path name,defaults to scenario
start, stop - string dates
2.4.8 stkSetTimePeriodInSec
作用:设置场景的时间周期用法:stkTimePeriodInSec(start,stop)
说明:start, stop - time in seconds
2.4.9 stkScenFilePath
作用:返回场景文件的路径用法:path= stkScenFilePath
说明:path - current STK scenariodirectory
2.4.10 stkValidScen
作用:检查可用的场景用法:result= stkValidScen
说明:result - 1 if valid, 0 otherwise
2.5 基本飞行器数据(Basic Vehicle Data)
2.5.1 stkTimePeriod
作用:获取对象的时间周期用法:timePeriod= stkTimePeriod('dateFormat')
timePeriod =stkTimePeriod('objPath', 'dateFormat')
说明:objPath - Valid vehicle objectpath, defaults to scenario path.
timePeriod - Structure array with start and stopfields.
Each fieldcontains a string date value.
2.5.2 stkTimePeriodInSec
作用:获取对象的时间周期用法:[start,stop] = stkTimePeriodInSec(objPath)
[start, stop] = stkTimePeriodInSec
说明:objPath - valid object path, seestkObjNames. When
not provided,the scenario time period is returned.
start, stop - time inseconds
2.5.3 stkSetTimePeriod
作用:设置场景或对象的时间周期用法:stkSetTimePeriod('start','stop', 'dateFormat')
stkSetTimePeriod('satpath', 'start', 'stop', 'dateFormat')
说明:satpath - satellite path name,defaults to scenario
start, stop - string dates
2.6 卫星运动属性(Satellite Propagators)
2.6.1 stkSetPropCart
作用:设置笛卡尔坐标系下卫星运动的参数用法:stkSetPropCart('objPath','propagator', 'coordSystem', ...
tStart, tStop,dt, orbitEpoch, pos, vel, coordEpoch)
说明:objPath - Valid path, may beobtained from stkObjNames.
propagator - 'TwoBody','J2Perturbation', 'J4Perturbation', 'HPOP' or 'PODS'
Thisparameter is case sensitive!
coordSystem - stringname of coordinate system, valid choices are:
'Fixed','J2000', 'MeanOfDate', 'MeanOfEpoch',
'TrueOfDate', 'TrueOfEpoch', 'B1950',
'TEMEOfDate', 'TEMEOfEpoch', 'AlignmentAtEpoch'.
Thisparameter is case sensitive!
tStart, tStop - times inepoch seconds.
dt - time step inseconds.
orbitEpoch - referencetime of orbit data, in scenario epoch seconds
pos - 3x1 vector ofpositions at reference time, meters
vel - 3x1 vector ofvelocity at reference time, meters/sec
coordEpoch - coordinatesystem epoch, required by all '...OfEpoch'
coordinatesystems.
2.6.2 stkSetPropClassical
作用:设置经典轨道根数描述下卫星运动的参数用法:stkSetPropClassical('objPath','propagator', 'coordSystem', ...
tStart, tStop,dt, orbitEpoch, semimajorAxis, eccentricity,...
inclination,argOfPerigree, RAAN, meanAnomaly, coordEpoch)
说明:objPath - Valid path, may beobtained from stkObjNames.
propagator - 'TwoBody','J2Perturbation', 'J4Perturbation', 'HPOP' or 'PODS'
Thisparameter is case sensitive!
coordSystem - stringname of coordinate system, valid choices are:
'Fixed', 'J2000', 'MeanOfDate','MeanOfEpoch',
'TrueOfDate', 'TrueOfEpoch', 'B1950',
'TEMEOfDate', 'TEMEOfEpoch', 'AlignmentAtEpoch'.
Thisparameter is case sensitive!
tStart, tStop - times inepoch seconds.
dt - time step inseconds.
orbitEpoch - referencetime of orbit data, in scenario epoch seconds
coordEpoch - coordinatesystem epoch, required by all '...OfEpoch'
coordinatesystems.
semimajorAxis - units in meters
eccentricity - unitless
inclination - units in radians
argOfPerigree - units in radians
RAAN - units in radians
meanAnomaly - units in radians
2.6.3 stkSetPropEqui
作用:设置春分点坐标下卫星运动的参数用法:stkSetPropEqui('objPath','propagator', 'coordSystem', ...
tStart, tStop,dt, orbitEpoch, semimajorAxis, ...
h, k, p, q,meanLongitude, formulation, coordEpoch)
说明:objPath - Valid path, may beobtained from stkObjNames.
propagator - 'TwoBody','J2Perturbation', 'J4Perturbation', 'HPOP' or 'PODS'
Thisparameter is case sensitive!
coordSystem - string name ofcoordinate system, valid choices are:
'Fixed','J2000', 'MeanOfDate', 'MeanOfEpoch',
'TrueOfDate','TrueOfEpoch', 'B1950',
'TEMEOfDate','TEMEOfEpoch', 'AlignmentAtEpoch'.
Thisparameter is case sensitive!
tStart, tStop - times in epoch seconds.
dt - time step in seconds.
orbitEpoch - reference timeof orbit data, in scenario epoch seconds
coordEpoch - coordinatesystem epoch, required by all '...OfEpoch'
coordinatesystems.
semimajorAxis - units inmeters
h, k, p, q - unitless
meanLongitude - units inradians
formulation - string,'Posigrade' or 'Retrograde'
2.6.4 stkSetPropSGP4
作用:设置SGP4描述下卫星运动的参数用法:stkSetPropSGP4('objPath', tStart,tStop, dt, tleInfo)
stkSetPropSGP4('objPath', tStart, tStop, dt, ...
'SSC','orbitEpoch', meanMotion, ...
eccentricity,inclination, argOfPerigree. ...
RAAN, meanAnomaly, meanMotionDot,meanMotionDotDot, bStar)
说明:objPath - Valid path, may beobtained from stkObjNames.
tStart, tStop - times inepoch seconds.
dt - time step in seconds.
tleInfo - tleInfo fromatbTLEInfo
SSC - U.S. Space SurveillanceCenter Catalog Number (as a char string)
orbitEpoch - string date,must be in YYDDD.SSSSSSS format
meanMotion - rev/day
eccentricity - unitless
inclination - units inradians
argOfPerigree - units inradians
RAAN - units in radians
meanAnomaly - units inradians
meanMotionDot
meanMotionDotDot
bStar - m^2/kg
2.6.5 stkPropagate
作用:设置卫星运动的参数用法:stkPropagate('satPath', tStart,tStop)
说明:satPath - Valid satellite path,may be obtained from stkObjNames.
tStart, tStop - times inepoch seconds.
2.7 飞行器位置与速度(Vehicle Position and Velocity)
2.7.1 stkPosVelCBF
作用:获取中心体本体系下位置和速度用法:[pos, vel] =stkPosVelCBF('objPath', time)
说明:objPath - Vehicle or facilitypath, may be obtained from stkObjNames.
time - Scenario time (sec).
pos -Central Body Fixed position (meters).
vel -Central Body Fixed velocity (meters/sec).
备注:CBF coordinates may be convertedto any other system using
commands in the Aerospace Toolbox. The command stkCentralBody
may be used to obtain the central body name ofthe object.
2.7.2 stkPosVelCBI
作用:获取中心体惯性系下位置和速度用法:[cbiPos, cbiVel] = stkPosVelCBI('vehPath',time)
说明:vehPath - Vehicle path, may beobtained from stkObjNames.
time - Scenario time (sec).
cbiPos - Inertial position (meters).
cbiVel - Inertial velocity (meters/sec).
备注:CBI coordinates may be convertedto any other system using
commands in the Aerospace Toolbox. The command stkCentralBody
may be used to obtain the central body name ofthe object.
2.7.3 stkEphemerisCBF
作用:本体系飞行器星历数据用法:[time, pos, vel, cb] =stkEphemerisCBF(objPath, dt)
[time, pos, vel, cb] =stkEphemerisCBF(objPath, dt, start, stop)
说明:objPath - valid STK object path
dt - time interval for data
start - starting time (sec)
stop - stop time (sec)
time - 1xN vector (sec)
pos - CBF cartesian position, 3xN (meters)
vel - CBF cartesian velocity, 3xN (meters/sec)
cb - central body name
2.7.4 stkEphemerisCBI
作用:惯性系下的飞行器星历数据用法:[time, pos, vel, cb] =stkEphemerisCBI(objPath, dt)
[time, pos, vel, cb] =stkEphemerisCBI(objPath, dt, start, stop)
说明:objPath - valid STK object path
dt - time interval for data
start - starting time (sec)
stop - stop time (sec)
time - 1xN vector (sec)
pos - CBF cartesian position, 3xN (meters)
vel - CBF cartesian velocity, 3xN (meters/sec)
cb - central body name
2.7.5 stkSetEphemerisCBF
作用:本体系下设置飞行器星历数据用法:stkSetEphemerisCBF(objPath, cb,time, pos, vel)
stkSetEphemerisCBF(objPath,cb, time, pos, vel, eFilePath)
说明:objPath - valid STK object path
cb -central body name
time - 1xN vector (sec)
pos -CBF cartesian position, 3xN (meters)
vel -CBF cartesian velocity, 3xN (meters/sec)
eFilePath - file name to create. Default is to create a file in the scenariodirectory named {objName}.e, where objName is derived from the objPath.
2.7.6 stkSetEphemerisCBI
作用:惯性系下设置飞行器星历数据用法:stkSetEphemerisCBI(objPath, cb,time, pos, vel)
stkSetEphemerisCBI(objPath, cb, time, pos, vel, eFilePath)
说明:pos - CBI cartesian position, 3xN(meters)
vel - CBI cartesian velocity, 3xN (meters/sec)
2.7.7 stkLoadEphemeris
作用:从文件中载入星历用法:stkLoadEphemeris('objPath','fileName')
说明:objPath - Valid path, may beobtained from stkObjNames.
fileName - file name.
2.7.8 stkSaveEphemerisCBF
作用:保存星历到文件用法:stkSaveEphemerisCBF('objPath',timeStep, 'fileName')
stkSaveEphemerisCBF('objPath',timeStep, 'fileName', startTime, stopTime)
说明:objPath - Valid path, may beobtained from stkObjNames.
timeStep - Granularityof time steps (sec).
fileName - file name.
startTime - start time(sec).
stopTime - stop time(sec).
2.7.9 stkSaveEphemerisCBI
作用:保存星历到文件用法:stkSaveEphemerisCBF('objPath',timeStep, 'fileName')
stkSaveEphemerisCBF('objPath',timeStep, 'fileName', startTime, stopTime)
说明:objPath - Valid path, may beobtained from stkObjNames.
timeStep - Granularityof time steps (sec).
fileName - file name.
startTime - start time(sec).
stopTime - stop time(sec).
2.7.10 stkSaveDynState
作用:保存动力学数据用法:stkSaveDynState('objPath','varName', 'fileName', dT)
说明:objPath - string name of vehicleor facility
varName - variable namefor MAT file
fileName - MAT file name
dT - time step ofdynamic state data
2.7.11 stkDynState
作用:产生动力学数据用法:dynState = stkDynState(objPath,dt)
说明:objPath - valid STK object path
dt - time interval for data
dynState - dynamic state data structure
2.8 飞行器姿态(Vehicle Attitude)
2.8.1 stkAttitudeCBF
作用:飞行器姿态数据用法:[time, quats, cb] =stkAttitudeCBF(objPath, dt)
[time, quats, cb] = stkAttitudeCBF(objPath, dt, start, stop)
说明:objPath - valid STK object path
dt - time interval for data
start - starting time(sec)
stop - stop time (sec)
time - 1xN vector (sec)
quats - CBF to bodyquaternions, 4xN
cb - central body name
2.8.2 stkAttitudeCBI
作用:飞行器姿态数据用法:[time, quats, cb] =stkAttitudeCBI(objPath, dt)
[time,quats, cb] = stkAttitudeCBI(objPath, dt, start, stop)
说明:objPath - valid STK object path
dt - time interval for data
start -starting time (sec)
stop -stop time (sec)
time -1xN vector (sec)
quats -CBI to body quaternions, 4xN
cb -central body name
2.8.3 stkSetAttitudeCBF
作用:设置飞行器姿态用法:stkSetAttitudeCBF(objPath, cb,time, quats)
stkSetAttitudeCBF(objPath, cb, time, quats, aFilePath)
说明:objPath - valid STK object path
cb - central body name
time -1xN vector (sec)
quats -CBF to body quaternions, 4xN
aFilePath - file name to create. Default is to
create a file in thescenario directory named
{objName}.a, whereobjName is derived from the
objPath.
2.8.4 stkSetAttitudeCBI
作用:设置飞行器姿态用法:stkSetAttitudeCBI(objPath, cb,time, quats)
stkSetAttitudeCBI(objPath, cb, time, quats, aFilePath)
说明:objPath - valid STK object path
cb - central body name
time -1xN vector (sec)
quats -CBI to body quaternions, 4xN
aFilePath - file name to create. Default is to
create a file in thescenario directory named
{objName}.a, whereobjName is derived from the
objPath.
2.8.5 stkLoadAttitude
作用:从文件载入姿态用法:stkLoadAttitude('objPath','fileName')
说明:objPath - Valid path, may beobtained from stkObjNames.
fileName - file name.
2.8.6 stkSaveAttitudeCBF
作用:保存姿态到文件用法:stkSaveAttitudeCBF('objPath',timeStep, 'fileName')
stkSaveAttitudeCBF('objPath', timeStep, 'fileName', startTime, stopTime)
说明:objPath - Valid path, may beobtained from stkObjNames.
timeStep - Granularityof time steps (sec).
fileName - file name.
startTime - start time(sec).
stopTime - stop time(sec).
2.8.7 stkSaveAttitudeCBI
作用:保存姿态到文件用法:stkSaveAttitudeCBI('objPath',timeStep, 'fileName')
stkSaveAttitudeCBI('objPath', timeStep, 'fileName', startTime, stopTime)
说明:objPath - Valid path, may beobtained from stkObjNames.
timeStep - Granularityof time steps (sec).
fileName - file name.
startTime - start time(sec).
stopTime - stop time(sec).
2.9 基本飞行器姿态类型(Basic Vehicle Attitude Types)
2.9.1 stkSetAttBasic
作用:设置基本的姿态类型用法:stkSetAttBasic('satPath','attType', offset)
说明:satPath - string name ofsatellite
offset - either analignOffset or constraintOffset, depending on type (radians)
attType - attitude typestring. Valid choices are:
NADIRECIVEL
NADIRECFVEL
NADIRSUN
NADIRORBIT
ECIVELNADIR
ECFVELNADIR
SUNNADIR
SUNECLIPTIC
SUNECIZ
SUNOCCULT
2.9.2 stkSetAttSpinSun
作用:旋转轴指向太阳用法:stkSetAttSpinSun('satPath', rate,offset, epoch)
说明:satPath - string name ofsatellite
rate - angular spin rate(rpm)
offset - angular(radians)
epoch - control phase ofspin (epoch sec)
备注:The body-fixed Z axis points tothe Sun and the satellite
rotates about the Sunvector. The spin rate is specified in revolutions
per minute; positive valuesindicate rotation in a right-handed
sense with respect to thespin axis. The initial orientation of
the satellite is specifiedby using the spin offset and offset
epoch fields. The spinoffset is an angular measure of the
difference between thesatellite orientation at the offset
epoch from the orientationachieved by orienting the Z axis.
2.9.3 stkSetAttSpinNadir
作用:旋转轴指向地面用法:stkSetAttSpinNadir('satPath',rate, offset, epoch)
说明:satPath - string name ofsatellite
rate -angular spin rate (rpm)
offset- angular (radians)
epoch- control phase of spin (epoch sec)
备注:The satellite's Z axis is assumedto be the spin axis
and aligned to nadir. Thespin rate is specified in revolutions
per minute; positive valuesindicate rotation in a right-handed
sense with respect to thespin axis. The initial orientation of
the satellite is specifiedby using the spin offset and offset
epoch fields. The spinoffset is an angular measure of the
difference between thesatellite orientation at the offset
epoch from the orientationachieved by orienting the Z axis.
2.9.4 stkSetAttYawNadir
作用:偏航轴指向地面用法:stkSetAttYawNadir('satPath','PR', pitch, roll)
stkSetAttYawNadir('satPath', 'EULER', angle1, angle2, seq)
stkSetAttYawNadir('satPath', 'RaDec', RAAN, declination)
说明:satPath - string name ofsatellite
pitch, roll, angle1,angle2, RAAN, declination - yaw axis orientation angles (radians)
seq - Euler anglesequence, can be 12, 21, 31 or 32
备注:The satellite's Z axis is fixedin inertial space. The direction
of the satellite Z axis is specified throughtwo angles, as determined
by the Orientation Type. The satellite X axisis then constrained, via
motion in the yaw sense,toward the nadir direction. This profile is
useful for satellites inhighly elliptical orbits.
2.9.5 stkSetAttSpinning
作用:选装轴任意指向用法:stkSetAttSpinning('satPath',rate, offset, epoch, 'PR', pitch, roll)
stkSetAttSpinning('satPath', rate, offset, epoch, 'EULER', angle1,angle2, seq)
stkSetAttSpinning('satPath', rate, offset, epoch, 'RaDec', RAAN,declination)
说明:satPath - string name of satellite
rate - angular spin rate(rpm)
offset - angular(radians)
epoch - control phase ofspin (epoch sec)
pitch, roll, angle1,angle2, RAAN, declination - spin axis orientation angles (radians)
seq - Euler anglesequence, can be 12, 21, 31 or 32
备注:The satellite's Z axis is assumedto be the spin axis and
is fixed in inertialspace. The direction of the spin axis
is specified through twoangles, as determined by the
Orientation Type. The spinrate is specified in revolutions
per minute; positivevalues indicate rotation in a right-handed
sense with respect to thespin axis. The initial orientation of
the satellite is specifiedby using the spin offset and offset
epoch fields. The spinoffset is an angular measure of the
difference between thesatellite orientation at the offset
epoch from the orientationachieved by orienting the Z axis.
2.9.6 stkSetAttFixed
作用:姿态固定用法:stkSetAttFixed('satPath', 'YPR',yprVec, yprSeq)
stkSetAttFixed('satPath', 'EULER', eulerVec, eulerSeq)
stkSetAttFixed('satPath', 'QUAT', quaternion)
说明:satPath - string name ofsatellite
yprVec - CBI yaw, pitch,roll vector (3x1, radians)
yprSeq - rotationsequence, a string specifying
'RPY', 'RYP','PRY', 'PYR', 'YRP' or 'YPR'
eulerVec - CBI eulerangle vector (3x1, radians)
eulerSeq - rotationsequence, an integer specifying
121, 123, 131,132, 212, 213, 231, 232,
312, 313, 321or 323
quaternion - CBIorientation quaternion, 4x1
备注:Maintains a constant orientationof the body-fixed axes
with respect to the inertial coordinatesystem. The
orientation of the body-fixed axes isspecified by three
angles or a quaternion, as determined by theOrientation Type.
2.9.7 stkAttOffset
作用:姿态偏移用法:stkAttOffset('objPath', offset)
说明:objPath - Valid path, may beobtained from stkObjNames.
offset - Angular offset (radians).
Offset is applied as anAlignOffset is attitude type is:
Sun alignment withnadir constraint
Sun alignment withecliptic normal constraint
Sun alignment withECI Z axis constraint
Sunalignment-occultation normal constraint
Offset is applied as anConstraintOffset is attitude type is:
Nadir alignment withECF velocity constraint
Nadir alignment withECI velocity constraint
Nadir alignment withSun constraint
ECI velocityalignment with nadir constraint
ECF velocityalignment with radial constraint
Nadir alignment withorbit normal constraint
There is no change ifattitude type is:
Yaw to nadir
Spinning
Spin about Nadir
Spin about Sun vector
Inertially fixed
2.10 飞机,车辆与船舰属性(Aircraft, GroundVehicle andShip Propagators)
2.10.1 stkSetWaypoints
作用:设置路径点用法:stkSetWaypoints('objPath','startTime', llaMat, speedVec)
stkSetWaypoints('objPath', 'startTime', llaMat, speedVec, accelVec)
stkSetWaypoints('objPath', 'startTime', llaMat, speedVec, wpFilePath)
stkSetWaypoints('objPath', 'startTime',llaMat, speedVec, accelVec, wpFilePath)
说明:objPath - valid STK object path
startTime - start time date string. See stkEpoch for valid formats.
llaMat - Matrix of LLA positions, 3xN, (radians andmeters)
speedVec - Vector of speeds Nx1 (meters/sec)
accelVec - Vector of accelerations, Nx1 (meters/sec^2)
wpFilePath - file nameto create. Default is to
create a file in thescenario directory named
{objName}.ga, whereobjName is derived from the
objPath.
2.10.2 stkLoadWaypoints
作用:载入路径点用法:stkLoadWaypoints('objPath','fileName')
说明:objPath - Valid path, may beobtained from stkObjNames.
fileName - file name.
2.10.3 stkSetGreatArcStart
作用:设置起始时间用法:stkSetGreatArcStart('gaVehPath',startTime)
说明:gaVehPath - string name of aircraft,groundVehicle or ship
startTime - time atfirst waypoint (epoch seconds)
2.11 导弹运动属性(Missile Propagators)
2.11.1 stkSetPropBallistic
作用:设置弹道导弹运动属性用法:stkSetPropBallistic('missilePath',tLaunch, TOF, dT, launchLLA, impactLLA)
说明:missilePath- Valid missile path, may be obtained from stkObjNames.
tLaunch- launch time, epoch seconds
TOF- missile time of flight (seconds)
dT- time step in seconds.
launchLLA,impactLLA - geodetic lat/lon/alt vectors, [rad;rad;meters]
2.12 设备与目标(Facilities and Targets)
2.12.1 stkPosVelCBF
作用:Position andVelocity, Central Body Fixed coordinates用法:[pos, vel] =stkPosVelCBF('objPath', time)
说明:objPath - Vehicle or facilitypath, may be obtained from stkObjNames.
time - Scenario time (sec).
pos - Central Body Fixed position (meters).
vel - Central Body Fixed velocity (meters/sec).
备注:CBF coordinates may be convertedto any other system using
commands in the AerospaceToolbox. The command stkCentralBody
may be used to obtain thecentral body name of the object.
2.12.3 stkSetFacPosCBF
作用:Set FacilityPosition, Central Body Fixed coordinates用法:stkSetFacPosCBF('facPath', pos)
说明:facPath - Valid facility classpath, may be obtained from stkObjNames.
pos - Central Body Fixed position (3x1, inmeters).
备注:CBF coordinates may be obtainedfrom any other system using
commands in the AerospaceToolbox.
2.12.3 stkSetFacPosLLA
作用:Set FacilityPosition, Geodetic coordinates用法:stkSetFacPosLLA('facPath',llaPos)
说明:facPath -Valid facility class path, may be obtained from stkObjNames.
llaPos - Geodetic lat, long, alt position (3x1,[rad; rad; meters]),
or use the local terrain altitude by specifying
lat, long only (2x1, [rad; rad]).
备注:LLAcoordinates may be obtained from any other system using
commands in the Aerospace Toolbox.
2.13 区域目标(Area Targets)
2.13.1 AreaTarget boundary
2.14 STK工具(STK Tools)
2.14.1 stkAccess
作用:获取链路间隔Access intervals用法:intervals = stkAccess('fromPath','toPath')
说明:fromPath, toPath - String name ofobjects obtained from stkObjNames.
intervals - Accessinterval times structure array with fields:
start - starttime of access interval
stop - stoptime of access interval
2.14.2 stkReport
作用:Generate an object report用法:[secData, secNames] =stkReport('objPath', 'rptStyle')
[secData, secNames] =stkReport('objPath', 'rptStyle', tStart, tStop, dT)
说明:objPath - String name of object obtained fromstkObjNames.
rptStyle - String name of existing STK report stylevalid for the object.
tStart - Start time for report (override styledefault).
tStop - Stop time for report (override styledefault).
dT - Time step of data (override style default).
secData - Cell array of report data, one cell perreport section.
secNames - Cell array of section names, one cell perreport section.
备注:Each section of an STK reportstyle is arranged into a fixed number
of rows and columns(MxN). Each cell array element ofsecData is a
1xN structure withfields:
name - the dataelement name, e.g. 'Time'
data - Mx1 matrixof element values
Use stkFindData toextract desired data elements from a report section.
Reports generated fromthis interface are unitless. This is adeparture from
STK reporting, whereusers may control the units of various dimensions. This
function returns all datain default internal units as follows:
Dimension Unit
--------------- ---------
Distance Meter
SmallDistance Meter
Time Second
Angle Radians
Mass Kilogram
Date EpochSec
Latitude Radians
Longitude Radians
Temperature Kelvin
Power Watt
Frequency Hertz
SmallTime Second
Ratio Decibel
Rcs Decibel
DopplerVelocity M/S
SARTimeResProd Meter*Sec
PowerDensity Db/Hz
PRF Hertz
Bandwidth Hertz
Duration Sec
Force Newton
2.14.3 stkAccReport
作用:Generate an Access report用法:[secData, secNames] =stkAccReport('objPath', 'accObjPath', 'rptStyle')
[secData, secNames] =stkAccReport('objPath', 'accObjPath', 'rptStyle', tStart, tStop, dT)
说明:objPath - String name of object obtained fromstkObjNames.
accObjPath - String nameof access object.
rptStyle - String name ofexisting STK report style valid for the object.
tStart - Start time forreport (override style default).
tStop - Stop time forreport (override style default).
dT - Time step of data(override style default).
secData - Cell array ofreport data, one cell per report section.
secNames - Cell array ofsection names, one cell per report section.
Each section of an STKreport style is arranged into a fixed number
of rows and columns(MxN). Each cell array element ofsecData is a
1xN structure withfields:
name - the dataelement name, e.g. 'Time'.
data - Mx1 matrixof element values
2.14.4 stkFindData
作用:Extract data from a reportsection用法:data = stkFindData(section,'name')
说明:section - report section, fromstkReport or stkAccReport
NOTE: stkReport and stkAccReport return a
cell array ofsections, this function must
be passed asingle element of the cell.
name - name of the dataelement, e.g. 'Time'.
data - data element
备注:assume vehPath is a validsatellite object path
[secData, secNames] =stkReport(vehPath, 'Beta Angle');
time = stkFindData(secData{1},'Time');
betaAngle =stkFindData(secData{1}, 'Beta Angle');
plot(time, betaAngle);
2.15 连接命令(Connect Commands)
2.15.1 stkOpen
作用:Open a Connection to STK用法:conID = stkOpen('hostPortStr')
conID = stkOpen
说明:conID - STK/Connect handle.
hostPortStr - A string specifying the host andport for
theconnection. When not specified, the
hostPortStrwill be set to 'localhost:5001'.
2.15.2 stkClose
作用:close an STK Connection用法:stkClose(conID)
stkClose('ALL')
stkClose
说明:conID STK/Connect connectionID obtained from stkOpen. Omitting this parameter will close the defaultconnection.
2.15.3 stkExec
作用:Execute an STK/Connect command用法:rtn = stkExec(conID, 'conCmdStr')
说明:rtn - A character array containing the STK return
conID -STK/Connect connection ID, from stkOpen.
conCmdStr - Stringcontaining the Connect command
2.15.4 stkConnect
作用:Convenience routine for sendingConnect Commands to STK用法:rtnData = stkConnect(conID, 'command','objPath', 'cmdParamString')
说明:conID - connection ID, obtainedfrom stkOpen
command - STK/Connectcommand verb, see the STK/Connect documentation
objPath - hierarchicalname of object to receive command.
The function stkObjNamesis a useful source of names.
cmdParamString - astring containing the command parameters to be
processedby STK. This argument may be ommitted.
rtnData - string matrixof data returned by STK in repsonse to the command.
三、aeroToolbox函数详细介绍
3.1 坐标系中的历元与数据函数Coordinate System Epoch andDate functions)
3.1.1 atbGetEpoch
作用:Get analysis epoch用法:epoch = atbGetEpoch
说明:epoch - structure with thefollowing fields:
year - e.g.2000
month - e.g. 1
days - e.g. 1
hours - e.g. 12
minutes - e.g.30
seconds - e.g.0
timeZone - e.g.'Z'
isDST - e.g. 0
The above examplecorresponds to the date 1 Jan 2000, 12:30:00.00 GMT
3.1.2 atbSetEpoch
作用:Set analysis epoch用法:atbSetEpoch(year, month, day,hour, minute, sec, 'timeZone', isDST)
atbSetEpoch(dateStruct)
atbSetEpoch(dateVec)
atbSetEpoch(dateVec,'timeZone', isDST)
说明:year - e.g. 2000
month - e.g. 1
day - e.g. 1
hour - e.g. 12
minute - e.g. 30
sec - e.g. 0
timeZone - e.g. 'Z'
isDST - e.g. 0
dateStruct - see atbGetEpoch for the format of this structure
dateVec - a Matlab datevector, see DATEVEC for more help
timeZone - a singlecharacter string, the default is 'Z'
isDST - a logical flag,the default is 0 (false)
The above examplecorresponds to the date 1 Jan 2000, 12:30:00.00 GMT
备注:This function sets the absolutedate corresponding to zero epoch seconds.
Inertial coordinatesystems are referenced to a particular date.
Certain functions withinthe aeroToolbox require input of a time
in seconds to indicatethe elapsed (relative) time since the coordinate
system epoch. This function sets the coordinate systemepoch.
3.1.3 atbDateToEpochSec
作用:Convert an absolute date to epochseconds用法:epochSec = atbDateToEpochSec(year, month, day, hour, minute, sec,'timeZone', isDST)
epochSec =atbDateToEpochSec(dateStruct)
epochSec =atbDateToEpochSec(dateVec)
epochSec =atbDateToEpochSec(dateVec, 'timeZone', isDST)
说明:year - e.g. 2000
month - e.g. 1
day - e.g. 1
hour - e.g. 12
minute - e.g. 30
sec - e.g. 0
timeZone - e.g. 'Z'
isDST - e.g. 0
dateStruct - seeatbGetEpoch for the format of this structure
dateVec - a Matlab datevector, see DATEVEC for more help
timeZone - a singlecharacter string, the default is 'Z'
isDST - a logical flag,the default is 0 (false)
The above examplecorresponds to the date 1 Jan 2000, 12:30:00.00 GMT
备注:This function returns the offsetin epoch seconds between the current
epoch and the inputdate. When a Matlab format dateVec isprovided as
the only input, thetimeZone is assumed to be 'Z' and isDST is assumed
to be false.
3.1.4 atbEpochSecToDate
作用:Convert epoch seconds to anabsolute date用法:date =atbEpochSecToDate(epochSec)
说明:
备注:This function returns theabsolute date corresponding to an offset
in seconds from thecurrent epoch.
3.2 坐标系转换(Coordinate Conversions)
3.2.1 atbCbfToCbi
作用:Convert CBF coordinates to CBIcoordinates用法: cbiPos = atbCbfToCbi('cbName', times,cbfPos)
[cbiPos, cbiVel] =atbCbfToCbi('cbName', times, cbfPos, cbfVel)
说明:cbName - Valid centralbody nam, e.g. 'Earth'
times - Length N vector of times for CBF pos andvel
cbfPos - 3xN matrix of CBF positions
cbfVel - 3xN matrix of CBF velocities
cbiPos - 3xN matrix of CBI positions
cbiVel - 3xN matrix of CBI velocities
备注:Converts position and velocity inthe central body fixed
coordinate system to aposition and velocity in the default
central body inertialcoordinate system at the provided times.
3.2.2 atbCbfToCbiMtx
作用:Transformation matrix from CBF toCBI用法:T = atbCbfToCbiMtx('cbName',time)
说明:time - time in seconds
T - Coordinate transformation matrix
备注:Generates the transformationmatrix to convert a vector
in the Central BodyFixed (CBF) system to a vector in the
Central Body Inertial(CBI) system. Inputs are the central
body name and the time.
3.2.3 atbCbfToLhMtx
作用:Transformation matrix from CBF tolocal horizontal用法:T = atbCbfToLhMtx('cbName', lat,long)
说明:lat - Geodetic latitude
long - Geodetic longitude
T - Coordinatetransformation matrix
备注:Generates the transformationmatrix to convert a vector
in the Central BodyFixed (CBF) system to a vector in the
local horizontal (LH)system. Inputs are the geodetic
latitude and longitudeof the reference location.
3.2.4 atbCbfToLla
作用:Transformation from CBF togeodetic LLA用法: llaPos = atbCbfToLla('cbName', cbfPos)
[llaPos, llaRate] =atbCbfToLla('cbName', cbfPos, cbfVel)
说明:cbName - Valid central body name
cbfPos - CBF position, 3xN
cbfVel - CBF velocity, 3xN
llaPos - geodetic lat/long/alt, 3xN
llaRate - geodeticlat/long/alt rate, 3xN
备注:Determines the geodetic latitude,longitude, and altitude
and rates given acartesian position and velocity. The
cartesian vectors mustbe expressed in the central body
fixed coordinate system.
3.2.5 atbCbfToLlr
作用:Transformation from CBF togeocentric LLR用法: llrPos = atbCbfToLlr(cbfPos)
[llrPos, llrRate] = atbCbfToLlr(cbfPos, cbfVel)
说明:cbfPos - CBF position, 3xN
cbfVel -CBF velocity, 3xN
llrPos -Geocentric lat/long/radius, 3xN
llrRate - Geocentric lat/long/radius rate, 3xN
备注:Determines the geocentriclatitude, longitude, and radius
and rates given thecartesian position and velocity. The
input cartesian vectorscan be in any coordinate system
and the output willrepresent the corresponding spherical coordinates.
3.2.6 atbCbfToVvlhMtx
作用:Transformation matrix from CBF toVVLH用法:T = atbCbfToVvlhMtx(cbfPos,cbfVel)
说明:cbfPos - CBF position vector, 3x1
cbfVel - CBFvelocity vector, 3x1
T - Coordinate transformation matrix, 3x3
备注:Generates the transformationmatrix to convert a vector
in the input cartesiansystem to a vector in the Vehicle
Velocity LocalHorizontal (VVLH) system. Inputs are the
cartesian coordinatevector and velocity vector of the
vehicle. The VVLH local horizontal definition is based
on a spherical centralbody model.
3.2.7 atbCbiToCbf
作用:Convert CBI coordinates to CBFcoordinates用法: cbfPos= atbCbiToCbf('cbName', times, cbiPos)
[cbfPos, cbfVel] =atbCbiToCbf('cbName', times, cbiPos, cbiVel)
说明:cbName - Valid central body name
times - Length N vector of times for CBI pos andvel
cbiPos - 3xN matrix of CBI positions
cbiVel - 3xN matrix of CBI velocities
cbfPos - 3xN matrix of CBF positions
cbfVel - 3xN matrix of CBF velocities
备注:Converts position and velocityvectors in the default
central body inertialcoordinate system to a position
and velocity in thecentral body fixed coordinate system
at the provided time.
3.2.8 atbCbiToCbi
作用:Convert CBI coordinates toanother CBI system用法: toPos = atbCbiToCbi('fromCb', 'toCb',times, fromPos)
[toPos, toVel] =atbCbiToCbi('fromCb', 'toCb', times, fromPos, fromVel)
说明:fromCb, toCb - Valid central body names
times -Length N vector of times for CBF pos and vel
fromPos - 3xN matrix of original CBI positions
fromVel - 3xN matrix of original CBI velocities
toPos -3xN matrix of new CBI positions
toVel -3xN matrix of new CBI velocities
备注:Computes the inertial positionand velocity relative to the
"to" centralbody of an object whose inertial position and
velocity have beenspecified relative to the "from" central
body. This computation therefore accounts for boththe
difference in positionof the central bodies and the difference
in the orientations oftheir default inertial coordinate systems.
3.2.9 atbCbiToCbiMtx
作用:Transformation matrix from CBI toanother CBI system用法:T = atbCbiToCbiMtx('fromCB','toCB')
说明:T - Coordinate transformation matrix
备注:Generates the transformationmatrix to convert a vector
in one Central BodyFixed (CBF) system to a vector in
another Central BodyInertial (CBI) system. Inputs are the
two central body names
3.2.10 atbLlaToCbf
作用:Transformation from geodetic LLAto CBF用法: cbfPos = atbLlaToCbf('cbName', llaPos)
[cbfPos, cbfVel] = atbLlaToCbf('cbName', llaPos,llaRate)
说明:cbName - Valid central body name
llaPos - Geodetic lat/long/alt, 3xN
llaRate - Geodeticlat/long/alt rate, 3xN
cbfPos - CBF position, 3xN
cbfVel - CBF velocity, 3xN
备注:Converts the geodetic latitude,longitude, and altitude
and rates to a cartesianposition and velocity. The
cartesian vectors willbe expressed in the central body
fixed coordinate system.
3.2.11 atbLlrToCbf
作用:Transformation from geocentricLLR to CBF用法: cbfPos = atbLlrToCbf(llrPos)
[cbfPos, cbfVel] = atbLlrToCbf(llrPos,llrRate)
说明:llrPos - Geodetic lat/long/radius, 3xN
llrRate - Geodeticlat/long/radius rate, 3xN
cbfPos - CBF position, 3xN
cbfVel - CBF velocity, 3xN
备注:Converts the geocentric latitude,longitude, and radius
and rates to a cartesianposition and velocity. The
cartesian vectors will be expressed in thecentral body
fixed coordinate system.
3.2.12 atbCbCoordinates
作用:Coordinate system namesassociated with a central body用法:[names, descrips]=atbCbCoordinates('cb')
说明:cb - central body name
names - cell array ofcoordinate system names
descrips - cell array ofcoordinate system descriptions
备注:This function outputs thepossible coordinate systems which may
be converted betweenusing atbCoordXForm and atbCoordXFormMtx
3.2.13 atbCoordXForm
作用:General coordinate systemtransformation用法:[ToPos, ToVel]=atbCoordXForm(time, 'FromCb', 'FromSystemName', FromEpoch,...
'ToCb', 'ToSystemName', ToEpoch,...
FromPos, FromVel)
说明:time - time offset from epoch inseconds of the FromPos and FromVel
Cb - central body names
SystemName - validcoordinate system name, obtained via atbCbCoordinates
Epoch - epochs for coordinatesystems, may be ignored (see below)
Pos - 3x1 positionvector (meters)
Vel - 3x1 velocityvector (meters) (optional)
备注:This function converts from onecoordinate system of one
central body to anothersystem of another central body.
Some coordinate systems require an epoch tofully define them,
in these cases, theEpoch inputs will be used, otherwise the
Epoch inputs will beignored. For example, the J2000 epoch is
intrinsic to thedefinition of the coordinate system and therefore
any input epoch will beignored. The various ...OfEpochcoordinate
systems are examples ofsystems that need an epoch.
3.2.14 atbCoordXFormMtx
作用:General coordinate systemtransformation用法:[TfmMtx, AngVelSysName, AngVel]= atbCoordXFormMtx('cb','FromSystemName', FromEpoch,'ToSystemName', ToEpoch)
说明:cb - central body name
SystemName - validcoordinate system name, obtained via atbCbCoordinates
Epoch - epochs forcoordinate systems, may be ignored (see below)
TfmMtx - transformationmatrix
AngVelSysName- name of the coordinate system in which the angular velocity is defined(optional)
AngVel - angularvelocity of the two systems (3x1) (optional)
备注:This function generates therotation matrix from one coordinate system
of a central body toanother system of the same central body.
Some coordinate systemsrequire an epoch to fully define them,
in these cases, theEpoch inputs will be used, otherwise the
Epoch inputs will beignored. For example, the J2000 epoch is
intrinsic to thedefinition of the coordinate system and therefore
any input epoch will beignored. The various ...Of Epochcoordinate
systems are examples ofsystems that need an epoch.
3.3 转动与四元数(Rotations and Quaternions)
3.3.1 atbAlignVecQuat
作用:Quaternion for coordinate systemtransformation用法:rotQuat = atbAlignVecQuat(vec1A, vec1B)
rotQuat =atbAlignVecQuat(vec1A, vec1B,vec2A, vec3B)
说明:vec1A - a 3x1vector created by the user.
vec1B - a 3x1 vector created by the user.
vec2A -a 3x1 vector created by the user.
vec3B - a 3x1 vector created by the user.
rotQuat - a 4x1 vector quaternion
备注:Produces a quaternion for the transformation from coordinate systemA to coordinate system B where the vector 1 is known in both coordinate systems.Vectors 2A and 3B areused (if supplied) to resolve the ambiguity about the vector 1 direction. Afterthe
alignment of vector 1 is achieved, the components of vectors 2A and 3B which are perpendicular to vector 1are aligned. An example of this type of application would be to point a sensorboresight at a target while maintaining the minimum possible angle between
thesun vector and the solar panels on the satellite. None of the vectors need tobe unit vectors.
3.3.2 atbEulerToMtx
作用:Generate rotation matrix fromEuler angles用法:cosMtx = atbEulerToMtx(angles,sequence)
说明:angles - 3x1 vector of Euler angles
sequence - 3 digit integer defining the order ofrotation.
(1-X, 2-Y, 3-Z). A common Euler angle is 313.
cosMtx - 3x3 direction cosine matrix.
备注:Computes a direction cosine matrix from a set of Euler angles. The direction cosine matrix gives the relationshipto transform from the reference coordinate system to the new coordinate system.
3.3.3 atbEulerToQuat
作用:Generate quaternion from Eulerangles用法:quat = atbEulerToQuat(angles,sequence)
说明:angles - 3x1 vector of Euler angles
sequence - 3 digit integer defining the order ofrotation.
(1-X, 2-Y, 3-Z). A common Eulerangle is 313.
quat - 4x1 quaternion representingrotation
备注:Computes a rotation quaternionfrom a set of Euler angles.
3.3.4 atbMinRotQuat
作用:Minimum Rotation Quaternion用法:quat = atbMinRotQuat(vec1, vec2)
说明:vec1, vec2 - 3x1 position vectors
quat - 4x1 rotation quaternion
备注:Computes a quaternion to performthe minimum angle
rotation to align vec1 along vec2. This can
be useful in both active and passive applications.
An example of an active application would be the
generation of a maneuver quaternion to change the
pointing of a satellite. An example of a passive
application would be to determin the relationship
between two coordinate systems when a vector is
known in both systems. The quaternion would
represent the system1to system2 transformation.
3.3.5 atbMtxToEuler
作用:Matrix to Euler angles用法:angles = atbMtxToEuler(cosMtx,sequence)
说明:cosMtx - 3x3 cosine matrix
sequence - 3 digit integer defining the rotation order.
(1-X,2-Y, 3-Z). A common Euler angle is 313.
angles - 3x1vector of Euler angles
3.3.6 atbMtxToQuat
作用:Cosine matrix to quaternionconversion用法:quat = atbMtxToQuat(cosMtx)
说明:cosMtx - 3x3 directional cosine matrix
quat -4x1 quaternion vector
3.3.7 atbMtxToYpr
作用:Cosine matrix to Yaw-Pitch-Roll用法:yprVec = atbMtxToYpr(cosMtx,sequence)
说明:cosMtx - 3x3direction cosine matrix
sequence -3 digit integer defining the rotation order
yprVec - YPR angles, 3x1
3.3.8 atbQuatToMtx
作用:Quaternion to Matrix conversion用法:cosMtx = atbQuatToMtx(quat)
说明:quat - 4x1 quaternion
cosMtx - 3x3 directional cosine matrix
3.3.9 atbQuatXquat
作用:Quaternion multiplication用法:quatC = atbQuatXquat(quatA,quatB)
说明:quatA,quatB - input 4x1quaternions
quatC - 4x1 quaternion product
备注:Computes the resultant quaternion due to the combination of the twoinput quaternions. The input quaternionsmay be thought of as representing two different rotations. The resulting quaternion represents the newrotation which is equivalent to performing
the rotation of quaternion2 followedby the rotation of quaternion1. The order of the input quaternions is designedto resemble the way the rotations would appear on paper if you were writing outan equation. To rotate vector one through two rotations to produce
vector 2,you would write V2 = Q1 Q2 V1. Theresulting quaternion will have unit length.
3.3.10 atbYprToMtx
作用:Yaw Pitch Roll to Matrix用法:cosMtx = atbYprToMtx(yprVec,sequence)
说明:yprVec - 3x1 Yaw-Pitch-Roll angles
sequence - 3 digit integer defining the rotation order
(1-Roll, 2-Pitch, 3-Yaw). A Yaw-Pitch-Roll
sequencewould be 321.
cosMtx - 3x3 directional cosine matrix
备注:Builds a direction cosine matrixfrom yaw, pitch and roll
angles. The sequence variable is used to specify theorder
of the rotations(1-Roll, 2-Pitch, 3-Yaw). AYaw-Pitch-Roll
sequence would be 321.
3.3.11 atbYprToQuat
作用:Yaw Pitch Roll to Quaternion用法:quat = atbYprToQuat(yprVec,sequence)
说明:yprVec - 3x1 yaw-pitch-roll vector
sequence - 3 digit integer defining the rotation order.
(1-Roll, 2-Pitch, 3-Yaw). A Yaw-Pitch-Roll
sequencewould be 321.
quat - 4x1 quaternion
备注:Builds a quaternion from yaw,pitch and roll angles. The
sequence variable isused to specify the order of the
rotations (1-Roll,2-Pitch, 3-Yaw). A Yaw-Pitch-Roll
sequence would be 321.
3.3.12 atbInterpQuat
作用:Interpolate Quaternion用法:interpQuat =atbInterpQuat(startQuat, endQuat, interpParam)
interpQuat =atbInterpQuat(startQuat, endQuat, interpParam, extraRot)
说明:startQuat - 4x1 quaternion
endQuat - 4x1 quaternion
interpParam - scalarinterp factor. 0 < interpParam < 1
extraRot - extra rotations.
interpQuat - 4x1 quaternion
备注:Interpolates two quaternionsassuming a constant rate of rotation
about a constant spin axis between the two endorientations.
3.4 中心对象操作与程序(Central Body Operations andRoutines)
3.4.1 atbCbEphemeris
作用:Generate central bodyposition/velocity in inertial coordinates用法:[pos, vel] =atbCbEphemeris('cbName', times)
说明:cbName - valid central body name,e.g. 'Earth'
times - vector of times to compute pos/vel for,length M
pos,vel - 3xM matricesof inertial pos/vel data
备注:This function computes theposition and velocity of the central
body in the defaultinertial coordinate system at the
specified time. The default inertial coordinate system
has its origin at thesolar system barycenter and axes that are
aligned with the J2000coordinate system.
3.4.2 atbCbGetTangent
作用:Tangent points on central body用法:tanPts =atbCbGetTangent('cbName', posVec, normVec)
说明:cbName - Valid central body name, e.g. 'Earth'
posVec - 3x1 vector, CBF position
normVec - 3x1 vector,CBF normal direction
tanPts - 3x2 matrix, CBF points of tangency
备注:Computes vectors to the twotangent points on the
surface of the centralbody given a position vector specifying
a location outside ofthe central body and a normal vector.
The normal vector mustbe perpendicular to the position vector
and the two outputvectors will lie in the plane defined by the
normal vector. All vectors are expressed in central bodyfixed
coordinates.
3.4.3 atbCbGravParam
作用:Gravitational Parameter用法:[gm, refDist, J2, J4] =atbCbGravParam('cbName')
说明:cbName - Valid central body name, e.g. 'Earth'
gm - gravitational parameter (meters^3 /sec^2)
refDistance - equatorialradius (meters)
J2 - zonal harmonic parameter (unitless)
J4 - zonal harmonic parameter (unitless)
3.4.4 atbCbGrazeAlt
作用:Grazing altitude用法:[alt, minAltVec, isBetween] =atbCbGrazeAlt('cbName', vec1, vec2)
[alt,minAltVec] = atbCbGrazeAlt('cbName', vec1, vec2)
alt = atbCbGrazeAlt('cbName', vec1, vec2)
备注:The input vectors are given inthe central body fixed
coordinate system. The function returns the minimum
altitude along the lineof sight between the two locations.
The CBF vector to theminimum altitude point is optionally computed.
An indication of whetheror not the minimum altitude point
is between the endpoints--as opposed to at an end point--
is provided if the isBetweenoutput is specified.
3.4.5 atbCbGrazeAngle
作用:Grazing angle用法:angle = atbCbGrazeAngle('cbName',fromVec, toVec)
备注:The input vectors are given inthe central body fixed coordinate
system. The function returns the angle between theline of sight
vector and the closesttangent to the surface of the central body
which is coplanar withthe two input vectors. The sign of this
angle should be positiveif the line of sight does not intersect
the central body andnegative otherwise.
3.4.6 atbCbIntersect
作用:Central body intersection用法:[intx,intVec1, intVec2, mult1,mult2] = atbCbIntersect('cbName', posVec, dirVec)
[intx,intVec1, intVec2] =atbCbIntersect('cbName', posVec, dirVec)
intx = atbCbIntersect('cbName', posVec,dirVec)
说明:cbName - valid central body name, e.g. 'Earth'
posVec - 3x1 CBF position vector
dirVec - 3x1 CBF direction vector
intx - True/False
intVec* - Central bodyintercept points, CBF 3x1.
mult* - Multiplier to scale dirVec by to yield theintersections
备注:This function returns True if thevector specified by the
direction argument willintersect the central body and False
otherwise. The origin of the direction vector isspecified
by the positionvector. The optional vectors intx1 andintx2
are points ofintersection with the central body. Theoptional
outputs mult1 and mult2represent scalars by which the direction
vector is multiplied andthen added to the position vector to
yield the intersectionpoints. The multipliers may be positive
or negative depending onif the intersections occur in the
positive or negativedirection.
3.4.7 atbCbLclRadCen
作用:Local central body radius,geocentric basis用法:radius = atbCbLclRadCen('cbName',lat, long)
说明:cbName - Valid central body name, e.g. 'Earth'
lat - Latitude
long - Longitude
radius - The central body radius
备注:This function returns the radiusof the central body
at the input geocentriclatitude and longitude. The
term geoocentric impliesthat the latitude and longitude
are measured based onthe vector from the origin of the central body.
3.4.8 atbCbLclRadDet
作用:Local central body radius,geodetic basis用法:radius = atbCbLclRadDet('cbName',lat, long)
说明:cbName - Valid central body name, e.g. 'Earth'
lat - Latitude
long - Longitude
radius - The central body radius
备注:This function returns the radiusof the central body
at the input geodeticlatitude and longitude. The term
geodetic implies thatthe latitude and longitude are
measured from a vectornormal to the surface of the central body.
3.4.9 atbCbSurfDistCen
作用:Surface path length, geocentricbasis用法:dist = atbCbSurfDistCen('cbName',lat1, long1, lat2, long2)
说明:cbName - Valid central body name, e.g. 'Earth'
lat1, long1 - Latitudeand longitude of first location
lat2, long2 - Latitudeand longitude of second location
dist - Distance across the surface of thecentral body
备注:This function returns thedistance between two locations on
the surface of thecentral body as specified by the input
geocentric latitude andlongitude. The term geocentric implies
that the latitude andlongitude are measured based on the
vector from the originof the central body.
3.4.10 atbCbSurfDistDet
作用:Surface path length, geodeticbasis用法:dist = atbCbSurfDistDet('cbName',lat1, long1, lat2, long2)
说明:cbName - Valid central body name, e.g. 'Earth'
lat1, long1 - Latitudeand longitude of first location
lat2, long2 - Latitudeand longitude of second location
dist - Distance across the surface of thecentral body
备注:This function returns thedistance between two locations on
the surface of thecentral body as specified by the input
geodetic latitude andlongitude. The term geodetic implies
that the latitude andlongitude are measured from a vector
normal to the surface ofthe central body.
3.4.11 atbCbSurfNormCen
作用:Surface normal, geocentric basis用法:normal =atbCbSurfNormCen('cbName', lat, long)
说明:cbName - Valid central body name, e.g. 'Earth'
lat - Latitude
long - Longitude
normal - 3x1 CBF vector representing the normal atthe lat/long
备注:This function computes a vectorwhich is normal to the surface
of the central body atthe specified geocentric latitude and
longitude. The term geocentric implies that the latitudeand
longitude are measuredbased on the vector from the origin of
the central body.
3.4.12 atbCbSurfNormDet
作用:Surface normal, geodetic basis用法:normal =atbCbSurfNormDet('cbName', lat, long)
说明:cbName - Valid central body name, e.g. 'Earth'
lat - Latitude
long - Longitude
normal - 3x1 CBF vector representing the normal atthe lat/long
备注:This function computes a vectorwhich is normal to the surface
of the central body atthe specified geodetic latitude and
longitude. The term geodetic implies that the latitudeand
longitude are measuredbased on the vector normal to the
surface of the centralbody.
3.5 指向,星历与姿态文件(Waypoint, Ephemeris andAttitude Files)
3.5.1 atbReadAttitudeCBF
作用:read an STK external Attitudefile用法:[time, quats, epoch, cb] =atbReadAttitudeCBF('fileName')
说明:fileName - valid filename ofAttitude file
time - scenario time,1xN (sec)
quats - attitudequaternions, CBF to Body, 4xN
epoch - date string ofepoch, will be empty if not specified in file
cb - central body name,will be empty if not specified in file
3.5.2 atbReadAttitudeCBI
作用:read an STK external Attitudefile用法:[time, quats, epoch, cb] =atbReadAttitudeCBF('fileName')
说明:同上
3.5.3 atbWriteAttitudeCBF
作用:write an STK external attitudefile in CBF format用法:atbWriteAttitudeCBF('fileName',timeVec, quatMat, 'epoch', 'cb')
说明:fileName - String file name, willbe overwritten if already exists
timeVec - Length N vector of times
quatMat - Matrix of CBF to body quaternions, 4xN
epoch - epoch of data, date string
cb - central body name
3.5.4 atbWriteAttitudeCBI
作用:write an STK external attitudefile in CBI format用法:atbWriteAttitudeCBI('fileName',timeVec, quatMat, 'epoch', 'cb')
说明:fileName - String file name, willbe overwritten if already exists
timeVec - Length N vector of times
quatMat - Matrix of CBI-to-body quaternions, 4xN
epoch - epoch of data, date string
cb - central body name
3.5.5 atbReadEphemerisCBF
作用:read an STK external ephemerisfile用法:[time, pos, vel, epoch, cb] =atbReadEphemerisCBF('fileName')
说明:fileName - valid filename ofephemeris file
time - scenario time,1xN (sec)
pos - CBF positionmatrix, 3xN (meters)
vel - CBF velocity matrix, 3xN (meters/sec)
epoch - date string ofepoch, will be empty if not specified in file
cb - central body name,will be empty if not specified in file
3.5.6 atbReadEphemerisCBI
作用:read an STK external ephemerisfile用法:[time, pos, vel, epoch, cb] =atbReadEphemerisCBI('fileName')
说明:fileName - valid filename ofephemeris file
time - scenario time,1xN (sec)
pos - CBI positionmatrix, 3xN (meters)
vel - CBI velocitymatrix, 3xN (meters/sec)
epoch - date string ofepoch, will be empty if not specified in file
cb - central body name,will be empty if not specified in file
3.5.7 atbWriteEphemerisCBF
作用:write an STK external ephemerisfile in CBF format用法:atbWriteEphemerisCBF('fileName',timeVec, posMat, velMat, 'epoch', 'cb')
说明:fileName - String file name, willbe overwritten if already exists
timeVec - Length N vector of times
posMat - Matrix of CBF positions, 3xN
velMat - Matrix of CBF velocities, 3xN
epoch - epoch of data, date string
cb - central body name
3.5.8 atbWriteEphemerisCBI
作用:write an STK external ephemerisfile in CBI format用法:atbWriteEphemerisCBI('fileName',timeVec, posMat, velMat, 'epoch', 'cb')
说明:fileName - String file name, willbe overwritten if already exists
timeVec - Length N vector of times
posMat - Matrix of CBI positions, 3xN
velMat - Matrix of CBI velocities, 3xN
epoch - epoch of data, date string
cb - central body name
3.5.9 atbWriteWaypointFile
作用:write an STK waypoint file用法:atbWriteWaypointFile('fileName','startTime', llaMat, speedVec, accelVec)
atbWriteWaypointFile('fileName', 'startTime', llaMat, speedVec)
说明:fileName - String file name, willbe overwritten if already exists
startTime - start time date string. See stkEpoch for valid formats.
llaMat - Matrix of LLA positions, 3xN, (radians andmeters)
speedVec - Vector of speeds Nx1 (meters/sec)
accelVec - Vector of accelerations, Nx1 (meters/sec^2)
3.6 位置与速度函数(Position and Velocity Functions)
3.6.1 atbGeometry
作用:compute absolute and relativegeometry用法: geom = atbGeometry(times, dynState)
[fromGeom, toGeom] = atbGeometry(times,fromDynState, toDynState)
说明:times - times to compute state
dynState - raw dynamic data generated by STKpropagators.
geom -array of currentData structures corresponding
toeach time.
备注:atbGeometry calculates absoluteand relative state
data for a single objector a pair of objects.
A dynState structurecontains a full description of
a vehicle's position,velocity and attitude over
the vehicle's lifetime.
atbGeometry interpolatesthe data in the dynState
structure for the timesgiven.
When two dynStates arepassed, relative geometry is
calculated in addition toabsolute geometry.
If a time is requestedthat is outside the time
interval of the dynState,geometry with each
field set to zero isreturned at the array index
corresponding to theinvalid time.
Users should test for azero'd currentData state
structure prior to usingit.
The currentData structurehas the following fields:
time in seconds from propagator epoch
pos in CBF cartesian coordinate (meters)
vel in CBF cartesian coordinates (m/s)
relPos in CBF cartesian coordinates (meters)
empty whencomputing absolute geometry only
relVel in CBF cartesian coordinates (m/s)
empty whencomputing absolute geometry only
range in meters
timeDelay in seconds
cbfToBody transfomation matrix from CBF to
object bodyframe
cb central body name, i.e. 'Earth'
isDir whether to position vectors represent
a directionas opposed to an
absoluteposition (Stars use this)
The atbFlatten command may beused to easily extract a given
field of a geometry structurearray.
SEE ALSO atbFlatten
EXAMPLE
Assume the user has generated two aircraft, ac1 and ac2 withoverlapping time intervals.
try the following commands:
minTime =max([min(ac1.dynState.times) min(ac2.dynState.times)]);
maxTime = min([max(ac1.dynState.times)max(ac2.dynState.times)]);
times = linspace(minTime,maxTime);
geom = atbGeometry(times,ac1.dynState, ac2.dynState);
pos =atbFlatten(geom,'pos');
lla =atbCbfToLla(geom(1).cb, pos);
lat = lla(1,:);
long = lla(2,:);
plot(long*180/pi,lat*180/pi, '+');
vel = atbFlatten(geom,'vel');
relPosCBF =atbFlatten(geom, 'relPos');
len = max(size(geom));
az = zeros(1, len);
el = zeros(1, len);
for k=1:len
relPosVVLH =atbCbfToVvlhMtx(pos(:,k), vel(:,k)) ...
*relPosCBF(:,k);
az(k) =atan2(-relPosVVLH(2), relPosVVLH(1));
el(k) = pi/2 -acos(relPosVVLH(3)/norm(relPosVVLH));
end
figure;
plot(az*180/pi,el*180/pi, '+');
3.6.2 atbGenGreatArc
作用:compute great arc route用法:llaPos = atbGenGreatArc('cb',fromLLA, toLLA, angRes)
说明:cb - central bodyname
fromLLA - 3x1 LLA vector [rad;rad;meters].
toLLA - 3x1 LLA vector [rad;rad;meters].
angRes - angular resolution (rad)
llaPos - 3xN LLA vector of intermediate points
3.6.3 atbCreateDynStateCBF
作用:Create a dynState structure fromCBF data elements用法:dynState = atbCreateDynStateCBF('cb', posVelTimes, cbfPos, cbfVel,quatTimes, cbfQuat, angVel)
dynState = atbCreateDynStateCBF('cb',posVelTimes, cbfPos, cbfVel, quatTimes, cbfQuat)
说明:cb - valid central body name,i.e. 'earth'
posVelTimes - 1xN lengthtime array for pos and vel data
cbfPos - 3xN CBF position array [x;y;z] (meters)
cbfVel - 3xN CBF velocity array [vx;vy;vz](m/sec)
quatTimes - 1xM time array for attitude data
cbfQuat - 4xM attitude quaternion arrayrepresenting the rotation
from theCBF frame to the objects body axes frame
angVel - optional 3xM angular velocity arrayrepresenting the rotation rate
around eachbody frame axis [rx;ry;rz] (rad/sec). The default is
fornon-rotating objects in which case geometry calculations
willinterpolate the quaternions.
3.6.4 atbCreateDynStateCBI
作用:Create a dynState structure fromCBI data elements用法:dynState = atbCreateDynStateCBI('cb', posVelTimes, cbiPos, cbiVel,quatTimes, cbiQuat, angVel)
dynState = atbCreateDynStateCBI('cb',posVelTimes, cbiPos, cbiVel, quatTimes, cbiQuat)
说明:cb - valid central body name,i.e. 'earth'
posVelTimes - 1xN lengthtime array for pos and vel data
cbiPos - 3xN CBI position array [x;y;z] (meters)
cbiVel - 3xN CBI velocity array [vx;vy;vz](m/sec)
quatTimes - 1xM time array for attitude data
cbiQuat - 4xM attitude quaternion arrayrepresenting the rotation
from theCBI frame to the objects body axes frame
angVel - optional 3xM angular velocity array representing the rotation rate
around eachbody frame axis [rx;ry;rz] (rad/sec). The default is
fornon-rotating objects in which case geometry calculations
will interpolate the quaternions.
3.6.5 atbLhQuatCen
作用:Compute a local horizontalcoordinate frame, geocentric version用法:quats = atbLhQuatCen(cbPos)
quats =atbLhQuatCen(cbPos, cbVel)
说明:cbPos - 3xN array of positionvectors [x;y;z] (meters)
cbVel - optional 3xNvelocity array [vx.vy;vz] (m/s).
Specification ofthis parameter will generate
a coordinatesystem with the X axis aligned with
the velocityvector. The default is to generate
a body frame with its X axis parallel to the
central bodyequator and its Y axis pointing
to the centralbody north pole.
quats - rotation matrixfrom CB coordinates into a body
frame with its XYplane perpendicular to the
CB positionvector.
3.6.6 atbLhQuatCBFDet
作用:Compute a local horizontalcoordinate frame, geodetic version用法:quats = atbLhQuatCBFDet('cbName',cbfPos)
quats =atbLhQuatCBFDet('cbName', cbfPos, cbfVel)
说明:cbName - valid central body name,e.g. 'earth'
cbfPos - 3xN array ofCBF position vectors [x;y;z] (meters)
cbfVel - optional 3xNCBF velocity array [vx.vy;vz] (m/s).
Specification ofthis parameter will generate
a coordinatesystem with the X axis aligned with
the velocityvector. The default is to generate
a body frame withits X axis parallel to the
central bodyequator and its Y axis pointing
to the centralbody north pole.
quats - rotation matrix from CBF coordinates into abody
framewith its XY plane tangent to the central
bodysurface.
3.6.7 atbFlatten
作用:Flatten a multidimensionalstructure's field用法:v = atbFlatten(s, 'field')
[v, fs] =atbFlatten(s, 'field')
说明:s - multidimension structure of length m
field - a fieldname of swith length n
v - flatten'd matrix of size m x n, the rows
of whichrepresent each field of s
fs - the size of each field. n = fs(1) * fs(2).
useful when thefield is a matrix.
Every field must have thesame length.
3.7 轨道要素转换(Orbit Element Set Conversions)
3.7.1 atbOrbCartToDel
作用:将直角坐标下的位置速度转换成两行(Delaunay)根数用法:delElems = atbOrbCartToDel(pos,vel, gravParam)
说明:pos -inertial cartesian position vector, 3x1, meters
vel - inertial cartesian velocity vector,3x1, meters/sec
gravParam - scalargravitational paramter, see atbCbGravParam
delElems - Delaunayorbit element set structure
This structurehas the following fields:
H - zcomponent of angular momentum
G - angularmomentum
L - sqrt(mu* a)
h - rightascension of ascending node (rad)
g - argument of perigree (rad)
l - meananomaly (rad)
备注:This function errors when themagnitude of eccenVec > 1, where
eccenVec = c1*pos -c2*vel
c1 = norm(vel)^2 /gravParam - 1/norm(pos)
c2 = dot(pos, vel) / gravParam
3.7.2 atbOrbCartToEqui
作用:将直角坐标下的位置速度转换成春分(equinoctial)根数用法:equiElems = atbOrbCartToEqui(pos,vel, gravParam)
说明:pos -inertial cartesian position vector, 3x1, meters
vel - inertial cartesian velocity vector,3x1, meters/sec
gravParam - scalargravitational paramter, see atbCbGravParam
equiElems - equinoctialorbit element set structure
This structurehas the following fields:
a -semimajor axis length (meters)
h - e *sin(omegaBar) (unitless)
k - e *cos(omegaBar) (unitless)
p -tan(i/2) * sin(raan) (unitless)
q -tan(i/2) * cos(raan) (unitless)
lambda -mean longitude (rad)
isPosigrade - alternative is retrograde
Where:
e - orbiteccentricity
i - orbitinclination
raan -right ascension of ascending node
omegaBar -argument of perigree + raan for posigrade or
argument of perigree - raan for retrograde
备注:This function will generate anerror if:
2.0 / norm(pos) -norm(vel)^2 / gravParam < 0
3.7.3 atbOrbCartToMod
作用:将直角坐标下的位置速度转换成修正(modified)根数用法:modElems = atbOrbCartToMod(pos,vel, gravParam)
说明:pos -inertial cartesian position vector, 3x1, meters
vel - inertial cartesian velocity vector,3x1, meters/sec
gravParam - scalargravitational paramter, see atbCbGravParam
modElems - modifiedorbit element set structure
This structurehas the following fields:
rp -periapsis radius (meters)
e -eccentricity (unitless)
i -inclination (rad)
raan -right ascension of ascending node (rad)
ap -argument of periapsis (rad)
ta - trueanomaly (rad)
3.7.4 atbOrbCartToSphere
作用:将直角坐标下的位置速度转换成球形(spherical)根数用法:sphereElems =atbOrbCartToSphere(pos, vel)
说明:pos -inertial cartesian position vector, 3x1, meters
vel - inertial cartesian velocity vector,3x1, meters/sec
sphereElems - sphericalorbit element set structure
Thisstructure has the following fields:
ra -right ascension (rad)
dec - declination (rad)
r -radius (meters)
fpa -horizontal flight path angle (rad)
az -flight path aximuth (rad)
v -speed (meters/sec)
3.7.5 atbOrbCartToMixedSphere
作用:将直角坐标下的位置速度转换成混合球形(mixed spherical)根数用法:mixedElems =atbOrbCartToMixedSphere('cb', time, pos, vel)
说明:cb -central body name, e.g. 'Earth'
time - coordinate time (seconds)
pos -inertial cartesian position vector, 3x1, meters
vel - inertial cartesian velocity vector,3x1, meters/sec
mixedElems - mixedspherical orbit element set structure
This structure has the following fields:
lon -longitude (rad)
lat -latitude (rad)
alt - altitude (meters)
fpa -horizontal flight path angle (rad)
az -flight path aximuth (rad)
v -speed (meters/sec)
3.7.6 atbOrbDelToCart
作用:将两行(Delaunay)根数根数转换成直角坐标下的位置速度用法:[pos, vel] =atbOrbDelToCart(delElems, gravParam)
3.7.7 atbOrbEquiToCart
作用:将春分(equinoctial)根数根数转换成直角坐标下的位置速度用法:[pos, vel] =atbOrbEquiToCart(equiElems, gravParam)
3.7.8 atbOrbModToCart
作用:将两行(Delaunay)根数根数转换成直角坐标下的位置速度用法:[pos, vel] =atbOrbDelToCart(delElems, gravParam)
3.7.9 atbOrbSphereToCart
作用:将两行(Delaunay)根数根数转换成直角坐标下的位置速度用法:[pos, vel] =atbOrbDelToCart(delElems, gravParam)
3.7.10 atbOrbMixedSphereToCart
作用:将两行(Delaunay)根数根数转换成直角坐标下的位置速度用法:[pos, vel] =atbOrbDelToCart(delElems, gravParam)
3.8 轨道根数分量的转换(Orbit Element ParameterConversions)
3.8.1 atbOrbEccToTrue
作用:偏近点角E转换为真近点角f用法:trueAnom =atbOrbEccToTrue(eccAnom, eccentricity)
说明:eccAnom - eccentric anomaly (rad)
eccentricity - unitless
trueAnom - true anomaly(rad)
3.8.2 atbOrbTrueToEcc
作用:真近点角f转换为偏近点角E用法:eccAnom =atbOrbTrueToEcc(trueAnom, eccentricity)
说明:trueAnom - true anomaly (rad)
eccentricity - unitless
eccAnom - eccentricanomaly (rad)
3.8.3 atbOrbMeanToTrue
作用:平近点角M转换为真近点角f用法:trueAnom =atbOrbMeanToTrue(meanAnom, eccentricity)
说明:meanAnom - mean anomaly (rad)
eccentricity - unitless
trueAnom - true anomaly(rad)
3.8.4 atbOrbTrueToMean
作用:真近点角f转换为平近点角M用法:meanAnom =atbOrbTrueToMean(trueAnom, eccentricity)
说明:trueAnom - true anomaly (rad)
eccentricity - unitless
meanAnom - mean anomaly(rad)
3.8.5 atbOrbLanToRaan
作用:升交点经度(地理)转化为升交点赤经(天球)用法:raan = atbOrbLanToRaan('cbName',lan, curTime, tpan)
说明:cbName - valid central body name,e.g. 'Earth'
lan - longitude of ascending node (rad)
curTime - current time(sec)
tpan - time pastascending node (sec)
raan - right ascensionof ascending node (rad)
3.8.6 atbOrbRaanToLan
作用:升交点赤经(天球)转化为升交点经度(地理)用法:lan = atbOrbRaanToLan('cbName',raan, curTime, tpan)
说明:cbName - valid central body name,e.g. 'Earth'
raan - right ascensionof ascending node (rad)
curTime - current time(sec)
tpan - time pastascending node (sec)
lan - longitude ofascending node (rad)
3.8.7 atbOrbPeriRadToPeriod
作用:近地点向径转化为轨道周期用法:period = atbOrbPeriRadToPeriod(perigreeRad,eccentricity, gm)
说明:perigreeRad - perigree radius(meters)
eccentricity - unitless
gm - gravitationalparameter, see atbCbGravParam
period - orbit period(sec)
3.8.8 atbOrbPeriodToPeriRad
作用:轨道周期转化为近地点向径用法:perigreeRad =atbOrbPeriodToPeriRad(period, eccentricity, gm)
说明:perigreeRad - perigree radius(meters)
eccentricity - unitless
gm - gravitationalparameter, see atbCbGravParam
period - orbit period(sec)
3.8.9 atbOrbPeriRadToSMajAxis
作用:近地点向径转化为轨道半长轴用法:semimajorAxis =atbOrbPeriRadToSMajAxis(perigreeRad, eccentricity)
说明:perigreeRad - perigree radius(meters)
eccentricity - unitless
semimajorAxis -semimajor axis length (meters)
3.8.10 atbOrbSMajAxisToPeriRad
作用:轨道半长轴转化为近地点向径用法:perigreeRad =atbOrbSMajAxisToPeriRad(semimajorAxis, eccentricity)
说明:perigreeRad - perigree radius(meters)
eccentricity - unitless
semimajorAxis -semimajor axis length (meters)
3.8.11 atbOrbTPANToTrue
作用:过升角点时转化为真近点角用法:trueAnom = atbOrbTPANToTrue(tpan,argOfPerigree, sma, eccentricity, gm)
说明:tpan - time past ascending node(sec)
argOfPerigree - argumentof perigree (rad)
sma - semimajor axislength (meters)
eccentricity - unitless
gm - gravitationalparameter, see atbCbGravParam
trueAnom - true anomaly(rad)
3.8.12 atbOrbTrueToTPAN
作用:真近点角转化为将过升角点时用法:tpan = atbOrbTrueToTPAN(trueAnom,argOfPerigree, sma, eccentricity, gm)
说明:tpan - time past ascending node(sec)
argOfPerigree - argumentof perigree (rad)
sma - semimajor axislength (meters)
eccentricity - unitless
gm - gravitationalparameter, see atbCbGravParam
trueAnom - true anomaly(rad)
3.8.13 atbOrbTPPToTrue
作用:过近地点时转化为真近点角用法:trueAnom = atbOrbTPPToTrue(tpp,sma, eccentricity, gm)
说明:tpp - time past perigree (sec)
sma - semimajor axislength (meters)
eccentricity - unitless
gm - gravitationalparameter, see atbCbGravParam
trueAnom - true anomaly(rad)
3.8.14 atbOrbTrueToTPP
作用:过近地点转化为时真近点角用法:tpp = atbOrbTrueToTPP(trueAnom,sma, eccentricity, gm)
说明:tpp - time past perigree (sec)
sma - semimajor axislength (meters)
eccentricity - unitless
gm - gravitationalparameter, see atbCbGravParam
trueAnom - true anomaly(rad)
3.9 DTED操作(DTED operations)
3.9.1 atbCbListDtedTypes
作用:列出中心体的所有数据类型用法:typeInfo =atbCbListDtedTypes('cb')
说明:cb - central bodyname
typeInfo - structure array with following fields:
id - terraintype string, possible values are:
MRAS
NIMADMED
NIMAFILE
MTOP
DEM
XTRA
MOLA
CONVERTEDMOLA
provider
formalName
fileSuffix
3.9.2 atbCbListDted
作用:列出中心体的所有数据源用法:[sources, rect] =atbCbListDted('cb')
说明:cb - central bodyname
sources - cell array of source file names
rect - matrix of boundarys [minLon maxLonminLat maxLat] for each source (rad)
3.9.3 atbCbAddDtedSource
作用:给中心体增加DTED用法:atbCbAddDtedSource('cb', 'type','filePath')
说明:cb - central bodyname
type - valid terrain file type, choices are:
MRAS
NIMADMED
NIMAFILE
MTOP
DEM
XTRA
MOLA
CONVERTEDMOLA
filePath - full file path
3.9.4 atbCbDtedSourceUI
作用:用一个GUI管理地球DTED用法:atbCbDtedSourceUI
备注:Associates terrain files withEarth.
3.9.5 atbLoadNimaDted
作用:递归加载压缩包中所有的NIMA DTED用法:atbLoadNimaDted(rootFolder,wildcard)
说明:rootFolder - string name of theroot folder to recurse
wildcard - optional filename filter, default is '*.dt*'
3.9.6 atbCbRemDtedSource
作用:删除中心体的DTED用法:atbCbRemDtedSource('cb','fileName')
说明:cb - central bodyname
fileName - a string or cell array of strings
use thestring 'ALL' to remove all files
useatbCbListDted to obtain an array of loaded files
3.9.7 atbCbGetDtedSourceForPos
作用:获取周围地形数据用法:sources =atbCbGetDtedSourceForPos('cbName', lat, lon)
说明:cbName - valid central body name,e.g. 'earth'
lat - geodetic latitude(radians)
lon - geodetic longitude(radians)
sources - cell array ofterrain sources with boundaries encompassing lat/lon
3.9.8 atbGetDtedPatch
作用:获取DTED的句柄用法:h = atbGetDtedPatch('cb', minLon,maxLon, minLat, maxLat)
h =atbGetDtedPatch('cb', rect)
说明:cb - central bodyname
minLon - minimum longitude of bounding box (rad).
maxLon - maximum longitude of bounding box (rad).
minLat -minimum latitude of bounding box (rad).
maxLat - maximum latitude of bounding box (rad).
rect -1x4 array [minLon maxLon minLat maxLat] (rad).
h - handle to the terrain patch.
use atbClearDtedPatch to clear the patch frommemory.
3.9.9 atbClearDtedPatch
作用:清除DTED的句柄用法:atbClearDtedPatch(h)
说明:h - terrain patch handle obtained fromatbGetDtedPatch
3.9.10 atbAllDtedPatches
作用:获取当前DTED的句柄用法:hVec = atbAllDtedPatches
说明:hVec - terrain patch handles
3.9.11 atbDtedPatchInfo
作用:获取DTED句柄中的信息用法:[rect, res] = atbDtedPatchInfo(h)
说明:h - terrain patch handle(s)
rect - matrix of boundarys [minLon maxLonminLat maxLat] for each handle
res - resolution of each handle [longReslatRes] (rad)
3.9.12 atbDtedElev
作用:获取中心体DTED的高度用法:altMN = atbDtedElev('cbName', lat, lon)
altN = atbDtedElev('cbName', latLon)
说明:cbName - valid central body name
lat - MxN latitude array (rad)
lon - MxN longitude array (rad)
latLon -2xN lat and lon array [lat;lon] (rad)
altMN - MxN altitude (meters)
altN - 1xN altitude vector (meters)
3.9.13 atbDtedPatchElev
作用:获取句柄DTED的高度用法:altMN = atbDtedPatchElev(h, lat, lon)
altN = atbDtedPatchElev(h, latLon)
说明:h - terrain patch handle obtianed fromatbGetDtedPatch
lat - MxN latitude array (rad)
lon - MxN longitude array (rad)
latLon - 2xN lat and lon array [lat;lon] (rad)
altMN - MxN altitude (meters)
altN - 1xN altitude vector (meters)
3.9.14 atbAzElMask
作用:compute an az/el mask用法:[az, maxEl, riseEl, riseDist] =atbAzElMask('cb', posLLA, NAz)
说明:cb -central body name
posLLA - 3x1 LLA observer position vector[rad;rad;meters].
NAz - number of azimuth points
az - NAz x 1 vector of azimuths (rad)
maxEl - NAz x 1 vector of maximum elevationsalong az (rad)
risEl - NAz x 1 cell array of intermediateelevations along az (rad)
3.9.15 atbDtedRes
作用:get DTED resolution用法:res = atbDtedRes('cb', lat, lon)
说明:cb -central body name
lat - latitude (rad)
lon - longitude (rad)
res - resolution of DTED data at lat/lon (rad)
3.9.16 atbDtedLOSExist
作用:compute existence of line ofsight between two points用法:losAngle = atbDtedLOSExist('cb',fromLLA, toLLA)
说明:cb - central bodyname
fromLLA - 3x1 LLA vector [rad;rad;meters].
toLLA - 3x1 LLA vector [rad;rad;meters].
losAngle - angle between the maximum terrainelevation point
between thepoints and the direct line of sight
between thepoints. A positive number indicates the
terrain does notobstruct the line of sight.
3.10 运动属性(Propagators)
3.10.1 atbLambertFixedTime
作用:Lambert targeting algorithm -fixed time用法:startVel =atbLambertFixedTime(startPos, finalPos, gm, deltaTime)
说明:startPos - 3x1 starting position [x;y;z] (meters)
finalPos - 3x1 final position [x;y;z] (meters)
gm - gravitational parameter (meters^3 /sec^2)
deltaTime - time to movefrom start to final pos
startVel - 3x1 starting velocity vector [vx;vy;vz](m/s)
备注:Computes the Lambert targetingalgorithm to design a two-body
trajectory between theinitial and final positions.
3.10.2 atbLambertMinEnergy
作用:Lambert targeting algorithm -minimum energy用法:[startVel, deltaTime] =atbLambertMinEnergy(startPos, finalPos, gm)
[startVel, deltaTime] =atbLambertMinEnergy(startPos, finalPos, gm, longWayFlag)
说明:startPos - 3x1 starting position [x;y;z] (meters)
finalPos - 3x1 final position [x;y;z] (meters)
gm - gravitational parameter (meters^3 /sec^2)
longWayFlag - flag tocompute the alternate long way around the orbit.
The defaultis the short way around.
startVel - 3x1 starting velocity vector [vx;vy;vz](m/s)
deltaTime - time to movefrom start to final pos
3.10.3 atbLambertMinEccen
作用:Lambert targeting algorithm -minimum eccentricity用法:[startVel, deltaTime] =atbLambertMinEccen(startPos, finalPos, gm)
[startVel, deltaTime] =atbLambertMinEccen(startPos, finalPos, gm, longWayFlag)
说明:startPos - 3x1 starting position [x;y;z] (meters)
finalPos - 3x1 final position [x;y;z] (meters)
gm - gravitational parameter (meters^3 /sec^2)
longWayFlag - flag tocompute the alternate long way around the orbit.
The defaultis the short way around.
startVel - 3x1 starting velocity vector [vx;vy;vz](m/s)
deltaTime - time to movefrom start to final pos
备注:Computes the Lambert targetingalgorithm to design a two-body
trajectory between theinitial and final positions.
3.10.4 atbKeplerProp
作用:Kepler two body propagator用法:[pos, vel, accel] =atbKeplerProp(startPos, startVel, gm, times)
说明:startPos - 3x1 starting position [x;y;z] (meters)
startVel - 3x1 starting velocity [vx;vy;vz](meters/sec)
gm - gravitational parameter (meters^3 /sec^2)
times - N length vector of times at which tocompute the orbit.
The first timein the vector is considered to be the start time.
pos - 3xN orbit position [x;y;z] (meters)
vel - 3xN orbit velocity [vx;vy;vz] (m/s)
accel - 3xN orbit acceleration [ax;ay;az] (m^2/s)
备注:Propagates a two-body trajectoryfrom the given initial conditions.
3.10.5 atbJ2Prop
作用:J2 propagator用法:[pos, vel, accel] =atbJ2Prop(startPos, startVel, gm, eccRad, J2, times)
说明:startPos - 3x1 starting position [x;y;z] (meters)
startVel - 3x1 starting velocity [vx;vy;vz](meters/sec)
gm - gravitational parameter (meters^3 /sec^2)
eccRad - equatorial radius (meters)
J2 - zonal harmonic coefficient (unitless)
times - N length vector of times at which tocompute the orbit.
The first timein the vector is considered to be the start time.
pos - 3xN orbit position [x;y;z] (meters)
vel - 3xN orbit velocity [vx;vy;vz] (m/s)
accel - 3xN orbit acceleration [ax;ay;az](m^2/s)
备注:Propagates a two-body trajectoryfrom the given initial conditions.
The propagator uses afirst order J2 perturbation algorithm which models
only the secular effectson the orbital elements. The output positions,
velocities andaccelerations are in the same inertial coordinate system
as the inputelements. There is an implicitassumption in this algorithm
that the central body isin a simple spin about its Z axis and that the
inertial and central bodyfixed Z axes are aligned.
3.10.6 atbJ4Prop
作用:J4 propagator用法:[pos, vel, accel] =atbJ4Prop(startPos, startVel, gm, eccRad, J2, J4, times)
说明:startPos - 3x1 starting position [x;y;z] (meters)
startVel - 3x1 starting velocity [vx;vy;vz] (meters/sec)
gm - gravitational parameter (meters^3 /sec^2)
eccRad - equatorial radius (meters)
J2 - zonal harmonic coefficient (unitless)
J4 - zonal harmonic coefficient (unitless)
times - N length vector of times at which tocompute the orbit.
The first timein the vector is considered to be the start time.
pos - 3xN orbit position [x;y;z] (meters)
vel - 3xN orbit velocity [vx;vy;vz] (m/s)
accel - 3xN orbit acceleration [ax;ay;az](m^2/s)
备注:Propagates a two-body trajectoryfrom the given initial conditions.
The propagator uses asecond order J2/J4 perturbation algorithm which
models only the seculareffects on the orbital elements. J2 effects are
considered to the secondorder and J4 effects are considered to the first
order. The outputpositions, velocities and accelerations are in the same
inertial coordinatesystem as the input elements. There isan implicit
assumption in thisalgorithm that the central body is in a simple spin about
its Z axis and that theinertial and central body fixed Z axes are aligned.
3.10.7 atbLaunchProp
作用:Simple ascent propagator用法:[pos, vel] = atbLaunchProp('centBody', launchLLA, burnoutLLA,burnoutSpeed, retroFlag, times)
说明:centBody - valid central body name, i.e. 'Earth'
launchLLA - 3x1 LatLonAlt vector [rad;rad;m]
burnoutLLA - 3x1 LatLonAlt vector [rad;rad;m]
burnoutSpeed - burnoutspeed (meters/sec)
retroFlag - retrograde flag
times - N length vector of times at which tocompute the orbit.
pos - 3xN orbit position [x;y;z] (meters)
vel - 3xN orbit velocity [vx;vy;vz] (m/s)
备注:Propagates an ellipticaltrajectory from the launch LLA point
to the burnout LLApoint, generating a velocity profile which is zero at
launch and burnoutSpeedat burnout. The burnout velocity vectorwill
be perpendicular to theburnout position vector. The initialvelocity
vector will be parallelto the launch positition vector. Thetrajectory
will be generated in theplane formed by the launch and burnout position
vectors.
3.10.8 atbMissilePropDataFixedTime
作用:Missile propagator data - fixedtime用法:[posCBI, velCBI, apogeeAlt, deltaV] = atbMissilePropDataFixedTime('centBody',startPosCBF, endPosCBF, startTime, longWay, deltaTime)
说明:centBody - valid central body name, i.e. 'Earth'
startPosCBF - 3x1 CBF position vector [x;y;z] (meters)
endPosCBF - 3x1 CBF position vector [x;y;z] (meters)
startTime - time corresponding to startPosCBF (sec)
longWay - flag to generate the trajectory thelong way around the central body
deltaTime - time of flight (sec)
posCBI - 3x1 initial position [x;y;z] (meters)
velCBI -3x1 initial velocity [vx;vy;vz] (m/s)
apogeeAlt - apogee altitude of the trajectory(meters)
deltaV - velocity impulse required fortrajectory(m/s)
备注:Determines the initial inertialposition and velocity
for a missile trajectorybetween two CBF position vectors.
Use atbLambertMinEccento determine the minimum valid time.
3.10.9 atbMissilePropDataFixedAlt
作用:Missile propagator data - fixedaltitude用法:[posCBI, velCBI, deltaTime, deltaV] =atbMissilePropDataFixedAlt('centBody', startPosCBF, endPosCBF, startTime,longWay, apogeeAlt)
说明:centBody - valid central body name, i.e. 'Earth'
startPosCBF - 3x1 CBF position vector [x;y;z] (meters)
endPosCBF - 3x1 CBF position vector [x;y;z] (meters)
startTime - time corresponding to startPosCBF (sec)
longWay - flag to generate the trajectory thelong way around the central body
apogeeAlt - apogee altitude of the trajectory(meters)
posCBI - 3x1 initial position [x;y;z] (meters)
velCBI -3x1 initial velocity [vx;vy;vz] (m/s)
deltaTime - time of flight (sec)
deltaV - velocity impulse required fortrajectory(m/s)
备注:Determines the initial inertial position and velocity for a missiletrajectory between two CBF position vectors.
3.10.10 atbMissilePropDataFixedDelta
作用:用法:
说明:
3.10.11 atbMissilePropDataMinEnergy
作用:Missile propagator data - minimumenergy用法:[posCBI, velCBI, deltaTime,apogeeAlt, deltaV] = atbMissilePropDataMinEnergy ( 'centBody', startPosCBF, endPosCBF, startTime, longWay)
说明:centBody - valid central body name, i.e. 'Earth'
startPosCBF - 3x1 CBF position vector [x;y;z] (meters)
endPosCBF - 3x1 CBF position vector [x;y;z] (meters)
startTime - time corresponding to startPosCBF (sec)
longWay - flag to generate the trajectory thelong way around the central body
posCBI - 3x1 initial position [x;y;z] (meters)
velCBI - 3x1 initial velocity [vx;vy;vz] (m/s)
deltaTime - time of flight (sec)
apogeeAlt -apogee altitude of the trajectory (meters)
deltaV - velocity impulse required fortrajectory(m/s)
3.10.12 atbTLERead
作用:Read a 2-line element set file用法:vehNames = atbTLERead('fileName','prefix')
说明:fileName - full path to TLE file in a formatreadable by STK
prefix - string to prepend to the name of eachTLE in the file
vehNames - cell array of loaded TLE names
备注:Extracts TLEs from the specifiedfile and store for use by atbTLEProp
Consult STKdocumentaiton for further information on TLE files
3.10.13 atbTLEGetAll
作用:Get all loaded 2-line elementsets用法:vehNames = atbTLEGetAll
说明:vehNames - cell array of all loaded TLE names
备注:Lists all TLEs available for useby atbTLEProp
Consult STKdocumentaiton for further information on TLE files
3.10.14 atbTLEDelete
作用:删除2行根数设置用法:atbTLEDelete(vehNames)
说明:vehNames - single name or cell array of TLE names
备注:Deletes the specified TLEs frommemory
3.10.15 atbTLEProp
作用:设置SGP4两行根数运动属性参数用法:[times, posECF, velECF] =atbTLEProp('vehName', timeStart, timeStop, timeStep)
说明:vehName - loaded TLE name
timeStart - propagation start time (sec)
timeStop - propagation stop time (sec)
timeStep - propagation time step (sec)
times - N length array of times relative to theinternal ATB epoch
posECF - 3xN ECF position matrix [x;y;z](meters)
velECF - 3xN ECF velocity matrix [vx;vy;vz](m/s)
3.10.16 atbTLEEpoch
作用:获取SGP4两行根数的历元用法:epoch = atbTLEEpoch('vehName')
说明:vehName - loaded TLE name
epoch - the offset in sec form the internalATB epoch
备注:Returns the offset in sec fromthe internal ATB epoch
3.10.17 atbTLEInfo
作用:获取SGP4两行根数用法:tleInfo = atbTLEInfo('vehName')
说明:vehName - loaded TLE name
tleInfo - structure with the following fields:
orbitEpoch - string date in YYDDD.SSSSSSS format
meanMotion - rev/day
eccentricity - unitless
inclination - units in radians
argOfPerigree - units in radians
RAAN -units in radians
meanAnomaly - units in radians
meanMotionDot
meanMotionDotDot
bStar -m^2/kg
备注:Returns the two-line-element setdata for a loaded vehicle
3.11 导航精度(Navigation Accuracy)
3.11.1 atbComputeDOP
作用:计算精度因子用法:[dop,bestInd] = atbComputeDOP(posVecs, N)
dop = atbComputeDOP(posVecs)
说明:posVecs - a 3xM matrix of nav beacon positions[x;y;z] (meters), 4 <= M <= 30
N - optional integer value to computethe optimal subset
of the beacons. Meaningless unless N < M. N <= 30.
bestInd - a length N vector of indices into optimalbeacons.
dop - a structure with the following fields:
GDOP
PDOP
HDOP
VDOP
TDOP
HMajDOP - the local horizontal error ellipse major axis
HMinDOP - the local horizontal error ellipse minor axis
HMajAz - therotation angle (from the x axis) of the local horizontal error ellipse
备注:Computesdilution of precision based on the optimal set of
N beacons from the input array. The optimal set of N
is determined as the set that yieldsthe minimum GDOP.
The beacon positions should beexpressed in a local horizontal
coordinate system so the DOP valuesmay be interpreted as
stated. This local coordinate system should have Zpointed
toward the center of the Earth, orperpendicular to the
surface and X should be oriented ina north-south sense.
The best array will be filled withthe indices of the beacons
that yield the minimum GDOP
3.12 地图数据(Map Data)
3.12.1 atbMapDetails
作用:地图细节Earth map details用法:xyCell = atbMapDetails(mapName)
说明:mapName - one of the followingstrings:
'coasts' -coastlines
'intl' -international boundaries
'islands' -ocean islands
'lakes' -freshwater lakes
'prov' -provincial boundaries, e.g. US State lines
'rivers' -freshwater rivers
xyCell - cell arraywith elements containing 2xN matrices of
[lon;lat](deg).
3.12.2 atbPlotMapDetails
作用:绘地图Plot Earth map details用法:hl = atbPlotMapDetails(hax,mapName, style)
说明:mapName - one of the followingstrings:
'coasts' -coastlines
'intl' -international boundaries
'islands' -ocean islands
'lakes' -freshwater lakes
'prov' -provincial boundaries, e.g. US State lines
'rivers' -freshwater rivers
style - a plot linestyle, see the help for PLOT
hl - handles to lines
3.13 覆盖网格(Coverage Grids)
3.13.1 atbGetPolyHandle
作用:获取多边形句柄用法:hGrid =atbGetPolyHandle(XYpolygon)
说明:XYpolygon - a 2xN matrix ofpositions [x;y] (unitless), N >= 3
hGrid - grid handle for use in atbInsidePoly andatbClearPolyHandle
备注:Generates a grid handle for a polygon. The grid handle is used by atbInsidePoly todetermine if a point is enclosed by the polygon.
3.13.2 atbInsidePoly
作用:检查一个点是否为多边形的内点用法:inside = atbInsidePoly(hGrid,XYpoints)
说明:hGrid - handle obtained from atbGetPolyHandle
XYpoints - 2xN matrix of points to check [x;y](unitless)
inside - 1xN vector of flags indicating if thecorresponding point
is enclosed bythe polygon represented by hGrid.
3.13.3 atbClearPolyHandle
作用:清除多边形句柄用法:atbClearPolyHandle(hGrid)
atbClearPolyHandle('ALL')
说明:hGrid - vector of handles to polygon grids toclear from memory.
四、stkExec使用总结
作用:Execute an STK/Connect command用法:rtn = stkExec(conID, 'conCmdStr')
说明:rtn - A character array containing the STK return
conID -STK/Connect connection ID, from stkOpen.
可以说,所有的STK/Connect都可以通过调用函数stkExec( )来实现,具体使用参见STK/Help/Connect。下面仅就已经使用过的功能做介绍。
4.1 场景动画控制
4.1.1 动画时间设置
4.1.2 动画控制按钮
4.1.3 3D场景控制按钮
4.2 新建物体
4.2.1 新建场景
4.2.2 新建卫星
4.2.3 同时新建多个对象
4.3 3D场景中的设置(针对卫星3D Graphics)
4.3.1 模型引用、大小
4.10 STK中颜色编号
五、示例
4.1 卫星编队之构型设计
1、Matlab连接STK,首先要获得STK的地址,示例中采用了默认地址stkDefaultHost。得到地址后,就可以利用语句stkOpen打开默认地址,建立Matlab与STK的连接了。remMachine = stkDefaultHost;
conid=stkOpen(remMachine);
2、在STK中创建新场景前,需要检查STK中的当前场景,如果目前STK中已经存在一个场景,就可以利用语句stkUnload关闭场景,或者利用语句stkClose关闭当前连接。
scen_open = stkValidScen;
if scen_open == 1
rtn =questdlg('Close the current scenario?');
if~strcmp(rtn,'Yes')
stkClose(conid)
return
else
stkUnload('/*')
end
end
3、利用语句stkNewObj创建新场景。这里需要注意一个问题,stkNewObj在STK5.0中创建新场景时,语法为stkNewObj('Scenario','','Scenario1'),这应该是STK5.0的程序错误所致。stkNewObj的正确语法应该是stkNewObj('ParentPath','Class','Name'),其中ParentPath为场景或对象的路径,Class为新建对象的类别,Name为新建对象的名称。
disp('Create a new scenario: SatelliteFormation');
stkNewObj('Scenario','','SatelliteFormation');
stkNewObj('*/','Satellite','Chief');
4、场景建立完成后,需要为场景设置时间参数。其中场景的历元时刻设置这是通过语句stkSetEpoch和stkSyncEpoch实现的。而设置场景运行方式时是通过语句stkConnect直接调用STK连接命令的方式实现的。STK调用连接命令语句stkConnect非常重要,它的正确语法是
rtn=stkConnect(conid,'<Command>','<ObjectPath>','<Parameters>')
其中,conid代表通过语句stkOpen打开的当前连接,Command代表要执行的命令,
ObjectPath代表对象名称,Parameters代表相应命令的执行参数。
disp('Set scenario timeperiod');
stkSetTimePeriod('1 May 200700:00:00.00','2 May 2007 00:00:00.00','GREGUTC');
stkSetEpoch('1 May 200700:00:00.00','GREGUTC');
stkSyncEpoch;
rtn=stkConnect(conid,'Animate','Scenario/SatelliteFormation','SetValues"1 May 2007 00:00:00.00" 60 0.1');
rtn=stkConnect(conid,'Animate','Scenario/SatelliteFormation','Reset');
rtn = stkConnect(conid,'SetBoundary','Scenario1/sun_rfi/AreaTarget/BoxTarget','Pattern 10 10 -80 10 -70 10 -60 10 -50 10-40 -37 -40 -37 -50 -37
-60 -37 -70 -37 -80');
4.2 使用心得
如果需要设置或是获取上述函数中没有提到的属性或参数,需要借助stkConnect或是stkExec完成,常采用stkExec,其调用函数为rtn=stkExec(conid,'<Command> <ObjectPath> <Parameters>')
具体应用需查询STK中的Help。如改变卫星模型尺寸,调用语句为:stkExec( conid,
'VO*/Satellite/Deputy ScaleLog 1' )
相关文章推荐
- STK与MATLAB联合仿真方法及应用研究
- MATLAB与SABER联合仿真(Co-sim)遇到的问题
- 通过文件读写方式实现Matlab和Modelsim的联合仿真
- 基于STK/Matlab的GPS卫星可见性仿真分析
- matlab和modelsim联合仿真
- OPNET与Matlab联合仿真参数设置
- Solidworks与Matlab联合仿真&SimMechnics下载及安装
- ADAMS 和Matlab 联合仿真
- [转帖]通过文件读写方式实现Matlab和Modelsim的联合仿真
- matlab和c#联合仿真之一(VS2010,Matlab2012a)
- Adams-Matlab联合仿真Forces反馈的一些注意事项
- MATLAB仿真中常用的一些函数(不完全个人总结:)—— 第一部分
- [资料]Adams-matlab联合仿真
- MATLAB 与Modelsim之间对测试系统的联合仿真
- carsim8.02和matlab2016b的联合仿真,找不到carsim s-function的解决办法
- 使用Matlab与V-REP联合仿真 - Play V-REP with Matlab
- MATLAB仿真中常用的一些函数(不完全个人总结:)—— 第二部分
- OPNET与MATLAB的联合仿真方法
- MATLAB 与Modelsim之间对测试系统的联合仿真
- 信号与系统课程中关于各种编码MATLAB仿真的绘图函数