Synthesis

Automatic generation of a controller through some form of algorithm is what we refer to as synthesis. It may be asked why we want to do this.

The answer to this question is perhaps best formulated as “because we can”.

Once we have a process model, the plant, and a specification, both represented by highly formal structures, we can beneficially use them to rid us of some labor. Although it may take more time and effort to develop the algorithms to synthesize a controller than to implement control for a specific system given its specification, once developed the algorithms allow us to solve similar problems for all systems that can be described in the same way. Furthermore, the algorithms to do this exist, are well known and easy to implement. Thus, by using known methods we can quickly (in some sense) test different specifications, different scenarios for which we can ask “what if” questions. This means that we have moved much of the burden of implementation “backward” in the development chain to the modeling and analysis phases. This, in turn, allows us to find incorrect assumptions and inconsistencies early in the design.

Furthermore, the synthesis algorithms have been mathematically proven to always return a correct result. Correct, that is, with respect to the given plant and specification. Generating a controller in an ad hoc manner can never guarantee that. Mistakes and misinterpretations may always occur, unless a very formalized method is used. Such a formalized method is always described by a sort of recipe, describing the transition from the given pre-conditions to the desired end-result in detail. This is just what an algorithm is.

Note that, even if we are not interested in synthesis, the development of the formal models is not wasted. As we noted in the previous chapters, formalizing the informal descriptions of the process and its desired behavior can raise a number of questions about the intent of the system. Moreover, the formal models make a useful standing stone for the implementation process, whatever guise it takes.