On se propose de réaliser une régulation PID du processus du 1er ordre de fonction de transfert :

 

regulateur_pid_eq0

 

Le système à contrôler est du premier ordre de constante de temps τ = 20s et de gain statique égal à 0.8.

Le PID est réalisé sous forme de la somme des 3 actions :

Proportionnelle, P.

Intégrale, reg_inte avec un gain 1.

Dérivée, reg_derive, précédée du gain D.

 

regulateur PID

 

Le gain dérivé est choisi égal à 0, le régulateur a pour expression :

 

regulateur_pid_eq1

 

>> P = 0.1;
>> I = 0.05;
>> D = 0;
>> signaux_es
signaux_es =
time: []
signals: [1x1 struct]
blockName: 'PID_regulateur/To Workspace'

 

Les signaux sont sauvegardés dans la structure nommée signaux_es.m.

>> isstruct (signaux_es)
ans =
1

 

La commande isfield retourne 3 valeurs logiques vraies, signaux_es est bien une structure à 3 champs : time, signals, blockName.

>> f = isfield (signaux_es, {'time', 'signals', 'blockName'})
f =
1     1     1

 

Les 3 valeurs 1 (vraies) de la réponse f de la commande isfield indiquent que time, signals et blockName sont des champs de la structure signaux_es.

Les structures seront étudiées dans le chapitre des tableaux multidimensionnels.

>> plot (signaux_es.signals.values)
>> title ('Signaux E/S - Régulation PID')
>> grid
>> gtext ('Signal de commande')
>> gtext ('Signal de sortie')
>> gtext ('Consigne')

 

plot PID

 

En régime permanent le signal de sortie suit parfaitement le signal de consigne. Nous observons ces mêmes signaux sur l’oscilloscope.

 

scope PID