# Digital control

Digital control is a branch of control theory that uses digital computers to act as system controllers. Depending on the requirements, a digital control system can take the form of a microcontroller to an ASIC to a standard desktop computer. Since a digital computer is a discrete system, the Laplace transform is replaced with the Z-transform. Since a digital computer has finite precision (See quantization), extra care is needed to ensure the error in coefficients, analog-to-digital conversion, digital-to-analog conversion, etc. are not producing undesired or unplanned effects.
Since the creation of the first digital computer in the early 1940s the price of digital computers has dropped considerably, which has made them key pieces to control systems because they are easy to configure and reconfigure through software, can scale to the limits of the memory or storage space without extra cost, parameters of the program can change with time (See adaptive control) and digital computers are much less prone to environmental conditions than capacitors, inductors, etc.

## Digital controller implementation

A digital controller is usually cascaded with the plant in a feedback system. The rest of the system can either be digital or analog.
Typically, a digital controller requires:
* Analog-to-digital conversion to convert analog inputs to machine-readable (digital) format
* Digital-to-analog conversion to convert digital outputs to a form that can be input to a plant (analog)
* A program that relates the outputs to the inputs

### Output program

* Outputs from the digital controller are functions of current and past input samples, as well as past output samples - this can be implemented by storing relevant values of input and output in registers. The output can then be formed by a weighted sum of these stored values.
The programs can take numerous forms and perform many functions
* A digital filter for low-pass filtering
* A state space model of a system to act as a state observer
* A telemetry system

### Stability

Although a controller may be stable when implemented as an analog controller, it could be unstable when implemented as a digital controller due to a large sampling interval. During sampling the aliasing modifies the cutoff parameters. Thus the sample rate characterizes the transient response and stability of the compensated system, and must update the values at the controller input often enough so as to not cause instability.
When substituting the frequency into the z operator, regular stability criteria still apply to discrete control systems. Nyquist criteria apply to z-domain transfer functions as well as being general for complex valued functions. Bode stability criteria apply similarly. Jury criterion determines the discrete system stability about its characteristic polynomial.

### Design of digital controller in s-domain

The digital controller can also be designed in the s-domain (continuous). The Tustin transformation can transform the continuous compensator to the respective digital compensator. The digital compensator will achieve an output that approaches the output of its respective analog controller as the sampling interval is decreased.
$s={\frac {2(z-1)}{T(z+1)}}$

#### Tustin transformation deduction

Tustin is the Padé$_{(1,1)}$ approximation of the exponential function ${\begin{aligned}z&=e^{sT}\end{aligned}}$ :
    ${\begin{aligned}z&=e^{sT}\\&={\frac {e^{sT/2}}{e^{-sT/2}}}\\&\approx {\frac {1+sT/2}{1-sT/2}}\end{aligned}}$
And its inverse
    ${\begin{aligned}s&={\frac {1}{T}}\ln(z)\\&={\frac {2}{T}}\left[{\frac {z-1}{z+1}}+{\frac {1}{3}}\left({\frac {z-1}{z+1}}\right)^{3}+{\frac {1}{5}}\left({\frac {z-1}{z+1}}\right)^{5}+{\frac {1}{7}}\left({\frac {z-1}{z+1}}\right)^{7}+\cdots \right]\\&\approx {\frac {2}{T}}{\frac {z-1}{z+1}}\\&={\frac {2}{T}}{\frac {1-z^{-1}}{1+z^{-1}}}\end{aligned}}$
Digital control theory is the technique to design strategies in discrete time, (and/or) quantized amplitude (and/or) in (binary) coded form to be implemented in computer systems (microcontrollers, microprocessors) that will control the analog (continuous in time and amplitude) dynamics of analog systems. From this consideration many errors from classical digital control were identified and solved and new methods were proposed:
* Marcelo Tredinnick and Marcelo Souza and their new type of analog-digital mapping
* Yutaka Yamamoto and his "lifting function space model"
* Alexander Sesekin and his studies about impulsive systems.
* M.U. Akhmetov and his studies about impulsive and pulse control

### Design of digital controller in z-domain

The digital controller can also be designed in the z-domain (discrete). The Pulse Transfer Function (PTF) $G(z)$ represents the digital viewpoint of the continuous process $G(s)$ when interfaced with appropriate ADC and DAC, and for a specified sample time $T$ is obtained as:
$G(z)={\frac {B(z)}{A(z)}}={\frac {(z-1)}{z}}Z{\biggl{\frac {G(s)}{s}}{\Biggr )}$
Where $Z$ denotes z-Transform for the chosen sample time $T$. There are many ways to directly design a digital controller $D(z)$ to achieve a given specification. For a type-0 system under unity negative feedback control, Michael Short and colleagues have shown that a relatively simple but effective method to synthesize a controller for a given (monic) closed-loop denominator polynomial $P(z)$ and preserve the (scaled) zeros of the PTF numerator $B(z)$ is to use the design equation:
$D(z)={\frac {k_{p}A(z)}{P(z)-k_{p}B(z)}}$
Where the scalar term $k_{p}=P(1)/B(1)$ ensures the controller $D(z)$ exhibits integral action, and a steady-state gain of unity is achieved in the closed-loop. The resulting closed-loop discrete transfer function from the z-Transform of reference input $R(z)$ to the z-Transform of process output $Y(z)$ is then given by:
${\frac {Y(z)}{R(z)}}={\frac {k_{p}B(z)}{P(z)}}$
Since process time delay manifests as leading co-efficient(s) of zero in the process PTF numerator $B(z)$, the synthesis method above inherently yields a predictive controller if any such delay is present in the continuous plant.