Énergie solaire photovoltaïque
Semaine 7 : Principes généraux d'optimisation
Guidance

Optimisation

Caractéristiques des problèmes d'optimisation en électrotechnique

Les problèmes d'optimisation en électrotechnique comptent souvent parmi les "pires" (ou les "plus intéressants", question de point de vue).

On ne s'étonnera pas de rencontrer souvent lors de l'optimisation le phénomène de la "peau de banane", c'est-à-dire des "vallées" courbées comme celle décrite à la figure 10 dans le cas d'une optimisation à deux paramètres.

Figure S07-10 : peau de banane à deux dimensions. Les lignes continues sont des équivaleurs de la fonction objectif. La ligne en pointillé est le "fond de la vallée" ou la "crête". Le point noir indique la position de l'optimum.

Méthodes analytiques

Lorsque l'on dispose d'une expression analytique explicite de la fonction objectif, la méthode classique consiste à en chercher les dérivées (sous forme analytique) par rapport aux différents paramètres à optimiser. En écrivant que ces dérivées sont nulles au point optimum, on obtient un système d'équations (parfois linéaires, souvent non linéaires) qu'il ne reste plus (!) qu'à résoudre par les méthodes classiques.

Cette méthode est intéressante dans des cas particuliers simples où le nombre de paramètres à optimiser est petit. En électrotechnique, son usage est souvent limité aux optimisations partielles (selon une partie seulement des paramètres que l'on voudrait optimiser).

La méthode peut être étendue au cas où l'on optimise simultanément selon plusieurs paramètres entre lesquelles existe une relation de contrainte, en utilisant la méthode des multiplicateurs de Laplace.

Recherche de l'optimum par itérations successives

Comme indiqué ci-dessus, les méthodes analytiques ne conviennent souvent que pour certains sous-problèmes. Pour une optimisation plus complète, la seule solution pratique est souvent de rechercher l'optimum par itérations successives.

Compte tenu des difficultés passées en revue en haut de cette page, la routine d'optimisation choisie doit être robuste, quitte à avoir une vitesse de convergence réduite à l'approche de l'optimum.

Par exemple, la routine d'optimisation de mathlab n'est pas bien adaptée, parce qu'elle a besoin des dérivées de la fonction objectif. Lorsque celle-ci n'est pas fournie, elle les calcule par différence, ce qui amplifie l'effet des erreurs de calcul.

Dans le cas d'un problème à un seul paramètre, une des méthodes les plus robustes est certainement celle de la "section dorée". Vous pouvez en trouver une description sur le site de The University of Western Australia.

Exercice S07-12 : introduction de la section dorée en optimisation

Le problème de l'optimisation par itérations successives est beaucoup plus difficile dans le cas d'une recherche selon plusieurs paramètres.

La première idée qui vient à l'esprit dans ce cas est souvent d'effectuer l'optimisation selon chaque paramètre optimisable successivement.

Et l'erreur souvent commise est de croire qu'une fois que l'optimisation a été effectuée une fois selon chaque paramètre, l'optimum est atteint... en fait, le processus ne fait que commencer, car l'optimum atteint sur un paramètre est remis en cause chaque fois que la valeur d'un autre paramètre est modifiée, ce qui se produit bien évidemment lors de l'optimisation de ces derniers.

Cette méthode est tentante, et peut effectivement s'avérer utile pour "dégrossir" un problème, mais sa convergence est souvent extrêmement lente, comme on peut s'en convaincre en examinant la "peau de banane" de la figure S07-10 et en imaginant que l'on s'approche de l'extrêmum par des déplacement alternativement horizontaux et verticaux.

Il existe de nombreuses autres méthodes de recherche d'un optimum selon plusieurs paramètres. En présence d'une "peau de banane", la plupart des algorithmes atteindront rapidement le "fond de la vallée", mais le minimum réel ne sera souvent atteint qu'après de nombreuses itérations. Il est donc important de choisir judicieusement la méthode employée.

Une erreur fréquente consiste à croire qu'il faut, à chaque étape, chercher le point où se trouve l'optimum avec le plus de probabilité. C'est sans doute vrai en ce qui concerne le dernier point cherché mais, pour les autres, l'important est de calculer des points qui augmentent le plus possible l'information que l'on a sur la position de l'optimum.

Un certain nombre de critères permettent de sélectionner une routine d'optimisation.

Tout d'abord, l'ensemble des paramètres optimisables peut être considéré comme formant les coordonnées d'un espace, mais munir cet espace d'une structure métrique n'a guère de sens puisque ces paramètres sont de natures très diverses (longueurs, mais aussi nombre de spires...). Le principe de parcimonie nous invite donc à éviter les méthodes qui font appel à une structure métrique, comme par exemple la méthode de la plus grande pente. Le principe d'invariance nous invite à éviter les méthodes dont le déroulement se modifie lorsque l'on remplace un ensemble de paramètres à optimiser par un ensemble équivalent.

On montre aisément que la méthode de la section dorée citée ci-dessus respecte ces principes : dommage qu'elle ne s'applique qu'à une optimisation selon un seul paramètre.

La méthode du simplex est un exemple de méthode qui respecte ces deux principes. Nous lui accordons donc un préjugé favorable. On peut trouver sur le site de la firme GRABITECH une description de la méthode

Pour éviter un arrêt prématuré de la convergence, il n'est pas inutile d'incorporer dans la procédure de recherche de l'optimum un aspect aléatoire.

Techniques de simplification de l'optimisation

Compte tenu de la difficulté des problèmes d'optimisation en électrotechnique, le recours à des techniques de simplification peut s'avérer très rentable. Nous en parcourons quelques-unes ci-dessous.

Optimisation selon un nombre restreint de paramètres

La difficulté d'une optimisation croît très rapidement avec le nombre de paramètres à optimiser.

Un procédé simple consiste dès lors à optimiser selon un seul paramètre à la fois. Il faut alors être bien conscient du fait que l'optimum obtenu sur un paramètre doit être remis en cause lorsque l'on a optimisé selon les paramètres suivants. La considération de la figure S07-10 suffit à se convaincre qu'il faudra souvent optimiser tour à tour sur chaque paramètre un grand nombre de fois avant d'atteindre l'optimum.

Il n'en reste pas moins qu'une optimisation selon un seul paramètre, ou un nombre restreint de paramètres, est intéressante pour "dégrossir" un problème, ou encore pour sortir d'une situation où une optimisation sur un grand nombre de paramètres converge trop lentement ou converge systématiquement vers un optimum secondaire sans intérêt.

Elimination de certains paramètres

Il peut arriver qu'une optimisation partielle puisse se faire de façon très rapide (par rapport à l'optimisation générale), par exemple parce qu'elle est possible par une méthode analytique.

On a alors parfois intérêt à incorporer cette optimisation partielle comme une partie de la routine qui calcule la fonction objectif. Le nombre de paramètres à gérer par la routine d'optimisation principale sera réduit d'autant.

Conseils pour la mise en œuvre

facilités de modification de la liste des paramètres optimisables

Nous avons expliqué plus haut qu'il est utile de pouvoir changer en cours d'étude la liste des paramètres optimisables. On évitera donc les programmes qui nécessitent une réécriture du problème chaque fois que l'on modifie la liste des paramètres optimisables.

hiérarchie des contraintes

Les contraintes peuvent être gérées de diverses façons dans un programme d'optimisation, en fonction de leur influence sur le déroulement du processus d'optimisation.

Certaines doivent impérativement être respectées parce que dans le cas contraire la méthode d'analyse utilisée conduirait à une erreur du type division 0/0. Ces contraintes doivent être vérifiées soit par la routine d'optimisation, soit à l'intérieur du programme d'analyse et donner lieu dans ce cas à une terminaison prématurée (donc sans résultats de calcul, mais en prévenant la routine d'optimisation) de celui-ci.

Il peut par contre être intéressant de laisser le programme d'optimisation outrepasser certaines contraintes. C'est notamment le cas lorsque l'on n'arrive pas à trouver un "point de départ" qui respecte toutes les contraintes. Cela peut aussi accélérer la convergence en "coupant au court" à travers une zone interdite. Pour que ce soit possible, le programme d'analyse doit accepter de fournir un résultat "raisonnable" même avec des valeurs des paramètres techniquement absurdes.

Certaines contraintes ne proviennent pas du problème traité, mais des approximations de calcul faites. Ainsi, si on utilise un modèle linéaire pour un dispositif comportant des matériaux magnétiques, il est bon d'imposer une valeur maximum aux champs pour éviter la saturation, même si techniquement l'entrée en saturation n'est pas à proscrire. Le franchissement de cette contrainte en cours d'optimisation ne prête pas à conséquence. Par contre, si une telle contrainte est outrepassée au point optimum obtenu, la meilleure solution ne sera pas de rendre la contrainte plus sévère, mais bien de changer de modèle pour pouvoir accepter la saturation (sous peine d'un surdimensionnement du dispositif, d'un abaissement inutile des performances...).

Lorsque des contraintes sont outrepassées, il est de toute façon bon que l'utilisateur du programme d'optimisation en soit averti. Il décidera alors éventuellement selon le cas soit de terminer le processus pour adapter la routine d'analyse, soit, et il faut en tout cas vérifier que la solution optimale obtenue vérifie bien toutes les contraintes. Si tel n'est pas, il faut voir si le problème provient d'un trop grand affaiblissement des contraintes en cours d'optimisation, ou d'une inadéquation du modèle !

Interactivité

Compte tenu de ce qui précède, il est intéressant que l'utilisateur garde la possibilité d'influencer un processus d'optimisation en cours.

Pour pouvoir le faire en connaissance de cause, il doit être informé de la vitesse de convergence et du respect des contraintes.

Il est utile qu'il puisse

- terminer l'exécution si la routine converge vers des valeurs des paramètres pour lesquelles la méthode d'analyse n'est pas valable ;

- modifier en cours d'optimisation la liste des paramètres optimisables ou la hiérarchie des contraintes, de préférence sans que cela implique un redémarrage du programme.

Page précédente

Suite de la guidance

Retour au menu de la semaine 7

Retour à la page d'accueil

Besoin d'une précision ?

Dernière mise à jour le 11-03-2004