About the attitude control

Good morning everyone,

We just started fully-testing 4.1-beta3 version of Arducopter in our drones since it has awesome features, and we want to help detecting possible bugs and help making it stable. Something interesting from the first flights we just had was to find PIDA, PIDR, PIDY and PIDP in the logs. It seems like the gains of the controller are changing during the flight. I am curious, what kind of control is used for this change during the flight? I heart Arducopter 4.1 can use and L1 adaptive control for position, can’t it? I wonder if the L1 is also used for the attitude and the altitude.

If the Firmware uses some kind of adaptive control, or other non-linear control, for attitude and altitude, which will be a good source for understanding it?

Probably you are seeing the effect of the Dmod parameter.
I advise you to take a look at this other thread:

There you get an updated control diagram that answers some of your questions.

1 Like

Thank you! That actually answered my questions. The Dmod is a compensation for scaling the D gain and reducing the limit cycling (This is from the logging documentation). I assume that “limit cycling” means steady state oscillations, doesn’t it?


Thanks for giving 4.1 a try, it’s really great to get people flying it and providing feedback. @amilcarlucas has already provided some answers but here’s a bit from me too.

Copter doesn’t use the L1 controller used in Plane and Rover if that’s what you mean.

I think @amilcarlucas is referring to the Limit Cycle Detection which is on the wiki here but is disabled by default. So if you haven’t modified any “_SMAX” parameters than this shouldn’t be what you’re seeing .

Here are some other features that might be considered gain scaling in case this provides any insight:

Hope that helps, thanks again for helping us with beta testing!