cnpcshangbo/Drone-visual-servoing-with-a-controller-in-MATLAB

Anti-windup too slow

Opened this issue · 6 comments

investigation on anti-windup slow 3

  • We found the err feedback has a very large value at the beginning which charged the integrator a lot. We may want to investigate why it has this large value. A simple method to skip this is to add a limit to filter this large value.
  • We found the anti-windup is working too slow. We'll try to change the anti-windup gain.
  • How to calculate the back-calculation gain Kb. The inverse of this gain is the time constant of the anti-windup loop [1].
    Reference:
    [1] K. Åström, T. Hägglund, Advanced PID Control, ISA, Research Triangle Park, NC, August 2005.

In commit (4c5aa0a), I added limit block and zero hold.
However, issues still exist.

  1. The anti-windup back-calculation gain is too small.
    back-calculation gain too small
  2. The system has static error.
    static error
    To-do:
    Read this article to figure out how to tune the back-calculation gain.
    [1] K. Åström, T. Hägglund, Advanced PID Control, ISA, Research Triangle Park, NC, August 2005.

After reading some materials, I found that clamping method always work, but back-calculation highly rely on the coefficient. So I am going to try the clamping method.
https://stackoverflow.com/questions/18654853/simulink-pid-controller-difference-between-back-calculation-and-clamping-for#

Feedbacks (Nov 28, 2017):

The clamping method still has a serious actuator saturation. I am going to retest the back-calculation method using a larger anti-windup gain as Dr. Chen suggested.

df92935
Results:
drone avoid marker.
To-do:
check if the controller needs reverse by using mouse to move marker.

b9f3340
Issues:
Drone shakes.
To do retest.

Feedbacks (Nov 28, 2017):

The drone shaking issue is solved by changing to a better computer.

commit dd54131
Tested again. Drone keeps moving after losing target.
The controller output u keeps a value when feedback=0
(feedback is not available).
To do:

  1. Skip this issue
  2. Continue to test the FOPD controller
  3. Figure out a method to deal with the situation when feedback is not available.