Controlling two analog valves for force control

The project is not a good one for a PLC.

Peter, as usual, is spot on. Most PLCs dont have anything like the bandwidth required to make a good job of this task; here are some things to think about.

You are measuring air pressure and not force.

Considder the following timings: Update rate of your feedback device, Update rate of your analogue output to your control valve, latency between changing your setpoint and a physical change taking place. There will be no point in running your control loop any faster than the slowest of these 3 or you will process the same error more than once with the result that the system will be unstable as it continuously over-corrects.

The closed loop pressure regulators available have PID control inside but with a very high bandwidth.

I have recently designed and commissioned some equipment that uses a hydraulic proportional flow valve to regulate speed of movement of an axis with a secondary loop that also limits the force generated. This was done by selecting very fast analogue I/O and running the control loops at 5mS. The system performs adequately for the application and to get any better level of control would require a dedicated motion controller.

Nick
 
The point of the project is to see IF it can be done
Yes, it can be done.


using PID control of two analog valves.
I can do it but I would use one analog valve to control position and force.
Controlling multiple outputs gets tricky. You need to model the system. This means you need to figure out how to model a system of non-linear differential equations so you can control the pressure on both sides of the piston to achieve the necessary net force across the piston.

As long as I can track it sufficiently I am good. I didn't choose the equipment so I can't use those suggestions, even though they would work easily.
If the position disturbance is slow then you can do it.
The problem is that pneumatics are compliant. A pneumatic PID cannot be tuned 'hot' enough to react to position disturbances and still maintain a constant force. The controller needs to know about how the positions will change as a function of how the block is moving under the actuator.

My professor is generally interested in pneumatic systems, position cotrol, force control etc so I guess that's why he gave me this project.
How interested is he? I don't think he has thought this through because you have been given a difficult project

Just so you know I know what I am talking about look at this:
http://deltamotion.com/peter/Videos/PneuMove.mp4

This is only position control but we can do force control.

Here is another application where we are trying to maintain an applied force over an uneven runway.
http://www.airporttech.tc.faa.gov/naptf/
The position control is actually done with hydraulics but the air in the tires make the system very compliant. Position control of the tires can be easily accomplished but the the controller gains cannot be tuned high enough to follow the ruts and dips in the runway and maintain a constant force. What we had to do map the elevation of the runway so we can anticipate runway elevation changes. The elevation of the runway is measured with a laser and put in a table. The controller indexes into the table using the position along the runway to get the elevation. Now the trick is that if compressing the tire 0.1 inches results in 18,000 lbf then we know if we can estimate how to maintain 18,000 lbf by following the elevation profile of the runway. We use an outer force loop to correct for errors in the inner loop by adding an offset to the elevation.

This project would not work without knowing the runway elevation because the PID gains can't be tuned high enough. The system must be able to anticipate by knowing how the elevations are going to change.

BTW, this system is at the Atlantic City airport. I was supposed to be there this week but the trip got cancelled due to hurricane Sandy.

BTW, this system is a one of a kind. The things learned here are shared with the world so better runways can be built to withstand the forces from heavier aircraft like A380s.
 
First of all, thank you all for taking the time to help, I appreciate it.

If the position disturbance is slow then you can do it.

This is the case.

What controller are you using? I use the PID function block of Step7 (FB41)
What are the valves are you using? (saying "analog valves" narrows it down to only a few million options) The range is between 0-6bar. I could give you the exact model if you want.
What is the source pressure? didn't understand you there
What is your setpoint force range? 0-50N
What pressure sensor are you using? 8438-5050 miniature load cell from Buster
What analog modules are you using and what is their resolution and conversion times. Analog Input: siemens 331-7nf10-0ab0 Analog Output: 332-5hf00-0ab0
How long are the lines between the valves and the actuator and what size are they? Around 50cm long. Size you mean diameter? around 5cm
What is the bore and stroke of the actuator? bore is diameter? stroke is?
What is physically pressing at the tip of the actuator? Is it a ball tip? If you are using a cheap actuator with bushings taking the side load as opposed to bearings you can loose a lot of your linear force by translating it to side load on the shaft. Yes it is a ball tip and a cheap one
Is pressure your only feedback? Yes


can do it but I would use one analog valve to control position and force.

I tried controlling the upper valve and keeping the bottom steady in a fixed value. The main problem was that when the sensor value exceeded the set point, the upper valve would decrease pressure but due to friction the actuator would not move up, until it finally gave in and overshooted (pretty much what it explains here at stiction problems http://blog.opticontrols.com/archives/77 ). Obviously this happens a lot when the surface goes "uphil"

So in other words, I need to find a way to control the bottom one as well, because keeping it fixed in one value does not work.


PS: I realise that people here are infinitely more experienced than me and probably used to working under strict parameters. In this project, as long as it tracks the surface with somewhat steady pressure (or at least for the most part) I am good to go. :confused:
 
I realise that people here are infinitely more experienced than me and probably used to working under strict parameters. In this project, as long as it tracks the surface with somewhat steady pressure (or at least for the most part) I am good to go

I don't know how to quantify "somewhat steady pressure". You have to have a target in mind, otherwise how do you know when you are done?

Anyhow, as Nick points out we first have an issue regarding terminology and can say that I was under the same impression that he was. Force and Pressure are two different things. You are trying to control "force" my modulating "pressure". So now it makes more sense that you are using an external PID controller.

You still have not provided the part number of your valves. Please do.


We can probably assume now that they are current or voltage to pressure transducers. So why were we confused before? Because most of these transducers already have a PID loop built into the device itself to regulate pressure. So when you said you were trying to use PID to control pressure we were left wondering why?

Is 0 to 50 N really the full range you want to control in, or is that just the range of your load cell?

Some considerations ........ you will find it very difficult to regulate accurately at the low end. This is because the friction/stiction/deadband/side-load in the system will be a larger percentage of your setpoint down there.

Why do I care what the bore of your actuator is? To see how well matched the size of your actuator is to what you are trying to accomplish. The larger the bore, the more force per unit pressure. Say for example your valve can regulate between 0 to 5 bar. Now lets say that 5 bar correlates to 200N. Well this means that you are capable of 4 times what your load cell is rated for. Therefore, in reality you will be trying to control your system using only the lower 25% of your valve's range. In other words, trying to drive in finishing nails with a mallet. You lose some control resolution.

Do your transducers have a downstream pressure monitor signal to bring back to the PLC?

What CPU are you using?

Your source pressure is what is the compressed air coming out of the wall. Your valves can only regulate to a reduction of your source supply. So if your supply is only 5 bar then that is as high as you are going to get regardless of whether your valves can go up to 6.

Line sizes/lengths/volumes are important. In some ways they act as capacitors, in other ways they act as resistors. If the supply lines are too small then your valves won't be able to react as fast as they need to because it restricts the flow of air. If the lines going to the actuator are too small they will act as a restriction and decrease your response time. If they are too large, they will also increase your response time because it increases the volume of air you need to regulate. You want them just right. If you have a system where you need fast response and can handle quick disturbances you want to minimize line volume. If you care more about steady state accuracy and disturbances are a minimum then long lines can actually be helpful because they act like a resevoir of the correct pressure.

What are you using as a load cell amp?
How is the load cell coupled to the system / where/how is it mounted?


So if I understand correctly, you have one transducer controlling pressure to one side of the piston and another separate valve controlling the pressure on the other side of the piston. Therefore you are pressurizing both sides of the piston at all times. The differential of these two pressures combined with the weight of your tooling is determining your net force. As you point out, leaving one side a static pressure is not a good solution. Your most stable operation will occur by maintaining a constant differential.

I would set it up as so.
In the middle of your range, decide on a minimum "backpressure" you want on the lower side of the cylinder. From a control standpoint the higher you make this the more rigid it will act, but the tradeoff is you will lose high end force because it will act to oppose your downward force. I would not do a second loop for the other side. I would instead set the CV of the lower end of the cylinder to always be what the "open loop" differential should be to achieve the desired force. Therefore you backpressure will be a function of your setpoint.

You will need to know what your pressure/force relationship is for both ends of the cylinder to calculate this. If it is rodless they will be identical. It it is rod style the rod end will be slightly weaker than the piston side.

I would then setup the PID for the upper side of the cylinder to regulate around a narrower band about the open loop value for the higher end of the differential.

As a point of comparison, you should also see what the open loop regulation looks like (wihtout PLC PID). As stated before, your transducers already regulate the pressure and your actuator is going to translate that pressure into force in a linear fashion regardless of where it is along the stroke. So if you are moving the block under it slowly, the tranducer itself will do most of the work. Your loop just needs to make minor corrections to adjust for what your seeing at the load cell.
 
I tried controlling the upper valve and keeping the bottom steady in a fixed value.
What is constant? The pressure or the valve setting?
The force is calculated like this
F=P1*A1-P2*A2
This doesn't take into account the friction which should be low for good control and it isn't in your application.
The trick is to compute the P1 and P2 for any given F. This is not too hard but you will find that there are infinite solutions. The best solution is to keep the pressures in both sides as high as possible at all times. The reason for this is that the bulk modulus of air goes up with pressure so the air seems marginally 'stiffer'. Also, it is usually easier to let air out than to get air into the cylinder.

There is mention of using pressure regulating valves. This is the easy way to do this. Pressure regulating valves are not high performance valves but the would eliminate the need for a PID for each valve.
 
My first recommendation is to work in real units rather than bananas.

Calculate the maximum force available in each direction in Newtons (pressure * area) as Max_Up_Force and Max_Dn_Force.

As Peter mentions, operation at a higher pressure will be more responsive so bias your system at least 50% of the way up your available pressure but leaving enough headroom for setpoint and control. Express this also as a force in Newtons: Bias_Force

The mechanical assembly will have a mass: Gravity acting on this mass must be compensated for as force: Weight_Of_Mechanics(N) = mass(KG)* 9.81

Calculate the required force in each direction:
Up_Force = Weight_of_Mechanics + Bias_Force
Dn_Force = Bias_Force + Setpoint_Force + PID_Correction

The demand for your pressure regualtors then becomes:
UpReg = Up_Force/Max_Up_Force * 100%
DnReg = Dn_Force/max_Dn_Force * 100%

The key part of any control loop is to make the open loop predictions as accurate as posible so that the PID loop has little work to do.

I would initially leave I disabled and see if you can make the system stable with P + D. I would expect then the stiction of the system should be overcome by the D part of your control loop. Use the P part with caution so as not to introduce instability relating to stiction and inertia. With no I component the system should settle with a finite error, enabling the integral would try to correct this and, depending on the stiction levels, is likely to cause an oscillation about the setpoint.

If you can predict velocity and acceleration then you could also factor in friction and inertia to your predicted force calculation.

Good Luck,

Nick
 

Similar Topics

Hi everyone i have a lenze VFD D-31855 it uses a potentiometer to control the speed of the motor 1-is how the potentiometer is connected to...
Replies
4
Views
1,554
Hi How i can program Analog input 4-20mA to control digital output module with setpoints? I need to create control circuit example for heater...
Replies
4
Views
3,209
Hello men Hardware: 1769-L32E (Processor) 1769-IF4XOF2 (Low resolution Analog Input (4 point)/Output (2 point)card) VFD: PowerFlex 40 -...
Replies
14
Views
10,333
Hello I have a -10V to +10 V signal from a device which I would to control a VFD with. The problem is that I need it to work like this. -10V...
Replies
10
Views
5,895
I have to take a slc 5/03 and use an analog out card ....number is 1746-n04v. To speed up or slow down a motor for a scrap belt. I know I can...
Replies
16
Views
6,685
Back
Top Bottom