LU2EE203
Initiation au projet en
électronique et outils de
simulation
[email protected] 2021-22
LU2EE203
C3 : Différentes simulations
[email protected] 2021-22
Présentation de SPICE
Principales analyses possibles
Rappel
En électronique, 3 types de modèle
employés
Continue (DC)
Etude en statique = 0 Hz, état stable et établi
C devient un CO et L devient un CC
Grand signal (TR)
Variation dans le temps avec des amplitudes
« importantes »
Petit signal (AC)
Variation dans le temps avec des amplitudes
« faibles »
Sert ensuite à l’analyse AC (harmonique)
Emploi du théorème de superposition (DC + AC)
3
Présentation de SPICE
Principales analyses possibles
Continue (OP & DC) : Circuits linéaires et
non-linéaires
Points de polarisation (I0, V0),
Courbe de transfert (Vs/Ve), …
Fréquentielle (AC) : Circuits linéaires*
Diagramme de Bode (GdB, φ)
Bruit, …
Temporelle (Trans) : Circuits linéaires et
non-linéaires
Retards (Δt),
Distorsions, FFT, …
Statistique et paramétrique :
Température,
Monte – Carlo, sensibilité, … 4
Présentation de SPICE
Fonctionnement du simulateur
5
Présentation de SPICE
Les limitations
Calculs numériques
Présence inéluctable d’une erreur / réalité
Les circuits réels sont complexes
Résultat dépend :
du modèle (simple ou non) employé pour les différents
composants présents
des conditions initiales
Non pris en compte de l’environnement
Bruit présent juste lors de l’analyse qui lui est dédié
Fils et connexions sont idéales lors des simulations
niveau Schematic (pas de RLC, pas de diaphonie, …)
Pas de perturbation électro-magnétique
Ce n’est pas un détecteur de nos erreurs et
6
des disfonctionnements !
Présentation de SPICE
Simulation en régime continu
Point de fonctionnement : Nous ne pouv ons pas afficher l’image.
.OP (ou Bias Point Detail)
Analyse statique monopoint
Analyse systématiquement effectuée avant chaque
analyse (temporel, AC ou autre) : Condition départ
Couple de valeurs (I0 – V0) obtenu à partir de la loi
des nœuds (Loi de Kirchoff en Courant - LKC)
• Etat stable établi ω = 0 rad/s
• Capacité = Circuit ouvert idéalement
• Inductance = Court-circuit idéalement
• Seuls sont considérés les sources définies
en continue, les autres sont ignorées
(éteintes lors du calcul)
Syntaxe : .OP (pas d’argument supplémentaire) 7
Présentation de SPICE
Simulation en régime continu
Nous ne pouv ons pas afficher l’image.
Balayage en continu :
.DC (ou DC sweep)
Analyse statique multipoints : Succession de
calculs de point de fonctionnement
Calcul des V et I statiques en faisant varier un
paramètre (en général, la valeur d'une source
indépendante) et en observant ses conséquences
Pour des raisons de rapidité, ce calcul n’est pas
effectué pour chaque itération, mais par
extrapolation du résultat du 1ier point, puis des 2
derniers points calculés pour servir de base de
calcul du point suivant …
8
Présentation de SPICE
Simulation en régime continu
Nous ne pouv ons pas afficher l’image.
Balayage en continu :
.DC (ou DC sweep)
Syntaxe
• .DC (LIN) <Var> <Val_Deb> <Val_Fin> <Pas>
• .DC (<Loi_Var>) <Var> <Val_Deb> <Val_Fin> <Nb_Points>
• .DC <Var> LIST <Valeur1> <Valeur2>…<ValeurX>
où <Loi_Var> = Mode de variation du paramètre (DEC ou OCT)
<Var> = Nom du paramètre variant
<Val_Deb> = Valeur initiale du paramètre
<Val_Fin> = Valeur finale
<Pas> = Pas de variation
<Nb_Points> = Nb de points simulés entre <Val_Deb> et
<Val_Fin>
9
LIST … = Suite de valeurs prises successivement par <Var>
Présentation de SPICE
Simulation en régime continu
Nous ne pouv ons pas afficher l’image.
Balayage en continu :
.DC (ou DC sweep)
Exemples
• .DC VIN -0.25 0.25 0.05
→ Analyse DC durant laquelle le générateur de tension
VIN varie linéairement (par défaut) de -0.25 V à 0.25 V
par pas de 0.05 V
• .DC TEMP LIST -50 0 20 50 80
→ Calcul de cinq points de polarisation en fonction de
la température (TEMP)
10
Présentation de SPICE
Simulation en régime continu
Nous ne pouv ons pas afficher l’image.
Balayage en continu :
Algorithme de simulation
Circuit linéaire
Matrice construite par
inspection
11
Présentation de SPICE
Simulation en régime continu
Nous ne pouv ons pas afficher l’image.
Balayage en continu :
Algorithme de simulation
Circuit linéaire
• Exemple : On cherches des tensions
• Application de KCL Méthode nodale
12
Emploie que de sources de courant
Présentation de SPICE
Simulation en régime continu
Nous ne pouv ons pas afficher l’image.
Balayage en continu :
Algorithme de simulation
Circuit linéaire
• Exemple (suite) :
• Sous forme matricielle
• Résolution par élimination de Gauss (pivot)
13
• Méthode de Kramer (déterminant), …
Présentation de SPICE
Simulation en régime continu
Nous ne pouv ons pas afficher l’image.
Balayage en continu :
Algorithme de simulation
Remarque
La méthode nodale n’autorise que les sources de
courant Schéma équivalent de Norton
Développement de la méthode nodale modifiée
(Modified Nodal Analysis - MNA)
Pour un gain en temps de calcul, emploi d’une
extension de l’élimination gaussienne :
Factorisation LU (Lower & Upper triangular) :
[V] = [G]-1[I] = [L]-1[U]-1[I]
14
Présentation de SPICE
Simulation en régime continu
Nous ne pouv ons pas afficher l’image.
Balayage en continu :
Algorithme de simulation
Circuit non-linéaire
15
Présentation de SPICE
Simulation en régime continu
Nous ne pouv ons pas afficher l’image.
Balayage en continu :
Algorithme de simulation
Circuit non-linéaire
• Impossibilité de résoudre simplement les équations
Equation transcendentale
• Résolution par l’algorithme de Newton-Raphson :
• Approximations successives
où Vn+1 = Tension à la nouvelle itération
Vn = Tension à l’itération précédente
F(Vn) + (Vn+1 – Vn)F’(Vn) doit tendre vers 0 16
Présentation de SPICE
Simulation en régime continu
Nous ne pouv ons pas afficher l’image.
Balayage en continu :
Algorithme de simulation
Circuit non-linéaire
• Exemple de convergence :
Nous ne pouv ons pas afficher l’image.
V1/R
V1
17
Présentation de SPICE
Simulation en régime continu
Nous ne pouv ons pas afficher l’image.
Balayage en continu :
Algorithme de simulation
Circuit non-linéaire
• Exemple de convergence :
Nous ne pouv ons pas afficher l’image.
ID = Is [exp(qVD/nkT) - 1]
→ dID/dVD = (qIs/nkT)eqVD/nkT = (q/nkT) (ID + IS)
→ Linéarisation = Dev. de Taylor à l’ordre 1
ID ≈ ID-1 + (dID/dVD)*(VD – VD-1)
F(Vn-1) + F’(Vn)(Vn – Vn-1)
≡(q/nkT) (ID-1 + Is)*VD – (q/nkT) (ID-1 + Is)*VD-1 + ID-1
18
= G*V – F
Présentation de SPICE
Simulation en régime continu
Balayage en continu :
Nous ne pouv ons pas afficher l’image.
Algorithme de simulation
Circuit non-linéaire
• Exemple de convergence : Répéter l'analyse
nodale au besoin (méthode de Newton)
• Modèle linéarisé créée en un point de fonctionnement (diode,
par ex.)
• Quel point de fonctionnement ?
Nous ne savons pas !
Deviner un point de fonctionnement d’essai
• Après avoir résolu les équations nodales, la tension trouvée à
travers la diode sert de point de fonctionnement de l’essai
suivant Nouveau modèle linéaire créé
• Encore une fois, les équations nodales sont résolus et le point
d'essai d'exploitation suivant est trouvé … 19
Présentation de SPICE
Simulation en régime continu
Balayage en continu :
Nous ne pouv ons pas afficher l’image.
Algorithme de simulation
Circuit non-linéaire
• Exemple de convergence : Répéter l'analyse
nodale au besoin (méthode de Newton)
• Répéter jusqu'à ce qu'il converge vers une solution
• Comment savoir quand vous avez trouvé une solution ?
Si les changements des V et des I, entre une itération (n)
et la précédente (n-1), sont plus petits qu’une certaine
limite, alors vous avez trouvé une solution :
|Vn – Vn-1| < VLIMIT ? & |In – In-1 | < ILIMIT ?
avec VLIMIT = Vn∙RELTOL + VNTOL
ILIMIT = In∙RELTOL + ABSTOL
ITL1 = Nb max d’itérations
(Cf. .OPTIONS) 20
Présentation de SPICE
Simulation en régime continu
Balayage en continu :
Nous ne pouv ons pas afficher l’image.
Algorithme de simulation
Circuit non-linéaire
• Exemple de convergence : Répéter l'analyse
nodale au besoin (méthode de Newton)
• Résumé :
1. Deviner le point de fonctionnement initiale de(s) élément(s) NL
2. Créer un modèle linéaire de(s) élément(s) NL
3. Résoudre les équations nodales
4. Convergence ?
• Non : Utilisez la solution actuelle (non satisfaisante)
comme nouveau point de fonctionnement pour une autre
itération et recommencez à l'étape 2
• Oui : Solution atteinte à un Ɛ près !
21
Présentation de SPICE
Simulation en régime continu
Balayage en continu :
Problème de convergence
Convergence = Les valeurs (I,V) trouvées lors de
l’itération vérifient à un epsilon près les équations du
modèle réel (non-linéaire)
• Problème de la division par zéro :
Rajout d’une conductance fictive
pour éviter les divisions par 0 (Cf. p 43)
22
Présentation de SPICE
Simulation en régime continu
Balayage en continu :
Problème de convergence
Plusieurs solutions possibles
23
Présentation de SPICE
Simulation en régime alternatif
Balayage en fréquence :
.AC (AC sweep)
Analyse dans le domaine des fréquences
(harmoniques) Petit signal
24
Présentation de SPICE
Simulation en régime alternatif
Petit signal BF
Rappel :
http://grimmy10.free.fr/fichiers/coursELEC2.pdf
Petite amplitude par rapport aux valeurs du point
de fonctionnement
Emploi du théorème de superposition
Développement de Taylor à l’ordre 1 autour d’un
point de fonctionnement
25
Présentation de SPICE
Simulation en régime alternatif
Balayage en fréquence :
.AC (AC sweep)
Analyse dans le domaine des fréquences
(harmoniques) Petit signal
Calcul similaire à l’analyse DC de circuits linéaires
Les composants non-linéaires sont linéarisés
Nous ne pouv ons pas afficher l’image.
autour d’un point de fonctionnement
• Pour les différentes fréquences, calcul de
[Y(ωi)] * [V(ωi)] = [I(ωi)]
• ωi : Intervalle de pulsation défini par utilisateur
• Y = Admittance complexe
• Module et phase
26
Présentation de SPICE
Simulation en régime alternatif
Balayage en fréquence :
.AC (AC sweep)
.AC <Loi_Var> <Nb_Points> <Frq_Deb> <Frq_Fin>
où <Loi_Var> = Loi de variation (LIN, DEC ou OCT)
<Nb_Points> = Nombre de points par unité de variation
<Frq_Deb> = Fréquence de début d’analyse
<Frq_Fin> = Fréquence de fin d’analyse
Exemples :
• .AC LIN 21 1K 100K → Analyse en courant alternatif de 21
points de fréquence, distribués linéairement entre 1 kHz et
100 kHz
• .AC DEC 20 1MEG 100MEG → On fait varier la fréquence de
simulation de 1 MHz et 100 MHz avec 20 points par décade
27
Présentation de SPICE
Simulation en régime alternatif
Balayage en fréquence :
.AC (AC sweep)
Exemple :
• Modélisation AOP
28
Présentation de SPICE
Simulation en régime alternatif
Balayage en fréquence :
.AC (AC sweep)
Remarques :
• Importance du point de fonctionnement
• Erreur courante : Saturation non observable
• Même avec 1 AOP polarisé en ± 10 V, avec Vin = 3 kV,
a se simule !!
• On parle de source sinusoïdale comme pour une analyse
temporelle MAIS ATTENTION !
• Le paramètre AC ne doit pas être confondu avec les
sources VSIN et ISIN qui sont des sources
sinusoïdales employées lors de simulations dans le
domaine temporel
• Observation en échelle logarithmique ≠ échelle linéaire
29
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
.TRAN (Transcient)
Analyse dans le domaine du temps
Comme à l’oscilloscope
30
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
.TRAN (Transcient)
Syntaxe
.TRAN <Pas_Max > <Durée_Ana>
.TRAN <Pas_Max > <Durée_Ana> <Delai>
.TRAN <Pas_Max > <Durée_Ana> <Delai> <Pas_Ana>
où <Pas_Max> = Pas de génération des résultats
<Durée_Analyse> = Dimension de la fenêtre de
simulation
<Delai> = Retard avant le début de l’enregistrement des
données de l’analyse
<Pas_Ana> = Pas max d’analyse
31
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
.TRAN (Transcient)
Syntaxe
Exemples
• .TRAN 1M 100M
→ Analyse effectuée à partir de t = 0 s (valeur par
défaut) jusqu’à 100 ms avec un pas d’échantillonnage
de 1 ms
• .TRAN 1nS 100ns 10nS
→ Définition d’une fenêtre de simulation de [0 ; 100 ns]
avec un pas maximal de 1 ns avec un retard de 10 ns
de début de stockage des résultats de simulation
32
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
.TRAN (Transcient)
Analyse dans le domaine du temps
Comme à l’oscilloscope
Calcul proche du DC, MAIS plus complexe
Pris en compte
• Des capacités et inductances
• Composants à stockage d’énergie
• Modèles non-linéaires Modèles grand signal
SPICE ne permet pas de :
• Calcul analytique
• Résoudre des équations différentielles
Solution obtenue par
• Intégration numérique
• Méthode nodale 33
• Méthode de Newton-Raphson
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Intégration numérique
SPICE trouve une approximation à la solution
analytique pour des instants discrets
Plusieurs méthodes d’intégration numérique
Forward-Euler
Backward Euler
Trapezoïdale
Gear-2
34
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Intégration numérique
Plusieurs méthodes d’intégration numérique
• Forward-Euler
La base
Non employé dans SPICE
Principe :
Pour chaque intervalle de temps h = tn+1 - tn
Nous ne pouv ons pas afficher l’image.
Basé sur la pente ( ) du point n pour le calcul du point
n+1
= +
Plus de détails, voir « correction_ts._dm5.12.pdf » dans
Ex_C3.zip
35
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Intégration numérique
Plusieurs méthodes d’intégration numérique
Backward-Euler
• Précision et stabilité moyennes
• Par défaut dans certaines versions de SPICE
• Principe :
• Pour chaque intervalle de temps h = tn+1 - tn
• Basé sur la pente ( ) du point n+1 pour le calcul du
point n+1
= +
36
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Intégration numérique
• Exemple d’un condensateur
37
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Intégration numérique
• Exemple d’un condensateur
• On a V = Q/C et I = dQ/dt
• D’après la formule de Backward-Euler
38
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Intégration numérique
• Exemple d’un condensateur
&
39
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Intégration numérique
Autres méthodes
• Trapézoïdale
• Pente basée sur les points présent et passé
• Plus précise que stable (oscille dans certains cas)
• Par défaut dans certaines versions de SPICE
• Gear-2
• Pente basée sur le point présent et les 2 précédents
• Meilleur stabilité que précision
• La plus stable
40
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Algorithme de calcul
Circuit linéaire
41
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Algorithme de calcul
Circuit non-linéaire
42
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Algorithme de calcul
Circuit non-linéaire
43
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Algorithme de calcul
Circuit non-linéaire
44
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Algorithme de calcul
Circuit non-linéaire
• Exemple : Pas de simulation variable
45
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Algorithme de calcul
Circuit non-linéaire
• Exemple : Pas de simulation variable
46
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Algorithme de calcul
Circuit non-linéaire
• Exemple : Pas de simulation variable
47
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Remarques
La fréquence des signaux (min et max) sont à
considérer à travers le pas de simulation
Par défaut, <Pas_Max> = <Durée_Ana> / 50. Il est
automatiquement réduit en cas de nécessité
• S’il est trop grand, les erreurs de convergence ne
sont pas toujours détectées
• Typiquement, on prendra un pas de 1/100 à 1/1000
de la durée de simulation
48
Présentation de SPICE
Simulation en régime temporelle
Analyse transitoire :
Remarques
Les problème de convergence se rencontrent souvent
dans les systèmes oscillants, résonnants ou, plus
généralement, dans le cas de fortes variations des
signaux
Solutions :
• Choix judicieux du pas
• Le retard (<Délai>) de début d’analyse permet d’éviter de
générer des résultats erronés et d’arriver au régime établi
plus rapidement
• Ce retard peut être réduit par l’emploi des commandes .IC
ou .NODESET
• Relacher les contraintes de convergence
• Changer la méthode d’intégration numérique
49
Questions ?
[email protected] 2021-22