WCA, Analyse pire cas
WCA calcule comment une fonction électronique dérive sous l'effet combiné des tolérances de fabrication, de la température, du vieillissement et des radiations. L'utilisateur décrit cette fonction comme les équations analytiques reliant ses composants, et l'outil propage la variabilité jusqu'à chaque sortie surveillée, en renvoyant les marges Begin-of-Life et End-of-Life en taux de rejet PPM avec un intervalle de confiance explicite.
L'ensemble de la chaîne tourne en local, sur la machine de l'ingénieur. Rien n'est envoyé sur internet, aucune donnée ne sort du poste de travail.
1 Méthode ↑
À chaque itération Monte Carlo, chaque valeur de composant est tirée dans
sa distribution statistique puis propagée à travers la fonction de
transfert fournie par l'utilisateur. Après N tirages
(par défaut 10⁶), la population de valeurs de sortie est
comparée à l'intervalle d'acceptation, et le taux de rejet est rapporté
avec son intervalle de confiance.
Mise à jour base composants
Import de la BOM
Définition des équations
Paramètres de calcul
Exécution & archivage auto
1.1, Distributions d'échantillonnage
Les modèles de composants suivent les conventions des datasheets et la pratique courante en électronique spatiale et défense :
| Composant | Variable | Distribution par défaut |
|---|---|---|
| Résistance | R | Uniforme sur ±tol (BOL) ; +TC·ΔT et +drift (EOL) |
| Condensateur, X7R / X7S | C | Uniforme sur ±tol ; courbe de DC-bias multiplicative ; coefficient thermique ; vieillissement |
| Condensateur, Tantale polymère | C, ESR | Uniforme ±tol sur C ; loi de dérive ESR issue de la datasheet fabricant |
| Inductance | L, DCR | Uniforme ±tol ; courbe de saturation issue de la datasheet fabricant |
| Amplificateur opérationnel | Vos, Ib, GBW, SR | Gaussienne tronquée ±3σ sur chaque paramètre |
| Référence de tension | Vref, TC | Gaussienne sur Vref ; uniforme sur TC |
| Diode | VF, IS | Modèle de Shockley avec courant de saturation dépendant de la température |
1.2, Intervalle de confiance sur le taux de rejet
Le taux de rejet est rapporté avec un intervalle de confiance exact à 95% de Clopper-Pearson. Pour k rejets observés sur N échantillons :
p_lo = Beta⁻¹(α/2; k, N − k + 1) p_hi = Beta⁻¹(1 − α/2; k + 1, N − k)
avec α = 0.05. Les deux bornes sont reportées dans le verdict CSV. La forme exacte est privilégiée par rapport à l'approximation normale, parce que le taux de rejet est typiquement inférieur à 1000 PPM, régime où l'approximation gaussienne diverge.
1.3, Estimation de quantiles extrêmes (Wilks)
Pour estimer un quantile extrême de manière non paramétrique sans hypothèse sur la forme de la distribution, le framework supporte les statistiques d'ordre de Wilks. Pour un quantile cible p couvert avec une confiance γ, en utilisant la r-ième statistique d'ordre X(N−r+1) comme estimateur, la condition de couverture est exacte :
P( X_(N−r+1) ≥ F⁻¹(p) ) = 1 − I_p(N − r + 1, r) ≥ γ
où Ip(a, b) est la fonction Bêta incomplète régularisée (scipy.stats.beta.cdf). La taille minimale Nmin est résolue numériquement. Valeurs typiques utilisées par la chaîne d'outils :
| Ordre r | p = 99,73% (≈ ±3σ) | p = 99,9% | p = 99,99% |
|---|---|---|---|
| r = 1 (max seul) | N ≥ 1 109 | N ≥ 2 994 | N ≥ 29 956 |
| r = 2 | N ≥ 1 572 | N ≥ 4 045 | N ≥ 39 994 |
| r = 3 | N ≥ 1 988 | N ≥ 5 020 | N ≥ 49 419 |
Toutes les valeurs pour confiance γ = 95%. Augmenter r améliore la robustesse à un tirage extrême isolé, au prix d'un N plus élevé. Les exécutions Monte Carlo par défaut (10⁶) couvrent largement toutes les combinaisons.
1.4, Classement par sensibilité
La sensibilité par composant combine une dérivée partielle locale autour
du point nominal et la corrélation de rang de Spearman ρ
entre les entrées échantillonnées et la sortie choisie. Le résultat est
un classement trié en barres horizontales. En pratique, un sous-ensemble
réduit de la BOM concentre plus de 80% de la dispersion, et c'est
précisément là que doit porter l'itération de conception suivante.
1.5, Couverture de dérive BOL → EOL
Chaque composant est échantillonné sur toute son enveloppe de dérive, du Begin-of-Life à l'End-of-Life. En plus de la tolérance de fabrication, les contributions suivantes sont empilées :
| Contribution à la dérive | Modélisée par | Échelle typique |
|---|---|---|
| Tolérance de fabrication | Uniforme sur ±tol (datasheet) | 0,1–10% selon grade |
| Dérive en température | TC × ΔT, additive | −40°C à +125°C jonction |
| DC-bias derating (X7R / X7S) | Courbe multiplicative, datasheet fabricant | jusqu'à −60% à tension nominale |
| Vieillissement | Décroissance logarithmique (datasheet) | sur profil de mission (5–18 ans) |
| Radiation (TID) | Coefficient testé en lot, additif | trajectoire 0 / 25 / 50 krad |
La dérive radiation est alimentée par les résultats réels de tests TID lorsqu'ils sont disponibles ; sinon, les coefficients par défaut de la base de données composants sont utilisés et signalés explicitement dans le rapport.
2 Entrées ↑
2.1, Configuration de l'exécution
Chaque exécution WCA est configurée par un petit ensemble de constantes en tête de fichier. Les définitions de composants et les fonctions de transfert sont déclarées en Python natif à côté de cette configuration :
# ─── Configuration de l'exécution ──────────────────────────
PPM_THRESHOLD = 100 # Seuil verdict OK/NOK (PPM)
N_TIRAGES = 1_000_000 # Taille échantillon Monte Carlo
CONFIDENCE_LEVEL = 0.95 # IC Clopper-Pearson sur PPM
WILKS_QUANTILE = 0.9973 # Quantile Wilks cible (≈ ±3σ)
WILKS_CONFIDENCE = 0.95 # Probabilité de couverture Wilks
TEMPERATURE_RANGE = (-40, +125) # °C, jonction
2.2, Base de données composants
Les composants actifs (régulateurs, AOP, références, transistors, GaN) sont déclarés dans une base de données interne maintenue avec toutes leurs contributions à la dérive selon la classe ECSS-Q-ST-30-11C. Les composants passifs (résistances, condensateurs céramique / tantale, inductances) sont déduits automatiquement de la BOM, avec les enveloppes de dérive par défaut tirées de la datasheet fabricant (TC, DC-bias, vieillissement, TID).
2.3, Couplage simulateur (optionnel)
Pour les circuits dont la fonction de transfert est trop complexe à exprimer analytiquement, WCA peut appeler un simulateur externe à chaque tirage Monte Carlo :
- Moteurs SPICE commerciaux, via netlist
.ciren mode batch ; résultats lus depuis le.csvde sortie. - LTspice, via parser
.rawbinaire (package Pythonltspice). - Python pur, expressions analytiques évaluées directement avec opérations numpy vectorisées (~10⁷ tirages en quelques secondes).
3 Sorties ↑
Chaque exécution produit un ensemble d'artefacts déterministe et archivable :
| Fichier | Format | Contenu |
|---|---|---|
verdict.csv |
CSV UTF-8 | Taux de rejet par sortie avec IC Clopper-Pearson 95% ; verdict OK / NOK contre le seuil PPM configuré |
distrib_*.png |
PNG | Histogramme des valeurs de sortie échantillonnées avec bornes d'acceptation superposées ; cases Wilks si demandé |
sensitivity_*.png |
PNG | Barres horizontales de la contribution de chaque composant à la variance de sortie, triées en valeur absolue |
config.archive.json |
JSON | Configuration d'entrée complète et seeds aléatoires pour une reproductibilité bit-à-bit |
report.docx |
Word | Rapport formaté ECSS, figures et tableaux intégrés, section méthodologie, marquage de version |
Toutes les figures suivent les conventions ECSS : axes étiquetés avec unités, légende encadrée, pas de chartjunk.
3.1, Exemples de figures
Trois figures produites à chaque exécution, illustrant le tableau de verdict, la décomposition de sensibilité et la superposition des distributions de sortie.
3.2, Reproductibilité
Chaque exécution archive son seed aléatoire, la version de numpy et la révision des datasheets composants. Relancer avec le fichier d'archive donne des résultats bit-à-bit identiques, des années plus tard, sur une autre machine.
4 Normes ↑
| Norme | Périmètre | Implémentation dans WCA |
|---|---|---|
| ECSS-Q-ST-30-11C Rev. 2 | Dérating composants | Limites de dérating par composant appliquées comme bornes supérieures de stress ; le verdict signale tout échantillon au-delà |
| ECSS-Q-ST-60C Rev. 3 | Sélection composants EEE | Utilisée pour l'attribution de classe et les hypothèses de dérive EOL par niveau qualité |
| ESCC-25500 | Caractérisation diodes pour le spatial | Paramètres du modèle de Shockley extraits des datasheets conformes ESCC |
| MIL-HDBK-217F | Prédiction de fiabilité (informatif) | Optionnel, vérification croisée du taux de défaillance sur les composants critiques |
| IPC-2221 | Règles de conception PCB (informatif) | Utilisée comme borne d'entrée lorsque WCA est couplé à un modèle thermique |
4.1, Mapping de classe
Les limites de dérating sont chargées depuis une table indexée par classe (Classe 1 / Classe 2 / Classe 3 selon ECSS-Q-ST-60C). La classe est définie par exécution ; passer d'une Classe 3 (deep-space) à une Classe 1 (terrestre) ne demande qu'un seul champ de configuration à modifier, la chaîne d'outils tourne sans modification.
5 Limites ↑
WCA est un outil analytique. Il complète la caractérisation physique, mais ne la remplace pas. Limites assumées :
- Hypothèses de distribution. Les distributions par défaut, uniforme sur la tolérance et gaussienne tronquée sur les paramètres AOP, reflètent la pratique courante mais ne sont pas vérifiées pour un lot de production donné. Pour une mission Classe 1, une caractérisation lot-spécifique est recommandée.
- Couplage entre composants. Par défaut, les composants sont échantillonnés indépendamment. Une dérive corrélée, par exemple une paire de résistances appairées sur le même die, doit être modélisée explicitement via variables aléatoires partagées. Le framework le supporte, mais le couplage doit être déclaré manuellement.
- Taille d'échantillon vs temps de calcul. 10⁶ tirages sont typiques ; 10⁷ a été testé et prend environ 2 minutes par Monte Carlo sur une station de travail standard. En dessous de 10⁵ tirages, l'IC Clopper-Pearson s'élargit nettement, et les verdicts au PPM deviennent peu fiables.
- Surcoût du couplage simulateur. Lorsqu'un simulateur SPICE externe est invoqué à chaque tirage Monte Carlo, le débit chute à environ 1 000 tirages par minute. Pour des exécutions au-dessus de 10⁵, la substitution batch est requise.