.

PIV: Smoothing the Actual Velocity (Kpv)

The actual velocity plot above is pretty ugly because of the low resolution encoder used in this example. The spikes in the actual velocity end up in the DAC signal, makes noise and do not help stability. It would be nice if we could do some filtering to the actual velocity signal to smooth things out. We can do this with the PIV tuning parameter Ka1. What is Ka1?

Applying Ka1 is a balancing act between smoothing out the velocity estimate and keeping phase lag to a minimum. Excessive phase lag leads to instability.

We have too much noise in the above plot, so we will apply Ka1 = 0.5 and check the results.

  1,000 count move                          
50,000 count / sec velocity            
300,000 count / sec2 accel / decel
Red - command velocity             
Green - actual velocity                   
White - estimated velocity
Yellow - DAC Output (velocity error)
 

Kpv = 5000                        
Ka1 = 0.5  

               

The noise is reduced quite a bit. Since noise was what was holding us back before, let's increase Kpv to 7500 to get better velocity performance.

  1,000 count move                          
50,000 count / sec velocity            
300,000 count / sec2 accel / decel
Red - command velocity             
Green - actual velocity                   
White - estimated velocity
Yellow - DAC Output (velocity error)
 

Kpv = 7,500                        
Ka1 = 0.5  

                      

The noise at Kpv = 7500 is acceptable. By increasing Kpv in small (~10-20%) increments, we can find a limit of unacceptable perfomance in the neighborhood of Kpv = 15,000.

  1,000 count move                          
50,000 count / sec velocity            
300,000 count / sec2 accel / decel
Red - command velocity             
Green - actual velocity                   
White - estimated velocity
Yellow - DAC Output (velocity error)
 

Kpv = 15,000                        
Ka1 = 0.5  

                  

To reduce the noise, we will increase Ka1 to 0.7.

  1,000 count move                          
50,000 count / sec velocity            
300,000 count / sec2 accel / decel
Red - command velocity             
Green - actual velocity                   
White - estimated velocity
Yellow - DAC Output (velocity error)
 

Kpv = 15,000                        
Ka1 = 0.7  

                       

This decreases the noise present. We find another noise limit at Kpv = 25000.

  1,000 count move                          
50,000 count / sec velocity            
300,000 count / sec2 accel / decel
Red - command velocity             
Green - actual velocity                   
White - estimated velocity
Yellow - DAC Output (velocity error)
 

Kpv = 25,000                        
Ka1 = 0.7  

                    

Notice that we are seeing the beginning of a peak in the velocity error. The ringing in the velocity error is indicitive of a phase problem. There are two main sources of this phase lag.

Ka1 is too high. The phase lag in Ka1 gets worse as Ka1 is raised.

The system (servo motor, drive, mechanics, etc.) have too much phase lag.

In this instance, we know it is Ka1, as we didn't have this problem until we turned up Ka1.

At this point, turn down Kpv1 by 2/3. The amount you turn down Kpv is up to you, but 2/3 is a good starting point. You may also want to turn down Ka1 a bit (~10-20%) if you want more stability margin.

Here is the result of turning down Kvp by 2/3.

  1,000 count move                          
50,000 count / sec velocity            
300,000 count / sec2 accel / decel
Red - command velocity             
Green - actual velocity                   
White - estimated velocity
Yellow - DAC Output (velocity error)
 

Kpv = 9,000                        
Ka1 = 0.7  

Previous | Next

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