Dépannage de la simulation
Lorsqu’un circuit ne se simule pas, vous devez déterminer si le problème vient du circuit ou du processus de simulation. Suivez les informations contenues dans cette section de référence et parcourez les points suggérés, en les essayant un par un.
Il arrive que, pendant une simulation, un message s’affiche pour signaler des erreurs ou des avertissements. Ces messages sont répertoriés dans le panneau Messages .
- Warning Messages – les messages d’avertissement ne sont pas fatals pour la simulation. Ils fournissent généralement des informations sur les modifications que SPICE a dû apporter au circuit afin de terminer la simulation. Cela inclut des paramètres invalides ou manquants, etc.
- Error Messages – les messages d’erreur fournissent des informations sur des problèmes que le simulateur n’a pas pu résoudre et qui ont été fatals au processus de simulation. Les messages d’erreur indiquent que les résultats de simulation n’ont pas pu être générés ; ils doivent donc être corrigés avant que vous puissiez analyser le circuit.
Dépannage des échecs d’analyse de simulation
L’un des défis de tous les simulateurs est la convergence. Que signifie exactement le terme convergence ? Comme la plupart des simulateurs, le moteur SPICE d’Altium Designer utilise un processus itératif consistant à résoudre de manière répétée les équations qui représentent votre circuit afin de trouver les tensions et courants de repos du circuit. S’il ne parvient pas à trouver ces tensions et courants (échec de convergence), il ne pourra pas effectuer l’analyse du circuit.
SPICE utilise des équations linéaires simultanées, exprimées sous forme matricielle, pour déterminer le point de fonctionnement (tensions et courants continus) d’un circuit à chaque étape de la simulation. Le circuit est réduit à un tableau de conductances qui sont placées dans la matrice pour former les équations (G * V = I). Lorsqu’un circuit comprend des éléments non linéaires, SPICE utilise plusieurs itérations des équations linéaires pour prendre en compte ces non-linéarités. SPICE effectue une estimation initiale des tensions de nœud, puis calcule les courants de branche en fonction des conductances du circuit. SPICE utilise ensuite les courants de branche pour recalculer les tensions de nœud, et le cycle se répète. Ce cycle se poursuit jusqu’à ce que toutes les tensions de nœud et tous les courants de branche soient dans les tolérances spécifiées (convergent).
Cependant, si les tensions ou les courants ne convergent pas dans un nombre spécifié d’itérations, SPICE produit des messages d’erreur (tels que singular matrix, Gmin stepping failed, source stepping failed ou iteration limit reached) et interrompt la simulation. SPICE utilise les résultats de chaque étape de simulation comme estimations initiales pour l’étape suivante. Si vous effectuez une analyse transitoire (c’est-à-dire que le temps progresse par pas) et que SPICE ne peut pas converger vers une solution avec le pas de temps spécifié, le pas de temps est automatiquement réduit et le cycle est répété. Si le pas de temps est trop réduit, SPICE affiche un message Timestep too small et interrompt la simulation.
Dépannage général de la convergence en simulation
Lorsqu’une analyse de simulation échoue, le problème le plus courant est l’incapacité du circuit à converger vers un point de fonctionnement cohérent. Utilisez les techniques suivantes pour résoudre les problèmes de convergence.
Étapes de dépannage de la convergence
- Lorsque vous avez un problème de convergence, désactivez d’abord toutes les analyses sauf l’analyse du point de fonctionnement.
- Consultez le panneau Messages pour repérer toute erreur ou tout avertissement lié à la simulation.
- Assurez-vous que le circuit est correctement câblé. Les nœuds flottants et les composants parasites ne sont pas autorisés.
- Assurez-vous que le circuit possède un nœud de masse et que chaque nœud du circuit dispose d’un chemin DC vers cette masse. Les composants pouvant isoler un nœud incluent les transformateurs et les condensateurs. Les sources de tension sont considérées comme des courts-circuits DC, les sources de courant comme des circuits ouverts DC.
- Assurez-vous que les zéros n’ont pas été confondus avec la lettre O lors de la saisie des paramètres de simulation.
-
Assurez-vous que les multiplicateurs SPICE appropriés ont été spécifiés (
MEGau lieu deMpour1e6) pour toutes les valeurs de composants ou tous les paramètres de simulation. Les multiplicateurs ne sont pas sensibles à la casse. De plus, les espaces entre les valeurs et les multiplicateurs ne sont pas autorisés. Par exemple, il faut écrire1.0uF, et non1.0 uF. - Assurez-vous que tous les dispositifs et toutes les sources sont définis avec leurs valeurs correctes.
- Assurez-vous que le gain de toute source dépendante est correctement défini.
- Éliminez temporairement les condensateurs en série ou les sources de courant, puis relancez la simulation.
- Éliminez temporairement les inductances en parallèle ou les sources de tension, puis relancez la simulation.
-
Dans l’onglet Advanced de la boîte de dialogue Advanced Analysis Settings (accessible en cliquant sur Settings dans la zone Analysis Setup & Run du panneau Simulation Dashboard), augmentez la valeur du paramètre
ITL1à300. Cela permettra à l’analyse du point de fonctionnement d’effectuer davantage d’itérations avant d’abandonner. -
Dans l’onglet Advanced de la boîte de dialogue Advanced Analysis Settings, définissez la valeur de
RSHUNT1. Cette valeur de résistance, ajoutée entre chaque nœud du circuit et la masse, aide à corriger des problèmes tels que les erreurs de « matrice singulière ». En règle générale, la valeur RSHUNT doit être définie sur une résistance très élevée, telle que1e12. - Ajoutez des dispositifs .NS (Nodeset) pour définir les tensions de nœud. Si l’estimation initiale d’une tension de nœud est très éloignée de la réalité, le dispositif Nodeset peut être utilisé pour prédéfinir une tension de départ utilisée lors d’un passage préliminaire de l’analyse du point de fonctionnement. Configurez le paramètre Initial Voltage dans chaque dispositif Nodeset que vous placez. Un Nodeset peut être placé à partir de la bibliothèque Simulation Generic Components.
- Si le dispositif Nodeset n’aide pas à la convergence, essayez de définir les conditions initiales en plaçant des dispositifs .IC. Dans ce cas, les tensions de nœud sont maintenues aux valeurs spécifiées pendant l’analyse du point de fonctionnement, puis libérées pendant l’analyse transitoire. Les dispositifs Initial Condition peuvent être placés à partir des mêmes bibliothèques qu’un dispositif Nodeset ; le paramètre Initial Voltage doit être configuré de la même manière.
- Activez l’option Use Initial Conditions dans les paramètres Transient de la zone Analysis Setup & Run du panneau Simulation Dashboard . Cette option fonctionne conjointement avec les dispositifs .IC (ou le paramètre IC des composants). En définissant cette option, l’analyse du point de fonctionnement n’est pas effectuée et les tensions spécifiées sont utilisées comme conditions initiales pour l’analyse transitoire.
-
Spécifiez les paramètres de résistance série de vos modèles et augmentez l’option
GMIN(onglet Advanced de la boîte de dialogue Advanced Analysis Settings) d’un facteur10. -
Spécifiez la condition initiale (Starting Condition) des dispositifs semi-conducteurs, en particulier des diodes, comme
OFF. Cela peut aider à résoudre les problèmes de convergence numérique en ignorant la diode (ou le dispositif semi-conducteur) lors de la première itération, ce qui améliore la convergence.
Dépannage de l’analyse DC Sweep
Lorsque vous rencontrez un problème avec une analyse DC Sweep, essayez d’abord les étapes ci-dessus dans la procédure de dépannage de la convergence. Si vous rencontrez toujours des problèmes, essayez ce qui suit :
- Modifiez la valeur du paramètre Step dans la section Analysis Setup & Run de Simulation Dashboard. Si des discontinuités existent dans un modèle de dispositif (par exemple entre les régions linéaire et de saturation du modèle), augmenter la taille du pas peut permettre à la simulation de franchir la discontinuité. À l’inverse, réduire la taille des pas permettra à la simulation de résoudre des discontinuités rapides de transition de tension.
- N’utilisez pas l’analyse DC Sweep. Certains problèmes (comme l’hystérésis) ne peuvent pas être résolus par une analyse DC. Dans de tels cas, il est plus efficace d’utiliser l’analyse transitoire et de faire varier progressivement les valeurs des sources d’alimentation appropriées.
Dépannage de l’analyse transitoire
Lorsque vous rencontrez un problème avec une analyse transitoire, essayez d’abord les étapes ci-dessus dans la procédure de dépannage de la convergence. Si vous rencontrez toujours des problèmes, essayez ce qui suit.
Dans l’onglet Advanced de la boîte de dialogue Advanced Analysis Settings (accessible en cliquant sur Settings dans la zone Analysis Setup & Run du panneau Simulation Dashboard) :
-
Définissez le paramètre
RELTOLsur0.01. En augmentant la tolérance par rapport à sa valeur par défaut de0.001(précision de 0,1 %), moins d’itérations seront nécessaires pour converger vers une solution et la simulation se terminera beaucoup plus rapidement. -
Augmentez la valeur du paramètre
ITL4à100. Cela permettra à l’analyse transitoire d’effectuer davantage d’itérations pour chaque pas de temps avant d’abandonner. Augmenter cette valeur peut aider à éliminer les erreurstimestep too small, améliorant à la fois la convergence et la vitesse de simulation. -
Réduisez la précision en augmentant les valeurs de
ABSTOLetVNTOL, si les niveaux de courant/tension le permettent. Votre circuit particulier ne nécessite peut-être pas une résolution jusqu’à 1uV ou 1pA. Vous devez toutefois prévoir au moins un ordre de grandeur en dessous des niveaux de tension ou de courant les plus faibles attendus dans votre circuit. - Remplacez Integration Method par l’une des méthodes Gear. L’intégration Gear nécessite un temps de simulation plus long, mais elle est généralement plus stable que la méthode trapézoïdale. L’intégration Gear peut être particulièrement utile avec des circuits qui oscillent ou comportent des chemins de rétroaction.
Autres pistes à essayer :
- Modélisez votre circuit de manière réaliste. Ajoutez des parasites réalistes, en particulier la capacité parasite/de jonction. Utilisez des amortisseurs RC autour des diodes. Remplacez les modèles de dispositifs par des sous-circuits, en particulier pour les dispositifs RF et de puissance.
- Augmentez les temps de montée/descente de toutes les sources d’impulsions périodiques de votre circuit. Même les meilleurs générateurs d’impulsions ne peuvent pas commuter instantanément.