Let us return to the industrial steam engine driving a range of equipment, each piece in the charge of an operator. In order to keep the factory working properly it is necessary to keep the speed of the steam engine reasonably constant, at what is called the desired output, or the set point. A human controller can achieve this fairly well, by direct observation of the speed and experience of the effect of changing the steam flow rate, but automatically? Well, James Watt solved the problem with a mechanical device (details later). We will now see how to “do it with a computer”.

Diagram of the physical system. There will be a valve on the steam line (not shown).

The information flow diagram. The load is not measured, and may vary.

Now we have a controller in the picture, fed with two pieces of information, the current speed and the desired speed. The controller can be human, mechanical or computer based. It has a set of rules to figure out the appropriate steam flow rate.

Now we have computer control. The output of the system is measured (sampled) at regular intervals, the computer calculates the required flow rate , sends the corresponding value to the valve actuating mechanism, which holds this value until the next sampling time, when the process is repeated. Using n=1, 2, 3, ….. for the times at which the output is sampled and the controller does its bit, we have at time n the speed measure **y**_{n}, the desired speed **d**_{n} and the difference between them (or error in the speed), and they are used to calculate the system input **x**_{n} with the formula shown in the controller box.

The equation in the steam engine box is our fairly simple first order linear system model as described in the previous post. It is a good idea to have a model of the process dynamics for many reasons (!), one of which is that we can do experiments on the whole controlled system by simulation rather than on the real thing.

Looking at the controller function (formula), **x**_{n} = Ad_{n} + h(y_{n} – d_{n}) , it is “obvious” that if the coefficient **h** is zero we have direct control (no feedback), and so the value of the coefficient **A** must be chosen accordingly (see next post).

It is not so obvious how the choice of **h** affects the performance of the controlled system. To do this we observe that the complete system is described entirely by the process equation and the controller equation together, and we can eliminate the x_{n} from the two equations to get **y**_{n+1} = ay_{n} + k(Ad_{n} + h(y_{n} – d_{n}))

which rearranged is **y**_{n+1} = (a + h)y_{n} + k(A – h)d_{n}

and has the SAME structure as the process equation, with **a + h** in place of **a**

In the next post, on tuning our controller, we will see how the value of the “**a**” coefficient affects the dynamic response of the system.