aerosandbox.dynamics.point_mass.point_3D
#
Submodules#
Package Contents#
Classes#
Dynamics instance: |
|
Dynamics instance: |
- class aerosandbox.dynamics.point_mass.point_3D.DynamicsPointMass3DCartesian(mass_props=None, x_e=0, y_e=0, z_e=0, u_e=0, v_e=0, w_e=0, alpha=0, beta=0, bank=0)[source]#
Bases:
aerosandbox.dynamics.point_mass.common_point_mass._DynamicsPointMassBaseClass
Dynamics instance: * simulating a point mass * in 3D * with velocity parameterized in Cartesian coordinates
- State variables:
x_e: x-position, in Earth axes. [meters] y_e: y-position, in Earth axes. [meters] z_e: z-position, in Earth axes. [meters] u_e: x-velocity, in Earth axes. [m/s] v_e: v-velocity, in Earth axes. [m/s] w_e: z-velocity, in Earth axes. [m/s]
- Indirect control variables:
alpha: Angle of attack. [degrees] beta: Sideslip angle. [degrees] bank: Bank angle. [radians]
- Control variables:
Fx_e: Force along the Earth-x axis. [N] Fy_e: Force along the Earth-y axis. [N] Fz_e: Force along the Earth-z axis. [N]
- Parameters:
mass_props (aerosandbox.weights.mass_properties.MassProperties) –
x_e (Union[float, aerosandbox.numpy.ndarray]) –
y_e (Union[float, aerosandbox.numpy.ndarray]) –
z_e (Union[float, aerosandbox.numpy.ndarray]) –
u_e (Union[float, aerosandbox.numpy.ndarray]) –
v_e (Union[float, aerosandbox.numpy.ndarray]) –
w_e (Union[float, aerosandbox.numpy.ndarray]) –
alpha (Union[float, aerosandbox.numpy.ndarray]) –
beta (Union[float, aerosandbox.numpy.ndarray]) –
bank (Union[float, aerosandbox.numpy.ndarray]) –
- property state: Dict[str, float | aerosandbox.numpy.ndarray]#
Returns the state variables of this Dynamics instance as a Dict.
Keys are strings that give the name of the variables. Values are the variables themselves.
- This method should look something like:
>>> { >>> "x_e": self.x_e, >>> "u_e": self.u_e, >>> ... >>> }
- Return type:
Dict[str, Union[float, aerosandbox.numpy.ndarray]]
- property control_variables: Dict[str, float | aerosandbox.numpy.ndarray]#
- Return type:
Dict[str, Union[float, aerosandbox.numpy.ndarray]]
- property speed: float#
- Return type:
float
- property gamma#
Returns the flight path angle, in radians.
Positive flight path angle indicates positive vertical speed.
- property track#
Returns the track angle, in radians.
Track of 0 == North == aligned with x_e axis
Track of np.pi / 2 == East == aligned with y_e axis
- state_derivatives()[source]#
A function that returns the derivatives with respect to time of the state specified in the state property.
Should return a Dict with the same keys as the state property.
- Return type:
Dict[str, Union[float, aerosandbox.numpy.ndarray]]
- convert_axes(x_from, y_from, z_from, from_axes, to_axes)[source]#
Converts a vector [x_from, y_from, z_from], as given in the from_axes frame, to an equivalent vector [x_to, y_to, z_to], as given in the to_axes frame.
Identical to OperatingPoint.convert_axes(), but adds in “earth” as a valid axis frame. For more documentation, see the docstring of OperatingPoint.convert_axes().
- Both from_axes and to_axes should be a string, one of:
“geometry”
“body”
“wind”
“stability”
“earth”
- Parameters:
x_from (float) – x-component of the vector, in from_axes frame.
y_from (float) – y-component of the vector, in from_axes frame.
z_from (float) – z-component of the vector, in from_axes frame.
from_axes (str) – The axes to convert from. See above for options.
to_axes (str) – The axes to convert to. See above for options.
- Return type:
Tuple[float, float, float]
Returns: The x-, y-, and z-components of the vector, in to_axes frame. Given as a tuple.
- add_force(Fx=0, Fy=0, Fz=0, axes='earth')[source]#
Adds a force (in whichever axis system you choose) to this Dynamics instance.
- Parameters:
Fx (Union[float, aerosandbox.numpy.ndarray]) – Force in the x-direction in the axis system chosen. [N]
Fy (Union[float, aerosandbox.numpy.ndarray]) – Force in the y-direction in the axis system chosen. [N]
Fz (Union[float, aerosandbox.numpy.ndarray]) – Force in the z-direction in the axis system chosen. [N]
axes – The axis system that the specified force is in. One of: * “geometry” * “body” * “wind” * “stability” * “earth”
- Return type:
None
Returns: None (in-place)
- class aerosandbox.dynamics.point_mass.point_3D.DynamicsPointMass3DSpeedGammaTrack(mass_props=None, x_e=0, y_e=0, z_e=0, speed=0, gamma=0, track=0, alpha=0, beta=0, bank=0)[source]#
Bases:
aerosandbox.dynamics.point_mass.common_point_mass._DynamicsPointMassBaseClass
Dynamics instance: * simulating a point mass * in 3D * with velocity parameterized in speed-gamma-track space
- State variables:
x_e: x-position, in Earth axes. [meters] y_e: y-position, in Earth axes. [meters] z_e: z-position, in Earth axes. [meters] speed: Speed; equivalent to u_w, the x-velocity in wind axes. [m/s] gamma: Flight path angle. [radians] track: Track angle. [radians]
Track of 0 == North == aligned with x_e axis
Track of np.pi / 2 == East == aligned with y_e axis
- Indirect control variables:
alpha: Angle of attack. [degrees] beta: Sideslip angle. [degrees] bank: Bank angle. [radians]
- Control variables:
Fx_w: Force along the wind-x axis. [N] Fy_w: Force along the wind-y axis. [N] Fz_w: Force along the wind-z axis. [N]
- Parameters:
mass_props (aerosandbox.weights.mass_properties.MassProperties) –
x_e (Union[float, aerosandbox.numpy.ndarray]) –
y_e (Union[float, aerosandbox.numpy.ndarray]) –
z_e (Union[float, aerosandbox.numpy.ndarray]) –
speed (Union[float, aerosandbox.numpy.ndarray]) –
gamma (Union[float, aerosandbox.numpy.ndarray]) –
track (Union[float, aerosandbox.numpy.ndarray]) –
alpha (Union[float, aerosandbox.numpy.ndarray]) –
beta (Union[float, aerosandbox.numpy.ndarray]) –
bank (Union[float, aerosandbox.numpy.ndarray]) –
- property state: Dict[str, float | aerosandbox.numpy.ndarray]#
Returns the state variables of this Dynamics instance as a Dict.
Keys are strings that give the name of the variables. Values are the variables themselves.
- This method should look something like:
>>> { >>> "x_e": self.x_e, >>> "u_e": self.u_e, >>> ... >>> }
- Return type:
Dict[str, Union[float, aerosandbox.numpy.ndarray]]
- property control_variables: Dict[str, float | aerosandbox.numpy.ndarray]#
- Return type:
Dict[str, Union[float, aerosandbox.numpy.ndarray]]
- property u_e#
- property v_e#
- property w_e#
- state_derivatives()[source]#
A function that returns the derivatives with respect to time of the state specified in the state property.
Should return a Dict with the same keys as the state property.
- Return type:
Dict[str, Union[float, aerosandbox.numpy.ndarray]]
- convert_axes(x_from, y_from, z_from, from_axes, to_axes)[source]#
Converts a vector [x_from, y_from, z_from], as given in the from_axes frame, to an equivalent vector [x_to, y_to, z_to], as given in the to_axes frame.
Identical to OperatingPoint.convert_axes(), but adds in “earth” as a valid axis frame. For more documentation, see the docstring of OperatingPoint.convert_axes().
- Both from_axes and to_axes should be a string, one of:
“geometry”
“body”
“wind”
“stability”
“earth”
- Parameters:
x_from (float) – x-component of the vector, in from_axes frame.
y_from (float) – y-component of the vector, in from_axes frame.
z_from (float) – z-component of the vector, in from_axes frame.
from_axes (str) – The axes to convert from. See above for options.
to_axes (str) – The axes to convert to. See above for options.
- Return type:
Tuple[float, float, float]
Returns: The x-, y-, and z-components of the vector, in to_axes frame. Given as a tuple.
- add_force(Fx=0, Fy=0, Fz=0, axes='wind')[source]#
Adds a force (in whichever axis system you choose) to this Dynamics instance.
- Parameters:
Fx (Union[float, aerosandbox.numpy.ndarray]) – Force in the x-direction in the axis system chosen. [N]
Fy (Union[float, aerosandbox.numpy.ndarray]) – Force in the y-direction in the axis system chosen. [N]
Fz (Union[float, aerosandbox.numpy.ndarray]) – Force in the z-direction in the axis system chosen. [N]
axes – The axis system that the specified force is in. One of: * “geometry” * “body” * “wind” * “stability” * “earth”
- Return type:
None
Returns: None (in-place)