Quoted from Alex's post on RCG:
I released today a new dev version with a new parameter which I think could be a real improvement.
I tested this version on 3 multi without specific issues:
- QUAD X with a genuine WMP only and a pro mini board
- QUAD X with FFIMUv2 and a flyduino board
- TRI with a WMP copy and a pro mini board
I didn't manage to reproduce any flip
I call the new parameter MAX_CORRECTION
Code: Select all
/* this parameter defines the maximum correction per axis multiwii can output before mixing the output to different motors
this parameter becomes inactive as soon as the sticks are far from the center position in order to keep acro abilities
reducing this parameter can avoid big wobbles and allows higher PID settings
#define MAX_CORRECTION 100
I did some test with a value of 50 with still good results. I set it by default to 100.
It's normal to have nearly no resistance by hand with low values, and I think it could also increase the flight time.
With a value of 1000, it's the same as the previous settings.
Before releasing the 1.8, I would like to have some feedbacks on it.
The more feedback I will have, the better will be the version
Ok so I've had some time to play with max_correction!
My first impression is that it's very clever and impressive--I can really see the benefit of its work.
I have a quad with 9x6 apc's 1050 kv motors, 24" motor to motor distance. AUW is 1200 with FPV gear on board. Here's my config--quite stable, pretty smooth. I think I need to fool around just a hair more to eliminate some tiny shivers in strong wind. But for FPV I'd bet this is already just fine. Haven't tested it FPV yet, only LOS.
I tested it at max_c 100 today in wind about 12-16 mph and found the quad did not handle the gusts very well. I could see booms dropping and the craft working pretty hard to overcome challenges to yaw, along with intermittent jerky shivering now and then. So I changed MAX_CORRECTION from the default 100 to 350 and found the quad could handle the wind much more effectively, almost back to what 1.7 was, in the sense that wind seemed to just blow right through the thing. When the wind calmed in between gusts, the quad flew like it was swimming in thick water--it hovered in acro mode very calmly.
However, it seems more difficult for me to keep it perfectly level in acro mode--it kept changing attitude slightly, probably because a change in axis may have partially been corrected by motors adjacent to the axis, causing an imperfect adjustment in attitude (that's me just guessing). I suspect this could be improved by adding P, but I'd probably have to add more pitch/roll rate to compensate so I'd avoid oscillations while in motion.
This raises some thoughts...if users have max correction set incorrectly for their MWC or flying habits, they may have more trouble when PID tuning. My quad's power train needed more correction room for each motor in order to sufficiently handle today's wind. Adjusting PID would certainly fix the same issue, but max_c seems to govern the effectiveness of the motor very directly, while PID governs effectiveness of the MWC in total. This could be terribly confusing for new users.
One great thing to help diagnose max_c issues (instead of PID issues) is that in a good bit of wind you'll see a boom drop, almost like there's a bad motor on the end. I think this is evidence that max_c is too low, causing insufficient correction authority on that boom.
So, in the end, it seems that max_c set too strongly (too close to 0) will greatly reduce the MWC's ability to cope with unstable air. Set too weak (out at 1000), the MWC will rely solely on each motor's thrust for correction, which is what we're used to. However, getting it set just right (my guess is between 300 and 600) will allow for incredibly smooth hover while preserving Warthox-capable acro flight. I plan on experimenting further
Thank you Alex for this new, interesting concept!