Class in Zendir.Universe
| Inherits from PhysicalObject
Declaration
class Spacecraft;
Description
The spacecraft is a complex object that is used to represent a spacecraft in the simulation. It is a physical object that can be affected by external forces, contain state and dynamic effectors and is able to be integrated.
Properties
Declared | Description |
---|---|
Acceleration | The acceleration of the body in the inertial frame |
Attitude | The attitude of the dynamic body in the form of a ModifiedRodriguez Parameter (MRP). This is converted from the transformationof the local frame. This is equivalent to Transform_BN_N. |
AttitudeRate | Stores the current body attitude rate in the body frame |
DynamicType | The type of orbit propagation that is used for this object. |
GeodeticCoordinates | A geodetic coordinates for the spacecraft relative to the orbiting planet.This will be in the form of latitude, longitude and altitude, where the unitsare in degrees and meters. |
Hub | A reference to the hub spacecraft. If there is no hub spacecraft, it is assumedto be itself. Otherwise, the mass properties and physics will be applied to thehub spacecraft instead. |
HubTransform | The relative transform between the hub and the spacecraft. This is used forcalculations of position and rotation based on the hub spacecraft. |
In_PlanetStateMsg | A reference to the planet state message of the nearest bodythat the spacecraft is orbiting. |
InitialOrbit | The initial classical elements of the body if the orbit is set |
InitialOrbitTime | The simulation time in which the initial orbit was calculated. |
InitialPeriod | The orbital period of the body if the initial orbit is set |
IntegratePostLookup | A flag for if the body should integrate its state after the lookup is completed |
LookupFilePath | The full file path for the CSV file, if it exists. This will ensure thata lookup table can be loaded correctly if the file path is valid and notempty. |
LookupRepeat | A flag for if the body should repeat the lookup data at the end of the data set,making a loop of the data. |
LookupRotationType | The type of the rotation used for the orbital trajectories |
LookupTime | The current time on the lookup trajectory |
LookupTrajectoryType | The type of trajectory used for the orbital trajectories |
OrbitedBody | The name of the body that this object is currently orbiting, if itexists. This will be used to calculate the gravitational forces actingaround that body. |
Out_BodyMassMsg | The body mass properties message that stores the mass propertiesfrom all of the components that are added to this body. This willbe the sum of all components and is used by the integrator. |
Out_GravityMsg | The gravitational message that describes the gravitational energy of theobject at a particular location. |
Out_SpacecraftStateMsg | The body states message of the spacecraft contains all the informationabout the spacecraft’s properties, including the position, energy andacceleration. |
OverrideMass | A flag whether to override the mass properties with somenew custom ones. If this flag is enabled, the local massvalues, including Center of Mass and Moment of Inertia,will be used instead of the totals for the mass calculation. |
Position | The position of the body in the inertial world state |
Position_CN_N | The center of mass inertial position |
TotalCenterOfMassB_B | The total center of mass in the body frame including allcomponents attached |
TotalMass | The total mass of the body including all components |
TotalMomentOfInertiaB_B | The total moment of inertia in the body frame including allcomponents attached |
Velocity | The velocity of the body in the inertial frame |
WGSCoordinates | A WGS Accurate Earth model coordinate system with the Earth as the centerbeing used for the position. |
Inherited | Description |
---|---|
Behaviours | A collection of behaviours attached to this object. |
CenterOfMassB_B | The center of mass of the component in respect to the bodyframe (B) of the component. This is isolated from any childrenand exists in isolation. |
CenterOfMassDot_LB_B | The center of mass time-derivative of the component within itsown local coordinates. This does not include any of the sub-componentsand exists in isolation. |
CenterOfMassDotB_B | The center of mass time-derivative of the component relative tothe body frame (B). This does not include any of the sub-componentsand exists in isolation. |
CenterOfMassL_L | The center of mass of the component within its own localcoordinates. This does not include any of the sub-components andexists in isolation. |
CenterOfMassPrime_LB_B | The center of mass general-derivative of the component within itsown local coordinates. This does not include any of the sub-componentsand exists in isolation. |
CenterOfMassPrimeB_B | [m/s] The center of mass general-derivative of the component relativeto the body frame (B). This does not include any of the sub-componentsand exists in isolation. |
Children | A collection of children attached to this object. |
DCM_BN | The rotational DCM matrix between the body frame (B) at the topof this component chain and the inertial frame (N). |
DCM_LB | The rotational DCM matrix between the component frame of thisobject (L) relative to the body frame (B). |
DCM_LN | The DCM rotational matrix of the component relative to theinertial origin (N) of the world. |
IsEnabled | Is true if the object is currently enabled. |
LocalForward | The direction of the transform frame’s forward vector, which is along the Y axis. |
LocalRight | The direction of the transform frame’s right vector, which is along the X axis. |
LocalUp | The direction of the transform frame’s up vector, which is along the Z axis. |
Mass | The component mass defined in the object. This is independentof any parent or children objects and exists in isolation. |
MassDot | The component mass time-derivative defined in the object. Thisis independent of any parent or children objects and exists in isolation. |
Models | A collection of models attached to this object. |
MomentOfInertia_LB | The moment of inertia of the component, measured at thelocal center of mass, represented with its own local coordinates.This does not include any of the sub-components and exists inisolation. |
MomentOfInertiaB_B | The moment of inertia of this component, measured inthe body frame relative to the parented body. This is independentof any children and exists in isolation. |
MomentOfInertiaPrime_LB | The derivative of the moment of inertia of the component,measured at the local center of mass, represented with its own localcoordinates. This does not include any of the sub-components andexists in isolation. |
MomentOfInertiaPrimeB_B | The derivative of the moment of inertia of the component,represented in the body frame (B). This is independent and exists inisolation. |
Name | The display name or tag of this object. |
Out_ComponentMassMsg | The component mass message defines the set of mass properties andstates of the system within this component locally. This is independentof any parent or children properties or objects. |
Out_TransformMsg | This defines the base transform message that stores the state of the transform of this object. |
Parent | The currently attached parent object (if any). |
Position_BN_N | The position of the body (the root parent B) in theinertial frame relative to the inertial point (N). |
Position_LB_B | The position of the component relative to the rootobject of this hierarchy. This is in the inertial frameand if the component is the root object, then there willbe no position. |
Position_LN_N | The position of the inertial world space. This position isderived from the world’s transform (N). |
Root | The root object in the parent chain. |
Rotation | [-] The rotation of the object relative to the parent or to the world origin, if no parent exists. |
Thermal | A reference to the thermal model that is attached to this object.This will allow the object to have thermal properties and be ableto be used in thermal simulations. |
Methods
Declared | Description |
---|---|
ComputeEnergyMomentum | Computes the total energy and momentum of the object. It finds the total orbital energy,total orbital angular momentum, total rotational energy and total rotational angular momentum.These values are used for validation purposes |
Dock | Docks the spacecraft to another spacecraft. This will determinewhich spacecraft is the hub and which is the child. The hub willbe the one with the largest mass. The child will be the other one. |
GetLookupTrajectoryCoordinates | Returns a list of all the lookup data positions from the lookup table,if they exist. These will be in the form of a Geodetic or PCI frame,depending on the input type. |
GetOrbitalPosition | Returns the position between the spacecraft and the orbited body.If there is no orbiting body, this will be the spacecraft’s inertialposition. |
GetOrbitalVelocity | Returns the velocity between the spacecraft and the orbited body.If there is no orbiting body, this will be the spacecraft’s inertialvelocity. |
GetRelativePosition | Returns the relative position between the body and anotherplanet. |
GetRelativeVelocity | Returns the relative velocity between the body and anotherplanet. |
InitialiseBody | Initialises the object with a series of elements from the Vector elements library |
IsConnected | Returns whether this spacecraft is connected to another spacecraft. |
IsDocked | Returns true if the spacecraft is docked to another hub. Thiswill return true if the spacecraft is not the hub itself. |
SetClassicElements | Sets the classic elements of a body to a series of parameters based onthe Keplerian elements. |
SetCustomTrajectory | Sets the path to the lookup data to read from. This should be an absolute pathto the CSV file with the data from the file. This assumes the file is of the correctformat, but will not throw an error if not. |
SetGeodeticElements | Sets the Geodetic Elements of Latitude, Longitude and Altitude to some propertiesin the element struct. |
SetHillFrameElements | Configures the spacecraft to be in a Hill frame with another (chief) spacecraft. Thisframe is a relative position and velocity in the Hill frame, where X is the radial directionaway from the chief, Y is the along-track direction and Z is the orbit normal direction. |
SetRelativeBodyVectorElements | Sets the relative position and velocity of a body to a series of parameters based onanother spacecraft and the relative position and velocity, in the body frame. |
SetRelativeVectorElements | Sets the relative position and velocity of a body to a series of parameters based onanother spacecraft and the relative position and velocity, in the inertial frame. |
SetTwoLineElements | Sets the Two Line Elements (TLE) data of a particular craft to a specific positionstored in the struct. |
SetVectorElements | Sets the position and velocity of a body to a series of parameters based onthe Vector Elements. This is just a position and velocity, with an optionalorbiting body. |
Undock | Undocks the spacecraft from the hub. This will set the hub tothe current spacecraft. All children will be undocked as well.Or, the spacecraft will be undocked from its parent hub. If aspecific other spacecraft is provided, it will undock from thatspacecraft only, instead of all children. |
UpdateEquationsOfMotion | Updates all of the State Equations with their correct derivatives |
UpdateMassProperties | Updates the Mass Properties of the body and all components.This will also attempt to cache the data on the componentsthat exist on the hierarchy tree (in the body [B] frame) ina transform state for multiple use. This is the dirty flag. |
WriteOutputMessages | Writes data to output messages that are able to store the state of data. Thiswill write data based on the hub and will correctly determine the right valuesto write. |
Inherited | Description |
---|---|
AddObject | Returns a new simulation object with the specified type. |
Attach | Attempts to attach this object to a new parent. This will only work if the current object is no parented to anyother object. |
ContainsModelWithID | Returns true if an attached model satisfies the specified ID. |
ContainsModelWithType | Returns true if an attached model satisfies the specified type. |
Destroy | Removes the current object from the simulation. |
Detach | This is an action to detach the current object from its parent, if it exists and move it to another object or tojust exist within the simulation. |
FindBehavioursWithType | Returns all attached behaviours that satisfies the specified type. |
FindBehaviourWithID | Returns an attached behaviour that satisfies the specified ID. |
FindBehaviourWithType | Returns an attached behaviour that satisfies the specified type. |
FindChildrenWithType | Returns all attached children that satisfies the specified type. |
FindChildWithID | Returns an attached child that satisfies the specified ID. |
FindChildWithType | Returns an attached child that satisfies the specified type. |
FindModelsWithType | Returns all attached models that satisfies the specified type. |
FindModelWithID | Returns an attached model that satisfies the specified ID. |
FindModelWithType | Returns an attached model that satisfies the specified type. |
FindParentWithID | Returns an attached parent that satisfies the specified ID. |
FindParentWithType | Returns an attached parent that satisfies the specified type. |
FindRootWithID | Returns a root object that satisfies the specified ID. |
FindRootWithType | Returns a root object that satisfies the specified type. |
GetModel | Returns a valid assigned model with the specified type. |
GetWorldTransform | Returns the world transform of the object which is relative to the parent. If no parent exists, this will be thetransform of the object in world space. |
ReadBodyTransform | This method will reset the dirty flag on the mass so thatit has been read successfully and is valid. |