The IC line is for setting transient initial conditions. It has two different interpretations, depending on whether the UIC parameter is specified on the .TRAN control line.
Also, one should not confuse this line with the .NODESET line. The .NODESET line is only to help dc convergence, and does not affect final bias solution (except for multi-stable circuits). The two interpretations of this line are as follows:
1. When the UIC parameter is specified on the .TRAN line, then the node voltages specified on the .IC control line are used to compute the capacitor, diode, BJT, JFET, and MOSFET initial conditions. This is equivalent to specifying the IC=... parameter on each device line, but is much more convenient. The IC=... parameter can still be specified and takes precedence over the .IC values. Since no dc bias (initial transient) solution is computed before the transient analysis, one should take care to specify all dc source voltages on the .IC control line if they are to be used to compute device initial conditions.
2. When the UIC parameter is not specified on the .TRAN control line, the dc bias (initial transient) solution is computed before the transient analysis. In this case, the node voltages specified on the .IC control line is forced to the desired initial values during the bias solution. During transient analysis, the constraint on these node voltages is removed. This is the preferred method since it allows SPICE to compute a consistent dc solution.
Morale: come dice sempre IsidoroKZ...per usare bene un simulatore bisogna conoscerlo mooolto bene
LTSpice simulazione circuito LC
Moderatori: g.schgor, IsidoroKZ
0
voti
banjoman ha scritto:1. When the UIC parameter is specified on the .TRAN line, then the node voltages specified on the .IC control line are used to compute the capacitor, diode, BJT, JFET, and MOSFET initial conditions. This is equivalent to specifying the IC=... parameter on each device line, but is much more convenient. The IC=... parameter can still be specified and takes precedence over the .IC values. Since no dc bias (initial transient) solution is computed before the transient analysis, one should take care to specify all dc source voltages on the .IC control line if they are to be used to compute device initial conditions.
Se capisco bene la parte che ho evidenziato, poiche' con il flag UIC specificato nella scheda .TRAN non viene effettuata polarizzazione (dc bias) allora --in presenza di parametri passati via .IC control line-- dal punto di vista del calcolo (piuttosto direi derivazione) delle condizioni iniziali per i condensatori, induttori (da usare poi al tempo t=0) e' necessario impostare anche i valori per le dc source voltages che sono coinvolte per derivare le condizioni inziali degli elementi reattivi.
Notavo che per quanto riguarda i parametri applicabili per la .IC control line si fa riferimento ai soli 'node voltages' e non alle correnti. Dalle prove che ho fatto sembra con il flag UIC presente eventuali parametri di tipo .IC I(Lx)=y in effetti non vengano considerati
Avete qualche evidenza di questo ? grazie
5
voti
Non sono sicuro di che cosa intendi con derivare le condizioni iniziali.
Spice, e derivati, fa uso della modified nodal analysis, quindi usa come incognite le tensioni ai nodi. Questo, come hai notato, provoca un diverso comportamento per le tensioni iniziali sui condensatori e le correnti iniziali nelle induttanze.
Se non specifichi uic, spice calcola le tensioni dei vari nodi, le correnti nei rami con una analisi in DC (condensatori aperti, induttori in corto), usando i valori DC dei generatori (oppure i valori iniziali dei generatori in transistorio) e con questi valori inizia l'integrazione delle equazioni differenziali del circuito.
Sempre se non usi uic, ma metti una condizione iniziale su un condensatore, quindi specifichi una tensione ad esempio mettendo 1uF IC=5, spice fa l'analisi in continua considerando al posto del condensatore con condizione iniziale un generatore di tensione del valore dato da IC, e calcola le rimanenti tensioni incognite come prima.
Nel circuito qui sotto si ha una simulazione senza uic, quindi spice calcola il bias point, e sono stati indicati i valori iniziali della tensione su C2 e della corrente nell'induttanza. Il generatore di tensione e` da 10V in continua.
Guardiamo prima le tensioni: Impongo una tensione di 5V su C2 (tensione V2), non c'e` uic quindi spice mette un generatore di tensione in parallelo a C2 per l'analisi in continua, includendo anche VDC, poi con le tensioni trovate parte con la simulazione.
Il risultato e` in questa figura
Si vede che la tensione V2 parte a 5V, come imposto, ma anche C3, tensione V3, parte da 5V, perche' nella fase di calcolo del bias C3 e` un circuito aperto e quindi R4 porta la tensione V2 anche su C3. Invece la tensione V1 e` data dal partitore di V2 e VDC, essendo due generatori di tensione da 5V e 10V e le due resistenze uguali, la tensione in continua, poi usata come valore iniziale, e` di 7.5V.
Invece nel circuito a destra si vede che la condizione iniziale IC=20mA sull'induttanza non ha nessun effetto. Il nodo V4 e` inizialmente a 2V e questa e` la condizione iniziale di C4. Ma nell'analisi in continua, l'induttanza e` sostituita da un cortocircuito e quindi nella resistenza R5 scorre una corrente di 2mA che e` la condizioni iniziale della corrente di L.
I valori finali (in DC) sono quelli previsti dalla teoria: V1=V2=V3=10V, V4=5V e la corrente nell'induttanza e` di 5mA.
Nella figura seguente c'e` quasi lo stesso circuito (ho tolto la condizione iniziale da C4), ma questa volta e` specificato uic.
Il comando uic dice di usare le condizioni iniziali per TUTTI i componenti reattivi, quando una condizione non e` specificata la si intende nulla. Non viene fatta nessuna analisi in continua, si parte con le condizioni date (o implicite nulle) e si integra. Il risultato e` il seguente
SI vede che le tensioni su tutti i condensatori sono nulle, tranne C2, ma questa tensione di 5V non si "propaga" su C3. Questa volta la condizione iniziale sull'induttanza e` presente, la corrente I(L) parte da 20mA, ma questa "corrente" non scorre da nessuna parte, non va a caricare inizialmente C4, che parte anche lui da tensione nulla.
Chissa` se cosi` e` piu` chiaro? L'asimmetria fra uic e non uic e` che se non si fa l'analisi in DC, si possono, anzi si devono, specificare tutte le condizioni iniziali. Se invece si fa una analisi dc preliminare (quindi no uic), deve partire l'algoritmo dell'analisi nodale modificata in cui le incognite sono solo le tensioni e quindi si possono forzare solo dei potenziali, mentre le correnti sono calcolate solo dopo aver trovato le tensioni.
Bisogna infine ricordare che tutti i simulatori sono dei GIGO: Garbage In Garbage Out! Se si mettono all'ingresso dei dati assurdi (ad esempio condizioni non fisiche), si ottengono dei risultati assurdi!
Spice, e derivati, fa uso della modified nodal analysis, quindi usa come incognite le tensioni ai nodi. Questo, come hai notato, provoca un diverso comportamento per le tensioni iniziali sui condensatori e le correnti iniziali nelle induttanze.
Se non specifichi uic, spice calcola le tensioni dei vari nodi, le correnti nei rami con una analisi in DC (condensatori aperti, induttori in corto), usando i valori DC dei generatori (oppure i valori iniziali dei generatori in transistorio) e con questi valori inizia l'integrazione delle equazioni differenziali del circuito.
Sempre se non usi uic, ma metti una condizione iniziale su un condensatore, quindi specifichi una tensione ad esempio mettendo 1uF IC=5, spice fa l'analisi in continua considerando al posto del condensatore con condizione iniziale un generatore di tensione del valore dato da IC, e calcola le rimanenti tensioni incognite come prima.
Nel circuito qui sotto si ha una simulazione senza uic, quindi spice calcola il bias point, e sono stati indicati i valori iniziali della tensione su C2 e della corrente nell'induttanza. Il generatore di tensione e` da 10V in continua.
Guardiamo prima le tensioni: Impongo una tensione di 5V su C2 (tensione V2), non c'e` uic quindi spice mette un generatore di tensione in parallelo a C2 per l'analisi in continua, includendo anche VDC, poi con le tensioni trovate parte con la simulazione.
Il risultato e` in questa figura
Si vede che la tensione V2 parte a 5V, come imposto, ma anche C3, tensione V3, parte da 5V, perche' nella fase di calcolo del bias C3 e` un circuito aperto e quindi R4 porta la tensione V2 anche su C3. Invece la tensione V1 e` data dal partitore di V2 e VDC, essendo due generatori di tensione da 5V e 10V e le due resistenze uguali, la tensione in continua, poi usata come valore iniziale, e` di 7.5V.
Invece nel circuito a destra si vede che la condizione iniziale IC=20mA sull'induttanza non ha nessun effetto. Il nodo V4 e` inizialmente a 2V e questa e` la condizione iniziale di C4. Ma nell'analisi in continua, l'induttanza e` sostituita da un cortocircuito e quindi nella resistenza R5 scorre una corrente di 2mA che e` la condizioni iniziale della corrente di L.
I valori finali (in DC) sono quelli previsti dalla teoria: V1=V2=V3=10V, V4=5V e la corrente nell'induttanza e` di 5mA.
Nella figura seguente c'e` quasi lo stesso circuito (ho tolto la condizione iniziale da C4), ma questa volta e` specificato uic.
Il comando uic dice di usare le condizioni iniziali per TUTTI i componenti reattivi, quando una condizione non e` specificata la si intende nulla. Non viene fatta nessuna analisi in continua, si parte con le condizioni date (o implicite nulle) e si integra. Il risultato e` il seguente
SI vede che le tensioni su tutti i condensatori sono nulle, tranne C2, ma questa tensione di 5V non si "propaga" su C3. Questa volta la condizione iniziale sull'induttanza e` presente, la corrente I(L) parte da 20mA, ma questa "corrente" non scorre da nessuna parte, non va a caricare inizialmente C4, che parte anche lui da tensione nulla.
Chissa` se cosi` e` piu` chiaro? L'asimmetria fra uic e non uic e` che se non si fa l'analisi in DC, si possono, anzi si devono, specificare tutte le condizioni iniziali. Se invece si fa una analisi dc preliminare (quindi no uic), deve partire l'algoritmo dell'analisi nodale modificata in cui le incognite sono solo le tensioni e quindi si possono forzare solo dei potenziali, mentre le correnti sono calcolate solo dopo aver trovato le tensioni.
Bisogna infine ricordare che tutti i simulatori sono dei GIGO: Garbage In Garbage Out! Se si mettono all'ingresso dei dati assurdi (ad esempio condizioni non fisiche), si ottengono dei risultati assurdi!
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
0
voti
@IsidoroKZ veramente grazie della dettagliata risposta !
Quel che dici mi torna con alcuni aspetti da evidenziare. Ad es direttamente dall'Help di LTspice
The .ic directive allows initial conditions for transient analysis to be specified. Node voltages and inductor currents may be specified. A DC solution is performed using the initial conditions as constraints. Note that although inductors are normally treated as short circuits in the DC solution in other SPICE programs, if an initial current is specified, they are treated as infinite-impedance current sources in LTspice
Quanto sopra si riferisce alle condizioni impostate a livello di direttiva globale .IC e non a livello di singolo componente. Ho provato quindi a simulare nuovamente il tuo circuito questa volta impostando .IC I(L1) = 20m e non a livello dell'induttore L1 stesso
Come si vede I(L1) = 20 mA a t=0 in linea con quanto specificato dalla direttiva globale .IC I(L1) = 20m. L'eventuale condizione presente anche a livello di componente viene utilizzata solo per la simulazione .TRAN con flag uic.
Da notare che il comportamento e' identico tra LTspice XVII e la piu' datata versione LTspice IV
Quel che dici mi torna con alcuni aspetti da evidenziare. Ad es direttamente dall'Help di LTspice
The .ic directive allows initial conditions for transient analysis to be specified. Node voltages and inductor currents may be specified. A DC solution is performed using the initial conditions as constraints. Note that although inductors are normally treated as short circuits in the DC solution in other SPICE programs, if an initial current is specified, they are treated as infinite-impedance current sources in LTspice
Quanto sopra si riferisce alle condizioni impostate a livello di direttiva globale .IC e non a livello di singolo componente. Ho provato quindi a simulare nuovamente il tuo circuito questa volta impostando .IC I(L1) = 20m e non a livello dell'induttore L1 stesso
Come si vede I(L1) = 20 mA a t=0 in linea con quanto specificato dalla direttiva globale .IC I(L1) = 20m. L'eventuale condizione presente anche a livello di componente viene utilizzata solo per la simulazione .TRAN con flag uic.
Da notare che il comportamento e' identico tra LTspice XVII e la piu' datata versione LTspice IV
0
voti
Scusate...volevo aggiungere un'altra cosa...
A fronte di una direttiva globale .IC per la tensione di un nodo .IC V(x) = y Spice, per fare l'analisi iniziale in DC (sempre in assenza del flag uic), di fatto aggiunge un generatore di tensione DC con tensione impressa pari al valore impostato y tra quel nodo x e ground.
In sostanza nel sistema di equazioni MNA (Modified Nodal Analysis) che risolve per l'analisi iniziale in DC, Spice aggiunge una equazione del tipo 'potenziale del nodo x = y' con una nuova incognita che e' proprio la corrente attraverso il generatore di tensione DC aggiunto.
Analogamente, a fronte del setting di una condizione globale .IC I(L) = z per un induttore (sempre in assenza del flag uic), Spice per l'analisi inziale in DC modifica le equazioni di equilibrio delle correnti ai nodi in cui e' coinvolto l'induttore sommando il valore (con relativo segno) della corrente z impostata.
E' corretto ? Grazie in anticipo
IsidoroKZ ha scritto:Spice, e derivati, fa uso della modified nodal analysis, quindi usa come incognite le tensioni ai nodi. Questo, come hai notato, provoca un diverso comportamento per le tensioni iniziali sui condensatori e le correnti iniziali nelle induttanze.
Se non specifichi uic, spice calcola le tensioni dei vari nodi, le correnti nei rami con una analisi in DC (condensatori aperti, induttori in corto), usando i valori DC dei generatori (oppure i valori iniziali dei generatori in transistorio) e con questi valori inizia l'integrazione delle equazioni differenziali del circuito.
Sempre se non usi uic, ma metti una condizione iniziale su un condensatore, quindi specifichi una tensione ad esempio mettendo 1uF IC=5, spice fa l'analisi in continua considerando al posto del condensatore con condizione iniziale un generatore di tensione del valore dato da IC, e calcola le rimanenti tensioni incognite come prima.
A fronte di una direttiva globale .IC per la tensione di un nodo .IC V(x) = y Spice, per fare l'analisi iniziale in DC (sempre in assenza del flag uic), di fatto aggiunge un generatore di tensione DC con tensione impressa pari al valore impostato y tra quel nodo x e ground.
In sostanza nel sistema di equazioni MNA (Modified Nodal Analysis) che risolve per l'analisi iniziale in DC, Spice aggiunge una equazione del tipo 'potenziale del nodo x = y' con una nuova incognita che e' proprio la corrente attraverso il generatore di tensione DC aggiunto.
Analogamente, a fronte del setting di una condizione globale .IC I(L) = z per un induttore (sempre in assenza del flag uic), Spice per l'analisi inziale in DC modifica le equazioni di equilibrio delle correnti ai nodi in cui e' coinvolto l'induttore sommando il valore (con relativo segno) della corrente z impostata.
E' corretto ? Grazie in anticipo
2
voti
Direi che sia corretto. Se togli la condizione iniziale su C4, senza uic, si vede che la tensione iniziale su C4 va a -10V quindi l'induttore e` proprio sostituito con un generatore di corrente e viene fatta l'analisi DC.
Chissa` perche' c'e` differenza fra condizioni iniziali globali e quelle descritte nella riga del componente.
Per i problemi su LTspice suggerisco questo forum https://groups.io/g/LTspice dove partecipa anche l'autore di LTspice!
Chissa` perche' c'e` differenza fra condizioni iniziali globali e quelle descritte nella riga del componente.
Per i problemi su LTspice suggerisco questo forum https://groups.io/g/LTspice dove partecipa anche l'autore di LTspice!
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
0
voti
IsidoroKZ ha scritto:Chissa` perche' c'e` differenza fra condizioni iniziali globali e quelle descritte nella riga del componente.!
Stavo pensando ad una possibile motivazione: a fronte dell'impostazione di una condizione globale per un 'node voltage' .IC V(x) = y Spice, per l'analisi inziale in DC, aggiunge un generatore di tensione in DC tra quel nodo e ground (GND).
Diversamente nel caso di condizione iniziale per la tensione di un condensatore impostata a livello di componente (e.g. I(Cz) = p), Spice per l'analisi inziale in DC sostituisce il condensatore con un generatore di tensione con grandezza impressa pari al valore p impostato. In questo secondo caso la corrente che attraversa il generatore e' proprio la corrente iniziale attraverso il condensatore mentre nel primo caso no (a prima vista direi che non c'e' evidenza negli output del valore di corrente che attraversa il generatore di tensione aggiunto a meno di calcolare separatamente la corrente incognita che fluisce in esso dalla condizione di equilibrio delle correnti al nodo x coinvolto).
Per quanto riguarda invece le condizioni globali vs quelle sulla riga del componente nel caso degli induttori onestamente non saprei...
Come la vedete ? grazie
0
voti
PietroBaima ha scritto:Le simulazioni devono essere fatte bene.
Se imponi che per t<0 passi una corrente di 10A continua nell’induttore, per t=0 l’induttore imporrà che detta corrente continui a scorrere attraverso di lui. A questo punto bisogna vedere cosa succede sul condensatore, perché non essendo la tensione sull’induttore variabile di stato succede che la tensione sull’induttore sarà discontinua, conformandosi a quella sul condensatore.
Se non specifichi una tensione sul condensatore e il simulatore la impone nulla hai un grosso problema, perché questo dovrebbe significare che tutti i 10A passino nel condensatore.
Hai fatto una rete degenere per la quale non è possibile che la variabile di stato sia continua, cosa non fisica.
Scusate se riprendo questo punto...dalle mie conoscenze di elettrotecnica (ho studiato sui testi di G. Martinelli, M. Salerno) le condizioni inziali per gli elementi reattivi (condensatori e induttori) possono essere scelte arbitrariamente con il solo vincolo di soddisfare le leggi di Kirchhoff per le correnti e le tensioni nel circuito (KCL e KVL).
Tornando al caso specifico possiamo quindi scegliere arbitrariamente la tensione iniziale del condensatore C1 e la corrente attraverso l'induttore L1 con il solo vincolo di soddisfare le KCL/KVL per il circuito al tempo t=0.
Da questo punto di vista mi sembra che le condizioni Vc=0 e I(L1)=10 siano corrette: considerando il generatore di corrente I1 da 10A attivo per t=>0 l'equazione di equilibrio delle correnti al nodo e' rispettata, analogamente per quanto riguarda l'equilibrio delle tensioni sulle 2 maglie.
Forse allora non ho capito bene: quale e' il problema delle condizioni iniziali non fisiche (ovvero rete degenere) ?
Grazie in anticipo
1
voti
Chissa` se riesco a rispondere prima che la batteria del portatile mi abbandoni!
Messaggio [37]. Non riesco a capire la differenza fra aggiungere un generatore e sostituire un condensatore con un generatore. Potrebbe aggiungere in entrambi i casi un generatore, tanto un condensatore in parallelo a un generatore ideale di tensione non da` alcun effetto (e si carica al valore iniziale giusto). La differenza pratica e` che la condizione globale impone la tensione su un nodo rispetto al nodo 0 (ground), mentre nella condizione iniziale sul condensatore impone la tensione fra due nodi, che possono essere entrambi diversi da ground.
Nel caso degli induttori basta la condizione globale, che impone la corrente attraverso la L, indipendentemente da dove e` collegata. Se ben ricordo nello spice originale ci sono solo le condizioni iniziali globali, .ic, mentre quelle sulla riga del condensatore sono evoluzioni di spice "proprietari".
Messaggio [38]: nel circuito iniziale imponi I(L1)=0 e fai l'analisi in DC. La corrente del generatore, 10A da qualche parte deve passare, non potendo passare attraverso la L per la condizione iniziale, ne' attraverso la capacita`, che in DC e` un circuito aperto, passa attraverso la resistenza parallela di C, che spice ha il buon gusto di mettere, ma vengono fuori tensioni e correnti senza senso (megavolt e megaampere). Se invece metti I(L)=10A, allora dovrebbe andare bene, tranne possibili errori numerici di cancellazione.
Messaggio [37]. Non riesco a capire la differenza fra aggiungere un generatore e sostituire un condensatore con un generatore. Potrebbe aggiungere in entrambi i casi un generatore, tanto un condensatore in parallelo a un generatore ideale di tensione non da` alcun effetto (e si carica al valore iniziale giusto). La differenza pratica e` che la condizione globale impone la tensione su un nodo rispetto al nodo 0 (ground), mentre nella condizione iniziale sul condensatore impone la tensione fra due nodi, che possono essere entrambi diversi da ground.
Nel caso degli induttori basta la condizione globale, che impone la corrente attraverso la L, indipendentemente da dove e` collegata. Se ben ricordo nello spice originale ci sono solo le condizioni iniziali globali, .ic, mentre quelle sulla riga del condensatore sono evoluzioni di spice "proprietari".
Messaggio [38]: nel circuito iniziale imponi I(L1)=0 e fai l'analisi in DC. La corrente del generatore, 10A da qualche parte deve passare, non potendo passare attraverso la L per la condizione iniziale, ne' attraverso la capacita`, che in DC e` un circuito aperto, passa attraverso la resistenza parallela di C, che spice ha il buon gusto di mettere, ma vengono fuori tensioni e correnti senza senso (megavolt e megaampere). Se invece metti I(L)=10A, allora dovrebbe andare bene, tranne possibili errori numerici di cancellazione.
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Torna a Elettrotecnica generale
Chi c’è in linea
Visitano il forum: Nessuno e 30 ospiti