### When to use PID controller?

- measured value (
**process variable**) is a time series - ideal value (
**setpoint**) is known - can correct via a
**feedback**in the next steps - tuning (training) data is available
- cannot model of the process
- in non-linear systems may not work
- example: cruise control
- process variable = speed
- setpoint = ideal speed
- error = ideal speed - actual speed
- feedback = gas pedal

### What is PID controller?

- is sometimes called three-term controller
- tool to stay close to the ideal (
**control loop mechanism**) - uses distance from setpoint (
**error**) to produce feedback- error = setpoint - process variable

- defined as sum of 3 terms:
- proportional term
- current error
- corrects for error in the previous step

- integral term
- sum of errors till now
- corrects for error in the same direction in the past

- derivative
- current derivative of the error
- can cause instability and not used often
- or low pass filtering
- corrects for sudden change in error

- proportional term
- mathematical form:
- error: \( e(t) \)
- proportional coefficient: \( K_p \)
- integral coefficient: \( K_i \)
- derivative coefficient: \( K_d \)
- time: \( t \)
- feedback value (
**control function**): \( u(t) \) - equation: \( u(t) = K_p e(t) + K_i \int_0^t e(t) dt + K_d \frac{de(t)}{dt} \)

### Demo

- grey dots represent setpoint
- here: constantly zero

- blue represents original process variable
- uncontrolled process variable

- red represents process variable after corrective feedback
- here: process variable minus feedback

- try changing the input function
- Find the demo source below

sine input function

Kp:

Kd:

Ki:

### Self-tuning PID using Kalman filter

- Kalman filter uses linear relationship between measured values
- to estimate true values and uncertainty
- in the paper relationship between the PID parameters defines the Kalman filter tuning

### Links to Related Sites

- HN Discussion of this post
- PID Without a PhD for more details on PID