Вы находитесь на странице: 1из 17

Proportional Integral Derivative PID Controllers Terminology & Technicalities

Tutorials about PID are often very technical with a lot of mathematics that leave many people unable to comprehend. Our goal is try to explain PID controllers so that people can easily understand the theory behind them. On this first page we have to start out with terminology and some technical information so that you understand the basics of PID control. On the next page we will discuss PID in a more practical manner. PID controllers are process controllers with the following characteristics: Continuous process control Analog input (also known as "measurement" or "Process Variable" or "PV") Analog output (referred to simply as "output") Setpoint (SP) Proportional (P), Integral (I), and / or Derivative (D) constants Examples of "continuous process control" are temperature, pressure, flow, and level control. For example, controlling the heating of a tank. For simple control, you have two temperature limit sensors (one low and one high) and then switch the heater on when the low temperature limit sensor turns on and then turn the heater off when the temperature rises to the high temperature limit sensor. This is similar to most home air conditioning & heating thermostats. In contrast, the PID controller would receive as input the actual temperature and control a valve that regulates the flow of gas to the heater. The PID controller automatically finds the correct (constant) flow of gas to the heater that keeps the temperature steady at the setpoint. Instead of the temperature bouncing back and forth between two points, the temperature is held steady. If the setpoint is lowered, then the PID controller automatically reduces the amount of gas flowing to the heater. If the setpoint is raised, then the PID controller automatically increases the amount of gas flowing to the heater. Likewise the PID controller would automatically compensate for hot, sunny days (when it is hotter outside the heater) and for cold, cloudy days. The analog input (measurement) is called the "process variable" or "PV". You want the PV to be a highly accurate indication of the process parameter you are trying to control. For example, if you want to maintain a temperature of + or - one degree then we typically strive for at least ten times that or one-tenth of a degree. If the analog input is a 12 bit analog input and the temperature range for

the sensor is 0 to 400 degrees then our "theoretical" accuracy is calculated to be 400 degrees divided by 4,096 (12 bits) = 0.09765625 degrees. We say "theoretical" because it would assume there was no noise and error in our temperature sensor, wiring, and analog converter. There are other assumptions such as linearity, etc.. The point being -- with 1/10 of a degree "theoretical" accuracy -- even with the usual amount of noise and other problems -- one degree of accuracy should easily be attainable. The analog output is often simply referred to as "output". Often this is given as 0 to 100 percent. In this heating example, it would mean is the valve totally closed (0 %) or totally open (100 %). The setpoint (SP) is simply -- what process value do you want. In this example -what temperature do you want the process at?

How a PID Controller Works


The PID controllers job is to maintain the output at a level so that there is no difference (error) between the process variable (PV) and the setpoint (SP).

In this diagram the valve could be controlling the gas going to a heater, the chilling of a cooler, the pressure in a pipe, the flow through a pipe, the level in a tank, or any other process control system.

What the PID controller is looking at is the difference (or "error") between the PV and the SP. It looks at the absolute error and the rate of change of error. Absolute error means -- is there a big difference in the PV and SP or a little difference? Rate of change of error means -- is the difference between the PV or SP getting smaller or larger as time goes on. When there is a "process upset", meaning, when the process variable OR the setpoint quickly changes -- the PID controller has to quickly change the output to get the process variable back equal to the setpoint. If you have a walk-in cooler with a PID controller and someone opens the door and walks in, the temperature (process variable) could rise very quickly. Therefore the PID controller has to increase the cooling (output) to compensate for this rise in temperature. Once the PID controller has the process variable equal to the setpoint, a good PID controller will not vary the output. You want the output to be very steady (not changing). If the valve (motor, or other control element) are constantly changing, instead of maintaining a constant value, this could case more wear on the control element. So there are these two contradictory goals. Fast response (fast change in output) when there is a "process upset", but slow response (steady output) when the PV is close to the setpoint. Note that the output often goes past (over shoots) the steady-state output to get the process back to the setpoint. For example, a cooler may normally have it's cooling valve open 34% to maintain zero degrees (after the cooler has been closed up and the temperature settled down). If someone opens the cooler, walks in, walks around to find something, then walks back out, and then closes the cooler door -- the PID controller is freaking out because the temperature may have raised 20 degrees! So it may crank the cooling valve open to 50, 75, or even 100 percent -- to hurry up and cool the cooler back down -- before slowly closing the cooling valve back down to 34 percent.

How do PID Controllers Work Common Sense / Practical Approach


Enough of the technical stuff -- let's look at PID control from a common sense / practical approach. On this page we will build a PID controller using Microsoft Excel so that you can see, and experiment with, the results that we are talking about.

Let's think about how we would design a PID controller

We focus on the difference (error) between the process variable (PV) and the setpoint (SP). There are three ways we can view the error. 1. The absolute error. This means how big is the difference between the PV and SP. If there is a small difference between the PV and the SP -- then let's make a small change in the output. If there is a large difference in the PV and SP -- then let's make a large change in the output. Absolute error is the "proportional" (P) component of the PID controller.

2. The sum of errors over time. Give us a minute and we will show why simply looking at the absolute error (proportional) only is a problem. The sum of errors over time is important and is called the "integral" (I) component of the PID controller. Every time we run the PID algorithm we add the latest error to the sum of errors. In other words Sum of Errors = Error1 + Error2 + Error3 + Error4 + ...

3. The dead time. Dead Time refers to the delay between making a change in the output and seeing the change reflected in the PV. The classical example is getting your oven at the right temperature. When you first turn on the heat, it takes a while for the oven to "heat up". This is the dead time. If you set an initial temperature, wait for the oven to reach the initial temperature, and then you determine that you set the wrong temperature - then it will take a while for the oven to reach the new temperature setpoint. This is also referred to as the "derivative" (D) component of the PID controller. This holds some future changes back because the changes in the output have been made but are not reflected in the process variable yet.

Absolute Error / Proportional


One of the first ideas people usually have about designing an automatic process controller is what we call "proportional". Meaning, if the difference between the PV and SP is small -- then let's make a small correction to the output. If the difference between the PV and SP is large -- then let's make a larger correction to the output. This idea certainly makes sense. We simulated a proportional only controller in Microsoft Excel (if you click on this link then you will download the Excel spreadsheet). Here is the chart showing the results of the first

simulation:

In this first example, we assumed that there was no dead time, meaning, that if we made a change in the output of the controller, the input immediately changed. For example, zero dead time on our oven means that if we changed the temperature setpoint on the oven, then the temperature inside the oven instantly changed to the new setpoint (the oven did not require time to heat up or cool down). The blue line represents a proportional constant of .1, the magenta lines represents a proportional constant of .2, the yellow line represents a proportional constant of .4, and the white line represents the setpoint (SP). From this graph, hopefully two things jump out at you. First, once the output settles out, the output (blue, magenta, and yellow lines) are no where near the setpoint (SP) (the white line). Therefore, some offset has to be added to the output to make the PV reach

the SP. Second, the greater the proportional constant, the less the offset needs to be. For example the yellow line, with a proportional constant = .4 is closer to the white line than the blue line with a proportional constant of .1. If you download the Excel spreadsheet of the PID controller simulator and look at the effects of increasing dead time you will notice that the outputs settle at the same output level -- it simply takes longer for the output to reach its final level. In summary, automatic proportional (only) controllers are not very good because there is an offset that has to be continually adjusted.

Proportional and Integral Controllers


The integral portion of the PID controller accounts for the offset problem in a proportional only controller. We have another Excel spreadsheet that simulates a PID controller with proportional and integral control. Here is a chart of the first simulation with proportional and integral:

As you can tell, the PI controller is much better than just the P controller. However, dead time of zero (as shown in the above graph) is not common. So let's take a look when the dead time equals two.

Now this graph is starting to look more typical of a PID controller. Notice how the dark blue line quickly goes up to the SP (50) and cycles around 50 a little but quickly settles down. In contrast, the dark purple line way overshoots the SP of 50, going above 80, back down to 30, then over 50, and back and forth until it eventually settles down. If you download the Excel spreadsheet and look through the different scenarios you will notice that the P & I parameters that look good for one dead time do not look optimal for another dead time. In other words, for each process element (valve, motor, pump, heater, chiller, etc) you are trying to control -- you will have different process characteristics and will have to determine the optimal P, I, and possibly D constants. Determining what these constants should be is called "tuning". Theoretically, you want to minimize the sum of absolute errors, as given in the spreadsheets.

Let's show one other graph to warn you about a very dangerous condition:

We wanted to show this graph to illustrate what can happen if you choose the wrong parameters. The green line illustrates an unstable or "out-of-control" controller. Notice how it continues to get worse and worse. This is not good. This is why you want to start with very small P, I, and D constants and increase them to improve performance. If you start with large constants, bad things can happen.

Derivative Control
Derivative control takes into consideration that if you change the output, then it takes time for that change to be reflected in the input (PV). For example, let's take heating of the oven. If we start turning up the gas flow, it will take time for the heat to be produced, the heat to flow around the oven, and for the temperature sensor to detect the increased heat. Derivative control sort of "holds back" the PID controller because some increase in temperature will occur without needing to increase the output further. Setting the derivative constant correctly, allows you to become more aggressive with the P & I constants.

Data Acquisition, I/O & Signal Conditioning


There are many different signals in use today. The good news is that there are fewer "standards" today then there were ten years ago. The most important advice we can give you is -- make sure that your I/O module matches the actual signal / device that you are connecting to.

Classes of I/O
Typically there are three classes (types) of I/O: 1. Discrete I/O 2. Analog I/O 3. Specialty I/O Discrete I/O is simply On / OFF, True / False or some other binary designation of two states. Analog I/O are varying levels such as temperatures, pressures, levels. Specialty I/O is everything else -- high speed motion control, high speed counters, high speed interfaces to encoders, etc. Note the word "high speed" in connection with specialty I/O. Typically a specialty I/O module is a module with its own processor that allows the module to operate faster than the PLC and regular I/O. More information is provided in our PLC tutorial.

Signal Characteristics
There are several factors that have to be considered for every input and output: 1. Voltage level 2. Current level 3. Noise Examples of things not to do are: do not connect a 24VDC I/O module to a 120 VAC device do not connect an output that sources 1/4 amp to a device that draws 1/2 amp do not expect high accurate analog signals without having lots of isolation and other noise reducing measures

Voltage
We categorize three main voltage groups: 1. Low voltage (typically 5 volts or less) such as TTL, thermocouples, strain gauges, etc. 2. Medium DC voltage: 12 VDC, 24 VDC, 48 VDC 3. High voltage: 120 VAC or higher, most AC voltages Low voltages are very susceptible to receiving interference where high voltages are prone to causing interference. Medium DC voltage (namely 24 VDC) tends to be in the middle of the two extremes. That (plus a few other reasons like current draw) is why everyone has been "standardizing" on 24 VDC for industrial applications. You can not do without the low voltage devices. However, you can try to contain them in a shielded box (shell) and convert that low voltage signal to a 4 to 20 ma (current) signal as soon as possible. For example, if you have a thermocouple in an oven it is probably generating a signal in the millivolts range (hundredths of a volt). If your controller is a hundred feet away then you can buy a hundred feet of special thermocouple wire and try to eliminate noise throughout the hundred foot run back to the controller. Or you could mount a thermocouple to milliamp (ma) current loop transmitter on the outside of (or close to) the oven and then the ma current runs back to the controller and is less susceptible to noise. You still want to use a high quality, twisted pair, shielded cable on a 4 to 20 ma analog differential input for lowest noise. My point being -- there is less noise in transmitting a 4 to 20 ma current over distances then transmitting a thermocouple

(millivolt) signal over the same distances. So convert analog signals, at their source (as soon as possible) to 4 to 20 ma current analog signals. 5 volts (TTL) does not really belong in the low voltage group but TTL is such low current it does require the same precautions as these other signals. You can not do without high voltage devices either. The best you can do is keep the AC voltage cabling and devices separated and isolated from the rest of the system.

Current
The most commonly used analog signal in automation today is 4 to 20 milliamps. You will see analog I/O modules and converters for all kinds of other voltages and currents but 4 to 20 ma is now "the standard" since it is the least susceptible to noise. Some analog converters may have other current ranges, such as 0 to 20 ma, but most devices today use 4 to 20 ma. For measuring high currents, such as reading current draw on a large motor, there are current transformers that convert 0 to 200 amps at 480 volts AC to 4 to 20 ma at 24 VDC. There are also voltage to current converters. For example you can buy transformers that convert 0 to 480 volts AC to 4 to 20 ma current.

Noise
Noise is everywhere. The lower your voltage and current the more susceptible to noise you are. There are many things you can do to cut down on noise: 1. 2. 3. 4. 5. 6. Shield cables, enclosures, conduit Proper grounding Use isolation on power and signals Use different methods to filter signals Use twisted pair, shielded cables Use differential inputs instead of single ended inputs

The best way to "see" noise is to get an oscilloscope and a good isolation transformer. Look (on the oscilloscope) at the voltage going into the isolation transformer versus the voltage coming out of the transformer. You can make similar tests using other signals and filters. One important concept is signal to noise ratio. The higher the signal power and the lower the noise -- the better your signal to noise ratio and the more accurate results you will receive. One important question is -- how much noise is bad? It depends on your system and what you need to achieve. For example, if you have all AC powered discrete

I/O and no analog data then there should be little problem with noise. You still need protection such as fuses and surge protectors. But we would not recommend an expensive isolation transformer -- we would probably just use something like a Corcom AC filter. However, If you need to accurately measure analog signals in a system with variable speed drives then you need to take a lot of extra effort to isolate and eliminate noise. This means starting with isolating the power going to your control system and using isolation on the power going to the variable speed drives. One of the worst sources of noise are motors and variable frequency drives. For sensitive applications (i.e. those using analog I/O) it is important to keep the power and signals isolated between your controller and drives. To reduce noise on the power line from drives you can use isolation transformers, reactors, and filters. Note that isolation and filters blocks most of the noise both ways -- it eliminates much of the noise from getting into your system -- and in the case of drives -- it prevents the noise from the drives from getting back out onto the main power lines and then getting into other equipment. Ferrite coils are often used to cut down on noise, although we will have to find a few websites that explain how and when to use them.

Filtering
Filtering a signal cuts down on the noise but reduces the response time. For example, an encoder must have little filtering so that it can produce pulses at a fast speed. Whereas most proximity switch applications can have heavy filtering and are less prone to false signals due to noise. There are several ways to achieve filtering. Most input modules have a resistor and capacitor that filter the incoming signal. If you check the specifications of most discrete input modules they will tell you that the input module has a delay or response time of typically 10 milliseconds (ms). Therefore you can not measure signals with response times faster than the specified response time. Note that there are high speed input modules but they have less filtering and are more susceptible to noise. Really good input modules will allow you to set the input filtering time. For example, if you are trying to measure the force to press a switch this is high accuracy and fast sampling. So you would use less filtering (higher response time) and noise is more of a concern. Whereas if you were measuring the outside temperature then you could dampen the signal a lot (because outside temperature changes very slowly) and noise would not be much of a concern.

Another way to filter signals in code is to use a moving average. If you average results you reduce the peaks and valleys (fluctuations) of the signal. We would recommend that you first try to use electronics filtering and use moving averages only as a last resort. It is important to understand how much noise will effect your system and to take effective measures to reducing noise.

Every Input & Output


Signal conditioning and protection is something that has to be considered for every input and output. For example you can not connect an encoder that produces a 5 VDC TTL level signal to a high speed counter designed for 24 VDC. Like wise you can not connect an output that sources 1/4 amp to a coil that draws 1/2 amp. Any conversion of signals is a pain but luckily many manufacturer's make signal conditioning modules. These modules typically are DIN rail mounted. For discrete inputs and outputs we always try to use 24 VDC. If we have signals that are something other than 24 VDC we try to convert them, at their source, to 24 VDC and then run the wires back to our controller. If there are only a few signals to convert then you can get DIN rail mounted converters. If you have more than 6 or 8 signals to convert then you may want to use a rack mount or board mounted converters to achieve higher densities and lower total cost. The great thing about signal conditioning is that there are so many options. Since many I/O modules are designed for different signals, remote I/O can be used. For example, we love 24 VDC but suppose we have to interface to another machine whose inputs and outputs are all 120 VAC. Our options would be: 1. We can buy 120 VAC input and output modules for our controller and pull the 120 VAC back into our controller and let the AC wiring generate a lot of noise. 2. We can buy a bunch of 120 VAC to 24 VDC converters (solid state relays or similar), and mount them on the other machine and run only 24 VDC in and out of our controller. 3. We can take a small rack of 120 VAC remote I/O, stick it on their machine, and only the communications is brought back to our controller. Note that the communications is usually isolated. For discrete outputs you typically add a mechanical or solid state relay for isolation and to boost the switching current of the output. Since the circuit on each side of the relay is supplying its own voltage and current, relays allow you to change current and voltage for incompatible circuits.

Types of I/O
The main types of I/O are: 1. 2. 3. 4. PLC I/O Embedded controller I/O Computer I/O on ISA, PCI, VME bus Remote I/O

When you buy a PLC you can of course buy I/O that works with the PLC. You can also buy PLC I/O with or without a CPU and just use the I/O. PLC I/O is designed so well that if you have a computer controller and you like a certain PLC manufacturer's I/O (or perhaps it is already in use at the customer site) that you simply have a communications link between the computer and the PLC I/O. Embedded controllers (computers) will have their own I/O as well. Computer I/O can be extremely fast. These boards plug into a PCI computer slot and a program can quickly read the I/O and write the data to disk. Thousands of samples per second is easy to accomplish. Companies such as National Instruments offer sampling rates as fast as millions of samples per second. At this rate, they can't write the values to disk in real-time but memory is so cheap that they can write thousands of measurements to memory and then write these values to disk once the reading phase is completed. Remote I/O or distributed I/O is much like PLC I/O without the CPU. It is industrial quality I/O with a communications link that allows a controller to read and write I/O that are mounted away from the controller. For example, if you are controlling equipment that is physically located over a 50 by 50 foot area you could pull all the wires for every discrete and analog signal back to one cabinet or you could use remote (distributed) I/O and place the I/O in several different points around the area. This reduces how far the wires are pulled and having to bring thousands of wires into one cabinet. Each remote I/O "drop" is connected to the others and the main controller using a single communications cable.

Links
Many of these manufacturer's have products and tutorials. Access I/O Products -- digital and analog I/O PCI cards, remote I/O, bus expansion cards, watchdog timers Acromag -- isolators, transmitters, alarm relays, math & computation, I/O, surge suppressors Action Instruments -- wide range of signal conditioning products Analog Devices -- I/O modules and backplanes Beckhoff -- see Fieldbus components then bus terminals

Dataforth -- hundreds of different industrial signal conditioning products Dataq -- 5B series industrial amplifiers Dewetron -- rack mount signal conditioners Gespac -- 3U CompactPCI Industrial I/O and Signal Conditioners Grayhill -- I/O modules can be used for isolation and signal conditioning Moore Industries -- signal transmitters, isolators, converters; temperature interfaces; limit alarms; process controllers & displays M-System -- 4 wire signal conditioners, limit alarms, rack mount signal conditioners, power transducers, gateways, remote I/O, multiplexers, PC recorders, lightning arrestors, panel meters National Instruments -- wide range of signal conditioning products and data acquisition Ohio Semitronics -- din - rail electrical transducers Opto22 -- I/O modules used for signal conditioning, solid state relays Phoenix Contact -- Trabtech surge suppression Phoenix Contact -- analog and digital interface products Protech -- surge suppressor Red Lion Controls -- isolation, analog to Modbus, frequency to analog, speed switch, setpoint alarms Scan-Data -- I/O, telemetry, RTUs Sixnet -- modular I/O Wilkerson Instrument -- signal conditioners, controllers, indicators, transmitters, timers, counters

Tips & Ticks


1. Each system is different in regards to noise problems and what you need to do. You do not have to do much for systems with only discrete I/O as you do with systems that contain high accuracy analog signals and variable frequency drives. 2. Follow good power & grounding guidelines. 3. Use 24 VDC where possible 4. Use isolation where possible: on power and on the signals going between systems 5. Use networks to read and write analog values instead of using analog inputs and outputs for two reasons: a. Devices handling analog values are typically limited to just one or two analog I/O. With networks you can typically read and write a lot more values.

b. Errors in an analog signal are created by converting a number into an analog signal (D to A conversion), during the propagation of the analog signal (i.e. the wiring), and then when the analog signal is converted back to some value (A to D conversion). All of these errors are eliminated with networking. 6. Use circuit breakers or fuses liberally to protect the users, the equipment, and to facilitate troubleshooting. This includes (but not limited to) a fuse on every output and a fuse on every power input. 7. Convert low voltages and currents to higher voltage / current 8. For analog I/O, use differential signals instead of single ended for higher accuracy. 9. For communications, use twisted pair shielded cable. 10. If there are multiple outputs on one module, there are typically two ratings -- one for each output and another rating for all outputs combined. For example, suppose you have a 16 point discrete output module. It may specify that each output can source 1/4 amp of power but the module (all outputs combined) can only source a total of 2 amps. So if all 16 outputs were on at the same time, and all were trying to source 1/4 amp that would be 4 amps total and would exceed the 2 amp maximum limit. 11. Put a diode across the coils of all DC relays and inductors to reduce surges. 12. Put a metal oxide varistor (MOV) across the coils of all AC relays and inductors to reduce surges. 13. Carefully read and follow the manufacturer's manual in detail. Most manufacturers include "best practices" on how to install their systems but most users want to "cut corners" and ignore this advice. People that "cut corners" get a lot more support calls over the years.

Вам также может понравиться