Code Monkey home page Code Monkey logo

orbitdynamics's Introduction

orbitdynamics

a C++ program for orbit dynamics, include compments:

orbit propagator

formation

maneuver

etc

  • RKF78 propagator
  • gravity field file supported
  • DE405/DE421 for planet's ephemeris
  • MSISE-00 atmosphere model
  • virtual base class and easy to extend
  • use armadillo library as vector and matrix operation
  • use hdf5 data file

C++轨道动力学计算程序 卫星、航天器轨道动力学的精密计算,包括主要特征包括:

  • RKF78高精度积分器

  • 支持地球引力场系数文件

  • DE405/DE421行星历表

  • MSISE-00大气模型

  • 采用合适的C++面向对象结构,方面扩展

  • 使用armadillo进行矢量、矩阵运算

  • 可保持HDF5数据文件

    轨道动力学计算中,需要涉及惯性坐标系、地固坐标系、轨道坐标系等左边转换功能,其中较为复杂的地固系与惯性系的转换需要计算岁差、章动、极移以及在计算中使用UTC、原子时、动力学时等多种时间系统。为此,轨道动力学计算需要建立在天文参数计算、坐标转换、时间系统等基础功能之上,从基础进行独立开发的难度较大。

    为了精确计算轨道动力学,需要考虑地球非球形引力、日月引力、大气阻力、光压等多种摄动,其中需要地球引力场模型、日月星历模型、地球大气模型等多种模型,用于摄动力模型计算。

Example: // a satellite

CSatellite sat;

// orbit epoch and elements

CDateTime epoch(2006,5,1,0,0,0);

Kepler ZY_Orbit(7157, 0.001, 98.5*RAD, 60*RAD, 90*RAD,	 60*RAD);

// set satellite's param

sat.Mass0 = 1000;  // use default value

sat.Cr = 1.0;

sat.LightPressArea = 20.0;

sat.Cd = 2.2;

sat.AirDragArea = 20.0;

// initialize CSatellite

sat.Initialize(epoch,ZY_Orbit);

// set force model

sat.SetForce(21,ODP_EARTH_ZONAL|ODP_EARTH_TESSERAL|ODP_AIR_DRAG|ODP_SOLAR_CENT|ODP_SOLAR_PRESSURE|ODP_LUNAR_CENT|ODP_POSTNEWTON);

// propagate the orbit and print position and velocity

double t;

for(t=0; t<86400; t+=60)
{
	cout << t << TAB << sat.Pos().t() << TAB << sat.Vel().t() << endl;
	
	sat.Propagate(60,60);
	
}

orbitdynamics's People

Contributors

handong1979 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.