PX4 / PX4-Autopilot

PX4 Autopilot Software
https://px4.io
BSD 3-Clause "New" or "Revised" License
8.6k stars 13.56k forks source link

Attitude control scaling #1267

Closed LorenzMeier closed 10 years ago

LorenzMeier commented 10 years ago

The current actuator scaling for attitude is airspeed squared. However, this is only right for the derivative of the attitude rate (angular momentum). In particular for roll, for the static case, the scaling should be linear, as there is an equilibrium of the change of angle of attack for both sides of the wing and the actuators.

Consequently the feedforward and integrator parts should be scaled by inverse airspeed, while the rate controller response should be scaled by inverse airspeed squared. https://github.com/PX4/Firmware/blob/master/src/lib/ecl/attitude_fw/ecl_pitch_controller.cpp#L193

@thomasgubler I would appreciate if you could look into this. It is quite relevant for the control authority over the airframe at higher speeds and was pronounced on one of the last Viper flights.

LorenzMeier commented 10 years ago

@sjwilks This is related to the lack of control authority in attitude control mode on the dive of the Viper.

LorenzMeier commented 10 years ago

@thomasgubler See the explanation of roll helix angle in page 5 of the following:

http://www.flightlab.net/Flightlab.net/Download_Course_Notes_files/9_RollingDynamics.pdf

It explains why steady state roll rate is proportional to TAS.

sjwilks commented 10 years ago

@LorenzMeier yes, this exactly matches what I have been experiencing. Not only does this happen when switching out of auto into stabilised to recover from a diving event but it could also, at least partially, explain the inability of the large wing to get out of dives in high(er) speed turns. The setup to date has been to increase throttle in turns which then reduced the pitch authority which limits its ability to hold pitch resulting in diving in turns.