Accelerometer Class#
- class rocketpy.sensors.Accelerometer[source]#
Class for the accelerometer sensor
- Variables:
consider_gravity (
bool
) – Whether the sensor considers the effect of gravity on the acceleration.prints (
_InertialSensorPrints
) – Object that contains the print functions for the sensor.sampling_rate (
float
) – Sample rate of the sensor in Hz.orientation (
tuple
,list
) – Orientation of the sensor in the rocket.measurement_range (
float
,tuple
) – The measurement range of the sensor in m/s^2.resolution (
float
) – The resolution of the sensor in m/s^2/LSB.noise_density (
float
,list
) – The noise density of the sensor in m/s^2/√Hz.noise_variance (
float
,list
) – The variance of the noise of the sensor in (m/s^2)^2.random_walk_density (
float
,list
) – The random walk density of the sensor in m/s^2/√Hz.random_walk_variance (
float
,list
) – The variance of the random walk of the sensor in (m/s^2)^2.constant_bias (
float
,list
) – The constant bias of the sensor in m/s^2.operating_temperature (
float
) – The operating temperature of the sensor in Kelvin.temperature_bias (
float
,list
) – The temperature bias of the sensor in m/s^2/K.temperature_scale_factor (
float
,list
) – The temperature scale factor of the sensor in %/K.cross_axis_sensitivity (
float
) – The cross axis sensitivity of the sensor in percentage.name (
str
) – The name of the sensor.rotation_matrix (
Matrix
) – The rotation matrix of the sensor from the sensor frame to the rocket frame of reference.normal_vector (
Vector
) – The normal vector of the sensor in the rocket frame of reference._random_walk_drift (
Vector
) – The random walk drift of the sensor in m/s^2.measurement (
float
) – The measurement of the sensor after quantization, noise and temperature drift.measured_data (
list
) – The stored measured data of the sensor after quantization, noise and temperature drift.
- __init__(sampling_rate, orientation=(0, 0, 0), measurement_range=inf, resolution=0, noise_density=0, noise_variance=1, random_walk_density=0, random_walk_variance=1, constant_bias=0, operating_temperature=25, temperature_bias=0, temperature_scale_factor=0, cross_axis_sensitivity=0, consider_gravity=False, name='Accelerometer')[source]#
Initialize the accelerometer sensor
- Parameters:
sampling_rate (
float
) – Sample rate of the sensor in Hz.orientation (
tuple
,list
, optional) –Orientation of the sensor in the rocket. The orientation can be given as either:
A list of length 3, where the elements are the Euler angles for the rotation yaw (ψ), pitch (θ) and roll (φ) in radians. The standard rotation sequence is z-y-x (3-2-1) is used, meaning the sensor is first rotated by ψ around the x axis, then by θ around the new y axis and finally by φ around the new z axis.
A list of lists (matrix) of shape 3x3, representing the rotation matrix from the sensor frame to the rocket frame. The sensor frame of reference is defined as to have z axis along the sensor’s normal vector pointing upwards, x and y axes perpendicular to the z axis and each other.
The rocket frame of reference is defined as to have z axis along the rocket’s axis of symmetry pointing upwards, x and y axes perpendicular to the z axis and each other. A rotation around the x axis configures a pitch, around the y axis a yaw and around z axis a roll. Default is (0, 0, 0), meaning the sensor is aligned with all of the rocket’s axis.
measurement_range (
float
,tuple
, optional) – The measurement range of the sensor in the m/s^2. If a float, the same range is applied both for positive and negative values. If a tuple, the first value is the positive range and the second value is the negative range. Default is np.inf.resolution (
float
, optional) – The resolution of the sensor in m/s^2/LSB. Default is 0, meaning no quantization is applied.noise_density (
float
,list
, optional) – The noise density of the sensor for a Gaussian white noise in m/s^2/√Hz. Sometimes called “white noise drift”, “angular random walk” for gyroscopes, “velocity random walk” for accelerometers or “(rate) noise density”. Default is 0, meaning no noise is applied. If a float or int is given, the same noise density is applied to all axes. The values of each axis can be set individually by passing a list of length 3.noise_variance (
float
,list
, optional) – The noise variance of the sensor for a Gaussian white noise in (m/s^2)^2. Default is 1, meaning the noise is normally distributed with a standard deviation of 1 m/s^2. If a float or int is given, the same variance is applied to all axes. The values of each axis can be set individually by passing a list of length 3.random_walk_density (
float
,list
, optional) – The random walk of the sensor for a Gaussian random walk in m/s^2/√Hz. Sometimes called “bias (in)stability” or “bias drift””. Default is 0, meaning no random walk is applied. If a float or int is given, the same random walk is applied to all axes. The values of each axis can be set individually by passing a list of length 3.random_walk_variance (
float
,list
, optional) – The random walk variance of the sensor for a Gaussian random walk in (m/s^2)^2. Default is 1, meaning the noise is normally distributed with a standard deviation of 1 m/s^2. If a float or int is given, the same variance is applied to all axes. The values of each axis can be set individually by passing a list of length 3.constant_bias (
float
,list
, optional) – The constant bias of the sensor in m/s^2. Default is 0, meaning no constant bias is applied. If a float or int is given, the same bias is applied to all axes. The values of each axis can be set individually by passing a list of length 3.operating_temperature (
float
, optional) – The operating temperature of the sensor in Kelvin. At 298.15 K (25 °C), the sensor is assumed to operate ideally, no temperature related noise is applied. Default is 298.15.temperature_bias (
float
,list
, optional) – The temperature bias of the sensor in m/s^2/K. Default is 0, meaning no temperature bias is applied. If a float or int is given, the same temperature bias is applied to all axes. The values of each axis can be set individually by passing a list of length 3.temperature_scale_factor (
float
,list
, optional) – The temperature scale factor of the sensor in %/K. Default is 0, meaning no temperature scale factor is applied. If a float or int is given, the same temperature scale factor is applied to all axes. The values of each axis can be set individually by passing a list of length 3.cross_axis_sensitivity (
float
, optional) – Skewness of the sensor’s axes in percentage. Default is 0, meaning no cross-axis sensitivity is applied.consider_gravity (
bool
, optional) – If True, the sensor will consider the effect of gravity on the acceleration. Default is False.name (
str
, optional) – The name of the sensor. Default is “Accelerometer”.
- Return type:
None
See also
TODO
- measure(time, **kwargs)[source]#
Measure the acceleration of the rocket
- Parameters:
time (
float
) – Current time in seconds.kwargs (
dict
) –Keyword arguments dictionary containing the following keys:
- unp.array
State vector of the rocket.
- u_dotnp.array
Derivative of the state vector of the rocket.
- relative_positionnp.array
Position of the sensor relative to the rocket center of mass.
- environmentEnvironment
Environment object containing the atmospheric conditions.