Dépannage de la simulation
En un coup d'œil
- Apprenez à interpréter les avertissements et les erreurs de simulation, et à comprendre ce qu’ils révèlent sur les causes d’un échec.
- Découvrez une liste de vérification étape par étape pour résoudre les problèmes de convergence, du contrôle du câblage et de la mise à la masse aux réglages avancés des paramètres d’analyse.
- Consultez des conseils de dépannage ciblés pour les analyses du point de fonctionnement, par balayage DC et transitoires, afin de choisir la solution adaptée au type de simulation qui échoue.
Lorsqu’un circuit ne peut pas être simulé, vous devez déterminer si le problème provient du circuit ou du processus de simulation. Suivez les informations de cette section de la documentation de référence et examinez les points proposés, en les essayant un par un.
Parfois, pendant une simulation, un message signale des erreurs ou des avertissements. Ces messages sont répertoriés dans le panneau Messages .
- Warning Messages – les messages d’avertissement ne provoquent pas l’arrêt de la simulation. Ils fournissent généralement des informations sur les modifications que SPICE a dû apporter au circuit pour mener la simulation à bien. Il peut s’agir de paramètres non valides ou manquants, etc.
- Error Messages – les messages d’erreur fournissent des informations sur les problèmes que le simulateur n’a pas pu résoudre et qui ont entraîné l’arrêt du processus de simulation. Ils indiquent que les résultats de simulation n’ont pas pu être générés. Les erreurs doivent donc être corrigées avant de pouvoir analyser le circuit.
Dépannage des échecs d’analyse de simulation
La convergence est l’un des défis auxquels sont confrontés tous les simulateurs. Que signifie exactement le terme convergence ? Comme la plupart des simulateurs, le moteur SPICE d’Altium Designer utilise un processus itératif qui consiste à résoudre à plusieurs reprises les équations représentant votre circuit, afin de déterminer les tensions et les courants au repos. S’il ne parvient pas à déterminer ces tensions et ces courants (s’il ne converge pas), il ne peut pas effectuer l’analyse du circuit.
SPICE utilise des systèmes d’équations linéaires, exprimés 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 ensemble 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 effectue plusieurs itérations des équations linéaires pour tenir compte des non-linéarités. SPICE commence par estimer les tensions des nœuds, puis calcule les courants de branche à partir des conductances du circuit. Il utilise ensuite ces courants de branche pour recalculer les tensions des nœuds, et le cycle se répète. Ce cycle se poursuit jusqu’à ce que toutes les tensions des nœuds et tous les courants de branche respectent les tolérances spécifiées (convergence).
Toutefois, si les tensions ou les courants ne convergent pas dans le nombre d’itérations spécifié, SPICE génère 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 parvient pas à converger vers une solution avec le pas de temps spécifié, ce dernier est automatiquement réduit et le cycle se répète. Si le pas de temps devient trop petit, SPICE affiche un message Timestep too small et interrompt la simulation.
Dépannage général des problèmes de convergence de simulation
Lorsqu’une analyse de simulation échoue, le problème le plus fréquent 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 des problèmes de convergence
- Lorsque vous rencontrez un problème de convergence, commencez par désactiver toutes les analyses à l’exception de l’analyse du point de fonctionnement.
- Consultez le panneau Messages pour repérer les erreurs et avertissements liés à la simulation.
- Assurez-vous que le circuit est correctement câblé. Les nœuds non connectés et les composants isolés 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 en courant continu vers cette masse. Les transformateurs et les condensateurs font partie des composants susceptibles d’isoler un nœud. Les sources de tension sont considérées comme des courts-circuits en courant continu, tandis que les sources de courant sont considérées comme des circuits ouverts en courant continu.
- Vérifiez 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 et 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 saisir1.0uF, et non1.0 uF. - Assurez-vous que tous les composants et toutes les sources sont réglés sur les valeurs appropriées.
- Assurez-vous que le gain de chaque source dépendante est correctement défini.
- Supprimez temporairement les condensateurs ou les sources de courant en série, puis relancez la simulation.
- Supprimez temporairement les inductances ou les sources de tension en parallèle, 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 résistance, ajoutée entre chaque nœud du circuit et la masse, aide à corriger les problèmes tels que les erreurs de « matrice singulière ». En règle générale, RSHUNT doit être réglé sur une résistance très élevée, telle que1e12. - Ajoutez des composants .NS (Nodeset) pour définir les tensions des nœuds. Si l’estimation initiale de la tension d’un nœud est très éloignée de la valeur réelle, le composant Nodeset peut être utilisé pour prédéfinir une tension de départ utilisée lors d’une passe préliminaire de l’analyse du point de fonctionnement. Configurez le paramètre Initial Voltage dans chaque composant Nodeset placé. Un composant Nodeset peut être placé à partir de la bibliothèque Simulation Generic Components.
- Si le composant Nodeset n’améliore pas la convergence, essayez de définir les conditions initiales en plaçant des composants .IC. Dans ce cas, les tensions des nœuds sont maintenues aux valeurs spécifiées pendant l’analyse du point de fonctionnement, puis libérées pendant l’analyse transitoire. Les composants de condition initiale peuvent être placés à partir des mêmes bibliothèques qu’un composant Nodeset ; le paramètre de tension initiale 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 composants .IC (ou le paramètre IC des composants). Lorsque cette option est activée, 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(dans l’onglet Advanced de la boîte de dialogue Advanced Analysis Settings) d’un facteur de10. -
Définissez la condition initiale (condition de départ) des composants à semi-conducteurs, en particulier des diodes, sur
OFF. Cela peut aider à résoudre les problèmes de convergence numérique en ignorant la diode (ou le composant à semi-conducteur) lors de la première itération, ce qui favorise la convergence.
Dépannage de l’analyse par balayage continu
Lorsque vous rencontrez un problème avec une analyse par balayage continu, commencez par essayer les étapes de dépannage des problèmes de convergence indiquées ci-dessus. Si les problèmes persistent, essayez les mesures suivantes :
- Modifiez la valeur du paramètre Step dans la section Analysis Setup & Run de Simulation Dashboard. Si le modèle d’un composant présente des discontinuités (par exemple entre ses régions linéaire et de saturation), l’augmentation du pas peut permettre à la simulation de franchir la discontinuité. À l’inverse, la réduction du pas permet à la simulation de traiter les discontinuités dues aux transitions rapides de tension.
- N’utilisez pas l’analyse par balayage continu. Certains problèmes (comme l’hystérésis) ne peuvent pas être résolus par une analyse en courant continu. Dans ce cas, il est plus efficace d’utiliser l’analyse transitoire et de faire varier progressivement les valeurs des sources d’alimentation concernées.
Dépannage de l’analyse transitoire
Si vous rencontrez un problème lors d’une analyse transitoire, essayez d’abord les étapes de dépannage des problèmes de convergence indiquées ci-dessus. Si les problèmes persistent, essayez les solutions suivantes.
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) :
-
Réglez le paramètre
RELTOLsur0.01. En augmentant la tolérance par rapport à sa valeur par défaut de0.001(précision de 0,1 %), vous réduirez le nombre d’itérations nécessaires pour converger vers une solution et accélérerez considérablement la simulation. -
Augmentez la valeur du paramètre
ITL4à100. Cela permettra à l’analyse transitoire d’effectuer davantage d’itérations à chaque pas de temps avant d’abandonner. L’augmentation de cette valeur peut aider à éliminer les erreurstimestep too smallet à améliorer à la fois la convergence et la vitesse de simulation. -
Réduisez la précision en augmentant les valeurs de
ABSTOLet deVNTOL, si les niveaux de courant et de tension le permettent. Votre circuit ne nécessite pas forcément des résolutions aussi fines que 1 µV ou 1 pA. Vous devez toutefois conserver une résolution au moins dix fois inférieure aux plus faibles niveaux de tension ou de courant attendus dans votre circuit. - Choisissez l’une des méthodes Gear pour Integration Method. L’intégration de Gear nécessite un temps de simulation plus long, mais elle est généralement plus stable que l’intégration trapézoïdale. Elle peut être particulièrement utile pour les circuits qui oscillent ou comportent des boucles de rétroaction.
Autres pistes à essayer :
- Modélisez votre circuit de manière réaliste. Ajoutez des éléments parasites réalistes, en particulier des capacités parasites et de jonction. Utilisez des circuits d’amortissement RC aux bornes des diodes. Remplacez les modèles de composants par des sous-circuits, en particulier pour les composants RF et de puissance.
- Augmentez les temps de montée et de 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.