FAQ


E' possibile ottenere da una simulazione con Spice l'andamento che descrive il comportamento di un circuito RLC (soggetto a eccitazione sinusoidale) al variare della pulsazione?  

Per ottenere la simulazione del circuito RLC al variare della pulsazione devi impostare una simulazione in AC (AC Sweep/Noise) nel Simulation Setting di Capture quindi, quando viene visualizzata la risposta del circuito nel dominio della frequenza, in Probe, clicchi sull'asse orizzontale (l'asse della frequenza) e premi il pulsante "Axis variable..." nella finestra che appare. Nello spazio in basso, dove c'è scritto "Trace Expression:" scrivi 2*pi*Frequency. La variabile pi è predefinita nelle macro di Spice col valore di 3.14159265 .


Come si specificano le condizioni iniziali per il condensatore del circuito allegato? Ad esempio come si può impostare una d.d.p. iniziale di 1.5 V.

Siccome il circuito presentava qualche errore (ad esempio il condensatore era cortocircuitato), l'ho rifatto aggiungendo la condizione iniziale. Nella libreria SPECIAL trovi un componente che si chiama IC1 (c'è anche un IC2 ma basta il primo) che si collega al filo che deve trovarsi alla tensione desiderata all'istante di tempo iniziale. Una volta connesso, trovi due proprietà, una è TEXT, che per default vale "IC=" e ti permette di associare un testo alla condizione iniziale, l'altra è Value e ti permette di specificare il valore in volt della tensione iniziale.


E' possibile definire un' analisi per il filtro del  circuito allegato in modo da ottenere la risposta in frequenza espressa attraverso il diagramma di Bode? Intuitivamente mi sembra che sia AC Sweep/Noise, che ho anche settato, ma non riesco ad impostare il grafico con in ascissa la frequenza e in ordinata la risposta in dB.

Nel programma Probe, al comando Add Traces compare a sinistra la lista delle grandezze che puoi visualizzare e a destra l'elenco delle funzioni che puoi applicare a tali grandezze; l'help spiega il significato di ciascuna funzione. La funzione DB(x), in particolare, consente di visualizzare l'intensità della variabile x in dB e la funzione P(x) consente di visualizzare la fase di x rispetto all'origine della simulazione. In particolare, per l'esempio che mi hai allegato, per ottenere il diagramma di Bode della funzione di trasferimento V(R1:2)/V(V1:+) devi visualizzare il grafico DB(V(R1:2)/V(V1:+)) per quanto riguarda l'ampiezza e P(V(R1:2))-P(V(V1:+)) per la fase.


E' possibile impostare un' analisi per avere la caratteristica tensione-corrente del diodo nel circuito allegato?

Per visualizzare la caratteristica del diodo nel circuito allegato è sufficiente definire DC Sweep quale analisi, fissare quale variabile di sweep "Voltage source" e V1 e infine specificare il tipo di sweep, lineare, e l'intervallo di tensione, ad esempio -110V 10V (per vedere anche la regione di breakdown) con un incremento di 1V. Quindi occorre adoperare un probe di corrente per misurare la corrente nel diodo in corrispondenza dell'anodo.

 


Ho cercato di simulare la caratteristica VDS-ID del JFET 2N4869 come sul circuito allegato, il problema è che non riesco a visualizzare la zona breakdown mostrata nella figura, qual'è il problema?

Il problema è che il fenomeno del breakdown dei transistor, sia BJT che JFET, non è simulato da PSpice in tutti i transistor.







 


Per quanto riguarda i BJT su alcuni libri di testo si trovano esempi che fanno uso di parametri ibridi, in altri si usa invece un modello che prevede una "rπ" ed un generatore di corrente pilotato "gm·vπ ": in che relazioni sono con i parametri ibridi?

I parametri del modello a π possono essere posti in relazione con i parametri ibridi. Tuttavia il modello a π prevede cinque parametri: rb, rπ, rμ, gm, e r0 mentre quello a parametri ibridi solo quattro: hie ,hre ,hfe ,hoe. E' possibile aggirare questo problema fissando un parametro, solitamente rb, che ha sempre l'ordine di grandezza compreso tra 100Ω e 200Ω circa. In tali condizioni si ottiene rπ=hie - rb, gm=hfe/(hie - rb), rμ≈(hie - rb)/hre e, infine r0=1/hoe; spesso la resistenza rb può essere ritenuta trascurabile rispetto a rπ, così, nell'ipotesi rb << rπ si ha: rπhie, gmhfe/hie, rμhie/hre e r0=1/hoe. Il fatto hre viene considerato quasi sempre nullo nel modello a parametri ibridi (hre → 0) corrisponde all'omissione della resistenza rμ (rμ→∞) nel modello a π.


E' possibile ricavare le capacità del modello a π del BJT a partire dalle capacità indicate nei datasheet come Input capacitance e Output capacitance. In particolare che valori assumono Cπ e Cμ per il transistor 2N2222A?

Per determinare le capacità Cμ e Cπ del modello a π del BJT non è sufficiente conoscere le capacità Cibo e Cobo indicate dal costruttore, ma occorre anche sapere il valore della frequenza di taglio fβ di hfe~ β0 o della frequenza di transizione fT sempre dello stesso parametro. La frequenza di taglio fβ è relativa al guadagno di corrente hfe con uscita in cortocircuito per il segnale; in tale condizione (si veda la figura), la capacità Cμ risulta in parallelo alla capacità Cπ, così la tensione vbe può esprimersi attraverso la corrente di ingresso iS come:

    vbe= iS rπ/[1+j ωrπ(Cπ+Cμ)]

pertanto la corrente di cortocircuito vale:

    iO = iS gmrπ/[1+j ωrπ(Cπ+Cμ)] = iS
β/[1+j ωrπ(Cπ+Cμ)]

dove gmr0 =
β. Dalla definizione del parametro hfe segue allora:

    hfe iO/iS =
β/[1+j ωrπ(Cπ+Cμ)].

Si osservi che per ω → 0 si trova così  hfe =
β. La pulsazione di taglio di hfe è pertanto pari a :

   
ωβ = 1/[rπ(Cπ+Cμ)].

La frequenza di transizione
fT è quella frequenza in corrispondenza della quale il parametro hfe assume modulo unitario, ovvero log(| hfe |) = 0. Dall'espressione precedentemente ricavata che esprime la dipendenza di hfe da ω, hfe = β/(1+j ω/ωβ), applicando il logaritmo ad ambo i membri, si ha log(|hfe|) = log(β) - (1/2)log[1+(ω/ωβ)2] ~ log(β) - log(ωβ) + log(ω) (avendo assunto ω/ωβ >> 1); alla pulsazione ωT in cui log(| hfe |) = 0 risulta pertanto β = ωTβ, così sostituendo a ωβ la sua espressione, si trova:

    ω
T = β/[rπ(Cπ+Cμ)].

Tale relazione ci permette di ricavare Cπ una volta noti Cμ e β (o gm e rπ).
Il condensatore Cobo rappresenta la capacità di uscita del BJT nella connessione a base comune con il terminale di ingresso (l'emettitore) aperto; in tale condizione (si veda la figura) l'impedenza di uscita v0/iè data da:

    Z0 = v0/i= 1/(sCμ),

pertanto risulta:

    Cμ
= Cobo.

In particolare, per il BJT 2N2222A risulta Cμ = Cobo = pF. Inoltre per un valore di
β ~ hfe di β0 pari a 168 (è la media geometrica dei valori estremi di hfe nel punto di funzionamento più prossimo a quello in cui è valutato Cobo ) ed un valore di fT  pari a 300 MHz, dalla relazione ωT = β/[rπ(Cπ+Cμ)] si ricava Cπ = β/(2 π fT rπ) - Cμ = 151 pF.


Ho provato ad impostare un’analisi parametrica utilizzando la versione di PSpice di Cadence ma la situazione è un po’ differente rispetto a quella della versione di PSpice di Microsim, potrebbe fornirmi i passi per configurarla sul circuito allegato?

Ho modificato il tuo file in modo che esegue l'analisi parametrica (link). I passi sono i seguenti: Dopo aver parametrizzato il valore del componente, ponendo tra parentesi graffe il nome del parametro, Rc nel tuo esempio, con "get new part" inserisci l'istruzione PARAMETER nel disegno. Quindi cliccando due volte su tale istruzione apri il Property Editor, selezioni New e nella finestra che si apre (Add new property) scrivi Rc. A questo punto compare una schermata tipo foglio elettronico con la nuova proprietà aggiunta (Rc) e una casella vuota sottostante. All'interno di tale casella scrivi un valore, ad esempio 10, quindi clicchi su Display e selezioni "Name and Value"; infine clicchi su Apply e chiudi la finestra. Vedrai nel disegno, al di sotto del comando PARAMETER la scritta Rc=10. Per effettuare la simulazione, dopo aver definito la simulazione relativa al transiente, seleziona Parametric Sweep, dove dice Sweep variable, seleziona Global parameter e dai Rc come Parameter Name; dove dice Sweep type seleziona Linear, Start value pari a 100k, End value pari a 1Meg e Increment pari a 100k. A questo punto puoi eseguire la simulazione.


Come è possibile definire un generatore di tensione triangolare con PSpice?

Per realizzare l'onda triangolare puoi adoperare il generatore VPULSE usando TR=TF=PER/2 e fissando un valore della durata PW molto minore del periodo PER. Ad esempio, volendo realizzare un'onda triangolare di frequenza pari a 1kHz e ampiezza di ±5V, il generatore VPULSE deve avere i seguenti parametri V1=-5V, V2=+5V, TD=0s, TR=0.5ms, TF=0.5ms, PW=1ns, PER=1ms.


Relativamente al timer NE555, perché generalmente si pone un condensatore tra il pin 5 (control voltage input) e massa?

Il pin 5 corrisponde ad uno dei punti di congiunzione tra le resistenze interne all'integrato che definiscono le soglie di scatto dei due comparatori. Se il timer è alimentato con una tensione Vcc, in assenza di polarizzazione esterna, sul pin 5 si misura una tensione pari a 2Vcc/3 che rappresenta uno di questi due livelli di soglia. E' possibile modificare i livelli attribuendo una polarizzazione VC a tale ingresso; in tal modo i livelli di scatto diventano VC e VC/2. Al contrario, qualora ci si accontenti dei livelli 2Vcc/3 e Vcc/3 il pin 5 può essere, in principio, lasciato aperto. Tuttavia in tale circostanza del rumore può essere captato da tale pin lasciato aperto e questo livello aggiuntivo modifica il livello preesistente. Siccome la durata dei cicli di scarica e carica del condensatore dipende da tale livello, si otterrebbe una variazione dei tempi. Mettendo a massa il pin con un condensatore, si annullano i disturbi di alta frequenza che troverebbero un percorso di ritorno a massa a più bassa impedenza attraverso il condensatore, inoltre si accresce l'immunità del dispositivo alle variazioni istantanee della tensione di alimentazione che sarebbero, compensate dalla carica immagazzinata nel condensatore.


Simulando alcuni circuiti, come il multivibratore astabile allegato, basato sull'NE555, ho riscontrato sempre lo stesso errore indicato dal seguente messaggio:

ERROR -- Time step = 3.929E-12 is too small in Transient Analysis at Time = 103.9E-12. Minimum allowable step size = 4.000E-12.

The device which is changing too fast is X$X_X1.qb_DtoA1.c1.

visualizzando poi una finestra chiamata Pspice runtime setting dove è possibile settare i parametri della simulazione al transiente. Anche cambiando tali parametri il problema non si risolve e sono costretto a cambiare la configurazione del circuito. Come è possibile risolvere tale problema?

Il problema è comune a tutti i circuiti contenenti dei flip-flop e deriva dal fatto che il flip-flop interno all'NE555 non è inizialmente in uno stato definito e, durante la simulazione, Spice non riesce a identificare alcuno stato possibile per tale componente. Puoi procedere in due maniere. O forzi lo stato, imponendo che inizialmente sia 0 o 1 oppure riproduci le condizioni di impiego normali dell'NE555. Nel primo caso sotto Simulation Setting, nelle Option, in Gate-level Simulation selezioni 1 o 0 nella casella Initialize all flip-flops to. Nel secondo caso, devi simulare la realtà di funzionamento dell'integrato; la sua tensione di alimentazione non "appare" improvvisamente ma esisterà sempre un transitorio che costringerà il flip-flop interno a situarsi in una condizione definita. Puoi allora sostituire il generatore di alimentazione con un generatore di impulsi, configurandolo in modo da generare un gradino con tempo di salita ragionevole, nel tuo caso va bene 1ms, V1=0V e V2=5V (tempo di discesa arbitrario, ritardo nullo e periodo e durata dell'impulso molto maggiori del tempo di simulazione, ad esempio PER=20s, PW=10s).


Il valore quadratico medio dell'errore di quantizzazione vale VM/(2n12); non mi è chiaro perché questa grandezza può essere riguardata come il valore efficace Vnq di una tensione di rumore che, sovrapposta ad un segnale comunque variabile in uno degli intervalli di ampiezza VM/(2n), provoca l’emissione dello stesso codice, corrispondente allo specifico intervallo?

Consideriamo, per fissare le idee, il processo di conversione A/D: a partire da un dato analogico si ottiene un dato numerico. Supponiamo di applicare tale dato, che indichiamo con x(t) (vedi la figura allegata), ad un convertitore D/A con risoluzione molto maggiore di quella del convertitore A/D (in teoria infinita). Il risultato analogico che si ottiene xq°(t) risulterà ovviamente dissimile dalla forma d'onda applicata all'ingresso del convertitore A/D, in particolare avrà una struttura a gradini dovuta alla risoluzione finita del convertitore A/D stesso. Tale risultato può essere riguardato come l'addizione di un rumore εq(t) al segnale originario: questo è il rumore di quantizzazione. Come è facile osservare, all'aumentare della risoluzione (sempre del convertitore A/D), la forma d'onda all'uscita della catena costituita dal convertitore A/D e dal convertitore D/A a risoluzione infinita sarà sempre più assimilabile a quella del segnale d'ingresso, ciò è interpretabile con la riduzione del livello del rumore di quantizzazione col crescere della risoluzione.


Come è possibile importare i grafici dei risultati delle simulazioni di PSpice e gli schemi elettrici di Capture in un documento Word? Ho provato con il copia e incolla ma non funziona.

Nel programma probe, quello che permette la visualizzazione delle forme d'onda, sotto il menù "Window" trovi un comando che si chiama "Copy to Clipboard...". Nella corrispondente finestra che appare, se ti vanno bene le opzioni preselezionate, scegli "OK". In questa maniera il grafico della forma d'onda viene immagazzinato nella clipboard. Ora passa al documento Word ed esegui "Paste" dal menù "Edit" (o batti V tenendo schiacciato il tasto CTRL); in questa maniera viene importato il grafico che puoi, eventualmente, anche ridimensionare. Per quanto riguarda lo schema elettrico, nel programma Capture, seleziona la parte di schema che ti interessa (anche tutto eventualmente) servendoti del mouse, quindi seleziona "Copy" nel menù "Edit" (o batti C tenendo schiacciato il tasto CTRL); in questa maniera lo schema elettrico viene immagazzinato nella clipboard, quindi procedi come nel caso precedente.


Quando con PSpice si fanno comparire i valori delle correnti sui rami di un circuito, alcune hanno il segno negativo. Cosa significa? è forse una convenzione per indicare il verso entrante e uscente?

In PSpice le correnti sono correlate ai soli componenti, infatti, qualora provi a rilevare la corrente in un ramo privo di componenti, PSpice evidenzia un errore scrivendo Current marker will be ignored unless connected to a pin. A ciascun morsetto di ogni componente PSpice attribuisce una gerarchia, nel senso che, anche per una resistenza, c'è un morsetto convenzionalmente a potenziale maggiore ed uno a potenziale minore. Siccome PSpice considera positive le correnti entranti nel componente attraverso il morsetto convenzionalmente a potenziale maggiore, se la corrente in realtà esce da tale morsetto anziché entrarvi, quanto poni il marker in corrispondenza di questo morsetto PSpice indica la corrente come negativa. Naturalmente se poni il marker sull'altro morsetto la corrente in questo caso sarà positiva.


Ho cercato di simulare il generatore del circuito allegato ma non oscilla, qual'è il problema?

Ho modificato il circuito in modo che funzioni. Il problema è che in un oscillatore si hanno normalmente delle oscillazioni se agisce qualche agente che le innesca, ad esempio del rumore. Nel circuito che avevi fatto il circuito si trovava in condizioni stazionarie già dall’istante iniziale e questo gli impediva di avviare le oscillazioni. Per ovviare a ciò si può procedere in più maniere, ad esempio si può applicare lungo l’anello di reazione  un impulso di breve durata, oppure procedere come ho fatto io simulando, in maniera più realistica l’accensione del circuito. Questo è stato fatto sostituendo i generatori di polarizzazione con generatori di impulsi che generano una tensione che cresce da 0V al valore di regime in un tempo finito.