• Aucun résultat trouvé

La section précédente nous a permis de présenter une formulation originale de problèmes dyna- miques par une représentation récursive de ses cycles d’usage. L’intérêt de cette description particulière est d’aboutir, malgré la présence de périodicités complexes, à un système homo-

A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A A? A?? A?? C C C x0 x? 0 x??0 x1 x?1 x?? 1 x2 x? 2 x?? 2 A? A? A? A? A? A? A? A? A? A? A? A? A? C A? A? x(t) t

généisé et discrétisé, présentant des variations continues lors du passage d’un état au suivant. C’est cette caractéristique qui va nous permettre de réaliser des extrapolations de cycles. Pour décrire plus en détail cette méthode, reprenons le résultat d’homogénéisation d’un cycle donné par l’équation (3.3). Cette dernière s’apparente à un schéma d’intégration d’Euler classique, mais pour lequel la fonctionF (.) ne représente plus la dérivée pour un état et un temps donné, mais la variationmoyenne de cet état sur un intervalleT correspondant à la durée du cycle. De ce fait, un calcul exact consiste à évaluer de manière itérative cette fonction, en considérant comme valeur initiale du nouveau cycle, la valeur finale du précédent. Dans l’hypothèse où la variation d’un cycle au suivant ne subit pas de discontinuité importante, une évaluation exhaustive de tous ces états successifs n’est pas nécessairement utile si on tolère un certain niveau d’erreur dans la solution calculée. Nous nous sommes donc inspirés des approximations de solutions d’équations différentielles et plus particulièrement des méthodes à un pas de type Runge et Kutta. Ces méthodes sont basées sur une composition progressive de la solution finale, obtenue par itération. Une méthode d’ordre 2 va par exemple évaluer la fonction de dérivée en deux points de l’intervalle et approcher l’intégrale par une méthode de quadrature. De plus, ces méthodes sont en général utilisées avec un pas variable afin de contrôler de façon optimale l’erreur d’intégration. Il est donc assez courant de recourir à des méthodes ditesintégrées, qui utilisent de manière imbriquée deux schémas d’intégration ayant des ordres différents. L’erreur est alors calculée en utilisant la différence de résultat entre les deux estimations. Mais pour ces méthodes, la fonction évaluée fournit des valeurs locales de la dérivée. Or, dans notre formalisme, la dérivée est une valeur moyenne calculée sur un intervalle. Il est donc nécessaire d’adapter ces schémas pour les rendre compatibles avec une représentation basée sur des cycles. Pour illustrer ce travail, nous proposons de nous appuyer sur le cas le plus simple de méthode intégrée, qui consiste à imbriquer les méthodes de Euler (ordre 1) et de Heun (ordre 2). Considérons donc une fonctionf à intégrer sur un intervalle h. Dans le cas continu, cette méthode calcule dans un premier temps une solution d’ordre 1 selon un schéma classique d’Euler :

k1 = f (xn, tn) (3.8)

˜

xn+1 = xn+ h k1 (3.9)

Puis cette solution approchée est réutilisée comme valeur de référence pour calculer la dérivée à la fin de l’intervalle :

k2= f (˜xn+1, tn+ h) (3.10)

Finalement, la solution d’ordre 2 est calculée à partir de la moyenne de ces 2 pentesk1etk2, en même temps qu’une estimation de l’erreur :

xn+1 = xn+ h

2 (k1+ k2) (3.11)

εn+1 = ˜xn+1− xn+1 = h

Dans le cas d’une formulation sur cycles, le même principe peut être utilisé, mais en tenant compte cette fois que pour calculer la fonctionF , il a fallu avancer d’une période T et que l’extrapolation devra être composée d’un nombre entier de cycles. Nous proposons donc de noter m le nombre de cycles contenus dans l’intervalle et xn+m la valeur finale du vecteur d’état. Cette méthode modifiée est illustrée à la Figure 3.4.

Mise en équation, la formulation sur cycles du schéma d’intégration Heun-Euler s’écrit comme précédemment en deux étapes, mais légèrement modifiées. La première consiste toujours à calculer une période pour estimer la dérivée moyenne du cycle. Cette dérivée est alors extrapolée jusqu’au début du dernier cycle, qui est évalué en utilisant une solution approchée par la méthode d’Euler :

k1 = f (xn, tn) (3.13)

k2 = f (xn+ (m− 1) T k1, tn+m−1) (3.14)

Puisque le fait d’évaluer les pentesk1etk2nécessite d’avancer d’une période, ces calculs sont capitalisés pour estimer la solution d’ordre 2 et la solution approchée d’ordre 1, soit :

xn+m = xn+m T 2 (k1+ k2) (3.15) ˜ xn+m = xn+ T ((m− 1) k1+ k2) (3.16) εn+1 = T m− 2 2 (k2− k1) (3.17)

Maintenant que le solveur est adapté à une formulation sur cycle, il est nécessaire de mettre en place un mécanisme d’adaptation automatique du pas. Cette adaptation a pour but de minimiser l’effort de calcul tout en respectant la tolérance fixée par l ?utilisateur. Un certain nombre de

xn tn tn+m t xn+m ˜xn+m εn+m k1 tn+m−1 k2 tn+1 k1+ k2 2 extrapolation solution exacte F F T

Figure. 3.4 – Utilisation du principe de résolution de la méthode intégrée Heun-Euler pour l’extra- polation de cycles.

méthodes existent. La plus simple consiste à multiplier ou diviser successivement le pas d’un certain facteur, en fonction de l’erreur estimée. Lorsque ce facteur est de 2, on parle de méthode de doublement du pas. Cette méthode très robuste reste peu efficace lors de variations rapides du vecteur d’état. Une méthode plus couramment utilisée s’appuie sur une adaptation variable du pas, en fonction de l’écart entre la tolérance désirée et la valeur de l’erreur :

h← 0.9 h  tolérance ε  1 1+o (3.18) oùo est l’ordre de la méthode d’extrapolation. C’est finalement cette dernière que nous avons retenu ici, en procédant cette fois encore à son adaptation sur cycles, en remplaçant dans un second temps le pas h par un nombre de cycles entiers m. Il est à noter que des méthodes plus évoluées existent, mais leur application à notre problème n’a pas révélé d’amélioration notableHmam et al.(2016b).

Il est intéressant à présent d’analyser ces nouvelles formulations en les comparants à leur version continue classique. La première différence réside ici dans la nécessité de calculer deux périodes de duréeT sur la longueur de l’intervalle. L’extrapolation est donc réduite de 2 pas, qui est aussi la taille minimale de l’intervalle entre deux évaluations. Le cas où un seul cycle doit être calculé est donné par le schéma d’Euler de l’équation (3.3). Une autre différence avec un solveur continu est le choix de l’intervalle, qui en plus de nécessiter un nombre entier de cycles, doit parfois respecter des contraintes plus complexes. Par exemple, la méthode de Ralston, qui est la méthode d’ordre 2 minimisant l’erreur locale, nécessite dans sa forme continue d’évaluer la fonction aux 3/4 du pas d’intégration. Dans sa formulation sur cycles, cette méthode impose de laisser 3 fois plus de pas d’extrapolation à gauche qu’à droite, sans compter les 2 cycles évalués. Tous calculs faits, nous arrivons à la contrainte de4 p + 1 cycles par intervalle, avec p∈ N∗. Le choix de la méthode conditionne nettement cette contrainte et nous pouvons ainsi être amenés à préférer la méthode de Heun qui a pour contraintep + 1 cycles par intervalle, ou encore la méthode du point milieu avec2 p cycles par intervalle. Une dernière différence concerne l’estimation de l’erreur qui peut être nulle pour les valeurs les plus faibles d’intervalle. Pour les méthodes d’ordre 2, un intervalle constitué de deux cycles consécutifs ne demande ainsi aucune extrapolation, ce qui a pour conséquence d’annuler l’erreur. En soi, ce résultat n’enlève rien à l’intérêt d’une formulation sur cycles. Le réel problème concerne en fait le mécanisme d’adaptation du pas, qui s’appuie sur le rapport entre l’erreur estimée et la tolérance maximale accordée. Or, si l’erreur est nulle, cette adaptation automatique ne fonctionne plus et fait tendre le pas d’intégration vers l’infini. Pour cette raison, ces méthodes de contrôle du pas doivent aussi être adaptées. Sans avoir trouvé de reformulation élégante à ce problème, nous avons proposé plusieurs moyens de contournement. Par exemple, un biais constant et suffisamment faible peut être ajouté à l’erreur estimée. Une autre solution consiste à calculer l’erreur pour un intervalle de 2 cycles comme s’il y avait une extrapolation d’un cycle, ce qui revient à considérer m = 3.

Nous avons étendu ce travail d’adaptation de solveurs afin de disposer d’une palette d’outils suffisante pour répondre de façon adaptée à différents problèmes. Nous avons ainsi généralisé

la réécriture des méthodes intégrées d’ordre 2, ces dernières étant très efficaces sur les systèmes ayant des écarts de dynamique faible et des variations assez douces. Pour les problèmes nécessi- tant des tolérances plus faibles, nous avons adapté un schéma intégré utilisant une composition de Runge-Kutta d’ordre 3 et du point milieu. Enfin, dans les cas où le nombre de cycles successifs à calculer est très important, les schémas explicites ne sont plus suffisants et une méthode de résolution implicite doit être utilisée. Nous avons donc adapté la méthode implicite et intégrée de Rosenbrock d’ordres 2 et 3, qui est l’équivalent de la fonctionode23s développée dans la suite ODE de Matlab (Shampine and Reichelt,1997). Ce solveur sera notamment utilisé pour passer du cycle de la MLI à un trajet complet d’une demi-heure, le rapport entre les deux échelles de temps étant particulièrement élevé.