From Bright Things Wiki
Jump to: navigation, search

Things I am working on

Requirements Specification for PID controller

A remote Proportional+Integral set point targeting regulator. The derivative component is not initially required as it is redundant in the majority of applications.


The objective is a general purpose device that can provide feedback in the context of a dynamic process. A PI loop is dependent on its historic output control value, a target result value (SP) and a measurement of the current result value (PV). In addition to the error SP-PV, the following constants effect the proportional and integral functions;



Kp = Proportional gain, a tuning parameter
Ki = Integral gain, a tuning parameter
tau: Variable of integration; takes on values from time 0 to t
t Time or instantaneous time (the present)

For a detailed explanation of the mathematics please refer to Wikipedia

Time Dependence

In the case of the integral function, the stability of the process is directly affected by the resolution of t. This implies that the iterative aspect of the control loop should be run on a real time processor capable of running faster than the potential maximum process oscillation frequency. Processes with low inertia (Eg. robotics) require an analysis loop that is orders of magnitude faster than that of a of a process with large inertia such as a storage heating system. In any case it is important to ensure that the measurements of error is tightly bound to the measurement of control output in time.

Loop Tuning

The stability of a process controller is tuned by changing the magnitude of the parameters Kp and Ki. Historically this has been carried out by expert people; more modern software based tuning systems exist. In either case, the higher the resolution of t, the easier it is to tune the integral element of the loop.

In the context of a networked system, software capable of performing loop tuning does not need to reside on the PID device provided any potential messaging latency does not slow down its analysis loop to the extent that it becomes impossible to resolve the maximum potential frequency of process oscillations.

It should be noted that the bulk of the output signal is related to the proportional element of the PI function and that this is not time dependent in the sense that it only references the measured error. It is however still important that the process measurements used to calculate the proportional aspect of the output signal is simultaneous in real time and not subject to random temporal distortion introduced by networking latency.

Process Data Sources

In the context of a PI process controller deployed as part of a lossy automation network, some dynamic information relevant to its PI loops is not time critical; target set points and tuning parameters should be possible to change without the adjustment request needing to be tightly locked to the process clock.

Measurement of dynamic data directly related to the PI loop should however be obtained in real time.

Set point data: From external users (either human or Thing)

Tuning Parameters: From external users (either human or Thing) or from an analysis algorithm on board

Real time data: Process measurements should usually be from on board sensors unless the process is so slow that multi minute lags in value updates is normal from a system perspective.

Other set up information: Scaling factors, absolute limits, alarm thresholds, dead band settings and the like may also be accessible and adjustable remotely (user option). Unlikely to be changed dynamically once set.

As a rule, access to anything other than the basic set point ought to be possible to restrict by user authority level as live adjustment of any one of the tuning parameters or fixed settings can break the process badly. Traditionally, process variable adjustments have required an engineer in the loop and could only be made via a terminal connected directly to the controller. A modern networked system can allow for a remote engineer to be in the loop at the cost of complexity. Allowing implementation of remote dynamic tuning is a user decision that needs to be taken in the context of risk to the function of the underlying process.

PI Process.png