Rigid body dynamics model

Submodule RigidBody provides simulation algorithm for the simple rigid body spacecraft attitude dynamics. This model does not include the flexible structural appendages.

FlexibleSpacecraft.RigidBodyModule
module RigidBody

module that consists variables and functions needed for the simulation of rigid body spacecraft attitude dynamics. Internal module for FlexibleSpacecraft.jl

Usage

include("RigidBody.jl")
using .RigidBody
source

Parameter settings for rigid body attitude dynamics

Parameter setting YAML files should be organized as follows:

property: dynamics
name: example spacecraft
note: This model is for test purpose

dynamicsmodel: Rigid body # This must be set `Rigid body`

platform:
    inertia: [ # inertia matrix of the spacecraft
        50000, 0, 0,
        0, 50000, 0,
        0, 0, 50000
        ]

dynamicsmodel should be set Rigid body to tell the software that you are using the rigid body dynamics model.

Public interfaces

FlexibleSpacecraft.RigidBody.RigidBodyModelType
struct RigidBodyModel

Data container of rigid body spacecraft model. Used to specify and configure the parameter settings for simulation and control model in FlexibleSpacecraft.jl

Fields of struct RigidBodyModel

  • inertia::SMatrix{3, 3, <:Real}: Inertia matrix of spacecraft platform
source
FlexibleSpacecraft.RigidBody.update_angularvelocityFunction
function update_angularvelocity(model::RigidBodyModel, currentTime::Real, angularvelocity::Union{Vector{<:Real}, SVector{3, <:Real}}, Tsampling::Real, currentbodyframe::Frame, disturbance::Union{Vector{<:Real}, SVector{3, <:Real}})::SVector{3, <:Real}

calculate angular velocity at next time step using 4th order Runge-Kutta method

source