Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Closed loop control of step motors possible with 7344?

Hi All
I have been looking around here for a while for an answer to this question.
 
For me, a closed loop control system is correcting for following errors all the time, also when the move is complete.
 
If the load on a system changes, there will often be a need for compensation in order to keep the position right. Then you need a closed loop control system.
 
I have made a system using DC motors with a 7342 controller. We are in the process og getting a new similar system, where the manufacturer chosed stepmotors in the believe that it can be used in closed loop.
 
Is it really true that the NI version of closed loop is only performing a what you call a "pull-in" at the end of the move in order to correct for lost steps or flexibility of the connection between motor and object/encoder?
I would call this "backlash compensation" or something like that.
 
Why dont you make a real closed loop option. The control voltage from your servo motor control, could be fed into a voltage-frequency converter with a matchin sign signal.
This shouldn't be too complicated to accomplish.
 
/b
 
0 Kudos
Message 1 of 5
(4,279 Views)
You are right. NI motion control boards don't apply a control algorithm during moves when configured in closed loop stepper mode. In this mode the board monitors the following error during the move and generates an error when the following error limit is exceeded and they start the pull-in moves at the end of the move if necessary.

If you really want to do PID control with stepper motors you still could connect an external V/f converter to the DAC outputs of the board and control the axes like DC motor axes. Some vendors implement this feature on their board but NI has decided not to do that as we don't think that this approach provides a good solution. Here are some reasons:
  1. The most important issue is the fact that you could easily exceed the maximum rate of change of the motor frequency in the case that the following error increases during the move. For a DC motor this would mean that the voltage of the controller increases to compensate for this error and the motor will follow - probably with some delay, but it will follow. For the stepper this could mean that the acceleration becomes so high that the motor stops immediately as it can't follow with a delay like a DC motor. What should the controller do then? Restart the move automatically? Generate an error? There is a big chance that you end up with a system moving in a stop and go mode.

  2. The second issue is related to the control algorithm itself. The transfer function of a stepper motor is not really linear so it will be quite hard to find good tuning parameters. A DC motor can be tuned by analyzing the step response and the Bode plot. For the reasons that I have described in 1.) this won't work for a stepper so how should you tune it?
I have talked to some  motion control engineers who have tried to control steppers with a PID algorithm and they all agree that this is a real pain and it's not recommended.
So if your system requirements involve online following error compensation I strongly recommend using a DC motor.

Best regards,

Jochen Klier
National Instruments Germany
Message 2 of 5
(4,271 Views)
Hi Jochen
Thank you for your quick and precise answer.
 
We will use DC motors in stead. I think though that some of the problems you are listing out could be solved by setting max values for speed and acceleration etc.
 
Setting PID and analyzing step response functions of course is not ideal, because of the discrete nature of the motors. The real world is analog.
 
I think the term "closed loop" contains more than what we get here with these controllers. I suggest that you make it clearer what you mean with this in the documentation and the catalogs. The "pull-in" algorithm would be a good thing to describe next to your text on the PID servo features.
 
Best regards,
 
/brian
 
 
 
 
0 Kudos
Message 3 of 5
(4,261 Views)
There are good points and bad points about the NI closed loop stepper function.  It is easy to set up, and following error could be monitored during the run.  If the limit is exceeded, then the system could be stopped.  I have used Delta Tau's PMAC for closed loop stepper control, and it is true closed loop.  However, you now have to tune a stepper system, which for some reason seems to be harder than tuning a servo system.
0 Kudos
Message 4 of 5
(4,253 Views)

Thank you Jochen for your answer, lots of information that was helpful for me as well.

Regards,
Jimmie Adolph
Systems Engineering Manager, National Instruments Northern European Region

Message 5 of 5
(4,234 Views)