【B346】基于Matlab的卫星轨道设计库

2021-08-22 13:32:47      索炜达电子      1585     

项目编号:B346

文件大小:1.3M

源码说明:带中文注释

开发环境:Matlab2016

简要概述

轨道设计工具包

该库使用Matlab的编写,面向对象编程,一共有X个库

设计报告:

【B346】基于Matlab的卫星轨道设计库

0.单位制

该工具包使用国际制单位。为了设计者直观理解,角度用deg,deg转rad全部封装进了库里,不需要设计者考虑。


1.天文常数

例如调用光速:constants.AstroConstants.c


2.时间系统

时间系统对象的初始化输入为UTC(协调世界时间)和地理经度。时间数据类型为datetime或double(秒)。 UTC可以是数组,地理经度目前要求是标量。


UTC = datetime(2019,11,27,21,10,10);

lambda = 24.583;

timesystem  = timeSystem.TimeSystem(UTC,lambda)

timesystem = 


  TimeSystem with properties:


        UTC: 2019-11-27 21:10:10

    lambdaG: 24.5830

     lambda: 24.5830

        TAI: 2019-11-27 21:10:11

         TT: 2019-12-30 01:35:08

        TDT: 2019-12-30 01:35:08

         ET: 2019-12-30 01:35:08

        UT1: 2019-11-27 21:10:10

      Smean: 6.2995e+08

          S: 6.2995e+08

      smean: 6.2995e+08

          s: 6.2995e+08

3.轨道确定

3.1测站数据预处理

根据


测站纬度、真太阳时、海拔(或高程)

航天器方位角、高低角、距离、方位角变化率、高低角变化率和距离变化率

算出


测站位置(在地心惯性系下)

航天器方向余弦(测站地平坐标系下)

航天器位置(在地心惯性系下)

航天器速度(在地心惯性系下)

注意,纬度和海拔数据必须是标量,其余可以是数组


preprocessing = orbitDefine.Preprocessing(latitude,timesystem.s/3600*15,altitude,azimuth,elevation,distance,Dazimuth,Delevation,Ddistance)


preprocessing = 


  Preprocessing with properties:


        Glatitude: 0.1024

                s: [30×1 double]

         altitude: 0

          azimuth: [30×1 double]

        elevation: [30×1 double]

         distance: [30×1 double]

         Dazimuth: [30×1 double]

       Delevation: [30×1 double]

        Ddistance: [30×1 double]

       stationPos: [30×3 double]

    spacecraftDir: [30×3 double]

    spacecraftPos: [30×3 double]

    spacecraftVel: [30×3 double]

3.2根据单组位置和速度定轨

orbitDefine.usingSinglePosVel(r0,v0,UTC(1))


ans = 


  usingSinglePosVel with properties:


        a: 9.2000e+06

       e_: [3×1 double]

        e: 0.1200

    Omega: 126.0000

    omega: 36.9999

        i: 96.5000

      tao: 2019-11-27 18:28:09

       f0: 51.1051

       E0: 7.0366

       M0: 6.9545

        h: [3×1 double]

        p: 9.0675e+06

3.3根据航天器方向定轨之拉普拉斯方法

输入地心惯性坐标系下测站位置和航天器方向,以及当地真恒星时和初始时刻的UTC,求得轨道要素。


orbit_L = orbitDefine.LaplaceMethod(preprocessing.stationPos,preprocessing.spacecraftDir,timesystem.s)

orbit_L = 


  LaplaceMethod with properties:


    r0: [3×1 double]

    v0: [3×1 double]

orbitDefine.usingSinglePosVel(orbit_L.r0,orbit_L.v0,timesystem.UTC(1))

orbit_L = 


  LaplaceMethod with properties:


       r0: [3×1 double]

       v0: [3×1 double]

        a: 8.2619e+06

        e: 0.0456

    Omega: 60.2791

    omega: 129.6670

        i: 54.9207

      tao: 2019-11-27 19:53:45

       f0: 217.5681

       E0: 219.1920

       M0: 220.8440

3.4根据航天器方向定轨之高斯方法

3.5根据多组位置定轨

输入地心惯性坐标系下航天器位置,以及初始时刻的UTC,求得轨道要素。


orbit=orbitDefine.usingMultiPos(preprocessing.spacecraftPos,UTC)


orbit = 


  usingMultiPos with properties:


        a: 8.2099e+06

        e: 0.0491

    Omega: 60.2193

    omega: 134.1086

        i: 54.9040

      tao: 2019-11-27 19:56:00

       f0: 213.2022

       E0: 214.7746

       M0: 216.3779

        p: 8.1901e+06


结果与分析

最终,当轨道面数量为8,也就是一共有八颗卫星时,符合设计要求。轨道空间配置如图4所示,星下点轨迹如图5所示,覆盖时间图像如图6所示。八个轨道的参数如表1所示。

【B346】基于Matlab的卫星轨道设计库

【B346】基于Matlab的卫星轨道设计库

目录│文件列表:

 └ orbit_design_toolkit

    └ orbit_design_toolkit

       │ coverage_time.dat

       │ data.xlsx

       │ homework1.mlx

       │ homework2.mlx

       │ 大作业报告.docx

       ├ +constants

       │  └ @AstroConstants

       │     └ AstroConstants.m

       ├ +coordinateTransformation

       │  │ inertial2orbit.m

       │  │ station2inertial.m

       │  └ @Inertial2Orbit

       │     └ Inertial2Orbit.m

       ├ +Equations

       │  └ KeplerEquation.m

       ├ +orbitDefine

       │  ├ @GaussianMethod

       │  │  └ GaussianMethod.m

       │  ├ @LaplaceMethod

       │  │  └ LaplaceMethod.m

       │  ├ @preprocessing

       │  │  └ preprocessing.m

       │  ├ @usingMultiPos

       │  │  └ usingMultiPos.m

       │  ├ @usingMultiPos_contrast

       │  │  └ usingMultiPos_contrast.m

       │  └ @usingSinglePosVel

       │     └ usingSinglePosVel.m

       ├ +timeSystem

       │  └ @TimeSystem

       │     └ TimeSystem.m

       └ +universalVariables

          └ fcn_U.m

TAG卫星轨道
  • 11 次
  • 1 分