Hydraulic servo control vibrations

JasonWade

Member
Join Date
Oct 2005
Location
Preston
Posts
160
Has anybody done any hyraulic position control using plc's? I have a VIPA (like S7-300) plc with +-10V (+-27648 in PLC) outputs driving hydraulic proportional valves, (+10V give full speed extend, -10V full speed retract). Feedback is 0-10V over full cylinder stroke giving INT 0-27648 in the PLC. Control is very simple; output is 2*(Command-(Feedback-13824)). Command is plc generated ramp for test purposes.
This works OK, I think I will not need any I or D control, the cylinder goes where it's told to when it's told to.
Problem is vibrations at some parts of the stroke but only when moving. Any stationary position is fine so I don't think it's a noise problem. I put software filters on the inputs and it doesn't help.
Scan time of PLC is about 3-4 mSec, not sure if this is fast enough for hydr servo??
Any ideas?
 
JasonWade said:
Has anybody done any hyraulic position control using plc's?
No, but I know a lot about hydraulc servo control using a hydraulic motion controller that is connected to PLCs.

Problem is vibrations at some parts of the stroke but only when moving.
What happens if you reduce the gain? Does the system vibrate in open loop mode? Hydraulic systems are like masses betweeen two springs. If the natural frequency and ratio of the dynamic friction to static friction are low then you will experience a slip-stick type of action. Think of pulling a block across sand paper using a slinky or rubber band. Making the cylinder diameter larger makes the system stiffer.

Scan time of PLC is about 3-4 mSec, not sure if this is fast enough for hydr servo??
Any ideas?
I have a lot of ideas. The problem is most likely a hydraulic design or mechanical problem that your simple control scheme can't over come. There could be 'rough' spots or binding at certain locations in your cylinder. I like to give the valve a control signal of 1 volt and look at the graph to see how smooth the motion is. I can find binding and rough spots very easily.

Your scan time is a little high but the biggest problem is that it is not consistent so using a derivative gain is out of the question.

You have not provided us with much info. Mass, cylinder dimensions, orientation, required velocities etc. Also, where in the cylinder stroke do you have the 'vibration' problems? Is it always at the same place? Having a graphs makes it much easier to tell what is wrong.
 
I do hydraulic position and pressure control using a PLC and both servo valves and proportional valves. It can be tricky, but I've developed some methods that give us really good results, especially in precision pressure control.

You are using a simple proportional control. If you are trying to control position then you have a built integral in physical cylinder position, however I'm not entirely sure you are going to achieve good results. I suspect that somewhere along mid stroke you are seeing a large enough error that your proportional only control equation begins to create the oscillations. You may need to try a PI controller. Have you looked at your command to the valve to see what it is doing?

The biggest thing in my experience for good hydraulic control on a PLC is consistent loop repeatabliltiy. The loop must run in a periodic high priority task. You want a fairly fast repeat rate, but it doesn't have to be blindingly fast unless you are moving things to high tolerances or very quickly, but for many apps 5mSec to 10mSec task periods can give acceptable performance.

Peter knows a lot more about this than I do.
 
Alaric said:
You may need to try a PI controller.
If the system isn't stable with a P only controller it certainly will not be stable with a PI controller. The I term adds phase lag. For stablity you want to add derivative terms(s) and this can't be done without a lot of resolution on the feedback and consistent sampling times. I think Jason should stick to the P only controller until the problem is found or at least narrowed down a bit.
 
Thanks for the replies. I don't have info on masses etc but will try to fill in some more blanks.
This machine is a flight simulator type of fairground ride so I guess the weight is about that of a small car. It's weight is supported on three cylinders and it has a purely mechanical gimbal type mechnism to keep it centralised.
The cylinders are about a 75mm bore with 800mm stroke, transducer is 0-27648 in the PLC. Speeds for this test are about a max of 800mm/sec. Proportional valves are +/-27648 = +/-10V.
I did try PI control with deadbands, written in STL with floating point calcs, I was worried that the scan time could be a problem so I stripped it all out and used pure P control with INTs and DINTs (in STL)(with no scaling at all to keep max resolution), this control is certainly no worse than PI, the responsivness and accuracy is more than acceptable. The vibrations are too small to see, you can only feel them because the fibreglass body resonates. They seem to occur just after the direction of travel changes.
I tried open loop control by applying a +/- 5V square wave (from the PLC) to the PVs and the hydraulic movements are clean as you like, so I think the cylinders are not sticking.
I can use OB35 (as i said this PLC is almost a S7-300) to run some code on a 5mSec timed interrupt. I will probably put my P controllers here in the morning.
As a seperate issue, does S7 have an instruction to convert a DINT to an INT without losing the sign bit if it's negative. At the moment I have about 8 lines to do this and would like to cut out as much code as possible. ( L DINT then T INT only works for positive numbers)
 
How are you changing the set point? Are you using smooth ramps? If not it could be related to how coarse your motion profile is. At this point Alaric's suggestion to see the control output sounds good. A ride doesn't need to be perfect. What about reducing the P gain? That should make the ride smoother.
 
JasonWade said:
As a seperate issue, does S7 have an instruction to convert a DINT to an INT without losing the sign bit if it's negative. At the moment I have about 8 lines to do this and would like to cut out as much code as possible. ( L DINT then T INT only works for positive numbers)

Is the VIPA different? If I do something like this,

L L#-56
T MW300

then I see -56 when I monitor MW300. It would only be an issue if I tried to load a negative number less than -32768.
 
You need plots. You need to be able to see a the command output and the position at a high rate to tell what the problem is. Is it a control problem or a hydraulic problem? That is the first step.

Most of the better valves have spool position feedback. This can also tell a good story. Find a way to gather data and you will find your problem.
 
Originally posted by JasonWade:

The vibrations are too small to see, you can only feel them because the fibreglass body resonates. They seem to occur just after the direction of travel changes.

Are these vibrations the same as vibrations you would feel if you hit the car with a dead blow hammer? If the vibration is the same then they are possibly the result of backlash in the actuator system or the actuator to car connection. If this backlash comes out quickly it will excite vibrations in anything that can vibrate. If the vibrations are slower then it may be something in the control system.

Originally posted by JasonWade:

I tried open loop control by applying a +/- 5V square wave (from the PLC) to the PVs and the hydraulic movements are clean as you like, so I think the cylinders are not sticking.

Do you mean that the car doesn't vibrate on direction change with the square wave output? If this is true it certainly not backlash. If ths is the case, as Peter said decreasing the P-gain and allowing for more position error may smooth out the response.

You said you are developing the position ramp in the plc. Are you linearly ramping position or velocity? If you are linearly ramping position then you are making step velocity changes, resulting in (mathematically) infinite acceleration. This is generally bad. Infinite acceleration means infinite force, or at least as hard as your hydraulics can push. At the very least you will probably want to ramp the velocity and you may want to ramp the acceleration as well. If you are currently only ramping position I'm guessing ramping the velocity will be enough to take care of your problem.

Keith
 
Ok, I found that the analogue output for the PV has a 3.3Khz 45mV ripple on it but only when the output voltage is between 0.5 and 1.5 volts. Weird. This ripple is enough to vibrate the cylinder. So the solution was to add a small capacitor on the analogue outputs, and maybe a burden resistor on the PV input.

Thanks for all your help guys, logging all the data did confirm I had no software issues and made me look again at the analogue signal integrity.
 
Originally posted by JasonWade:

Ok, I found that the analogue output for the PV has a 3.3Khz 45mV ripple on it but only when the output voltage is between 0.5 and 1.5 volts.

That wouldn't be an overly agressive dither signal, would it? 3.3 kHz is too high for the plc to generate. If the proportional valve has spool feedback it may use an LVDT to detect position. The excitation signal on the LVDT may be in this range and you may be getting some cross-talk.

Either way, good find.

Keith
 
What about the other direction. If you put -0.5 & -1.5 do you get the same thing? Are you using a true servo valve with zero cross over? You could be seeing the dead spot in the middle of the valve.
 
CharlesM said:
What about the other direction. If you put -0.5 & -1.5 do you get the same thing? Are you using a true servo valve with zero cross over? You could be seeing the dead spot in the middle of the valve.

negative voltages/movement and zero cross over is peachy.

kamenges said:
The excitation signal on the LVDT may be in this range and you may be getting some cross-talk.

I think there is no LVDT on the spool, in any case it's not used (unless the PV uses the signal internally?). I will check if its fitted and what the excitation frequency is.


Thanks for all the help everyone.
 

Similar Topics

Since there are a lot of UK people here I thought I would ask. Has anybody taken classes at the NFPC ( national fluid power center ) in...
Replies
3
Views
1,721
Just the other day I saw a hydraulic forming press that didn't seem to have a pressure relief valve. It had a Servo motor connected to a pump that...
Replies
5
Views
2,089
I have a project that I am getting ready to start that involves two 1756-HYD02 cards. I will be getting LVDT Feedback from three Balluffs and I...
Replies
37
Views
30,917
This webinar was held yesterday. I didn't post a link to it. We had over 200 people attend it anyway. There was more question and answers on...
Replies
1
Views
1,212
Hello everyone, I've been reading through the forums on motion, servos, etc. I'm looking for some help in determining the cause of some...
Replies
45
Views
13,053
Back
Top Bottom