Résolution d’un problème numérique sur un composant fortement non-linéaire dans LTspice

Comme dans le post précédent, nous utilisons un « Voltage Controlled Switch » pour charger un condensateur, puis ouvrir le circuit. Nous allons prendre cet exemple pour illustrer un problème de simulation avec un composant fortement non linéaire.

Voici le circuit:

Le schéma LTspice est disponible ici

Nous avons volontairement choisi des valeurs de Ron très petite et Roff très grande.

Ci-dessous, avant t=1s, le circuit est fermé (Ron=0.0001 Ω), car la tension du sw (en rouge) est supérieure à 1V. La capa est chargée. A t=1s exactement, la résistance du switch passe brutalement de Ron=0.0001 Ω à Roff = 1M Ω. Le rapport Roff/Ron est très grand (1e+10).

La tension aux bornes du condensateur (en vert) chute lorsque que le commutateur passe de Ron à Roff, ce qui n’est pas logique.

C’est un problème de simulation. Le comportement du switch est instantané donc fortement non linéaire (voir tolerance on errors, en Anglais).

Si une large gamme de résistance ON à OFF doit être utilisée dans les interrupteurs (ROFF/RON >1e;+12), alors la tolérance sur les erreurs permises pendant l’analyse des transitoires doit être réduite en utilisant la ligne de contrôle .OPTIONS et en spécifiant que TRTOL est inférieur à la valeur par défaut de 7.0. Lorsque des interrupteurs sont placés autour des condensateurs, l’option CHGTOL doit également être réduite. Les valeurs suggérées pour ces deux options sont respectivement 1.0 et 1e-16. Ces changements incitent SPICE3 à être plus prudent autour des points de commutation afin qu’aucune erreur ne soit commise en raison de la modification rapide du circuit.

La solution consiste à ajouter la directive « .options trtol=0.001 » dans le schéma LTspice :

On peut aussi changer dans le « control Panel » -> « Spice », la valeur de TrTol de 1 à 0.001. C’est une solution « moins propre ».

Nous lançons la simulation :

Miracle, les choses s’arrangent!

En fait, je n’ai pas une compréhension réelle des paramètres de simulation. Je suis arrivé à cette solution grâce à la page web sus-citée et en cherchant « la bonne valeur » de Trtol (et ChgTol) en tâtonnant.

Et voilà!

Laisser un commentaire