Interested in linking to "It's the Resolution, Stupid! Part 2"?
You may use the Headline, Deck, Byline and URL of this article on your Web site. To link to this article, select and copy the HTML code below and paste it on your own Web site.
Suppose this weight is provided via a 4-20 mA signal to an input module with a resolution of 1 part in 4000. A change of 1 "count" in the raw value would result in a change in the indicated weight by 6000.0 kg / 4000 = 1.5 kg. The weight indicated by the digital system would not generally agree with the weight indicated at the load cell.
In order that the weight indicated by the digital system agree exactly with the weight indicated at the load cell, approaches such as the following have to be used in lieu of current loop inputs:
In PLC installations, a common approach is to represent the output as an integer value to either 1% or 0.1%. An output value of 0% is represented as 0; an output value of 100% would be represented as either 100 (to 1%) or 1000 (to 0.1%). One advantage of this approach is that the output value can be represented on a graphical display with little or no need for conversion calculations within the graphical display (it only needs to know where to put the decimal point).
If the output value is represented to 1% (output range is 0 to 100), the resolution is 1% or 1 part in 100. Certainly there are valves that cannot be positioned to within 1%, but most can. Any variable speed drive can certainly respond to smaller changes than 1%.
If the output value is represented to 0.1% (output range is 0 to 1000), the resolution is 0.1% or 1 part in 1000. This is beyond the capability of valves installed in industrial facilities. Variable speed drives can probably do better, but 0.1% would be adequate for most applications.
In some PLC applications, a similar approach is used for the set point for the inner loop of a cascade. The output of the controller is expressed in the engineering units of the measured variable for the inner loop. For example, if the inner loop is a flow controller with a range of 0 to 20.0 kg/min, the output would be converted to kg/min and stored as an integer value to 0.1 kg/min. That is, 0 is 0 kg/min and 200 is 20.0 kg/min. The resolution is 1 part in 200.
A similar approach is used for the measured input for the inner loop. Even if the source of the input is a current loop, the raw value from the input module is converted to engineering units in kg/min and represented to 0.1 kg/min. This permits the value for the measured variable to be readily presented on a graphical display. However, flow measurement devices such as Coriolis meters, magnetic flow meters, vortex shedding meters, etc., are capable of far better resolutions.
This approach can be used for the measured variable for any loop, not just the inner loops of cascades. But whenever this is done, the choice for the resolution can potentially have an impact on the performance of the PID controller.
In PLC installations, "registers" traditionally stored 16-bit integer values (or sometimes 4-digit BCD values). In older models, no options were offered. Current models usually provide the option of 32-bit registers for either integer representations or floating-point representations. However, product features often reflect past practices and are slow to change.
In one product (that will not be named), a 16-bit integer register is used to store the reset gain, which is the product of the controller gain (in %/%) and the reset time (in repeats/minute). The reset gain is represented as an integer value expressed to 0.1 (%/%)/minute. A value of zero for the reset gain disables the integral or reset mode. Otherwise, the smallest value for the reset gain is an integer value of 1, which is a reset gain of 0.1 (%/%)/minute. If the controller gain is 1.0%/% (certainly a reasonable value for some loops), the minimum reset rate is 0.1 repeats/min. This translates to a reset time of 10 minutes. An integer value of 2 (the next increment) is a reset gain of 0.2 (%/%)/minute. This translates to a reset time of 5 minutes. If the controller gain is set to 1.0%/%, it is not possible to set the reset time to 7.5 minutes. This may be acceptable for automotive applications, but not in chemical plants.
In another product (which will also not be named), the input processing software provides an option for square root extraction on the input value (to support inputs from head-type flow meters such as orifice meters). The range of the input is 0 to 4096, which is 1 part in 4096 (a reasonable resolution). However, the product simply takes the square root of the integer value. The result has a range of 0 to 64 (642 = 4096). The problem with this approach is a poor resolution for the flow, specifically, a resolution of 1 part in 64. The appropriate approach is as follows:
However, the calculation must be performed with either 32-bit integer arithmetic or floating-point.
This article has illustrated some of the ways that inadequate resolution can impair the performance of a PID controller. There are certainly others. These problems seem to appear more often in applications implemented with PLCs, but they can and do arise in DCS applications as well (the example in Figure 1 was from a DCS application).
The problem here is that those doing the implementation and/or programming are very knowledgeable regarding the systems aspects of the application, but have little or sometimes no experience with PID control. The decisions are made based on ease of programming, compatibility with the features of graphical display devices, ease of troubleshooting, etc. The impact of the decisions on the performance of PID controllers often gets no consideration whatsoever.
Cecil L. Smith, PhD, PE, has a consulting practice devoted exclusively to industrial automation, encompassing both batch and continuous processes. He also teaches continuing education courses on various aspects of process control.