PX4 / PX4-Autopilot

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

Implement motor slew rate limiting in mixer #3080

Closed LorenzMeier closed 7 years ago

LorenzMeier commented 8 years ago

@tumbili I've heard now about multiple platforms having issues with extreme slew rates in the actuators. We should implement a per-motor slew rate limiter.

RomanBapst commented 8 years ago

@LorenzMeier @jgoppert @kd0aij I'm intending to start with this now. I've also followed the discussion here https://github.com/PX4/Firmware/issues/5203 and I think timing is good to tackle both issues at once. Here's the plan: 1) Mixer slew rate limiter: Implement simple per motor slew rate limiting based on max derivative of motor signal. Max slew rate can be adjusted via parameter. There has been some discussion on whether it's bad to add a slew rate limiter because it adds a nonlinearity to the plant and ,therefore, can lead to instabilities. However, again I think as long as those nonlinearities are well above the bandwidth of the rate controller we should be fine. In the end we just want to prevent the motors from loosing sync which is an even nastier nonlinearity.

2) Implement static thrust to pwm mapping: Based on the thrust/pwm data from APM we can implement the mapping from desired thrust / torque to actual pwm. We are going to neglect motor dynamics as they are well above the bandwidth of the rate controller. We are also going to neglect the aerodynamic derivatives of the propeller (e.g. influence of angular speed on thrust). We will have a parameter to influence the actual shape of the thrust to pwm mapping.

LorenzMeier commented 8 years ago

Sounds great, looking forward to the PR!

RomanBapst commented 7 years ago

Implemented in master

kd0aij commented 7 years ago

Still no feedback at all here though: http://discuss.px4.io/t/fpv-racer-tuning/969/2