0% ont trouvé ce document utile (0 vote)
24 vues11 pages

Optimisation PSO d'un système dynamique

Transféré par

badrhamdaoui95
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
24 vues11 pages

Optimisation PSO d'un système dynamique

Transféré par

badrhamdaoui95
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Commande avancée

Travaux Pratiques

Optimisation du comportement d’un système


par une méthode bio-inspirée

Julien Marot
1 Présentation du problème
Nous souhaitons dans ce TP minimiser deux critères de perfor-
mance caractérisant un système d’ordre 2, corrigé par un correcteur
proportionnel dérivé de gain Kc et de paramètre Td .
Le système à corriger est le suivant :
K
G(p) = (1.1)
(1 + τ1 p)(1 + τ2 p)
Le système corrigé est caractérisé par un vecteur de paramètres
x = [Kc , Td ]. Ses performances se mesurent via son dépassement
(quand il existe) et l’erreur par rapport à la valeur finale (supposée
valeur en régime établi).
L’objectif est de trouver le couple de paramètres x = [Kc , Td ] qui
minimise un critère concernant le dépassement ou l’erreur.
Nous observerons la réponse indicielle du système lorsque l’on
minimise l’un OU l’autre de ces critères.
Pour ce faire, nous mettrons en oeuvre une méthode d’optimisa-
tion bio-inspirée.

2
2 Définition d’un critère
On suppose que le système que l’on étudie présente un dépasse-
ment.
On pose J(x) = |D(x) − Dobjectif |, où |.| est la valeur absolue.
Dobjectif est un objectif à atteindre en termes de dépassement. λ1
et λ2 sont des coefficients de régularisation.
Notre but est de minimiser la fonction J, qui est non-linéaire, en
fonction de x, c’est-à-dire, trouver :

x = argmin(J(x))
^ (2.1)
x

Figure 2.1  Exemple de solution obtenue avec K = 4, τ1 = 10, τ2 = 20

La figure 2 montre la réponse indicielle obtenue quand on mi-


nimise J en cherchant la valeur optimale de Kc , lorsqu’un simple
correcteur proportionnel est utilisé.

3
3 Principe de la méthode PSO
Il existe plusieurs méthodes d’optimisation qui permettent de re-
trouver le minimum global d’une fonction. On les appelle les mé-
thodes d’optimisation globales : asymptotiquement, elle ne risquent
pas de converger vers un minimum local de la fonction à minimi-
ser. Elles sont donc exploitables pour optimiser des fonctions non-
linéaires. La méthode DIRECT [1] suppose que la fonction à mini-
miser est k-lipschitzienne, ce qui n’est pas le cas du critère J. La mé-
thode de Nelder-Mead [3] permet de minimiser une fonction quand
elle présente plusieurs minima relatifs, mais seulement quand il n’y
a qu’une seule inconnue. Nous choisissons donc d’adapter la mé-
thode ’particle swarm optimization’ [2] ou PSO (optimisation par
essaim de particules). En voici son principe, pour une itération it.
On calcule une position :

xq (it + 1) = xq (it) + vxq (it + 1) (3.1)

avec une vitesse vxq définie par :

vxq (it + 1) = W vxq (it) + γ1q r 1q (pxq − yxq (it))


... + γ2q r 2q (Gx − yxq (it)) (3.2)
Dans les Eqs. (3.1) et (3.2), vxq (it) est la vitesse de la particule q à
l’itération it, W est une inertie, γ1q et γ2q des constantes d’accéléra-
tion qui encouragent une recherche plutôt locale ou plutôt globale
respectivement. r 1q et r 2q sont des nombres aléatoires, pxq est la
meilleure position trouvée pour la particule q, Gx est la meilleure
position pour l’ensemble des particules, et yxq (it) est la position cou-
rante de la particule q à l’itération it. Quand le nombre maximum
d’itérations choisi (maxit) est atteint, le vecteur position x(maxit)
contient l’estimation finale de tous les paramètres dans ^ x.

4
4 Mise en oeuvre

4.1 Fonction Critère


Créez la fonction qui définit le système et un critère de perfor-
mance en reproduisant et en complétant le code ci-dessous :
function Criterion=Compute_criterion_System(in)

K=4;
tau1=10; %%% sec.
tau=tau1;
tau2=tau1*2; %%% sec.

Kc=in(1);
Td=in(2);
Ti=in(3);%Inf;

p=tf(’s’);

Pterm= ??;

if Td>0
Dterm= ??
else
Dterm=0;
end

if isinf(Ti)~=1
Iterm= ?? ;
else
Iterm=0;
end

5
Cor=Kc * (Pterm + Dterm + Iterm);

num=K;
ordresys=2;
den=[ones(1,ordresys-2),conv([tau1,1],[tau2,1])];

BF=??;

Consigne=1;
Step_Response=Consigne*step(BF,tau*100);
[Max_Y,IndMax]=max(Step_Response);
Y_Final=Step_Response(end);

Error=??;
Error=Error(:);

%IAE: integrale(abs(e(t)))
IAE=??;

Criterion=IAE;

% Depassement_Objectif=20;
% Depassement=abs(Max_Y-Y_Final)/Y_Final * 100;
% CriterionD=abs(Depassement-Depassement_Objectif);
% Criterion=CriterionD;

figure(1)
plot(Step_Response)

On choisira un temps d’observation relativement long.


Question 1 : Une fois le code complété, faites tourner la fonction
Compute_criterion_System avec quelques exemples pour les va-
leurs dans le vecteur in.
Par exemple : Kc = 10, Td = 5, Ti = 8

6
4.2 Méthode d’optimisation
4.2.1 Construction de la fonction objectif
Créez la fonction critère, qui donne les valeurs du critère à mi-
nimiser pour plusieurs agents de recherche, en reproduisant et en
complétant le code ci-dessous :
function [out]=Systeme(in)

Criterion=zeros(size(in,1),1);
for indpart=1:size(in,1)
Criterion(indpart)=Compute_criterion_System(in(indpart,:));
end

out=Criterion;

end
Question 2 : testez la fonction Systeme en donnant une matrice in
à trois agents, i.e. trois couples de valeurs.

4.2.2 Paramétrage de PSO


Dans les programmes fournis par l’enseignant, vous devez mettre
à jour le programme Setup_PSO.m :
Question 3 : Choisissez la fonction présentée en section 2. Il s’agit
de la fonction 18.

Question 4 : Fixez la dimension du vecteur x à 2. Que représente


cette dimension ?

Question 5 : Choisissez de minimiser l’écart entre le dépassement et


un dépassement ’visé’ comme 20% par exemple. Prenez un nombre
de particules égal à 40 et un nombre d’itérations égal à 50. Faites
tourner la méthode PSO.

7
Quelle est la valeur de ^ x obtenue par la méthode ? Vérifiez si l’ob-
jectif en termes de dépassement, et celui en terme d’erreur sont
atteints. Si ce n’est pas le cas, augmentez le nombre d’itérations.

Question 6 : On souhaite pénaliser les solutions qui ne présentent


pas de dépassement. Proposez une solution pour cela.

Question 7 : Choisissez un autre critère à minimiser, comme l’IAE


(’integral of absolute error’), définie par :

IAE : |(e(t)|
R

où e(t) désigne l’erreur entre la sortie au temps t et la sortie fi-


nale. Quelle est l’allure de la sortie obtenue avec les paramètres
optimaux ?

Question 8 : Modifiez les programmes pour que le correcteur soit


un PID et non plus un proportionnel dérivé. Demandez à la mé-
thode PSO d’estimer la valeur optimale de K, Td, Ti, selon les cri-
tères cités précédemment.

8
Figure 4.1  Exemple de solution obtenue pour un dépassement de 20 %, avec un
PID : K = 0.4, Td = 56.4, Ti = 2

9
5 Bilan, conclusion
Faites quelques expériences complémentaires : que pouvez-vous
choisir d’autre comme critère ? Combinez deux types de critères
contradictoires, comme par exemple un dépassement élevé et une
erreur faible.
Changez l’ordre du système. Avec un système d’ordre plus élevé,
peut-on encore obtenir la valeur de dépassement voulue ?

Faites quelques commentaires généraux.

10
Bibliographie
[JPS93] D.R. J ONES, C.D. P ERTUNEN et B.E. S TUCKMAN. « Lipschit-
zian optimization without the Lipschitz constant ». In :
Journal of Optimization and Applications 79 (1993), p. 157-
181 (cf. p. 4).
[KE95] J. K ENNEDY et R. E BERHART. « Particle swarm optimiza-
tion ». In : IEEE International Conference on Neural Net-
works. Perth, 1995, p. 1942-1948 (cf. p. 4).
[Lag+98] Jeffrey C L AGARIAS, James A R EEDS, Margaret H W RIGHT
et al. « Convergence properties of the Nelder–Mead sim-
plex method in low dimensions ». In : SIAM Journal on
optimization 9.1 (1998), p. 112-147 (cf. p. 4).

11

Vous aimerez peut-être aussi