Serial or parallel PID, which structure to pick?
Introduction
Recently, one of our clients asked a relevant question: to implement my controller, should I use a serial or parallel PID structure? Indeed, during our first courses of automatic controls, the instructor presents the way of building a PID, but does not specify when you should pick one over the other.
1. Serial or parallel PID
The two structures are described by the following equations:
- serial :
Cserial(s) = k(1+1⁄(sτi) )(1+sτd)
- parallel :
Cparallel(s) = kp + ki ⁄s + kds
As you can see, they are mathematically equivalent. From a serial controller, it is always possible to switch to a parallel form, thanks to these formulas:
- kp = k(1 + τd ⁄τi )
- ki = k⁄ τi
- kd = kτd
Fig 1 : serial PID
Fig 2 : parallel PID
2. A 3rd way to implement a PID
Another way to build PID exists! It is called “standard”, “mixed” or sometimes “ideal”. It is defined by the equations bellow :
Cstandard(s) = Kp(1 + 1⁄sΤi + sΤd )
This new form and a regular parallel form are a lot alike. So, transformation equations are easy to obtain :
Kp = k(1 + τd ⁄τi )
Τi = τi + τd
Τd = τdτi ⁄(τd + τi)
In the end, there are three different ways to implement PID, almost mathematically equivalent. Generally speaking (except when ki=0), there are formulas for transforming a controller from one form to another.
class=’
Warning: Undefined variable $marge_en_haut_du_bloc in /home/clients/0abfb59cc5debe580adcec9b3bb8cdf1/web/wp-content/themes/welligo-lowtech/inc/blocks/block-separateur.php on line 20
Warning: Undefined variable $marge_en_bas_du_bloc in /home/clients/0abfb59cc5debe580adcec9b3bb8cdf1/web/wp-content/themes/welligo-lowtech/inc/blocks/block-separateur.php on line 23
Warning: Undefined variable $ajouter_un_fond_clair in /home/clients/0abfb59cc5debe580adcec9b3bb8cdf1/web/wp-content/themes/welligo-lowtech/inc/blocks/block-separateur.php on line 26
Warning: Undefined variable $cb_ajouter_une_classe_css in /home/clients/0abfb59cc5debe580adcec9b3bb8cdf1/web/wp-content/themes/welligo-lowtech/inc/blocks/block-separateur.php on line 29
‘>