|
Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
Include dependency graph for obm_cyclone.c:Go to the source code of this file.
Data Structures | |
| union | CycloneCoefficients |
| union | CeMatrix |
| struct | CycloneCoefficients.__unnamed286__ |
| struct | CeMatrix.__unnamed288__ |
Variables | |
| union CycloneCoefficients | obm_coefficients |
| union CeMatrix | ce_mat_tmp |
| union CycloneCoefficients |
Definition at line 12 of file obm_cyclone.c.
Collaboration diagram for CycloneCoefficients:| Data Fields | ||
|---|---|---|
| struct CycloneCoefficients.__unnamed286__ | __unnamed__ | |
| float | data[22] | |
| union CeMatrix |
Definition at line 84 of file obm_cyclone.c.
Collaboration diagram for CeMatrix:| Data Fields | ||
|---|---|---|
| struct CeMatrix.__unnamed288__ | __unnamed__ | |
| float | data[16] | |
| struct CycloneCoefficients.__unnamed286__ |
Definition at line 13 of file obm_cyclone.c.
| Data Fields | ||
|---|---|---|
| float | fx_motor_squared | |
| float | fx_speed_forward | |
| float | fy_speed_lateral | |
| float | fz_elevon_motor | |
| float | fz_elevon_speed | |
| float | fz_motor_squared | |
| float | fz_speed_forward | |
| float | fz_speed_vertical | |
| float | mx_angular_coupling | |
| float | mx_angular_drag | |
| float | mx_elevon_motor_diff | |
| float | mx_elevon_speed_diff | |
| float | my_angular_sum | |
| float | my_elevon_motor_sum | |
| float | my_elevon_speed_sum | |
| float | my_motor_sum | |
| float | my_speed_forward | |
| float | my_speed_vertical | |
| float | mz_angular_coupling | |
| float | mz_motor_diff | |
| float | mz_speed_lateral | |
| float | mz_speed_roll | |
| struct CeMatrix.__unnamed288__ |
|
static |
Definition at line 160 of file obm_cyclone.c.
References foo.
Referenced by evaluate_obm_f_stb_u().
Here is the caller graph for this function:| void cyclone_f_stb_x | ( | const float | rates[3], |
| const float | ang_accel[3], | ||
| const float | vel_body[3], | ||
| const float | accel_body[3], | ||
| const float | u[4], | ||
| const float | coeff[22], | ||
| float | F_stb_x[4] | ||
| ) |
Definition at line 201 of file obm_cyclone.c.
References foo.
Referenced by evaluate_obm_f_stb_x().
Here is the caller graph for this function:
|
static |
Definition at line 117 of file obm_cyclone.c.
References foo.
Referenced by evaluate_obm_forces().
Here is the caller graph for this function:
|
static |
Definition at line 133 of file obm_cyclone.c.
References foo.
Referenced by evaluate_obm_moments().
Here is the caller graph for this function:| void evaluate_obm_f_stb_u | ( | float | fu_mat[ANDI_NUM_ACT *ANDI_OUTPUTS], |
| const struct FloatRates * | rates, | ||
| const struct FloatVect3 * | vel_body, | ||
| const float | actuator_state[ANDI_NUM_ACT] | ||
| ) |
Evaluate the state-dependent control effectiveness matrix F_u for stabilization.
This function computes the mapping from actuator inputs to aerodynamic/motor outputs for the stabilization model. The output is written into the provided, pre-allocated array fu_mat of size ANDI_NUM_ACT * ANDI_OUTPUTS.
The produced matrix represents the partial derivatives of the modeled outputs with respect to actuator commands (∂f/∂u) evaluated at the current state and actuator conditions. It is intended to be implemented per-airframe (see obm_cyclone for an example).
| [out] | fu_mat | Pre-allocated array (size ANDI_NUM_ACT * ANDI_OUTPUTS) receiving the flattened control-effectiveness matrix. Convention: element for output i and actuator j should be written to fu_mat[i * ANDI_NUM_ACT + j]. |
| [in] | rates | Current angular rates (typically p, q, r) used by the model (rad/s). |
| [in] | vel_body | Body-frame linear velocity vector (u, v, w) (m/s). |
| [in] | actuator_state | Current actuator commands/deflections array (length ANDI_NUM_ACT). Units and normalization depend on the airframe and actuator type (e.g. radians, throttle fraction). |
Definition at line 319 of file obm_cyclone.c.
References actuator_state, ANDI_NUM_ACT, ce_mat_tmp, cyclone_f_stb_u(), CeMatrix::data, CycloneCoefficients::data, foo, obm_coefficients, FloatVect3::x, FloatVect3::y, and FloatVect3::z.
Referenced by stabilization_andi_enter(), stabilization_andi_init(), and stabilization_andi_run().
Here is the call graph for this function:
Here is the caller graph for this function:| void evaluate_obm_f_stb_x | ( | float | nu_obm[ANDI_OUTPUTS], |
| const struct FloatRates * | rates, | ||
| const struct FloatVect3 * | vel_body, | ||
| const struct FloatVect3 * | ang_accel, | ||
| const struct FloatVect3 * | accel_body, | ||
| const float | actuator_state[ANDI_NUM_ACT] | ||
| ) |
Evaluate the state-dependent contribution F_x * x_dot for stabilization.
Computes nu_obm = F_x * x_dot, the portion of the open-body-model outputs that depends on the current state rates/accelerations (i.e. the state-dependent term). This is the term that captures how changes in state drive the modeled outputs independent of actuator inputs.
| [out] | nu_obm | Pre-allocated output vector of length ANDI_OUTPUTS receiving the computed F_x * x_dot values. |
| [in] | rates | Current angular rates (p, q, r) used by the model (rad/s). |
| [in] | vel_body | Body-frame velocity vector (u, v, w) (m/s). |
| [in] | ang_accel | Body angular accelerations (p_dot, q_dot, r_dot) (rad/s^2). |
| [in] | accel_body | Body-frame linear accelerations (ax, ay, az) (m/s^2). |
| [in] | actuator_state | Current actuator commands/deflections array (length ANDI_NUM_ACT). Some terms of F_x may be actuator-state dependent (e.g. rotor wake effects). |
Definition at line 345 of file obm_cyclone.c.
References actuator_state, cyclone_f_stb_x(), CycloneCoefficients::data, foo, nu_obm, obm_coefficients, FloatRates::p, FloatRates::q, FloatRates::r, FloatVect3::x, FloatVect3::y, and FloatVect3::z.
Referenced by stabilization_andi_run().
Here is the call graph for this function:
Here is the caller graph for this function:| struct FloatVect3 evaluate_obm_forces | ( | const struct FloatRates * | rates, |
| const struct FloatVect3 * | vel_body, | ||
| const float | actuator_state[ANDI_NUM_ACT] | ||
| ) |
Evaluate total force acting on the vehicle from the OBM.
Computes the full set of forces modeled by the on board model for the given airframe as a function of the state and input.
This function is used for complementary filtering in ANDI.
| [in] | rates | Current angular rates (p, q, r) used by the model (rad/s). |
| [in] | vel_body | Body-frame linear velocity vector (u, v, w) (m/s). |
| [in] | actuator_state | Current actuator commands/deflections array (length ANDI_NUM_ACT). Units and normalization depend on the airframe and actuator type (e.g. radians, throttle fraction). |
Definition at line 273 of file obm_cyclone.c.
References actuator_state, cyclone_obm_forces(), CycloneCoefficients::data, foo, obm_coefficients, FloatVect3::x, FloatVect3::y, and FloatVect3::z.
Referenced by stabilization_andi_run().
Here is the call graph for this function:
Here is the caller graph for this function:| struct FloatVect3 evaluate_obm_moments | ( | const struct FloatRates * | rates, |
| const struct FloatVect3 * | vel_body, | ||
| const float | actuator_state[ANDI_NUM_ACT] | ||
| ) |
Evaluate total moments acting on the vehicle from the OBM.
Computes the full set of moments modeled by the on board model for the given airframe as a function of the state and input.
This function is used for complementary filtering in ANDI.
| [in] | rates | Current angular rates (p, q, r) used by the model (rad/s). |
| [in] | vel_body | Body-frame linear velocity vector (u, v, w) (m/s). |
| [in] | actuator_state | Current actuator commands/deflections array (length ANDI_NUM_ACT). Units and normalization depend on the airframe and actuator type (e.g. radians, throttle fraction). |
Definition at line 294 of file obm_cyclone.c.
References actuator_state, cyclone_obm_moments(), CycloneCoefficients::data, foo, moments, obm_coefficients, FloatVect3::x, FloatVect3::y, and FloatVect3::z.
Referenced by stabilization_andi_run().
Here is the call graph for this function:
Here is the caller graph for this function:Compute total thrust produced by the current actuator state.
Returns the aggregate thrust generated by the set of actuators described by actuator_state. This value is typically used by the stabilization/obm code when converting actuator commands to net force for direct thrust control.
| [in] | actuator_state | Current actuator commands/deflections array (length ANDI_NUM_ACT). Units and normalization depend on the airframe (e.g. rotor collective, throttle fraction). |
Definition at line 375 of file obm_cyclone.c.
References actuator_state, and obm_coefficients.
Referenced by stabilization_andi_enter(), and stabilization_andi_run().
Here is the caller graph for this function:Definition at line 108 of file obm_cyclone.c.
Referenced by evaluate_obm_f_stb_u().
| union CycloneCoefficients obm_coefficients |
Definition at line 54 of file obm_cyclone.c.
Referenced by evaluate_obm_f_stb_u(), evaluate_obm_f_stb_x(), evaluate_obm_forces(), evaluate_obm_moments(), and evaluate_obm_thrust_z().