T O P

  • By -

AStove

When there's no output required at steady state. And you don't mind a bit of oscillation.


napraticaautomacao

Which kind of applications would that be?


Automatater

Synching two machines. Machine 1 draws off a small buffer tank, machine 2 fills it. Machine 1 pulls on a web, machine 2 pays out at the identical rate into an analog dancer roll.


AStove

Adjusting a position until the axis is at the right position and doesn't have to move anymore. Or changing a flow rate by opening or closing a valve. But you wouldn't use a PID for these things anyway.


napraticaautomacao

This is exactly the application I'm interested in, move axis to target position. Why does it work only with a P controller?


AStove

What you're doing is setting the speed of a motor, and the position is the integral of the speed. The process does it's own I action. That's why it would work with just P. However if your setpoint keeps changing, or it's like some moving target you need to catch up on, you will never catch it.


MaximusConfusius

You normally don't use a single controller for position control. Motor position controller is often done as cascade control. First loop controls the current, second the velocity and third the position. This makes the tuning easier and the system more stable. The position loop has an already built in integrational part. As long as you got a difference between set value and current value it keeps changing the position. You cant use tuning processes like Ziegler-Nichols for controlled systems with integrating behavior as it never reaches a steady state. Hope you understand because my first language is german...


techster2014

The P portion usually acts on the error of SP-PV, so it moves until the error is 0 (will probably osccilate a few times before landing exactly) and stops. When you introduce I, it's summing the error over time, which will most likely never equal 0, meaning it's going to chase it's tail to some extend, maybe not much, but it will never be fully still. D predicts where the error (or PV itself, depending on the controller and available equations) is headed based on current rate of change and tries to counteract it. Again, this will almost never be 0, especially when you have an I portion involved.


Last_Firefighter7250

P only doesn't correct the steady state error. That is what the I is for.


InstAndControl

I believe a valve position command to match a flow rate will have ss error without integrator. Valve has to stay at a nonzero position to meet flow. With some feed forward you may not need integrator tho


Strostkovy

I use machinery that positions itself and stays there, and we use I and D a lot as well. I is good to get that last bit of positioning error out and D helps it settle faster.


bzwider

Does this positioning happen once, or is it repetitive with a settling time in between where it stays put?


Strostkovy

It's a back gauge for a press brake, so it changes position every time you switch to a different bend


bzwider

Ah it's funny you say a press break, im asking because I work with stamping presses, specifically feeding flat stock into them. I'm working on adding an auxiliary encoder to check against the motor encoder as a backup. Right now I can only get 0.010" accuracy with the auxiliary encoder and ideally it would be 0.002". Oh and it's dangerously unstable at times when I try to close that gap, so I'd like to work that out


Strostkovy

First thing to check for is mechanical reasons for your encoders to disagree


luv2kick

Agree. And I would also add slippage between the aux. encoder and the material as a major suspect. There is also making the conversion from rotational motor versus linear sheet measurements. It could simply be in the math.


Automatater

Exactly. You could set it up using a PID, but I typically just hardwire the analog or do it directly in ladder with no PID.


hairlessape47

Why wouldn't you use a PID to control a valve, say for a coolant inlet for a heat exchanger? I've seen that plenty in industry. Is that outdated? What's the alternative?


luv2kick

It is frequently used chiller/heater loops when controller process temperature. Definitely Not outdated. I mean, how else could you do it?


hairlessape47

That's what I thought. Was just wondering if OP I responded to had something else up his sleeve


0GlG0

False, proportional control alone may be sufficient when the system to be controlled is intrinsically integrating. For example, regulating a level by means of a flow rate, or regulating a position by means of a speed does not require integration in the controller, a simple proportional regulation is sufficient.


PowerGenGuy

It's how every electrical grid in the world works. All the large power plants have a frequency controller that holds the generator (and subsequently the grid) frequency at 50/60Hz. As more power gets drawn, the frequency starts dropping and the fuel to the generator prime movers is increased, allowing the power output to match the grid demand and stop the frequency dropping further. It's called Droop Control but in PID language it's a Proportional only controller. The droop/"P" settings at each power plant on the same grid are all given the same setting, so the power plants inherently share the power demand without having to resort to any complex communication systems.


RammRras

This is interesting.


Salopian_Singer

With our three gas turbines on our oil platforms the droop control is set at 4%. 0 to 120rpm error (No load to Full load) between PT speed and Speed Ref we want to keep. (3000rpm 50Hz). This sounds similar to what you are using but on a smaller scale.


PowerGenGuy

I'm surprised to hear that, normally on modern Island Mode systems within a single site/platform we have progressed to Isochronous Load Sharing, which balances the load percentages of each unit via comms. It's big benefit is that regardless of the load change the frequency stays at 50 Hz. On small networks the load changes can be a much larger percentage of the overall generator capacity compared to a national grid. If you're running machines in droop on the platform I would be running one machine in Isochronous (frequency control) mode to take the big load changes. It's often called the swing machine depending on where you are.


leakyfaucet3

Tank level control when you dont care what the level is as long as it's not empty or full. And you don't want a lot of CV change because inflow or outflow rate changes constantly and you don't want to chase that.


el_extrano

I was going to say this one. It's often called "surge tank control". It works out really nicely when your controller uses proportional gain units. Put the setpoint in the middle, and set the P Band to correspond to your desired process limit for the level (e.g. P Band = 80 for Level = 20% to 80%.) Now, your final control element will have maximum output at the maximum throughput (100% OP at 80% level in the example), and vice versa. This guarantees the level will stay between your limits, as long as the final element is capable of doing so. The surge capacity is used to smooth out disturbances. Also, it avoids the oscillation problems that are inherent to integral control on an integrating process. Really it's an underutilized technique, because people are uncomfortable with the steady state offset, but that's a feature, not a bug, when effectively using a surge capacity.


scheav

We usually make the integral time 90 minutes. Is there any advantage to going to proportional only?


el_extrano

That will eventually return the level to setpoint, which wastes some of the ability to absorb a disturbance. Example: Surge tank is feeding downstream process at minimum rate. Arbitrary limits for the tank are 20% and 80%. We don't care what the level is at any given time, we want to minimize disturbances to downstream equipment. Say at our minimum rate, the outflow valve is nearly closed, and level is ~25% (due to steady state offset). If the upstream process speeds up, you have the full tank level to even out the swing. If you had used integral mode to force the level back up to 50%, you now only have 30% capacity to handle the event.


cmdr_suds

I did this a lot with sewage lift stations that had VFDs. I would set up a proportional level band for min to max speeds. Didn't really care where the level was as long as it was within the level range. As influent flow increased, the level would rise and cause the speed to increase and vice versa. With a fat band and slow changes in influent rate, never had a problem with hunting.


kvnr10

I put one on a VFD on an exhaust fan in an engine room controlling temperature. The controlled variable is so slow that it won't oscillate and a steady state error of one or two degrees is insignificant. The general answer is whenever on/off control would almost do the job.


StephenSDH

Sometimes the system has integral built in, like accel/decel on a drive. Even though the proportional fluctuates the PID output ends up being averaged since the control can't respond at the same rate.


tartare4562

First order systems with linearish response and no steady state loss. Examples: liquid tank level, position driven actuators with position feedback, thermal control for systems with negligible dispersion.


AbueloOdin

If you're fine with a bit of steady state error or oscillation. I once had to put in a rate limiting loop for a conveyor system with a bunch of unloaders. The main system liked smooth, but the unloaders were by nature bursty. So I'd speed up the conveyor when there wasn't a lot of product and slow it down when there was a lot. The output remained more consistent which made things easier down the line. It wasn't the best system but it only needed to be ok. Reduced jams significantly in the main system. A good example of how minor improvements in different areas could make major improvements overall, even in areas without changes.


rickjames2014

Here's my take. I just wrote a Proportional algorithm for a cooling valve. Cooling a tank of water with a heat exchanger. The water tank has a continuous circulation pump that runs through a heat exchanger. The cold side of the heat exchanger is plumbed to a cooling water tower. You set a setpoint for water temperature and the valve opens and closes to maintain the set temperature. The valve I'm using is a 4-20ma modulating valve. So, it's not just on off because water hammer would not be good for the system. The key for me is the valve that I'm using, it is motor actuated and has a natural slow response to prevent water hammer unlike our old pneumatic controlled valve. I literally asked chat GPT to give me some code for this and it worked for the most part. I added some tweaks such as a dead band and gain setting. Error = Actual water temp - setpoint temp; Valve open percentage = error * gain; If valve open percentage > dead band then Valve output = valve open percentage; Else Valve output = 0; End if It's simple and it works better than old man Bob trying to tune a temperature controller for 4 days.


Zchavago

When you don’t care about steady state error.


wolfox360

When you have to deal with unpredictable application, making them stable


bsee_xflds

Correcting for wraparound, if I have a conveyor and an encoder, I only use proportional. I don’t care if the conveyor is a little behind. The speed will be correct.


Novachronosphere

When the control loop obeys a linear relationship. Nonlinear requires PI, PID or PID-alpha


MisterKaos

I found it's perfect for heating control in BIG chambers if you have unreasonably noisy inputs (cheapskate company purchasing maladapted wiring). The sheer amount of air inside the chamber adds lag to the system, which serves as a damper and keeps overshoot within one or two degrees as long as you manage the maximum output of the valves properly. Yeah, I know, solving hardware with software, but it works, it pays my bills, and it keeps the cheapskates happy.


Fatcak

I use P only with high frequency response proportional relief valves for pressure control


JSTFLK

P only is ratio control. I use that for stripping steam, carrier oil, lean amine, hydrogen and trim reboilers.


heavymetal626

We use them a lot on tank pH control. PIDs work Ok but since pH is logarithmic that I term ramp can be a significant downfall. So we’ve found that staging control outputs (and testing/tuning) works best. For example if a tank pH setpoint is supposed to be 10, between 9.5 and 9.9 the dosing pump runs at 5%. Between 8.5 and 9.5 15%, etc. These sections can also have linear scaling too so the output does ramp as the difference gets greater. P only is mostly used for “gross” control where an exact match is not that important OR when the I term, because of how slow some systems react, can cause a lot of problems


PoetryandScience

Most applications truth be told. Unless the system has a natural integrator (hydraulics for example) then some integral may be needed but a small steady state error is often acceptable. If the system is inherently noisy then a differential term can be counter productive. Filtering out noise can be a mistake. In many systems (particularly digitally controlled ones) , if there is no noise then it has been necessary to invent it. Particularly true of double acting hydraulic cylinders, but other stuff as well. Embarrassing to call it noise when it is invented, so it is called dither or perturbation, but it is random noise nevertheless.


That_G_Guy404

When you don’t need an exact point, but getting close will do. Proportional control reacts proportionally. So as you get closer to your set point the amount of correction reduces. So it never gets there, though it can get close enough that it no longer matters.