Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Polo "extra" nella funzione di trasferimento...

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utenteg.schgor, Foto UtenteIsidoroKZ, Foto UtenteBrunoValente, Foto Utentecarloc

4
voti

[1] Polo "extra" nella funzione di trasferimento...

Messaggioda Foto Utentebanjoman » 20 set 2013, 4:17

Ciao a tutti,
mi sono appena iscritto a questo sito dietro consiglio di un mio amico.
Per motivi che non mi dilungo a spiegare, dopo molti (troppi) anni di inattivita' nel campo della progettazione elettronica analogica, devo riprendere la mano con la teoria.
Armato di pazienza e volonta' mi sto ripassando i sacri testi e i miei appunti del Politecnico di TO, e mi sto scervellando su un problema che molto probabilmente e' banale e ha una soluzione stupida, ma che mi e' rimasto come un tarlo che non mi fa dormire la notte.

Ripassando i vari metodi di analisi dei circuiti elettronici, mi sono messo ovviamente a svolgere esercizi di tutti i tipi, allo scopo di riacquistare la destrezza che avevo anni fa. Analisi della risposta in frequenza, con e senza feedback, alle alte e basse frequenze, ecc. Metodi vari, dall'analisi con le matrici delle ammettenze, al MNA, al OCTC, Cochrun-Grabel, Rosenstark, Middlebrook ecc ecc.

Mentre svolgevo l'analisi di un semplice circuito a BJT a due stadi con reazione current-shunt, ho deciso di provare per verifica a scrivere la matrice del circuito e risolverla manualmente. E' una matrice 6x6, lo so che e' da folli, ma come ho gia' detto, mi serve per riacquistare la destrezza coi calcoli e passaggi algebrici vari, determinanti, minori eccetera.

Il circuito in questione e' composto da due BJT in cascata, il primo a emettitore comune, e il secondo a emettitore comune con Re. Utilizzo il circuito a parametri ibridi a pi-greco. E' l'esempio classico utilizzato nella totalita' dei testi, Millman incluso.

Visivamente si vede subito che il circuito contiene 4 poli e 4 zeri. Con l'analisi semplificata costruendo il circuito con reazione annullata si ottengono invece 4 poli e 3 zeri, e fin qua tutto bene.

Eseguendo l'analisi sul circuito completo, con reazione, mi ritrovo una matrice 6x6, che mi da' come risultato un polinomio di quarto grado a numeratore (e va bene) e... un polinomio di QUINTO grado al denominatore.

Con l'ausilio di XMaxima (un programma per calcoli simbolici e non), ottengo le radici del polinomio a denominatore, che sono i poli del sistema.
Ebbene, di questi poli, i primi quattro hanno i valori numerici previsti, il quinto un valore esagerato, del tipo 2e+24.

A questo punto mi sono riaffiorati in mente nebulosi ricordi di quando assistevo alle lezioni di Elettronica Applicata 1, durante le quali il docente affermo', (molto fumosamente e senza addentrarsi in dettagli) che quei poli erano da non prendere in considerazione perche' essere effetti collaterali dell'analisi nodale applicata a un circuito contenente generatori pilotati e feedback.

All'epoca (1984 circa) non approfondii piu' di tanto, anche perche' poi, in definitiva, nessuno sano di mente si metteva a scrivere le equazioni nodali di un circuito men che meno complesso, senza aiutarsi con software appositi, ma ora che questo problema e' risaltato fuori, mi sta intrigando al punto che voglio vederci chiaro una volta per tutte.

Giusto per focalizzare il problema, mi sono messo ad effettuare l'analisi della risposta in alta frequenza di un singolo stadio a BJT nella configurazione split-load detto anche emettitore comune con Re.
Ebbene, mentre utilizzando il metodo semplificato con reazione annullata si ottengono correttamente due poli e uno zero (dato che e' un'analisi per approssimazione), il circuito reale deve avere ovviamente DUE poli e DUE zeri, cosa confermata ad esempio dal testo Microelectronics di Millman, che utilizza il programma CORNAP per calcolare poli e zeri dei circuiti, siano essi a reazione annullata o meno.

Ebbene, scrivendo la matrici del circuito completo, mi ritrovo una matrice 3x3, che a occhio gia' capisco che mi tirera' fuori un polinomio a denominatore di 3o grado. Termino i calcoli e mi ritrovo con i valori degli zeri perfetti, i primi due poli anch'essi corretti, e poi il solito polo "extra" del valore di -2.38e24 rad/sec, decisamente fuori dal mondo.

Ho provato a consultare tutti i testi in mio possesso, senza che nessuno facesse cenno a un fatto simile. Il Millman poi i risultati li fornisce di getto, dicendo "usando il programma CORNAP si ottengono i poli.... e gli zeri..." ma senza scrivere l'effettiva matrice del circuito. L'analisi e' sempre e soltanto svolta integralmente coi metodi semplificati (polo dominante, effetto Miller ecc.).

Navigando su internet ho trovato decine di libri che riportano gli stessi esempi, ma nessuno che citasse la comparsa di poli in sovrannumero oltre a quelli "naturali" del sistema, in presenza di reazione.

Detto per inciso, il polo "extra" che mi ritrovo, ancorche' di valore esagerato, non e' possibile trascurarlo se voglio calcolare anche il K della funzione di trasferimento: per s=0 il valore risultante dal K moltiplicato per gli zeri e diviso per i poli deve essere pari (ovviamente) al guadagno di centrobanda (ricordo che sto facendo l'analisi alle alte frequenze) e cio' avviene se considero TUTTI i poli ottenuti, anche quello "extra" dal valore esagerato.

Cio' e' matematicamente prevedibile: se il polinomio e' di terzo grado, tre devono essere le radici e tre i poli: non posso "buttare via" un polo solo perche' il suo valore e' irrealistico.

A questo punto mi sono arenato. Continuando con altri metodi di analisi piu' moderni e procedendo col mio ripasso-monstre ottengo risultati prevedibili e congrui. Solamente mi e' rimasto quel tarlo li'.

Detto "en passant", mi e' capitato per caso un testo che ho provveduto immediatamente a consultare a fondo, il "Feedback Amplifier Principles" di Sol Rosenstark
Ebbene, mi sono ritrovato la stessa identica analisi del single stage BJT with Re, con la stessa identica matrice che avevo gia' ottenuto io:

Immagine

E poi conclude dicendo:

Immagine

E io a questo punto mi arrendo e chiedo lumi a voi amici..
Magari la soluzione e' ovvia, ma io non la vedo, sara' l'eta' che avanza...

Intuitivamente posso anche pensare che la combinazione di feedback e generatori controllati all'interno di un circuito siffatto possano magari avere effetti collaterali imprevisti sui poli e zeri naturali della rete. Ma io voglio una spiegazione di cio' che accade e perche'. Matematica o fisica che sia. Fisica poi non credo tanto, ammesso e non concesso che il terzo polo che risulterebbe dalla risoluzione della matrice di cui sopra sia "fisicamente reale", facendo due conti avrebbe una frequenza che, nello spettro elettromagnetico, rientra nel campo dei raggi X e gamma...

Max
Avatar utente
Foto Utentebanjoman
7.933 5 8 12
Master EY
Master EY
 
Messaggi: 1181
Iscritto il: 19 set 2013, 19:27

9
voti

[2] Re: Polo "extra" nella funzione di trasferimento...

Messaggioda Foto UtenteIsidoroKZ » 20 set 2013, 5:46

Credo sia un problema di cancellazione numerica per cui il termine in s^3 non sparisce.

Il risultato dato da Rosenstark e` giusto almeno al 75% :-), ho verificato il termine in s^2 il termine "noto" e il coefficiente di Cpi, mi sono stufato quando si e` trattato di verificare il coefficiente di Cmu.

Che quella matrice abbia un determinante che da` un polinomio quadratico e` facile da vedere. I termini della matrice sono tutti o reali o del primo ordine in s: per ottenere un s^3 devi moltiplicare tre termini in s.

Poiche' quando calcoli un determinante di una matrice 3x3 hai una somma di prodotti di TRE fattori (pensa alla regola di Sarrus), vuol dire che i termini in s^3 possono solo essere del tipo s^3 Cpi Cmu^2 o cose del genere, senza nessuna g di mezzo (devi ottenere un cubo moltiplicando tre termini in s, non c'e` spazio per le g).

Allora vuol dire che il termine in s^3 puoi calcolarlo mettendo a zero tutte le g della matrice e ottieni

\mathrm{DET}\begin{vmatrix}
s(C_\mu+C_\pi) & -sC_\pi&-sC_\mu \\ 
-sC_\pi &sC_\pi  &0 \\ 
 -sC_\mu&0  & sC_\mu
\end{vmatrix}

e questo lo si vede facilmente che fa 0, quindi niente termine cubico in s. E` un problema di cancellazione numerica.

Ad esempio il polinomio s^2+4s+3 ha ovviamente radici in -3 e -1. Ma se c'e` un piccolo errore di cancellazione numerica e ottieni per esempio 10^{-n}s^3+s^2+4s+3 con n diciamo da 5 in su (per questa equazione), le soluzioni sono circa -3, -1 come prima ma anche 10^n.

Quindi un problema matematico.

Cosa diversa invece e` la significativita` dei poli e zeri. Nel circuito di prima hai due condensatori indipendenti e quindi sicuramente due poli e due zeri (eventualmente all'infinito). Se fai i conti con un BJT trovi 2 poli, uno zero a destra e uno zero a sinistra a frequenza finita (credo, non ho fatto i conti). Se il BJT e` poco retroazionato (RE piccola o inesistente) il secondo polo e lo zero a destra sono a frequenze in cui il modello del transistore (ad esempio di Giacoletto) non e` piu` valido e quindi sono risultati senza senso.

Se invece stai trattando un MOS, che, ceteris paribus, ha una gm molto piu` bassa, lo zero a destra si fa sentire e diventa importante nel circuito.

In ogni caso di solito in alta frequenza basta il polo dominante, se c'e` oppure il limite di banda calcolato in modo piu` o meno complicato se ci sono poli e zeri vicini.

Una curiosita`: dove hai trovato Middlebrook, Rosenstark, Cochrun...? A quei tempi non si facevano!
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
Avatar utente
Foto UtenteIsidoroKZ
107,8k 1 3 8
G.Master EY
G.Master EY
 
Messaggi: 19037
Iscritto il: 17 ott 2009, 0:00

3
voti

[3] Re: Polo "extra" nella funzione di trasferimento...

Messaggioda Foto Utentebanjoman » 20 set 2013, 12:32

Sono d'accordo con te su tutto, e in effetti l'unica possibilita' rimastami era che, facendo sviluppare il determinante da un qualsiasi software matematico, il polo "extra" fosse dovuto a un problema di arrotondamenti, ma volevo averne conferma da qualcuno che riuscisse a seguire i miei ragionamenti "old style", mentre adesso va di moda infilare qualsiasi circuitocapiti sottomano dentro SPICE, simularlo e pasticciando qua e la' sistemarne le caratteristiche alla bell'e meglio.

Effettivamente sviluppando il determinante a manina usando i termini letterali anziche' i valori numerici non ottengo termini cubici, e sicuramente anche con il det 6x6 le cose si sistemeranno.

Cio' non toglie che pero', almeno un cenno, un'avvertenza, sull'utilizzo di software algebrici-numerici per calcolare questi benedetti determinanti con gli errori associati i testi potevano almeno citarla...

Volevo provare con SPICE, che avrebbe una funzione denominata .PZ per estrarre appunto i poli e gli zeri della funzione di trasferimento, giusto per vedere cosa capitava, ma purtroppo le versioni in mio possesso non lo consentono. PSPICE il comando non ce l'ha implementato proprio, mentre SPICE3f5 (compilato a me usando il codice C originale di Berkeley) riconosce il comando ma... stampa il nulla assoluto!
Investigando nelle discussioni dedicate a SPICE, ho desunto che tale comando c'e' ma e' implementato come capita, a seconda della versione di SPICE.

L'unico SPICE che ha effettivamente tale comando, documentato e funzionante, sembra essere HSPICE della Synopsys, che io purtroppo non ho.
Da varie discussioni in vari forum USA sembrerebbe che estrarre poli e zeri da una fdt e' tecnica arcaica e preistorica, ma io non sono d'accordo. Poli e zeri a me danno informazioni importantissime su dove intervenire per ritoccare la risposta di un circuito, senza perdere tanto tempo in simulazioni a raffica (io uso ancora la vecchia tecnica di carta, matita, calcolatrice, elucubrazioni mentali e misure all'oscilloscopio per ottimizzare al volo i miei circuiti). Purtroppo sembra che tale modo di procedere, che permette di capire meglio cosa realmente accade in un circuito elettronico, stia andando perso, col risultato che spesso incontro persone che non sanno nemmeno piu' mettere le mani dentro circuiti realizzati con componenti discreti...

Per quanto riguarda Dove ho trovato MidlleBrook, Rosenstark eccetera, nel periodo in cui mi occupavo d'altro (programmazione in C) mi tenevo aggiornato sulle evoluzioni dell'analisi di reti, segnandomi nomi e tecniche per futura memoria. Cosicche' mi e' bastato poco per rintracciare tutti i libri necessari. Devo dire in effetti che dal 1977 ad oggi sono stati fatti progressi inverosimili. Ma tutto sommato, per le mie esigenze, i vecchi metodi classici vanno ancora benissimo, a patto di saperli applicare bene, non trovi?

Controllero' se mi riesce, anche l'espansione algebrica della matrice 6x6, giusto per togliermi la curiosita'.

Max
Avatar utente
Foto Utentebanjoman
7.933 5 8 12
Master EY
Master EY
 
Messaggi: 1181
Iscritto il: 19 set 2013, 19:27

2
voti

[4] Re: Polo "extra" nella funzione di trasferimento...

Messaggioda Foto UtenteDirtyDeeds » 20 set 2013, 12:35

banjoman ha scritto:Volevo provare con SPICE, che avrebbe una funzione denominata .PZ per estrarre appunto i poli e gli zeri della funzione di trasferimento, giusto per vedere cosa capitava, ma purtroppo le versioni in mio possesso non lo consentono.


Da quanto letto in giro sembra che fosse una funzione che dava risultati piuttosto inaccurati.
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.
Avatar utente
Foto UtenteDirtyDeeds
55,8k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7013
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

2
voti

[5] Re: Polo "extra" nella funzione di trasferimento...

Messaggioda Foto UtenteRenzoDF » 20 set 2013, 12:57

Sapwin?
"Il circuito ha sempre ragione" (Luigi Malesani)
Avatar utente
Foto UtenteRenzoDF
53,9k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 12625
Iscritto il: 4 ott 2008, 9:55

1
voti

[6] Re: Polo "extra" nella funzione di trasferimento...

Messaggioda Foto Utentebanjoman » 20 set 2013, 13:44

RenzoDF ha scritto:Sapwin?


Uao, non lo conoscevo assolutamente!
Sembra proprio cio' che fa al caso mio, ovvero senza simulazioni numeriche "brute-force"...

Grazie Renzo!
Avatar utente
Foto Utentebanjoman
7.933 5 8 12
Master EY
Master EY
 
Messaggi: 1181
Iscritto il: 19 set 2013, 19:27

6
voti

[7] Re: Polo "extra" nella funzione di trasferimento...

Messaggioda Foto UtenteRenzoDF » 20 set 2013, 13:52

banjoman ha scritto:...Uao, non lo conoscevo assolutamente!
Sembra proprio cio' che fa al caso mio, ovvero senza simulazioni numeriche "brute-force"...

E' disponibile anche il suo erede multipiattaforma QSapecNG
http://sourceforge.net/projects/qsapecng/

del "nostro" Foto Utenteskypjack, Michele Caini.
"Il circuito ha sempre ragione" (Luigi Malesani)
Avatar utente
Foto UtenteRenzoDF
53,9k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 12625
Iscritto il: 4 ott 2008, 9:55

1
voti

[8] Re: Polo "extra" nella funzione di trasferimento...

Messaggioda Foto Utentebanjoman » 20 set 2013, 13:56

DirtyDeeds ha scritto:
banjoman ha scritto:Volevo provare con SPICE, che avrebbe una funzione denominata .PZ per estrarre appunto i poli e gli zeri della funzione di trasferimento, giusto per vedere cosa capitava, ma purtroppo le versioni in mio possesso non lo consentono.


Da quanto letto in giro sembra che fosse una funzione che dava risultati piuttosto inaccurati.


Ah bene, allora non insistero' oltre a provare con SPICE, e provero' invece con QSapecNG come consigliatomi.
Grazie ragazzi, siete una miniera di informazioni preziosissima. Spero di poter ricambiare quanto prima aiutandovi a mia volta.

Appena avro' un minimo di tempo vedro' di attivare il mio spazio blog sia pure minimale. Nel frattempo vi anticipo dicendovi che mi occupo di progettazione e analisi di circuiti analogici prevalentemente discreti, anche a valvole, e di riparazioni/restauro di oscilloscopi Tektronix d'epoca (dal 1955 ai primi anni '80)

Max
Avatar utente
Foto Utentebanjoman
7.933 5 8 12
Master EY
Master EY
 
Messaggi: 1181
Iscritto il: 19 set 2013, 19:27

3
voti

[9] Re: Polo "extra" nella funzione di trasferimento...

Messaggioda Foto Utentexyz » 20 set 2013, 14:10

banjoman ha scritto:Volevo provare con SPICE, che avrebbe una funzione denominata .PZ per estrarre appunto i poli e gli zeri della funzione di trasferimento, giusto per vedere cosa capitava, ma purtroppo le versioni in mio possesso non lo consentono. PSPICE il comando non ce l'ha implementato proprio, mentre SPICE3f5 (compilato a me usando il codice C originale di Berkeley) riconosce il comando ma... stampa il nulla assoluto!
Investigando nelle discussioni dedicate a SPICE, ho desunto che tale comando c'e' ma e' implementato come capita, a seconda della versione di SPICE.


Il codice di PSPICE deriva dal codice di SPICE2 quindi non ha la direttiva .PZ, solo dalla versione 3 è stata implementata. La versione originale di SPICE3f è vecchia e ci sono dei bachi, in giro si trovano delle patch ma la cosa migliore è usare NG-SPICE, ha tutte le patch applicate con dei miglioramenti:

http://ngspice.sourceforge.net/
Avatar utente
Foto Utentexyz
6.205 2 4 5
G.Master EY
G.Master EY
 
Messaggi: 1655
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

6
voti

[10] Re: Polo "extra" nella funzione di trasferimento...

Messaggioda Foto UtenteIsidoroKZ » 20 set 2013, 15:48

banjoman ha scritto:...io uso ancora la vecchia tecnica di carta, matita, calcolatrice, elucubrazioni mentali e misure all'oscilloscopio per ottimizzare al volo i miei circuiti...

Ma tutto sommato, per le mie esigenze, i vecchi metodi classici vanno ancora benissimo, a patto di saperli applicare bene, non trovi?


Certamente, fra capire perche' un circuito si comporta in un modo e non capirlo, meglio la seconda soluzione :)

Se hai trovato utile il libro di Rosenstark (che si puo` scaricare dal sito dell'autore), potrebbero anche interessarti i seminari di Middlebrook, http://www.ardem.com/D_OA_Rules&Tools/index.asp e il libro di Palumbo Pennisi sul Feedback.

Le matrici 6x6 lasciale stare, quelle non passano piu`: a meno che non ci siano tanti zeri, per svilupparle in modo formale servono TANTE! operazioni (l'esclamativo e` per il fattoriale).

Good luck con i tuoi calcoli!
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
Avatar utente
Foto UtenteIsidoroKZ
107,8k 1 3 8
G.Master EY
G.Master EY
 
Messaggi: 19037
Iscritto il: 17 ott 2009, 0:00

Prossimo

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Majestic-12 [Bot] e 64 ospiti