sys_id_chirp

Chirp maneuver for system identification. The chirp is a sine wave with frequency increasing constantly in time. It’s a good candidate as input for system identification since it covers a broad frequency spectrum. This module automates performance of the chirp and exposes an easy interface for tailoring the maneuver to your specific aircraft. The module is used by including the module in the airframe file and adding the following line to the <command_laws> section: <call fun=”sys_id_chirp_add_values(autopilot_get_motors_on(),FALSE,values)”/> You can pick the axes to apply chirps to by setting the CHIRP_AXES variable with the COMMAND_XXX variables where XXX are the actuators defined in the <commands> section of your airframe. Remeber to deactivate the control input when the system identification input is running using (can be checked using the sys_id_wave_running() function) Then, the GCS exposes the settings for the chirp. - The Chirp axis settings is the index (0-based) of the axis to choose within the CHIRP_AXES variable specified. In the default, this means i.e. 0 means roll chirp. - Amplitude is the amplitude of the chirp - On-axis noise is the fraction of the chirp amplitude to add as noise to the chirp axis (see pprz_chirp.h for more details) - On-axis noise is the absolute value for off-axis noise (see pprz_chirp.h for more details) - Fstart_hz and Fend_hz are the frequencies in hertz at the start and end of the chirp. Make sure to cover all relevant dynamics frequencies - Length_s is the length in seconds of the chirp Start the chirp by checking the Active box in the “Activate chirp”. Stop the chirp by checking the Inactive box in the same input setting. Add the message “CHIRP” to your telemetry to see chirp progress, and to your logger to automatically filter chirps in post-processing.

Section SYS_ID

SYS_ID_

Name

Value

Description

CHIRP_AXES

{COMMAND_ROLL,COMMAND_PITCH,COMMAND_YAW,COMMAND_THRUST}

Which axes the chirp is applied to (specify as array with {})

CHIRP_ENABLED

TRUE|FALSE

If false, the chirp does not run and values are not added

CHIRP_USE_NOISE

TRUE|FALSE

If true, add noise to all axes (also the axes where no chirp is active)

CHIRP_EXPONENTIAL

TRUE|FALSE

If true, exponential-time chirp. Else, linear-time chirp

CHIRP_FADEIN

TRUE|FALSE

If true, start the chirp with two wavelengths of the lowest frequency

Sections