Sunday, 30 March 2014

control system - Proportional controller



Sirs,


I am not able to understand why Proportional controller introduces offset.Please consider follwing paragraph I found on internet, credit to **



**, regarding offset error of Proportional only controller -


" If the operator should increase the flow out of the tank, the tank level will begin to decrease due to the imbalance between inflow and outflow. While the tank level decreases, the error increases and our proportional controller increases the controller output proportional to this error. Consequently, the valve controlling the flow into the tank opens wider and more water flows into the tank.


As the level continues to decrease, the valve continues to open until it gets to a point where the inflow again matches the outflow. At this point the tank level (and error) will remain constant. Because the error remains constant our P-controller will keep its output constant and the control valve will hold its position. The system now remains at balance, but the tank level remains below its set point. This residual sustained error is called Offset." enter image description here


I believe that measured variable here is level of liquid in the tank and not the outflow. Considering the bold statements in above paragraph, my question is why the valve will open only unitill inflow matches outflow? Shouldn't it open till the level measured equals setpoint? Then why the offset should come into pitcutre?



Answer



This is talking about a simple proportional controller. The control output is merely the system output minus the control input times some constant:


  C = K(I - S)



Where I is the control input to the system, S the actual system response, C the control output that drives the system, and K the proportionality constant.


The tank example above is a little squirrely. Let's consider speed control of a car as a example. In that case, I is the speed you want to go, S is the speed you are actually going, and C is how hard you step on the gas. Let's say you want to go 50 MPH but the car starts at stop, which mean S is 0. Let's say K is 2, and the resulting C is then in percent of full throttle. Initially K(I - S) is 100, so you step on the gas all the way (100%). As the car speeds up, I-S gets lower, so you let up on the gas. That makes sense because you know intuitively you don't need to floor it to maintain 50 MPH on level ground with no wind.


However, the problem now is that you won't ever get to your desired speed. If you were at 50 MPH, then I-S would be 0, and you'd let off the gas completely, which clearly won't maintain 50 MPH. This simple proportional-only controller always requires some error to maintain a non-zero output. For example, let's say to maintain 50 MPH would require a 25% control output (step on the gas 1/4 of the way), and that steady state speed is linear with throttle setting. In that case, the system would assymptotically approach 40 MPH and stay there. K(I - S) is 20, which is the control output required to maintain 40 MPH.


One way to address this problem is to make K larger. However, that will make things unstable or jerky. Suppose you take this to the extreme and make K infinite. That means you either fully floor it or fully let up on the gas, depending on whether you are below or above 50 MPH. You can probably see intuitively that it would be a very jerky ride. While your speed would probably average reasonably close to 50 MPH, the car would constantly go a little slower, which would floor the gas, which would make it go faster after a little while, which would let off the gas, which would make it slower after a little while, etc.


Obviously this is bad for the car, uncomfortable for the passengers, and a inefficient way to run a gasoline engine. However, some control systems work quite nicely like this, especially when the system can only be on or off in the first place. The heating system in your house works like this, for example. The thermostat turns the furnace either fully on or fully off. The temperature does oscillate a little, but not enough for you to care. In this case, the heater only works full on or full off, so this is the efficient way to run it. To keep from turning the heater on and off too often, the thermostat has a little hysteresis. It might, for example, turn on the heater when the temperature gets down to 69.5° and off when it gets up to 70.5°. This keeps the heater on and off for long enough at a time to not stress it too much and for it to stay efficient.


In other control systems, this offset is dealt with by adding other terms to the equation above than just one that is proportional to the offset. In a PID (Proportional, Integral, Derivative) system, there are additional terms proportional to the time integral of the offset and the time derivative of the offset. Each of these terms has its own gain factor (K value in the equation above). It is the I term that nulls out any long term offset.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...