Les bases de Monte Carlo dans SPICE : Théorie et Démonstration

Zachariah Peterson
|  Créé: Avril 14, 2022  |  Mise à jour: Septembre 2, 2024
Monte Carlo dans SPICE

Chaque fois que vous placez un composant sur votre PCB, c'est presque comme si vous jouiez. Tous les composants ont des tolérances, et certaines de ces tolérances sont très précises (les résistances, par exemple), mais d'autres composants peuvent avoir des tolérances très larges sur leurs valeurs nominales (par exemple, les inductances bobinées ou les ferrites). Dans le cas où les tolérances de ces composants deviennent trop importantes, comment pouvez-vous prédire comment ces tolérances affecteront vos circuits ?

Alors que vous pourriez calculer les variations autour des valeurs électriques nominales (tension, courant ou puissance) à la main, effectuer ces calculs manuellement est très chronophage, surtout dans les grands circuits. Cependant, les simulateurs SPICE ont emprunté un type de simulation très utile de la théorie des probabilités pour vous aider à répondre à ces questions. Ce type de simulation est connu sous le nom de Monte Carlo, et vous pouvez maintenant effectuer cette simulation avec le package SPICE dans Altium Designer.

Dans cet article, je vais fournir un aperçu de la théorie impliquée dans la compréhension et la construction de simulations de Monte Carlo, puis je montrerai quelques résultats d'exemple pour un circuit régulateur de puissance et comment les résultats sont affectés par les tolérances. Les simulations de Monte Carlo génèrent beaucoup de données que vous pouvez utiliser pour prendre des statistiques sur le fonctionnement de votre circuit, et cela vous donne une bonne idée de si votre produit est très susceptible de fonctionner selon vos spécifications en raison des tolérances sur les valeurs des composants.

Monte Carlo dans les Simulations SPICE

Les simulations de Monte Carlo fonctionnent sur un processus simple : générer aléatoirement un ensemble de nombres, puis utiliser ces nombres aléatoires dans un modèle mathématique pour calculer quelque chose d'utile. Lorsqu'une simulation de Monte Carlo est utilisée dans SPICE, la simulation génère les valeurs des composants de votre circuit de manière aléatoire en utilisant les tolérances que vous définissez. Elle utilise ensuite ces valeurs de composants générées aléatoirement pour exécuter une simulation SPICE standard. Ce processus est répété plusieurs fois (parfois des centaines de fois) pour vous donner un ensemble de données décrivant comment le comportement de votre circuit change en raison des tolérances des composants.

Les packages SPICE implémentent les simulations de Monte Carlo à travers un processus simple. Cela implique la génération de nombres aléatoires et le calcul de la tension et du courant dans l'algorithme SPICE standard, suivi de l'affichage des résultats dans un tableau ou un graphique :

  1. Sélectionnez les composants que vous souhaitez soumettre à des variations aléatoires, et définissez la tolérance sur le composant.
  2. Choisissez une distribution pour les tolérances des composants (la Gaussienne est la plus couramment utilisée) et le nombre de simulations à exécuter.
  3. Le simulateur SPICE génère des valeurs de composants aléatoires en utilisant la valeur nominale définie dans le schéma et la tolérance/distribution définie à l'étape 2.
  4. Le simulateur SPICE calcule la tension/le courant/la puissance cibles à chaque point du circuit en utilisant les valeurs des composants aléatoires de l'étape 3.
  5. Les étapes 3 et 4 sont répétées jusqu'à atteindre le nombre souhaité de simulations.
  6. Les résultats de l'étape 5 sont compilés dans un graphique ou un tableau pour une inspection ou une analyse plus approfondie.

Exemple : Simulation de Monte Carlo d'un régulateur de tension

Dans l'exemple suivant, j'ai utilisé le circuit de convertisseur abaisseur illustré ci-dessous. Ce circuit utilise une inductance relativement grande dans la section principale (L1), suivie d'un filtre L en sortie pour réduire davantage le bruit de commutation. Le condensateur de sortie possède une résistance de snubber pour aider à réduire l'intensité de la réponse transitoire et lisser la tension de sortie.

Monte Carlo SPICE buck converter
Circuit de convertisseur Buck que j'utiliserai dans cet exemple de simulation.

Ce circuit est conçu pour réduire la tension d'entrée de 25 V à environ 6,75 V. Dans ma simulation, je vais permettre aux valeurs des inductances de varier jusqu'à 30 %, et je réaliserai 15 essais. Cette grande variation pourrait être trouvée dans certains inducteurs bobinés et ferrites, et utiliser une telle variation importante peut vous aider à voir quelles pourraient être les valeurs extrêmes de l'ondulation et du dépassement.

L'autre raison pour laquelle l'inducteur est le composant varié dans ce cas est qu'il est un déterminant majeur de l'ondulation de sortie lorsque le convertisseur fonctionne en mode de conduction continue. Nous pourrions même aller plus loin et examiner le courant de l'inducteur lui-même pour voir à quel point le courant de l'inducteur se rapproche de la conduction continue si nous avions vraiment besoin de vérifier le pire comportement électrique.

Résultats

Des premiers résultats montrant la réponse transitoire avec des variations de 30 % dans les valeurs des composants sont présentés ci-dessous. Depuis cette fenêtre, nous constatons que le convertisseur présente déjà un dépassement variant de 8,37 V à 8,56 V, selon les valeurs des inductances. Les valeurs pour le contour inférieur (en vert, L1 = 91,9 uH, L2 = 6,16 uH) et le contour supérieur (en violet, L1 = 122uH, L2 = 7,64 uH) sont marquées sur le graphique ci-dessous.

Monte Carlo SPICE simulation
Résultats d'analyse transitoire pour notre convertisseur de buck généré par Monte Carlo dans SPICE.

Chaque courbe correspond à une paire de valeurs d'inductance générées aléatoirement. À partir des résultats, nous pouvons clairement voir les effets des variations dans l'inductance :

  1. Il y a une certaine variation dans le temps de montée, le dépassement et la réponse transitoire lorsque le régulateur s'active.
  2. Chaque valeur d'inductance possible produit de très petits changements dans l'ondulation sur la forme d'onde de tension de sortie.

Le fait que l'ondulation de sortie reste si faible est encourageant ; cela signifie que nous pouvons compter sur cette conception pour produire une ondulation constante en supposant de petites variations dans tous les autres paramètres.

Pourquoi le Changement dans l'Ondulation est-il Si Faible ?

Sans regarder l'équation du bruit de sortie en fonction de l'inductance de sortie, il est naturel de supposer qu'un changement de l'inductance de +/- 30% produirait des variations également importantes dans l'inductance de sortie. Cependant, si nous examinons l'équation de l'ondulation de la forme d'onde de tension sur le courant de sortie pour un convertisseur abaisseur fonctionnant en mode de conduction continu, nous pouvons voir pourquoi ce n'est pas le cas :

Monte Carlo SPICE
Onde de courant de sortie pour un convertisseur de dollars.

Comme la valeur de l'inductance est au dénominateur, l'effet de ces variations est réduit. Vous pouvez voir cela en prenant une perturbation autour des valeurs nominales de l'inducteur et en regardant comment la sensibilité du bruit est proportionnelle à toute variation dans les inductances :

Monte Carlo SPICE
Variation du courant d'onde de sortie pour notre tolérance de 30% sur les inducteurs. Nous pouvons voir que l'impact de ces variations est plus faible lorsque l'inducteur est plus grand.

L'impact de ces variations est réduit par la valeur de l'inducteur. En d'autres termes, une tolérance de 30% pour un gros inducteur créera un changement beaucoup plus faible dans le bruit de sortie que la même tolérance de 30% sur un petit inducteur. Ce comportement est typique lorsque la relation entre une certaine valeur électrique (le courant dans ce cas) est liée de manière non linéaire à la valeur du composant en question.

En outre, la fréquence de coupure à -3 dB dans le filtre de sortie (L2 + C2) est déjà inférieure à la fréquence de modulation PWM qui module Q1. La coupure à -3 dB dans cette section de filtre est nominalement de 41,1 kHz, tandis que la fréquence de l'ondulation correspond à la fréquence PWM de 100 kHz. L'ondulation sera déjà significativement filtrée, donc les variations résultantes dans la fréquence de coupure n'ont pas tant d'impact sur l'ondulation de sortie.

Analyse Statistique

Si vous envisagez de réaliser une analyse de Monte Carlo, vous devrez peut-être effectuer une analyse statistique pour vraiment comprendre les limites du comportement de votre circuit en raison de variations aléatoires dans les valeurs des composants. Dans le graphique ci-dessous, j'ai pris mes résultats d'analyse transitoire ci-dessus et extrait la tension maximale qui se produit pendant la phase de mise sous tension en raison du dépassement. J'ai calculé la moyenne et l'écart type pour quantifier les effets des variations dans les valeurs d'inductance.

Pour exporter vos résultats transitoires en format CSV ou autre format de données, utilisez la commande Fichier → Exporter → Tracé depuis le menu principal dans Altium Designer. Vous pouvez ensuite importer vos données dans Excel, MATLAB, Mathematica ou tout autre programme d'analyse de données.

Monte Carlo SPICE statistics
Moyenne et écart-type de la tension de surpression déterminée à partir des réponses transitoires.

Si nous construisons un intervalle de confiance en utilisant nos données collectées et les valeurs statistiques ci-dessus, 95 % de ces circuits présenteront un dépassement de tension variant de 8,375 V à 8,605 V. Si nous souhaitions effectuer une analyse plus approfondie, comme une analyse du pire cas, nous pourrions utiliser l'une de ces valeurs extrêmes pour comprendre le comportement du circuit.

Évaluation de la fiabilité avec de plus grands ensembles de données

Pour évaluer statistiquement la fiabilité, vous pourriez exécuter un nombre beaucoup plus important de simulations, vous auriez donc beaucoup de points de données à examiner. Avec plus de données, vous pourriez construire un histogramme à partir de vos mesures extraites et utiliser cela pour obtenir une distribution de probabilité qui définit le comportement du circuit ; vous pourriez alors utiliser ces valeurs pour déterminer la probabilité que le circuit fonctionne dans un régime totalement inacceptable (au-delà des valeurs extrêmes de notre intervalle de confiance).

Juste pour le plaisir, j'ai augmenté le nombre de simulations effectuées dans cette analyse à 100 itérations. Les résultats transitoires avec 100 itérations sont montrés ci-dessous. À partir de ces courbes, nous pouvons à nouveau extraire la tension de dépassement maximale pendant la phase de mise sous tension.

Monte Carlo SPICE statistics
Réponse transitoire durant les 100 premiers us de la phase d'allumage. À partir de cet ensemble de 100 courbes, nous pourrions extraire la tension de dépassement pour chaque courbe et déterminer une distribution de probabilité décrivant la tension maximale.

Si vous exportez les résultats dans Excel, vous aurez désormais suffisamment de données pour créer un histogramme comme celui montré ci-dessous. La courbe orange superposée montre la fonction cumulative déterminée à partir des données regroupées ; elle indique quel pourcentage des données se trouve au niveau ou en dessous du compartiment actuel et peut être utilisé comme mesure de la plage de fonctionnement attendue de ce circuit.

Monte Carlo SPICE statistics
Statistiques de la tension de surchauffe déterminées à partir de 100 simulations.

Le point à retenir ici est que nous disposons d'une méthode rapide et facile pour vérifier comment la performance du circuit variera en fonction des tolérances des composants. Si les résultats ne sont pas conformes à nos spécifications ou marges de sécurité, alors le circuit devra être modifié avant de créer le layout du PCB et d'assembler un prototype.

Si vous êtes intéressé par l'exécution de simulations de Monte Carlo pour vos circuits dans Altium Designer®, vous n'avez pas besoin d'un package de simulation externe ou d'un logiciel d'analyse spécialisé. Tout ce dont vous avez besoin pour évaluer vos circuits et effectuer des simulations de fiabilité se trouve à l'intérieur de l'éditeur schématique dans Altium Designer. Une fois que vous avez terminé votre PCB et que vous êtes prêt à partager vos conceptions avec des collaborateurs ou votre fabricant, vous pouvez partager vos conceptions achevées via la plateforme Altium 365™. Tout ce dont vous avez besoin pour concevoir et produire des électroniques avancées se trouve dans un seul package logiciel.

Nous n'avons fait qu'effleurer la surface de ce qu'il est possible de faire avec Altium Designer sur Altium 365. Commencez votre essai gratuit d'Altium Designer + Altium 365 dès aujourd'hui.

A propos de l'auteur

A propos de l'auteur

Zachariah Peterson possède une vaste expérience technique dans le milieu universitaire et industriel. Avant de travailler dans l'industrie des PCB, il a enseigné à la Portland State University. Il a dirigé son M.S. recherche sur les capteurs de gaz chimisorptifs et son doctorat en physique appliquée, recherche sur la théorie et la stabilité du laser aléatoire. Son expérience en recherche scientifique couvre des sujets tels que les lasers à nanoparticules, les dispositifs électroniques et optoélectroniques à semi-conducteurs, les systèmes environnementaux et l'analyse financière. Ses travaux ont été publiés dans diverses revues spécialisées et actes de conférences et il a écrit des centaines de blogs techniques sur la conception de PCB pour de nombreuses entreprises. Zachariah travaille avec d'autres sociétés de PCB fournissant des services de conception et de recherche. Il est membre de l'IEEE Photonics Society et de l'American Physical Society

Ressources associées

Documentation technique liée

Retournez à la Page d'Accueil
Thank you, you are now subscribed to updates.