Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MC autotune: change signal input to sine sweep #21857

Draft
wants to merge 12 commits into
base: main
Choose a base branch
from

Conversation

bresch
Copy link
Member

@bresch bresch commented Jul 18, 2023

Solved Problem

In some cases, the gains obtained by auto-tuning weren't good enough because the system identification wasn't able to capture the dynamics properly.

Solution

One possible cause of a poor model identification is when the dominant dynamics are not correctly excited.
This PR changes the current doublet input signal to sine sweeps (as suggested by Ryan Beall). As they cover a wider range of frequencies, they give a higher chance to correctly capture the system dynamics.

The current implementation is also more generic and other signal types can be added.

Changelog Entry

For release notes:

Changed MC autotune input signal from doublets to sine sweep
New parameter: MC_AT_SYSID_F0, MC_AT_SYSID_F1, MC_AT_SYSID_TIME, MC_AT_SYSID_TYPE
Documentation: Need to update autotune page

Test coverage

SITL tests for now

log_sine_sweep_sitl

@MaEtUgR
Copy link
Member

MaEtUgR commented Feb 20, 2024

Dev call: Change to have multi-step by default. Then merge refactor and test both.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 🏗 In progress
Development

Successfully merging this pull request may close these issues.

2 participants