Documentation

### This is machine translation

Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

## Discrete-Time Proportional-Integral-Derivative (PID) Controllers

All the PID controller object types, `pid`, `pidstd`, `pid2`, and `pidstd2`, can represent PID controllers in discrete time.

### Discrete-Time PID Controller Representations

Discrete-time PID controllers are expressed by the following formulas.

FormFormula
Parallel (`pid`)

`$C={K}_{p}+{K}_{i}IF\left(z\right)+\frac{{K}_{d}}{{T}_{f}+DF\left(z\right)},$`

where:

• Kp = proportional gain

• Ki = integrator gain

• Kd = derivative gain

• Tf = derivative filter time

Standard (`pidstd`)

`$C={K}_{p}\left(1+\frac{1}{{T}_{i}}IF\left(z\right)+\frac{{T}_{d}}{\frac{{T}_{d}}{N}+DF\left(z\right)}\right),$`

where:

• Kp = proportional gain

• Ti = integrator time

• Td = derivative time

• N = derivative filter divisor

2-DOF Parallel (`pid2`)

The relationship between the 2-DOF controller’s output (u) and its two inputs (r and y) is:

`$u={K}_{p}\left(br-y\right)+{K}_{i}IF\left(z\right)\left(r-y\right)+\frac{{K}_{d}}{{T}_{f}+DF\left(z\right)}\left(cr-y\right).$`

In this representation:

• Kp = proportional gain

• Ki = integrator gain

• Kd = derivative gain

• Tf = derivative filter time

• b = setpoint weight on proportional term

• c = setpoint weight on derivative term

2-DOF Standard (`pidstd2` object)

`$u={K}_{p}\left[\left(br-y\right)+\frac{1}{{T}_{i}}IF\left(z\right)\left(r-y\right)+\frac{{T}_{d}}{\frac{{T}_{d}}{N}+DF\left(z\right)}\left(cr-y\right)\right].$`

In this representation:

• Kp = proportional gain

• Ti = integrator time

• Td = derivative time

• N = derivative filter divisor

• b = setpoint weight on proportional term

• c = setpoint weight on derivative term

In all of these expressions, IF(z) and DF(z) are the discrete integrator formulas for the integrator and derivative filter, respectively. Use the `IFormula` and `DFormula` properties of the controller objects to set the IF(z) and DF(z) formulas. The next table shows available formulas for IF(z) and DF(z). Ts is the sample time.

`IFormula` or `DFormula`IF(z) or DF(z)
`ForwardEuler` (default)

`$\frac{{T}_{s}}{z-1}$`

`BackwardEuler`

`$\frac{{T}_{s}z}{z-1}$`

`Trapezoidal`

`$\frac{{T}_{s}}{2}\frac{z+1}{z-1}$`

If you do not specify a value for `IFormula`, `DFormula`, or both when you create the controller object, `ForwardEuler` is used by default. For more information about setting and changing the discrete integrator formulas, see the reference pages for the controller objects, `pid`, `pidstd`, `pid2`, and `pidstd2`.

### Create Discrete-Time Standard-Form PID Controller

This example shows how to create a standard-form discrete-time Proportional-Integral-Derivative (PID) controller that has Kp = 29.5, Ti = 1.13, Td = 0.15 N = 2.3, and sample time Ts  0.1 :

```C = pidstd(29.5,1.13,0.15,2.3,0.1,... 'IFormula','Trapezoidal','DFormula','BackwardEuler')```

This command creates a `pidstd` model with $IF\left(z\right)=\frac{{T}_{s}}{2}\frac{z+1}{z-1}$ and $DF\left(z\right)=\frac{{T}_{s}z}{z-1}$.

You can set the discrete integrator formulas for a parallel-form controller in the same way, using `pid`.

### Discrete-Time 2-DOF PI Controller in Standard Form

Create a discrete-time 2-DOF PI controller in standard form, using the trapezoidal discretization formula. Specify the formula using `Name,Value` syntax.

```Kp = 1; Ti = 2.4; Td = 0; N = Inf; b = 0.5; c = 0; Ts = 0.1; C2 = pidstd2(Kp,Ti,Td,N,b,c,Ts,'IFormula','Trapezoidal')```
```C2 = 1 Ts*(z+1) u = Kp * [(b*r-y) + ---- * -------- * (r-y)] Ti 2*(z-1) with Kp = 1, Ti = 2.4, b = 0.5, Ts = 0.1 Sample time: 0.1 seconds Discrete-time 2-DOF PI controller in standard form ```

Setting `Td` = 0 specifies a PI controller with no derivative term. As the display shows, the values of `N` and `c` are not used in this controller. The display also shows that the trapezoidal formula is used for the integrator.

## More About

#### Learn how to automatically tune PID controller gains

Download code examples