Motor redundancy and PID

Hi everyone,

I built an hexa in order to have additional motors and be able to handle a motor/prop failure, I tuned my copter for perfect stability and quite decent response (a little too smooth maybe). First time a motor failed, the whole thing flipped and smashed on the ground. Luckily I was one meter high and with no camera on it.

I'm entering now deeper into PID regulation to achieve the failproof behavior I was looking for at the beginning so, what I want to discuss with you is where to tweak.

From my understanding the RATE_P parameter balances the difference in inclination speed (regarding pitch for example) and the one required (acting like an ideal STABILIZE_D parameter). So RATE_I would ack as a steady state error compensation for inclination speed and could be a good candidate for failproofness.

Am I totally wrong, or does it make sense?

Has anyone done any tests or knows something more about the topic?

I might be doing some test as soon as I find time to make a safe testing setup and the ability to turn off a single motor.

Thanks anyone

Replies

• Ok, I did some tests and got some results.

I have 90 MB for 25 videos of tests on different PID settings so whoever wants them can have them (or is there anywere I can upload them)... The RATE_I parameter is the one that does the trick but pretty high values are needed and can lead to instability. Against my odds the STABILIZE_P doesn't play such an important rule and actually it does seems that the less STABILIZE_I the faster the copter recovers... which doesn't make sense. I also tried negative STABILIZE_I which gave me good results... what does this means? How are negative values treated?

Also the whole recovering thing looks more difficult when higher throttle is applied.

The ideal settings for my hexa are:

STABILIZE_P    3.2
STABILIZE_I    0.005
RATE_P        0.075
RATE_I        0.120

• Developer

The PIPI loop is like this:

Angle of copter * Stabilize P = desired rate

(actual gyro rate - desired rate)  * Rate P = output

output is converted to PWM and sent out to the motors.

We have a basic crash avoider that reduces the speed of the opposing motor. if the required PWM goes past 100%. I'm sure we could do more if your up for some investigation and testing.

Jason

Activity

Gremsy liked Gremsy's profile
Mar 12
RT @chr1sa: Donkeycar 4.4 released with tons of new features, including path learning (useful with GPS outdoors), better Web and Lidar supp…
Nov 27, 2022
RT @NXP: We are already biting our nails in anticipation of the #NXPCupEMEA challenge! 😉 Did you know there are great cash prizes to be won…
Nov 24, 2022
RT @gclue_akira: レースまであと3日。今回のコースは激ムズかも。あと一歩 #jetracer https://t.co/GKcEjImQ3t
Nov 24, 2022
UC Berkeley's DIY robocar program https://roar.berkeley.edu/
Nov 24, 2022
RT @chr1sa: The next @DIYRobocars autonomous car race at @circuitlaunch will be on Sat, Dec 10. Thrills, spills and a Brazilian BBQ. Fun…
Nov 24, 2022
RT @arthiak_tc: Donkey car platform ... Still training uses behavioral cloning #TCXpo #diyrobocar @OttawaAVGroup https://t.co/PHBYwlFlnE
Nov 20, 2022
RT @emurmur77: Points for style. @donkeycar racing in @diyrobocars at @UCSDJacobs thanks @chr1sa for taking the video. https://t.co/Y2hMyj1…
Nov 20, 2022
RT @SmallpixelCar: Going to @diyrobocars race at @UCSDJacobs https://t.co/Rrf9vDJ8TJ
Nov 8, 2022