I think I found a problem with current implementation dynThrPID. I think this parametr is used to reduce osculations when you give more throttle for you multirotor. Lately I build my second quad to learning some acrobatics, so it is light and a lot of power - weight about 650grams and thrust 4x680gram hover with throttle ~1350. All components is new, no problems with bearings and unbalanced propellers. Electronics is dumped with the same dumpers like with my big old quad where it works perfectly. But I had a lot of problems with osculations. To learn acro I need quit high PID values for Pitch/Roll, but If I setup default values with P about 4,0 I get osculations when I give a little more power for my quad. I try to reduce this with dynThrPID value but it was not working. So I browsed the code and found something interesting - this flag is used only when throttle > 1500. So I changed code to this:
Code: Select all
#define HOVER_THROTTLE 1350
...
//PITCH & ROLL only dynamic PID adjustemnt, depending on throttle value
if (rcData[THROTTLE]<HOVER_THROTTLE) prop2 = 100;
else if (rcData[THROTTLE]<2000) prop2 = 100 - (uint16_t)dynThrPID*(rcData[THROTTLE]-HOVER_THROTTLE)/(2000-HOVER_THROTTLE);
And now it fly much better. So correct me if I'm wrong this is correct solutions or I'm wrong and should use other parameters to tune my quad ?
My setup:
Suppo 2208-14
Mystery 12A with wii-esc firmware
8x4,5" GF propellers
weight ~650 grams
Regards,
Marcin.