This page presents the default control loops used by the Paparazzi airborne code for navigation, guidance and control.
All the possible combinations of control loops might not be fully detailed.
In the following diagrams, the block s is used for the derivative function and 1/s is used for the integrator function.
The variables' names are the one used in the airborne code (written in C). Most of this name can the used capitalized in the Airframe Configuration file in order to define the default value of these variables. If in capital letters in the diagrams, the value is fixed and cannot be changed using Settings mechanism.
The elements servos, rc_commands, commands and command_laws correspond to specific section of the Airframe Configuration file. Most of the code located in these blocks is generated from the xml of th configuration file.
The value +/-9600 correspond to +/-MAX_PPRZ. This pprz unit is used as a normalized internal unit for input and output values of the control_laws block.
The navigation loop is located in sw/airborne/nav.*. The navigation routines are called from the Flight Plans.
The course loop is the upper stage of the horizontal control. It is located in sw/airborne/fw_h_ctl.c.
The roll loop is the lower stage of the horizontal control and is used for lateral attitude stabilization. It is located in sw/airborne/fw_h_ctl.c.
The altitude loop is the upper stage of the vertical control. It is located in sw/airborne/fw_v_ctl.c.
Auto Throttle and Auto Pitch climb loops
Two climb loops are available. The are called from the flight plan by changing the vertical navigation mode. The default mode is Auto Throttle.
The climb loop is the intermediate stage of the vertical control. It is located in sw/airborne/fw_v_ctl.c.
The pitch loop is the lower stage of the vertical control and is used for longitudinal attitude stabilization. It is located in sw/airborne/fw_h_ctl.c (!).