.

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.

Previous | Next


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