Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

7344 PID proportional gain = 1 but actuator still unstable.

Hi LabView Gurus,

Problem: With the 7344 PID P gain set to 1 (I & D to zero), I cant get correct performance from my Dynaserv servo drive using encoder feedback.

I'm driving a Dynaserv (Actuator:DM1075B60 Controller:SD1075B02) in torque mode with an NI PCI7344.  All is working Ok, except that with a proportional gain of 1 the system is close to oscillation and overshoots when doing step velocity changes or position moves.  It appears that the system requires a gain of less than 1 (with a gain of 3 or greater the actuator becomes unstable)

The controller is working in absolute position mode with encoder feedback.  The Dynaserv encoder provides 425984 counts per revolution - which is much lager than I've seen before.  I normally work with encoders that provide 2000 counts/rev and these work well with a wide range of PID params usable depending on the mechanical set-up.

I require the Dynaserv to operate at anywhere from zero to greater than one rotation per second with accurate step changes in velocity and position with less than 0.1 degrees or 100 counts of overshoot.  I can't achieve this even with a gain of one currently.  It would appear that the encoder is simply providing too many counts.

I've tried limiting the 7344's output both in software and using a voltage divider on the output, but this doesn't solve the problem - I can't reach full torque as the output is reduced.  I've also looked into gearing and other settings on the 7344 but can't see anything helpful.  Note also i have the Dynaserve controllers gain at the minimum setting also.

Any ideas?  Your thoughts would be much appreciated!

Cheers,
Shane.
0 Kudos
Message 1 of 8
(5,349 Views)

What is your PID rate set at? Have you tried slowing down the PID loop rate?

 

Have you verified that your encoder is working correctly (I usually disable the motor and turn 1 revolution by hand and see if my encoder count is about where it should be). If your feedback isn't working right, that could explain control loop problems.

 

Hope those ideas help

0 Kudos
Message 2 of 8
(5,347 Views)
Thanks Marcopolo - I've tried changing the PID rate faster (by disabling 2 axes) and slower which had little effect.  Slower made the problem worse. Encoder is definitely working 100%.  I have a number of these units and they are all verified the same.  Just an update on my previous statement about reducing the output of the card using a resistor voltage divider... it does actually help the situation somewhat and allows using a P gain of up to around 7.
0 Kudos
Message 3 of 8
(5,339 Views)
You will never get good positioning performance using only P.  That is what I and D are there for.  Do not limit your output if you don't need to.  Be sure it is scaled properly so that +/-10VDC is equal to the max output of your drive(or max motor rating).
0 Kudos
Message 4 of 8
(5,326 Views)

Thanks Brian - yes I'm quite aware with the operation of a PID controller and the parameters other than proportional gain.  The point of only mentioning P was to highlight the fact that I suspect I have a problem with the feedback count being too high and thus requiring a gain of less than one, or some other way of pre scaling the encoder count in the 7344 settings.  That question is still open.  I'm not an expert on the 7344 (or other NI motion control cards) and all of the possible settings, although I have used it in a number of different motion control applications.    I should mention that the Dynaserv controller has a demand range of ~+/8V which has already been accounted for, and that I have achieved reasonable stability and responsiveness by reducing the demand signal electrically, with the  drawback of being unable to achieve maximum torque.  I really want someone to confirm my thoughts regarding the high encoder count or tell me what blindingly obvious thing I'm missing!

 

Cheers,

0 Kudos
Message 5 of 8
(5,311 Views)

Shane-

 

Gain values may change because of feedback resolution, but you shouldn't care.  Proportional Gain should be whatever it needs to be to properly tune.  If it is less than 1, it doesn't matter.  Take the analog scaling back to give you peak torque at +/-8VDC, then start tuning.  Don't get hung up on what the values are.  What kind of load is on the motor?  I can tell you from experience that if you are only tuning the motor, you will have problems getting it tuned real well.  Without any load to dampen it, the motor becomes unstable pretty quickly.

0 Kudos
Message 6 of 8
(5,298 Views)

Shane-

 

Sorry, I should have looked at the gain setting limits of the 7344 before I made my comments.  Many controllers allow non-integer values to be input, but this does not.  Increasing integral gain should prevent overshoot.  My comment about tuning an unloaded motor still stands, though.  Is the shaft connected to anything?

0 Kudos
Message 7 of 8
(5,285 Views)

Shane,

 

I agree with your assumption, that the issue is caused by the high resolution of the encoder. If you increase the encoder resolution, this has exactly the same effect as increasing Kp.

So compared to a standard 2000 counts/rev encoder, your encoder scales Kp with a factor of about 213. As the 73xx boards run the PID loop on a DSP without floating point unit, this encoder eats up all the headroom for your Kp value.

 

From a functional point of view, such a high resolution encoder rarely makes sense, as all the mechanical positioning errors of your system are typically much higher than the resolution of the encoder, so it doesn't add real accuracy to your system. In fact it may even add more issues if you want to run the motor at higher velocities, as thie means very high frequencies that need to pass the encoder cable. The 7344 supports up to 20 MHz encoder input signals, but at these frequencies cable damping and noise can become serious problems.

 

So if possible I recommend to exchange the encoder with a lower resolution version. By the way, is this a real quadrature encoder or are you using an emulated encoder signal, that is generated by your drive (typical setup for BLDC motors). In this case you may be able to reduce the resolution in the drive's configuration.

 

Kind regards,

Jochen Klier

National Instruments

 

0 Kudos
Message 8 of 8
(5,268 Views)