[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Paparazzi-devel] Motor mixing saturation - max offset unbounded

From: Felix Ruess
Subject: Re: [Paparazzi-devel] Motor mixing saturation - max offset unbounded
Date: Sun, 21 Apr 2013 22:01:08 +0200

Hi Michal,

have a look at for (partially) compensating for mag offset due to motor current.

In your case the MAX_SATURATION_OFFSET unfortunately doesn't work. You are probably getting a motor_mixing saturation failure (see motor_mixing.nb_failure counter), which means that your roll/pitch/yaw commands are such that they can't be achieved by lowering/raising the thrust.
It works as long as you only reach the lower OR upper saturation limit, but not both at the same time (most often due to high yaw command)
As pointed out in issue 385, this case is still not handled....

A quick improvement could be to only apply lowering of the thrust in case of hitting both limits...

Cheers, Felix

On Fri, Apr 19, 2013 at 11:03 PM, Michal Podhradsky <address@hidden> wrote:
Hi guys,

I noticed that sometimes our hexarotor wants to spin around during take-off. The reason is that due to big change in magnetic field around the IMU (as the motor are starting up), the estimated yaw can drift up to tens of degrees (depends on the airframe). So the control system want to compensate for that which is fine.

However, the motor mixing saturation (see ) should keep motors from ramping up while the throttle is low (less than 30%).

I did some tests on the test bench, and here are the results:

The throttle was around 15% all the time. MAX_SATURATION_OFFSET was set to 200. You can see that around T=730s, the yaw err integrator winds up (middle plot), that's fine. In the top plot you can see that the yaw command is way more than roll or pitch, which is also fine - as the saturation is done in motor mixing (after calculating the commands). Roll and pitch were constant.

However, in the bottom plot you can see the actual output to the motors (motor_mixing.commands), and it is unbounded (3 motors go to PPRZI_MAX, other 3 to zero). Is that a correct behaviour?

The jumps in the motor commands correspond to an increase in yaw gains.

I would expect the motor commands to differ up to MAX_SATURATION_OFFSET, so at low throttle it doesn't ramp up the aiframe.

Am I correct? Does the motor mixing saturation work for you?


Paparazzi-devel mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]