Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Proportional valve and following error problem

Hello, I have a problem with using a NI-7344 card and controlling a proportional valve and hydraulic cylinder.

 

Everything is working fine in regards to motion and velocity control.

The problem I have is with the following error and halt command. When the cylinder is moving I mechanical disconnect my linear encoder ( 20 pulses/mm) expecting for the following error flag to immediately stop the motion once the value of the following error has been reached. The total stroke is 1016 mm.

 

What I observe is that the hydraulic cylinder will continue to move for about 20mm when my following error has been set to 50 counts (which should mean 20pulses x 4 / 50 = 1.6mm). I am moving at a rate of 10mm/s

I have also observed that the faster the velocity the smaller the error I see with respect to the cylinder stopping when the encoder is discounted.  I am moving at 60mm/s when that happens.

The reason I am discounting the encoder is to try to simulate a partial stuck mechanical system.

Another note is that when ever a "Stop" or "Halt" command is issued in MAX or in our own code the cylinder will stop immediately, so it has nothing to do with the "Kill" command that is issued when a following error has occurred.

 

Any thoughts on this one?

0 Kudos
Message 1 of 9
(4,392 Views)

You say "which should mean 20pulses x 4 / 50 = 1.6mm." Where does the 4 come from?

 

You hit it right on the head with your last statement - the kill command is called when the following error has occured. This means that the motor - in your case the cylinder - will continue on inertia until it stops.

 

My guess is that once the encoder is removed it will continue for 2.5mm before the following error is called and then it will decelerate at it's normal inertia until it stops.

Vince M
Applications Engineer
0 Kudos
Message 2 of 9
(4,375 Views)

The "4" is the effect of quadrature detection? If the encoder is 20p/mm than 80p/mm has to be enter in MAX, I believe.

 

If this is an inertia effect, then why does the stopping distance become shorter, almost immediate, at higher speeds ( 60 mm/s)?

At this time of testing we have no load connected to the cylinders and we have observed instantaneous stops when we issue the "Halt" or "Stop" commands.

This is what is confusing us, why doesn't it drift if those commands are used, if it is say an inertia effect?

 

Normally I don't think we would have observed any of this if we had not decided to check what happens if the encoder becomes mechanical discounted from the axis.

0 Kudos
Message 3 of 9
(4,366 Views)
I am not an NI motion expert, but typically a kill command is different than a stop command.  Stop will decelerate the axis at a predefined rate.  This is what happens when an end of travel limit is encountered.  Kill will disable the drive.  This means there is no more control, and inertia takes over.  If there is no brake on the system, it will coast to a stop, or hit something.
0 Kudos
Message 4 of 9
(4,359 Views)

I think we need to keep in mind that this is a valve that when power is shut off from it, it closes immediately and no motion occurs, not like a motor that could run on a little.

We have issued Kill, Stop, and Halt commands with the same result; the cylinder stops dead in its tracks, no inertia, no nothing. It is only when the encoder stops counting ( because we have mechanical disconnected it from the cylinder, not electrically) will it continue moving for 10- 20 mm after the error flag has been raised.

 

I'm starting to question the PID loop response. When a PID controller sense's that it's feedback is not keeping up with the demand, isn't it normal for it to increase the output to try to correct the problem. Then my following error kicks in and shuts down the axis? Resulting in a greater error than what was set in the following error parameter. Why this error in motion decreases with a increase velocity, I haven't figured out yet.

 

Anyway, keep the suggestion coming, someone has an answer to this.

Thanks.

0 Kudos
Message 5 of 9
(4,355 Views)

Hi transporter!

 

When you said "When a PID controller sense's that it's feedback is not keeping up with the demand, isn't it normal for it to increase the output to try to correct the problem."  - this depends on the settings of your PID control.  

 

Also, take a look at this KnowledgeBase article. It has some helpful information!  Following Error in a Motion Control System

 

Kristen H.

0 Kudos
Message 6 of 9
(4,325 Views)

Hi Kristen;

I have read that artical and I think everthing is fine. My cylinder moves at the request velocity, distance and has fairly smooth motion to it.

When it comes to the tunning, our system would fall into the over damped section, this seems to give us the best control and performance.

 

I don't know if the over damped PID values would cause the issue we are seeing with the following error and velocity?

0 Kudos
Message 7 of 9
(4,309 Views)

Hi transporter!

 

There is another Applications Engineer working on a very similar issue as this one.  As soon as a solution is found, I will post the solution for everyone.  Thanks!

 

Kristen H.

0 Kudos
Message 8 of 9
(4,291 Views)

Here is the summary from the service request: 

"If you remember my problem was that when I mechanical discounted one of the
encoders while in gearing mode, that axis moved way passed the programmed
following error but the other slave axis would stop immediately.
In our final configuration I was able to test it another way, we have
installed shutoff valves on each of the four axis, so while a move was being
preformed, I slowly began to restrict the flow to one cylinder, that in turn
meant that it was falling behind the other cylinders. When the following
error was exceeded, all axis stopped as we had programmed it to do in our
code."

 

Kristen H.

0 Kudos
Message 9 of 9
(4,123 Views)