• Aucun résultat trouvé

proposée et validation

4

Nous avons étudié jusqu’ici l’aspect théorique des méthodes que nous proposons, et nous avons mis en lumière les propriétés et les intérêts apportés par ce type d’approche pour les convertisseurs statiques à travers des exemples illustratifs pour plusieurs topologies de conver-sion. Les problèmes de commande ont pour certains été résolus analytiquement, pour d’autres numériquement en simulation. L’optimisation numérique en ligne a montré des performances statiques et dynamiques intéressantes. Mais une telle approche reste indéniablement plus coûteuse en tant de calcul que d’autres méthodes plus classiques.

Dans le présent chapitre, nous nous intéressons désormais à la mise en pratique de nos algorithmes pour la commande concrète et temps réel des convertisseurs statiques. L’ob-jectif principal est de valider la possibilité d’utilisation de l’algorithme du simplexe en tant que cœur de résolution de nos problèmes d’allocation pour lesCVS. Notre mise en oeuvre est effectuée sur carteField Programmable Gate Array (FPGA)pour bénéficier d’une grande flexibilité de conception, d’anticiper une exploitation maximale du parallélisme présent dans l’algorithme du simplexe (même s’il y en a moins que dans d’autres algorithmes comme ceux des commandes prédictives à ensemble fini) et pour les résultats prometteurs de l’utilisation de composantsFPGApour des applications de commande de convertisseurs statiques ou d’autres applications associées [MIN11].

Les objectifs sont multiples et épineux :

— la réalisation matérielle d’un solveur de problèmes d’optimisation linéaire type algo-rithme du simplexe, car il n’existe que très peu de communications à propos d’une telle réalisation ; nous en avons trouvé quatre : [BBCL06,MK11,GHS13,Var14], en général par des spécialistes et les détails sont absents ou trop peu suffisants ;

— la réalisation de la sur-couche de préparation du problème d’allocation à partir des références, des paramètres et autres mesures ;

— l’obtention d’un temps de calcul final sous la barre des 100 µs pour valider l’utilisation pour la conversion statique à des fréquences de modulation intéressantes ;

et tout cela en temps de conception limité.

Ensuite, pour faciliter les nombreux tests intéressants à mener pour évaluer à la fois la réalisation matérielle de l’algorithme et ses performances et propriétés pour la commande des CVS, nous réalisons une interface de communicationMATLAB®avec le circuit de résolution. Grâce à cela, nous pouvons utiliser le circuit pour tout un panel de tests, sans que l’utilisateur

n’ait d’effort technique particulier à fournir. Notre circuit de résolution est ensuite testé pour plusieurs configurations et plusieurs amplitude de tension de référence.

4.A Mise en œuvre de la méthode de commande sur carte FPGA

Dans cette section, nous détaillons notre solution de mise en œuvre matérielle de notre méthode de commande par allocation sur carteField Programmable Gate Array (FPGA). D’abord, nous évoquons les choix stratégiques que nous avons dû faire face aux problématiques que nous avons rencontrées ou face aux questions auxquelles nous avons du répondre pour la conception du circuit. Ensuite, nous présentons la structure générale du circuit de résolution ainsi que de la fonctionnalité de chaque bloc. Ceci donne une idée globale du fonctionnement et de l’opération du circuit. Les lecteurs intéressés pourront trouver ensuite des détails plus techniques concernant la réalisation de chaque bloc, mais ces détails n’étant pas essentiels pour la suite, le lecteur non habitué pourra consulter directement les résultats obtenus suites aux essais de vérificationHardware-In-the-Loop (HIL).

4.A.1 Contexte de travail

On retrouve de plus en plus lesFPGAen tant que contrôleurs pour des applications à haute performance, où le temps de calcul devient critique, ou alors où un temps de calcul court permet de grandement améliorer la qualité globale de la commande. LesFPGAdisposent d’une grande réserve de portes logiques dont on peut programmer les liaisons afin de concevoir des fonctions plus ou moins personnalisées et avancées. Ils deviennent très présents dans le domaine de la conversion statique et des applications associées [MIN11] : notamment pour émuler ou simuler en temps réel l’opération de convertisseurs statiques plus ou moins complexes, pour piloter des machines à haute vitesse, voire même, et c’est certainement une des promesses les plus attrayantes, pour obtenir des contrôleurs discrets ayant des performances quasi-similaires à une commande en analogique [MIN11].

Notons que la mise en œuvre d’algorithmes de commande surFPGAprend tout son charme quand on peut exploiter à bon escient le parallélisme et le pipelining présent dans l’algorithme. Aussi, une des forces de ce type de mise en œuvre réside dans le fait de pouvoir concevoir de manière matérielle, au niveau de l’association de fonctions logiques élémentaires, les compo-sants réalisant très exactement les fonctions nécessaires tout en optimisant les performances ou le coût/la surface de silicium utilisée.

Nous réalisons notre circuit de résolution sur une carteTerasic TR4, disposant d’un composant FPGA Stratix IVdu constructeurAltera. La gammeStratixest dédiée à la haute performance et disposant d’un grand nombre de portes logiques. Ceci nous permettra de ne pas être limité dans un premier temps en termes de ressources logiques disponibles, et nous permettra plus tard de tester toute une gamme de mises en œuvre, allant de la réalisation de taille minimale

(espace de silicium consommé) de moindre coût à une réalisation complètement déployée à parallélisme maximum pour des performances optimales.

Nous développons la solution en langageVHSIC Hardware Description Language (VHDL)sous QuartusPrime®d’Altera.

4.A.2 Stratégie de la mise en œuvre matérielle de la méthode de commande par allocation fondée sur l’utilisation de l’algorithme du simplexe

Nous proposons ici une sélection des choix importants que nous avons faire pour traiter cer-taines problématiques rencontrées lors de la conception du circuit de résolution. La stratégie générale est ensuite présentée dans son ensemble.

4.A.2.1 Choix stratégiques

Les travaux de mise en œuvre matérielle de notre méthode de commande ont nécessité de nombreuses réflexions et multiples choix stratégiques pour aboutir en temps limité à un prototype fonctionnel, démonstrateur des propriétés annoncées par l’analyse théorique et qui satisfait les objectifs ciblés. Nous en avons sélectionné quelque uns pour les discuter.

Amélioration de tableau, tableau sous forme réduite

Une idée naturelle pour la réalisation d’une version matérielle de l’algorithme du simplexe est de profiter de l’aspect itératif de l’algorithme : à chaque itération, l’objectif de l’algorithme est d’améliorer la fonction coût d’un tableau du simplexe. Un tableau du simplexe est une représentation de l’état courant duproblème d’optimisation linéaire (POL)à résoudre sous forme de tableau, dans lequel on retrouvera les coûts actuels des variables de décision, les indices des variables actuellement utilisées en tant que solutions basiques (sommet), la matrice de contrainte actuelle et la valeur des variables de base. Au cours d’une itération, le tableau est traité de bloc par bloc, et à la fin de l’opération de pivotage, le coût est normalement meilleur qu’auparavant. L’idée du tableau est aussi retrouvée dans d’autres travaux [BBCL06,GHS13,

Var14].

Aussi, dans l’algorithme du simplexe, l’ensemble des colonnes de la matrice des contraintes et correspondant aux variables dans la base des solutions courantes forment naturellement la matrice identité. Nous avons exploité cette particularité pour ne réaliser qu’une version réduite du tableau du simplexe, dans lequel cette matrice identité est prise en compte implicitement par le matériel. Ainsi, on gagne lors du transfert du tableau d’un bloc à l’autre un nombre de cycles d’horloge égal au carré du nombre de variables de base.

Current cost Reduced costs cR Updated constraint vector b Indices of current basic solutions iB

Updated constraint matrix of non-basic variables

AH

0 1 m m+1

1

n

Figure 4.1 – Illustration d’un tableau du simplexe sous forme réduite, sans les colonnes des variables de base dans la matrice des contraintes.

Première version de prototypage rapide

Objectifs ciblés Notre première version matérielle de la méthode d’allocation pour l’onduleur quatre bras deux niveaux a été réalisée en temps limitée, avec un apprentissage sur le tas des techniques de conception matérielle bas niveau. Les objectifs ciblés étaient principalement d’obtenir une idée du temps de calcul nécessaire à l’algorithme pour fournir des solutions de commande, d’évaluer la qualité des solutions calculées par un circuit matériel et surtout de valider la possibilité de réaliser un tel algorithme de commande pour les convertisseurs. L’optimisation du temps de calcul n’était dans un premier temps pas notre priorité absolue. Nous avons gardé à l’esprit de converger rapidement vers une solution fonctionnelle, stable, et assez efficace en pratique. Finalement, c’est le cas puisque nous avons atteint les performances de temps souhaitées qui étaient de fournir les solutions en moins de 100 µs.

Structure modulaire et en pipeline Nous sommes partis de l’idée des travaux de Bayliss et al., spécialistes de la conception matérielle algorithmique, mentionnée dans l’article de conférence

[BBCL06] en 2006, et des recommandations de conception par modularité dans [MIN11]. Nous

avons profité de l’existence d’étapes successives au sein d’une itération de l’algorithme du simplexe pour en concevoir une version pipelinée. Comme au moins l’équipe de Bayliss et al. présentent une version fondée sur cette idée, avec des résultats valides et présentant de bonnes performances, cela nous a donné une garantie de faisabilité technique. On trouve cependant dans [GHS13] une mention d’un circuit de résolution sans pipeline, pour le traitement d’un seul tableau, même si les opérations restent séquentielles, ce qui mériterait d’être étudié en perspective.

En temps normal, le pipelining introduit un délai de calcul supplémentaire, mais une fois ce délai passé, le débit sortant s’en retrouve quasiment multiplié par la taille de la pipeline. Ce n’est pas vraiment le fonctionnement souhaité ici. En prévision d’une future réalisation de notre méthode de commande bras par bras pour l’onduleur à condensateurs flottants, le principe est plutôt d’exploiter les blocs de calcul laissés libres lors du traitement d’un unique tableau par le circuit de résolution. Bayliss et al. utilisent ce principe de leur côté pour résoudre plusieursPOLissus de la relaxation d’un problème d’optimisation mixte en nombre entiers.

Parallélisme non maximal Dans notre version, beaucoup d’opérations (divisions, comparai-sons) sont également pipelinées au lieu d’être parallélisées. Ceci permet de n’avoir à instancier et à gérer qu’un nombre plus réduit de composants, ce qui rend la phase de conception plus simple pour le développeur non expert1et plus rapide. Soulignons que si la mise en œuvre ainsi réalisée aboutit aux performances souhaitées, alors nous pourrons valider avec beaucoup de garantie la capacité de l’algorithme à piloter desconvertisseurs statiques (CVS), puisque d’autres réalisations beaucoup plus optimisées pourront être déclinées de la première conception bien étudiée. Ainsi, un développement futur avec exploitation maximale du parallélisme inhérent aux étapes de l’algorithme du simplexe est envisagé pour l’amélioration des performances du solveur lors du traitement d’un seul tableau, sans pipeline.

D’autre part, nous avons pris en compte le parallélisme des opérations lorsqu’il était possible de le faire sans trop rallonger le temps de conception.

Calcul en virgule flottante à 32 bits Dans [BBCL06], la version matérielle de l’algorithme du simplexe présentée est réalisée en représentation à virgule fixe 18 bits. L’utilisation de la virgule fixe nécessite moins de cycles d’horloge par opération élémentaire qu’en virgule flottante. Cependant, deux points sont soulevés : la stabilité numérique de l’algorithme réalisé et l’originalité du test en virgule flottante. La représentation en virgule fixe a l’avantage d’offrir une précision de calcul constante, de consommer moins de temps de calcul et moins de ressources. Par contre, rappelons que la théorie des polyèdres sur laquelle repose lesPOL et l’algorithme du simplexe est valide pour des nombres en précision infinie. La précision de la virgule fixe doit être déterminée en amont de la phase de mise en œuvre matérielle pour assurer un minimum de stabilité numérique, tâche qui peut ne pas être simple à effectuer. De plus, aucune réalisation de l’algorithme du simplexe sur carteFPGAne semble avoir été proposée en virgule flottante. Pour ces raisons, nous utilisons une représentation en virgule flottantes à 32 bits pour tester une première mise en œuvre de l’algorithme du simplexe sur carteFPGAen virgule flottante et avec une précision très intéressante. Ceci nous permettra également d’évaluer le temps de calcul requis dans ce cas-là.

Anti-cyclage

Nous utilisons la règle d’anti-cyclage de Bland [Bla77], car elle est une des plus simples à réaliser et est efficace en pratique. La règle de l’ordre lexicographique promet de meilleures performances en termes d’amélioration du critère coût, mais est beaucoup plus lourde algo-rithmiquement, consomme un grand nombre d’opérations et nécessite un plus grand effort de synthèse.

Temps fini, boucles non prévues

Au cas où le circuit de résolution subirait le phénomène de cyclage malgré l’utilisation de la règle d’anti-cyclage de Bland, valable pour une précision théorique infinie, nous avons mis en place deuxwatchdogs, ou chiens de garde, circuits de sécurité, qui surveillent le nombre de cycles d’horloge passés et le nombre d’itérations effectuées, respectivement. Si le temps

de calcul est trop long ou si le nombre d’itérations devient trop grand (supérieurs à un seuil donné), alors les watchdogs sont activés et le circuit principal est réinitialisé. Ceci permet de forcer un mode de fonctionnement temps réel malgré une sous-optimalité des solutions de commande [MIN11].

Récupération des solutions

Pour récupérer les solutions de commande optimales, il faut consulter dans le tableau du simplexe les emplacements correspondant aux variables de commande qui sont les rapports cycliques de chaque bras. Les solutions sont récupérées lors de l’extraction du tableau optimal du circuit de résolution, case par case, par la lecture des indices des variables de base de la solution optimale. Pour récupérer aux plus vite les solutions de commande, nous avons fabriqué le tableau de manière à faire correspondre les variables de commande avec les indices de base les plus petits, le circuit matériel étant conçu pour toujours trier les lignes et colonnes du tableau dans l’ordre croissant des indices.

Gestion des bornes minimales et maximales

La gestion directe des bornes minimales et maximales éventuellement existantes pour les variables de décision est généralement possible dans beaucoup de solveurs codés en langage de haut niveau, sur PC. Il est également possible d’ajouter cette gestion lors de la conception du circuit matériel de résolution, mais cela ajoute une difficulté supplémentaire de synthèse. Considérant les contraintes de temps de conception limité, nous avons pris en compte ces bornes directement dans la matrice des contraintes, en rajoutant des lignes et des variables artificielles d’écart. En tant que perspective, nous pourrions prendre en compte ces bornes directement par le circuit de résolution, ce qui pourrait réduire plus ou moins sensiblement le temps de résolution, étant donné que la taille du tableau s’en trouverait réduite.

4.A.2.2 Structure générale du circuit de résolution

La structure générale du circuit est illustrée sur la fig.4.2.

L’interfaceMATLAB®que nous allons développer communiquera les tensions de référence et la configuration de la méthode d’allocation parJTAGen utilisant les procédures d’écriture dequartus_stpsur le maîtreJTAGde l’interface de communication au sein de la carte. Cette interface mettra à jour les données en entrée du circuit de résolution et assignera le signal d’exécution de l’algorithme, envoyé à un contrôleur général. Ce dernier est un contrôleur de type machine à états du circuit principal, et il envoie les ordres d’exécutions individuels aux blocs élémentaires du circuit de résolution en fonction des étapes de la résolution.

En premier, c’est le bloc de préparation du problème d’optimisation à résoudre qui est exécuté. Le problème est mis sous la forme de tableau du simplexe, c’est-à-dire que les données de coûts (réduits), les indices des variables choisies dans la base actuelle de solution, les données de la matrice de contrainte et du vecteur de contrainte sont disposés dans un tableau de forme bien définie, illustrée sur la fig.4.3page164. Chacun des blocs opérera sur une ou plusieurs

PRICE BLOCK FIND ENTERING VARIABLE RATIO BLOCK FIND LEAVING VARIABLE PWM ENTRANCE BLOCK INSERT TABLEAU IN SOLVER NO PIVOT BLOCK PERFORM LINEAR INVERSION OPT.? PREPARE BLOCK CONSTRUCT TABLEAU TO BE SOLVED GATING SIGNALS 4 GENERAL CONTROLLER - GRAFCET - WATCHDOG b a 1 2 3 DATA EXEC LAUNCH BLOCKS END OF COMP. EXIT BLOCK EXTRACT OPTIMAL TABLEAU + SOLUTIONS c SOLS PC MATLAB JTAG INTERFACE

COMMUNICATE WITH MATLAB

Figure 4.2 – Synoptique général du solveur pour le problème d’allocation.

parties du tableau pour mettre à jour le problème d’optimisation en fonction des nouvelles valeurs de références, de mesures et de paramètres en vue d’améliorer le coût total.

Une fois le tableau préparé, il est transféré en entrée du circuit itératif. À chaque itération, le bloc 1 va regarder s’il est possible d’améliorer le coût en changeant de sommet. Parmi toutes les arrêtes partant du sommet courant, il vérifie s’il en existe une qui va dans le sens de l’amélioration du critère coût (le coût réduit associé est négatif). Si on se déplace selon une arrête, cela correspond à l’entrée d’une variable hors-base dans la base des solutions. S’il n’en existe pas, alors le tableau actuel est optimal, et le contrôleur général ordonne l’extraction du tableau et la récupération des solutions optimales.

S’il existe un sommet meilleur, le bloc 2 va déterminer sur quelle distance il faut se déplacer suivant la nouvelle arrête pour rencontrer le prochain sommet. Si cette distance est infinie, alors le problème est en fait non borné, mais ce n’est pas notre cas, car la fonction coût est bornée par la valeur zéro, puisqu’elle correspond à une somme de termes en norme 1. Alors, si cette distance est finie, le déplacement suivant la nouvelle arrête et selon la distance ainsi calculée correspondra à la sortie d’une des variables de base de la base de solution courante. Le bloc 3 va ainsi mettre à jour la matrice et le vecteur de contrainte et les coûts (réduits) en réalisant une opération de pivot de Gauss, qui témoignera du changement de base de solution, donc du changement de sommet.

4.A.3 Blocs du circuit

Dans les sous-sections suivantes, nous donnons des détails plus techniques de la mise en œuvre matérielle des fonctionnalités de chacun des blocs et éléments constituant notre circuit de commande par allocation. Ces détails ne sont pas nécessairement essentiels pour la compréhension du fonctionnement général du circuit et pour les discussions que nous allons mener dans la section dédiée aux tests réels. Le lecteur non habitué peut donc survoler les prochaines sous-sections sans y consacrer une grande attention.

4.A.3.1 Contrôleur général

Le contrôleur général est un circuit que nous avons conçu pour gérer les différentes étapes et itérations de l’algorithme du simplexe. Il est responsable de l’envoi des commandes d’exécution de chaque bloc de l’algorithme. Il reçoit les signaux de fin de calcul de chaque bloc, et détermine quel bloc doit être exécuté après.

Gestion de l’entrée et de la sortie d’un POL dans ou depuis le circuit de résolution

C’est pour l’instant le contrôleur général qui reçoit le signal de disponibilité des données en

Documents relatifs