Upload
phamkien
View
221
Download
0
Embed Size (px)
Citation preview
Simulazione: Analisi di un fenomeno, di un processo o di un sistema effettuata attraverso la costruzione di un modello matematico che lo simuli, sviluppato in genere mediante un elaboratore elettronico; (def. Garzanti)
in particolare: Simulazione simbolica:Simulazione di un sistema all’interno del quale tutti o alcuni dei parametri che lo caratterizzano vengano lasciati in formato “simbolico”, e vengano quindi inseriti nel risultato in forma letterale piuttosto che numerica.
Electronic circuit simulation:use of the mathematical models to replicate the behavior of an actual electronic device or circuit.
Why using a simulator?Simulating a circuit’s behavior before actually building it greatly improves efficiency and provides insights into the behavior of electronics circuit designs.
(Defs. Wikipedia)
Simulatori analogici (numerici):
- PSpice (Cadence OrCAD)(decine k€)- LTSpice (Linear Semiconductor) free- CircuitLogix (Logic Design Inc.) free- PLECS (Simulink toolbox) 5000/1000 €- gEDA Project (Linux) free- TOPSpice (Penzar Dev.) 500 $
Classificazione dei simulatori elettrici/elettronici e principali prodotti
Simulatori digitali:
- Verilog (Cadence, proprietaria fino al 1990)- VHDL- PSpice A/D
Simulatori analogici (simbolici):SAPWIN (Università di Firenze) freeSNAP (IMEL FEEC BUT, Brno) freeISAAC (obsolete, Kat. Univ. Leuven)ANALOG INSYDES (Mathematica toolbox) 5000/1000 € - no free versionSymbolic Math Toolboxdi MATLAB (General purpose) (200 € + 500 € Matlab lic.)
Simulatori analogici (simbolici):SAPWIN (Università di Firenze) freeSNAP (IMEL FEEC BUT, Brno) freeISAAC (obsolete, Kat. Univ. Leuven)ANALOG INSYDES (Mathematica toolbox) 5000/1000 € - no free versionSymbolic Math Toolboxdi MATLAB (General purpose) (200 € + 500 € Matlab lic.)
Simulatori analogici (simbolici):SAPWIN (Università di Firenze) freeSNAP (IMEL FEEC BUT, Brno) freeISAAC (obsolete, Kat. Univ. Leuven)ANALOG INSYDES (Mathematica toolbox) 5000/1000 € - no free versionSymbolic Math Toolboxdi MATLAB (General purpose) (200 € + 500 € Matlab lic.)
Simulatori di uso generico:
- Symbolic Math Toolbox di MATLAB (200 € + 500 € Matlab lic.)- Simulink per MATLAB (500 € + 500 € Matlab lic.)- Mathematica- Maple
Simulatori analogici (simbolici):
- SAPWIN (Università di Firenze) free- SNAP (IMEL FEEC BUT, Brno) free- ISAAC (obsolete, Kat. Univ. Leuven)- ANALOG INSYDES (Mathematica toolbox) 5000/1000 € (full/academic) - no free version
Simulazione numerica e SPICE – breve storia
SPICE nasce negli USA (Università di Berkeley) nel 1972 e presentatoper la prima volta nel 1973.Il suo programmatore è Laurence Nagel sotto la guida del Prof. Donald Peterson;
Il programma prende origine dal primo simulatore circuitale ad uso civile, CANCER, giàsviluppato da Nagel nel 1969-70. Differenze fondamentali rispetto a CANCER sono il codice dipubblico dominio e i modelli per JFET e MOSFET;
SPICE1 è scritto interamente in FORTRAN, così come SPICE2 (prima versione del 1975, ultimaversione del 1983);
Nel 1989 vede la luce SPICE3, completamente riscritto in C;
Dal 1984 comincia lo sfruttamento commerciale dei simulatori su base SPICE, con PSPICE(Microsim, poi OrCAD-Cadence), HSPICE (Synopsis), XSPICE (Georgia Tech) et al.;
Molte aziende di produzione elettronica/IC sviluppano simulatori basati su SPICE: ADICE(Analog Devices), LTspice (Linear Technology), Mica (Freescale Semiconductor), TISPICE (TexasInstruments).
SPICE – Algoritmo risolutivo
Tipi di analisi consentita:
Analisi DC (comando .DC)
Analisi nel tempo (comando.TRANS)
Analisi AC (comando .AC)
Si possono identificare nell’intero diagrammaa blocchi vari sottoblocchi:
--- Fase di analisi nodale del circuito, blocchi3333 ---- 4444--- Ciclo interno, blocchi 2222 –––– 6666, ricerca della
soluzione per circuiti non lineari
--- Ciclo esterno, blocchi 7777 –––– 10101010, ricerca dellasoluzione per circuiti non lineari
SPICE – Analisi DC
Circuiti lineari: è il caso più semplice, i blocchi che loriguardano sono in sostanza solo il3333 e il 4; il circuitodiviene completamente resistivo poiché
Circuiti non-lineari: in questo caso occorre linearizzarei componenti non lineari nell’intorno del punto di lavoroin continua (blocchi1111 ---- 6666), e innescare un processoiterativo (algoritmo di Newton-Raphson), comedescritto nella pagina successiva.
SPICE – Componenti non lineari
Esempio diodo:
−= 1T
dV
V
od eII
La linearizzazione richiede di considerare la retta tangente alla curva caratteristica deldispositivo, nel punto di lavoro
T
od
o
VV
T
o
dd
deq e
V
I
dV
dIG ==
elettronedell' carica ;Boltzmann di cost.
A10 ;
-
150
≅=
≅= −−
ek
Ie
kTVT
e di sostituire quindi alla caratteristica stessa la retta di pendenzaGeq:
Ieq = Ido − Geq·Vdo
A questo punto risolvo il set di equazioni lineari e trovo una soluzione che è valida in unpunto di lavoroVdo che è statoinizialmente scelto a caso e che mi fornisce un nuovo valore di tensione (e di corrente) da adottare come punto di lavoroper il passo successivo del procedimento iterativo, che continuerà finché |Vk+1 – Vk| < ε
Is
R1
R2 21
D1
Geq Ieq
SMSMI#80#170#1#6 R#150#110#1#2 R#250#90#1#4 W#80#190#1#80#170 W#150#190#1#150#170
Is
R1
R2
D1
21
SMSMI#80#170#1#6 R#150#110#1#2 R#250#90#1#4 D#300#110#1#2 W#80#190#1#80#170
SPICE – Componenti non lineari
Esempio diodo all’interno di un circuito:Si parte da un valore di V2 arbitrario, e si determina ilcircuito linearizzato del diodo
Si determinano le eq. Di nododel circuito:
( )( ) eqeq
s
IVGGVG
IVGVGG
−=++−=−+
2212
22121
SPICE – Componenti non lineari
Risolvo quindi rispetto aV1 e V2:
e uso questi valori come punto di lavoro per il passo successivo del procedimento iterativo (determinando i nuovi valoridel modello linearizzato), che continuerà finché |Vk+1 – Vk| < ε.
SPICE usa una definizione della tolleranza piuttosto articolata, per cui il procedimento si arresta quando:
|Vk+1 – Vk| < VLIMIT = RELTOL ⋅⋅⋅⋅ Vk + VNTOL
|I k+1 – I k| < ILIMIT = RELTOL ⋅⋅⋅⋅ I k + ABSTOL
( )( )
( )( )
+++−
++
=
+++−
=
2121
2122
211
2121
2122
1
GGGGG
IGGIGGI
GGV
GGGGG
IGGIGV
eq
eqss
eq
eqs
SPICE – Analisi nel tempo (TRANS)
Circuiti lineari: i blocchi 2222 e 5 sono ignorati; dopoaver determinato il punto di lavoro iniziale(utilizzando le C.I. dei condensatori e degli induttori)i vari elementi con memoria sono trasformati neimodelli alle differenze finite, come descritto nellapagina successiva.
Circuiti non-lineari: i blocchi 2222 e 5555 sononuovamente inseriti, i componenti non lineari sonolinearizzati come visto prima nell’intorno del puntodi lavoro in continua (blocchi1111 ---- 6666), e viene innescatoil processo iterativo.
Esempio condensatore:SPICE genera il modello approssimato della derivata presente nella rel. costitutiva prendendo ladifferenza fra due valori su una curva funzione del tempo e dividendola per l’intervallo di temposotteso.
SPICE – componenti con memoria
)()1(
)()()1(
ntntTdt
ndxTnxnx
−+=∆
⋅∆+=+
SPICE – componenti con memoria
)1(1)1(
)1()1(
+=+
+=+⇒=
niCdt
ndvdt
ndvCni
dt
dvCi
Nel caso del condensatore quindi:
)()1(
)1()()1(
ntntTdt
ndxTnxnx
−+=∆
+⋅∆+=+
)1()()1( +∆+=+ niC
Tnvnv
( 1) ( 1) ( )C C
i n v n v nT T
+ = + −∆ ∆
Combinando i due metodi di Eulero (FE + BE) è possibile dedurre un terzo metodo più raffinato, quello dei trapezi
SPICE – componenti con memoria
)()1(
)1()()1(
ntntTdt
ndxTnxnx
−+=∆
+⋅∆+=+
++⋅∆+=+dt
ndx
dt
ndxTnxnx
)()1(
2)()1(
)()1(
)()()1(
ntntTdt
ndxTnxnx
−+=∆
⋅∆+=+
SPICE – componenti con memoria
)(1)(
)1(1)1(
)1()1(
niCdt
ndv
niCdt
ndvdt
ndvCni
dt
dvCi
=
+=+
+=+⇒=
Nel caso del condensatore quindi:
[ ])()1(2
)()1( niniC
Tnvnv ++∆+=+
2 2( 1) ( 1) ( ) ( )
C Ci n v n i n v n
T T+ = + − −
∆ ∆
++⋅∆+=+dt
ndx
dt
ndxTnxnx
)()1(
2)()1(
SPICE – Analisi AC
L’analisi in frequenza del circuito in esame si scompone in duefasi:
Fase 1 Viene svolto il ciclo non lineare (1111 ---- 6666) per determinare ilpunto di lavoro DC (come spiegato prima). Questa fase ignora Icondensatori, gli induttori e gli elementi con memoria (in grado diimmagazzinare energia).
Fase 2 Riguarda I blocchi 3333 e 4444 del diagramma, leggermentemodificati, nel senso che la matrice dei nodi viene costruitausando le ammettenze complesse dei bipoli (lineari e/olinearizzati) presenti nel sistema. I componenti non linearivengono sostituiti con I modelli equivalenti a piccoli segnalinell’intorno del punto di lavoro calcolato prima (non viene peròinnescato alcun processo iterativo). Le alimentazioni (powersupply) esterne vengono annullate, le sorgenti di segnale sonofissate di valore unitario. I blocchi 3333 e 4444 vengono ripetuti per tutti Ivalori di frequenza richiesti.
Simulazione simbolica
Definizione :
È una tecnica formale per determinare la relazioneingresso/uscita di un circuito, in modo tale che:
– la variabile indipendente (frequenza o tempo)
– le variabili dipendenti (tensioni o correnti)
– gli elementi del circuito (tutti o alcuni)
siano rappresentati da simboli (letterali)
Freq. V(n004)1.00000e+000 (8.21463e+000dB,-1.48641e+000°)1.02329e+000 (8.21463e+000dB,-1.52103e+000°)1.04713e+000 (8.21463e+000dB,-1.55646e+000°)1.07152e+000 (8.21463e+000dB,-1.59272e+000°)1.09648e+000 (8.21463e+000dB,-1.62982e+000°)1.12202e+000 (8.21463e+000dB,-1.66778e+000°)1.14815e+000 (8.21463e+000dB,-1.70663e+000°)1.17490e+000 (8.21463e+000dB,-1.74638e+000°)1.20226e+000 (8.21463e+000dB,-1.78706e+000°)1.23027e+000 (8.21463e+000dB,-1.82869e+000°)1.25893e+000 (8.21463e+000dB,-1.87129e+000°)1.28825e+000 (8.21463e+000dB,-1.91488e+000°)1.31826e+000 (8.21463e+000dB,-1.95948e+000°)1.34896e+000 (8.21463e+000dB,-2.00513e+000°)1.38038e+000 (8.21463e+000dB,-2.05184e+000°)
Simulazione simbolica e SAPWIN – breve storia
I primi programmi di analisi simbolica risalgono alla fine degli anni ’70. Erano in grado dianalizzare circuiti di dimensioni molto limitate (una decina di nodi al più);
Negli anni ’90 si è verificato un notevole ritorno di interesse per i programmi di analisi simbolica;
Sono stati sviluppati e distribuiti numerosi programmi: SAPEC, SYNAP, SCYMBAL, ISAAC,SNAP, SSPICE, SCAPP, GASCAP, ASAP;
Alla fine degli anni ’80 viene realizzato dal DET il programma SAPEC (Symbolic AnalysisProgram for Electric Circuits) che prevede anche una semplice interfaccia grafica. È scritto inLISP per DOS e l’algoritmo centrale usa un metodo di permutazione ricorsiva;
All’inizio degli anni ’90 si passa al C e al C++. Vengono realizzati un programma per DOS cheprevede l’uso dell’analisi simbolica per la simulazione di circuiti di dimensioni limitate contenenticomponenti non lineari e quindi SAPWIN 1.0 per Windows 3.1; L’algoritmo di simulazioneadottato si basa ora su un metodo ricorsivo di Laplace di espansione per la determinazione deldeterminante della matrice MNA associata al sistema, in combinazione con il metodo di Cramerper il calcolo della risposta;
Dopo una versione 2.0 rimasta alla release alfa, viene scritta in C++ la versione 3.0 delprogramma per Windows 2000 e superiori, che fa uso del metodo dei due grafi;
È disponibile anche una versione open source del programma scritta in modo nativo per Linux.
Simulazione simbolica, dove aiuta di più?
La tendenza attuale è integrare su ununico chip sistemi completi perapplicazioni specifiche, sia nella parteanalogica che in quella digitale.
Ma, mentre per la parte digitalel’automazione è pressoché completa, per laparte analogica il progetto viene svolto, ingran parte, in modo pressoché manuale, erichiede una notevole esperienza da partedel progettista
Algoritmi per l’analisi simbolica
Metodi Algebrici
• Formulazione delle equazioni della rete(MNA, CMNA, Tableau, …)
• Le f.d.r. sono ottenute tramite tecniche dimanipolazione simbolica delle espressionialgebriche applicate a queste equazionidette anche di “Espansione simbolica dideterminanti”:– Nonzero Permutation,– Sparse Laplace expansion,– …
Metodi Topologici
• Rappresentazione del circuito mediantegrafi con pesi di ramo simbolici• Le f.d.r. sono ottenute tramite operazionisui grafi:– Tree enumeration:
Directed T.E.Undirected T.E.
– Signal FlowgraphMason Signal FlowgraphThe Coates Graph
– ………
SAPWIN – Algoritmo risolutivo
La versione 3.0 di SAPWIN usa un metodo di enumerazione degli alberi su due grafi (Two Graph TreeEnumeration).Il metodo è, in prima istanza, applicabile a circuiti di tipo RCgm, costituito cioè da soli componenti conrappresentazione di tipo ammettenza e transconduttanze (VCT)Vengono innanzi tutto costruiti due grafi, quello delle corr enti GI e quello delle tensioni Gv;I componenti bipolari generano la presenza, su entrambi i gra fi, di un ramo tra gli stessi due nodi.La transconduttanza (g m) produce, nel grafo Gv, un ramo tra i nodi di controllo e, nel grafo GI, un ramo tra inodi controllati.In entrambi i grafi il peso del ramo è il valore della transcon duttanza.
Esempio:
SAPWIN – Algoritmo risolutivo
Il determinante della matrice delle ammettenzeviene poi calcolato nel seguente modo:
È un metodo “cancellation free”!
Dato un grafo orientato costituito da N nodi e Rrami la matrice incidenza A è una matrice ( N-1) x Ril cui generico elemento aij è dato da:
aij=
+1 se il ramo j esce dal nodo i-1 se il ramo j entra nel nodo i0 se il ramo j non interessa il nodo i
1 1 0 0
0 1 1 1A
+ + = −
SAPWIN – Algoritmo risolutivo
Per il calcolo del numeratore si consideri un circuito con n nodi, l’eccitazione collocat a fra i nodi 1e 0 e l’uscita fra i nodi 2 e 0:
Le funzioni di rete del circuito possono infine esserescritte come:
SAPWIN – Estensioni del metodo
Estensione a componenti con rappresentazioneimpedenza (NON ammettenza):
Estensione a circuiti contenenti componenti ditipo nullori e generatori controllati non di tipotransconduttanza:
Nei quattro casi non-g m sussiste il problema del diversonumero di nodi e di rami nei due grafi
dà origine al termine jωωωωL2G1G3
SAPWIN – Estensioni del metodo
Nullore :Nullatore i 2 nodi collassano in G v
Noratore i 2 nodi collassano in G I
Modifica:I 2 nodi restano distinti, nei due grafi, ma il ramo corrispon dente deve far parte dell’albero.L’algoritmo di ricerca degli alberi comuni parte forzando la presenza sull’albero dei rami nullatore perGv e dei rami noratore per G I.
dà origine al termine GinG2
dà origine al termine G1G2
SAPWIN – Estensioni del metodo
I generatori controllati (non transconduttanza) vengono so stituiti da circuiti equivalenti realizzaticon nullori:
Approssimazione delle espressioni simboliche
Le espressioni di uscita dei simulatori simbolici presenta no un’oggettiva difficoltà di gestione e/ointerpretazione non appena le dimensioni del circuito in esa me aumentano in modo significativo. Perquesta ragione è opportuno avere a disposizione dei metodi ag giuntivi che siano in grado di“semplificarle”, almeno nella regione di interesse. Questi m etodi sono chiamati di “approssimazione epossono essere classificati come:
Approssimazione dopo la generazione: l’algoritmo è applicato dopo che l’espressione completa della f.d.r. èstata generata.
Approssimazione durante la generazione: l’approssimazione è applicata insieme all’algoritmo di generazionedelle espressioni simboliche.
Approssimazione prima della generazione: la semplificazione è applicata a livello di circuito, operando sulgrafo o sulla formulazione matriciale. Quest’ultima è sempre applicata insieme ad una delle altre due tecniche.
Approssimazione delle espressioni simboliche
Il massimo errore, nella formula semplificata, deve essere prefissabile dall’utente.L’errore può essere quello della risposta in ampiezza, della r isposta in fase, di poli e zeri, o deicoefficienti della f.d.r.L’errore deve essere valutato su un intervallo di frequenze , sugli estremi dell’intervallo, o su un valoreparticolare della frequenza.
Approssimazione durante la generazione
La generazione della f.d.r. simbolica è preceduta dal calcol o numerico (per esempio risolvendo ilsistema MNA) dei valori del numeratore e del denominatore de lla f.d.r. alle frequenze prefissate ( valorinumerici esatti di riferimento).
L’algoritmo Two-Graph tree enumeration viene modificato in modo tale da generare i vari termini inordine decrescente di ampiezza.
La generazione dei termini, per numeratore e denominatore, v iene interrotta non appena i valori dellaf.d.r. simbolica alle Frequenze prefissate sono affetti da u n errore inferiore a quello stabilito.
In caso di approssimazione dei coefficienti della f.d.r., la generazione della f.d.r. simbolica è precedutadal calcolo numerico dei valori dei coefficienti del numera tore e del denominatore della f.d.r., mediantela tecnica di interpolazione polinomiale sul cerchio di ragg io unitario ( valori esatti di riferimento per icoefficienti).
Si consideri il caso di un semplice amplificatore invertente con operazionale:La simulazione numerica, anche con un modello reale dell’AO, non consentedi valutare correttamente la stabilità.
R1
R2
Vin
Vout
SMSMR#170#100#1#0O#170#140#1#0#0R#90#140#1#0g#80#230#1#0W#170#140#1#150#140
La simulazione simbolica consente di farlo, con una AO a singolo polo del tipo:
Vo
Vin
- 1⋅Vin106⋅VC
VC
+ ++
_ 100 mF1 Ω
ΣΜΣΜϑ#130#110#1#2 Ρ#200#110#1#2 Χ#260#110#1#2 Υ#330#110#1#2 Ω#330#170#1#130#170 Ω#60#110#1#80#110 Ω#60#170#1#80#170
Esempio della valutazione della stabilità
≡≡≡≡
Simulazione simbolica e numerica (confronto)
1. Consente di simulare circuiti di dimensionimolto elevate;
2. Non può gestire maglie di gen. tensione o taglidi gen. corrente. Non può neppure gestiremaglie o tagli degeneri;
3. Non fornisce in modo diretto alcunainformazione sulla stabilità;
4. Non consente alcuna post-elaborazione“analitica” del risultato ottenuto;
5. Consente la simulazione di circuiti non lineari;6. Le aziende che producono dispositivi
elettronici e circuiti integrati predispongono lelibrerie dei modelli SPICE degli stessi;
1. All’aumentare delle dimensioni del circuito leespressioni di uscita perdono leggibilità;
2. Non può gestire maglie di gen. tensione o taglidi gen. corrente. PUÒ gestire maglie o taglidegeneri!
3. Fornisce informazioni sulla stabilità;4. Consente di rielaborare in modo analitico il
risultato ottenuto (studio della sensibilità, dellastabilità, dello jacobiano, inversione deiparametri circuitali, design centering);
5. La simulazione dei circuiti non lineari non èimmediata, talvolta esistono modelli utilmenteapplicabili, talvolta è sostanzialmenteinapplicabile;
6. Non esistono librerie di modelli, ma l’approccioal concetto di “modello” è diverso;
Numerico Simbolico