.

# PIV: Applying the Velocity Loop Integral (Kiv)

The first thing to do when setting Kiv is to set VintMax to the same as Output Limit (often 32767). This is the limit for the integral limit (in DAC counts).

The basic idea behind tuning the velocity integral is to turn it up until you see some overshoot in the velocity error or the velocity estimate. In the plots below, we will be looking for overshoot in the velocity error (yellow). Our goal is to turn up Kiv as much as possible without any overshoot.

Note that we will be adding a velocity integral (Kiv) in addition to the velocity proportional gain (Kpv). This means that the DAC output will not be equivalent to a pure velocity error.

We will start at Kiv = 0.1 and turn it up in a similar fashion to the other parameters.

 1,000 count move                           50,000 count / sec velocity             300,000 count / sec2 accel / decel Red - Commanded Velocity              Green - Actual Velocity                    Yellow - DAC Output (velocity error) White - Velocity Estimate Kpv = 9,000 Ka1 = 0.7 Kiv = 0.1 VintMax = 32767

We will not look at every result until there is something different to see.
In the plot below, we have turned up Kiv = 50.

 1,000 count move                           50,000 count / sec velocity             300,000 count / sec2 accel / decel Red - Commanded Velocity              Green - Actual Velocity                    Yellow - DAC Output (velocity error) White - Velocity Estimate Kpv = 9,000 Ka1 = 0.7 Kiv = 50 VintMax = 32767

You can see that the main difference between Kiv = 50 and Kiv = 0.1 are the spikes on both Actual Velocity (green) and DAC Output (white) on the end of the motion. These spikes are the integral settling after the motion is done. Our goal is to adjust Kiv to get the fastest settling possible while keeping the velocity overshoot to a minimum. The settling will be much faster after we apply the position loop. Double Kiv so that Kiv = 100.

 1,000 count move                           50,000 count / sec velocity             300,000 count / sec2 accel / decel Red - Commanded Velocity              Green - Actual Velocity                    Yellow - DAC Output (velocity error) White - Velocity Estimate Kpv = 9,000 Ka1 = 0.7 Kiv = 100 VintMax = 32767

You can start to see the overshoot on the velocity estimate at the end of the move on the Velocity Estimate (white) and DAC Output--velocity error (yellow). At this point, we will want to turn down Kiv. First, let's turn up Kiv so we can see what happens with excessive Kiv. (Kiv = 200)

 1,000 count move                           50,000 count / sec velocity             300,000 count / sec2 accel / decel Red - Commanded Velocity              Green - Actual Velocity                    Yellow - DAC Output (velocity error) White - Velocity Estimate Kpv = 9,000 Ka1 = 0.7 Kiv = 200 VintMax = 32767

We can see more overshoot on the velocity estimate when Kiv = 400.

 1,000 count move                           50,000 count / sec velocity             300,000 count / sec2 accel / decel Red - Commanded Velocity              Green - Actual Velocity                    Yellow - DAC Output (velocity error) White - Velocity Estimate Kpv = 9,000 Ka1 = 0.7 Kiv = 400 VintMax = 32767

The same problems are still present, but they are a lot worse. At this point, we will set Kiv back to Kiv = 50 and move on to the Applying the Position Loop Gain (Kpp). We chose to use Kiv = 50 because it was the largest Kiv that still had no overshoot.

 Legal Notice  |  Tech Email  |  Feedback        Copyright © 2001-2021 Motion Engineering