Using a Proxy for the Process Variable When Defining a Controller

By definition, the Process Variable and the Controller output are required to have dimensions An output attribute for an element that defines the dimensionality (in terms of Length, Time and other fundamental dimensions) of the output. that are consistent. In particular, the dimensions of the process variable must be equal to the dimensions of the Controller’s output * Time. For example, if the output of the Controller had dimensions of a volumetric flow rate (e.g., m3/day), then the dimensions of the Process Variable would need to be a volume (e.g., m3 or gal).

However, in many cases, the variable that can physically be monitored and responded to by the Controller will not meet this requirement. For example, if a Controller was controlling a pump that removed water from a pond, the dimensions of the Controller’s output would be a volumetric flow. However, in most cases, the actual volume of water in the pond could not be directly monitored. Instead, what would be monitored would be a water elevation. Similarly, if a Controller was controlling a furnace that added heat (energy) to a house, the dimensions of the Controller’s output would be a flow of heat. However, the actual quantity of heat is not directly monitored. Instead, what would be monitored would be the temperature.

This is straightforward to represent. The actual process variable in these examples is in fact volume or heat (i.e., energy). But because these are not measured, you have a proxy for those Process Variables (elevation and temperature). These proxy variables can be directly converted to the Process Variables.

That is, if your target is actually an elevation or a temperature, you simply need to convert the proxy variable to the Process Variable (in these cases, volume or heat). In some cases (e.g., temperature to heat or water elevation in a tank with vertical walls to volume), the conversion is simply a constant. What this means is that the model structure for your Controller would look like this for a Proportional or PID Controller:

In this example, the Process Variable is the volume in a tank. Hence, the Target for the Controller must also be a volume. However, what we measure is the water elevation in our tank (that is our proxy target). Hence, we simply convert the elevation target to a volume target (the conversion is just a constant factor, the area of the tank) and enter the volume target into the Controller. We can then, of course convert the volume in the tank to the elevation by dividing by the area.

For a Deadband Controller, we have to carry out two conversions. Here is a Deadband Controller defined using a Target and a Thickness:

Here we convert the elevation target to a volume target and the elevation deadband thickness to a volume deadband thickness (the conversion is the same constant factor in both cases, the area of the tank) and enter these into the Controller.

In some cases, however, the conversion between the proxy variable and the Process Variable is not a constant. The most common example of this is the if you were modeling a pond or reservoir of water. In such a case, the Process Variable is the volume of water, and the proxy for this is the water elevation. However, the conversion between these two is complex and not constant. Commonly, the conversion will require a lookup table that converts between the two. For a Proportional Controller, it would look like this:

In this case, a lookup table (that converts from elevation to volume) is used to convert the elevation target to a volume target (and the pond volume to an elevation).

Note, however, that in this case (non-constant conversion from elevation to volume), using a Deadband Controller is slightly more complex. This is because due to the non-constant relationship, you can’t simply convert an elevation deadband thickness directly to a volume deadband thickness (to do so takes several steps). In this situation, it is easiest if the deadband is defined using a top and bottom (instead of a target and deadband thickness). The model structure would look like this:

Here we convert the elevation of the top of the deadband and the elevation of the bottom of the deadband to volumes and enter these into the Controller.

The example model above which illustrates the use of a proxy variable (Proxy.gsm) can be found in the General Examples/Controllers folder in your GoldSim directory (accessed by selecting File | Open Example... from the main menu).