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.

export_measured_data(filename, file_format='csv')[source]#

Export the measured values to a file

Parameters:
  • filename (str) – Name of the file to export the values to

  • file_format (str) – Format of the file to export the values to. Options are “csv” and “json”. Default is “csv”.

Return type:

None