ciao a tutti sto effettuando delle simulazioni con micro_cap su dei filtri attivi e mi piacerebbe plottare il diagramma dei poli e degli zeri.
Sapete se c'è un modo per farlo?
Nelle opzioni non ho trovato nulla
Fatemi sapere grazie
simulazioni con micro_cap
Moderatori:
carloc,
g.schgor,
BrunoValente,
IsidoroKZ
10 messaggi
• Pagina 1 di 1
5
voti
Se intendi il diagramma di Bode, MicroCap lo disegna
con Analysis/AC specificando in dB() il rapporto fra uscita ed ingresso,
fissando i limiti di frequenza (Frequency Range) e abilitando la scala
automatica (Auto Scale Ranges).
Se, invece del circuito, vuoi scrivere la funzione di trasferimento,
devi usare le funzioni di Laplace (Component/Analog Primitives/Laplace Sources/LFVofV)
Sull'uso di LF puoi trovare esempi in questo articolo.
Se infine hai difficoltà, scrivi la funzione e ti mando la specifica procedura
con Analysis/AC specificando in dB() il rapporto fra uscita ed ingresso,
fissando i limiti di frequenza (Frequency Range) e abilitando la scala
automatica (Auto Scale Ranges).
Se, invece del circuito, vuoi scrivere la funzione di trasferimento,
devi usare le funzioni di Laplace (Component/Analog Primitives/Laplace Sources/LFVofV)
Sull'uso di LF puoi trovare esempi in questo articolo.
Se infine hai difficoltà, scrivi la funzione e ti mando la specifica procedura
1
voti
Ottenere i valori dei poli e degli zeri di una funzione di trasferimento e' un annoso problema su cui sto lavorando da tempo per motivi personali di studio e lavoro.
Allo stato attuale delle cose solo SPICE permetterebbe di ottenere tali valori. Dico permetterebbe perche' di fatto solo una versione in mio possesso da me compilata, la 3f5 di Berkeley ha tale funzionalita', che pero' risulta male implementata e di fatto non calcola un tubo.
Per quanto mi consta solo STAR-HSpice della Synopsys - una versione commerciale - ha effettivamente tale comando implementato e funzionante (.PZ), ma non ce l'ho disponibile per delle prove.
Potrebbe esserci poi NGSpice (un software public) ma francamente non ho avuto voglia di verificare se ha tale funzione implementata, dato che mi basta e avanza gia' PSPICE coi suoi casini
In pratica ho aggirato il problema calcolandomi a mano le funzione di trasferimento, utilizzando la modified nodal analysis e tutte le semplificazioni consentite dalla tipologia di circuito.
Una volta scritta la matrice delle ammettenze nel dominio s, sostituisco ai simboli letterali i valori corrispondenti (fisici) dei componenti, e risolvo il determinante usando un programma di calcolo simbolico, come ad esempio Maxima.
Ottengo due polinomi in s, per numeratore e denominatore della funzione di trasferimento; con Maxima ne determino gli zeri (dei polinomi!), ottenendo cosi' i valori numerici di zeri e poli.
Il metodo e' laborioso ma funziona perfettamente ed e' ovviamente molto preciso: l'unica avvertenza e' che possono risultare dei poli "extra", derivanti dalle inevitabili approssimazioni numeriche del programma utilizzato. Per tenere sotto controllo tale "fenomeno" e' sufficiente verificare ad occhio il numero dei poli e degli zeri della rete sotto esame: i poli "extra" sono poli con pulsazione di valore enorme, tipo 10e+24, che sono ovviamente irrealistici e che vanno quindi scartati.
Io lo utilizzo normalmente, perche' mi consente di tenere meglio sotto controllo il funzionamento del circuito sotto analisi/progetto: saro' vecchia scuola, ma preferisco cosi' piuttosto che fare simulazioni a "capocchia" con SPICE
Spice lo uso eccome, ma solo quando serve e solo per le verifiche finali.
Max
Allo stato attuale delle cose solo SPICE permetterebbe di ottenere tali valori. Dico permetterebbe perche' di fatto solo una versione in mio possesso da me compilata, la 3f5 di Berkeley ha tale funzionalita', che pero' risulta male implementata e di fatto non calcola un tubo.
Per quanto mi consta solo STAR-HSpice della Synopsys - una versione commerciale - ha effettivamente tale comando implementato e funzionante (.PZ), ma non ce l'ho disponibile per delle prove.
Potrebbe esserci poi NGSpice (un software public) ma francamente non ho avuto voglia di verificare se ha tale funzione implementata, dato che mi basta e avanza gia' PSPICE coi suoi casini
In pratica ho aggirato il problema calcolandomi a mano le funzione di trasferimento, utilizzando la modified nodal analysis e tutte le semplificazioni consentite dalla tipologia di circuito.
Una volta scritta la matrice delle ammettenze nel dominio s, sostituisco ai simboli letterali i valori corrispondenti (fisici) dei componenti, e risolvo il determinante usando un programma di calcolo simbolico, come ad esempio Maxima.
Ottengo due polinomi in s, per numeratore e denominatore della funzione di trasferimento; con Maxima ne determino gli zeri (dei polinomi!), ottenendo cosi' i valori numerici di zeri e poli.
Il metodo e' laborioso ma funziona perfettamente ed e' ovviamente molto preciso: l'unica avvertenza e' che possono risultare dei poli "extra", derivanti dalle inevitabili approssimazioni numeriche del programma utilizzato. Per tenere sotto controllo tale "fenomeno" e' sufficiente verificare ad occhio il numero dei poli e degli zeri della rete sotto esame: i poli "extra" sono poli con pulsazione di valore enorme, tipo 10e+24, che sono ovviamente irrealistici e che vanno quindi scartati.
Io lo utilizzo normalmente, perche' mi consente di tenere meglio sotto controllo il funzionamento del circuito sotto analisi/progetto: saro' vecchia scuola, ma preferisco cosi' piuttosto che fare simulazioni a "capocchia" con SPICE
Spice lo uso eccome, ma solo quando serve e solo per le verifiche finali.
Max
0
voti
Se il problema si riduce a trovare poli e zeri data la funzione
di trasferimento, non vedo cosa c'entrino i programmi di simulazione.
Mathcad ha per questo funzioni speciali: "solve for variable" per
gli zeri e "convert to partial fractions" per i poli.
di trasferimento, non vedo cosa c'entrino i programmi di simulazione.
Mathcad ha per questo funzioni speciali: "solve for variable" per
gli zeri e "convert to partial fractions" per i poli.
1
voti
Verissimo. Ma temo che il problema sia ottenere la funzione di trasferimento,e da quel che ho letto gironzolando qua e la' su vari forum specialistici sembra che siamo rimasti in pochi a sapercela ricavare a manina.
Esistono peraltro programmi dedicati in grado di ricavare poli e zeri data la netlist, ma sono rari, costosi e usati perlopiu' in ambito universitario/specialistico. Io ne conoscevo due, CORNAP della Cornell University, e TOTAL, creato nella School of Engineering, Air Force Institute of Technology di Patterson, USA.
Un altro lo ebbi a disposizione al Politcnico di Torino e funzionava eccome. Ma non sono mai riuscito a trovare sorgenti o documentazione di qualsiasi tipo.
Programmi simili odierni, ne ho provati due, su consiglio di altri utenti di questo forum, e sono QSapecNG e SAPWin. Ambedue sarebbero ottimi allo scopo, perche' consentono di disegnare un circuito elettronico con un programma di disegno minimale e una altrettanto minimale lista di componenti disponibili, dopodiche' ricavano la funzione di trasferimento in forma letterale e poi successivamente permettono di eseguire l'analisi della rete: poli/zeri, bode, risposta al transitorio e cosi' via.
Purtroppo ambedue soffrono di problemi: QSapecNG crasha facilmente, mentre SAPWin non crasha mai (non a me almeno) ma purtroppo soffre di problemi di convergenza nell'analisi tali per cui, data una rete anche con soli due BJT e 4 costanti di tempo, riesce a calcolare tutto meno il diagramma di fase e i poli/zeri.
L'errore non dipende dalla topologia della rete, ma dai valori delle costanti di tempo: puo' capitare che per determinati valori di esse SAPWin converga e calcoli (in maniera corretta peraltro) poli e zeri, ma basta cambiarne una, anche di poco (allo scopo di variare, ad esempio la compensazione di un circuito) perche' SAPWin nuovamente non riesca ad effettuare i calcoli
Ho aggirato il problema copiando la funzione di trasferimento ottenuta e incollandola dentro un qualsiasi programma di calcolo simbolico come detto in un mio precedente post.
Sarebbe interessante se qualcuno potesse suggerire altri programmi simili ai due appena citati.
Max
Esistono peraltro programmi dedicati in grado di ricavare poli e zeri data la netlist, ma sono rari, costosi e usati perlopiu' in ambito universitario/specialistico. Io ne conoscevo due, CORNAP della Cornell University, e TOTAL, creato nella School of Engineering, Air Force Institute of Technology di Patterson, USA.
Un altro lo ebbi a disposizione al Politcnico di Torino e funzionava eccome. Ma non sono mai riuscito a trovare sorgenti o documentazione di qualsiasi tipo.
Programmi simili odierni, ne ho provati due, su consiglio di altri utenti di questo forum, e sono QSapecNG e SAPWin. Ambedue sarebbero ottimi allo scopo, perche' consentono di disegnare un circuito elettronico con un programma di disegno minimale e una altrettanto minimale lista di componenti disponibili, dopodiche' ricavano la funzione di trasferimento in forma letterale e poi successivamente permettono di eseguire l'analisi della rete: poli/zeri, bode, risposta al transitorio e cosi' via.
Purtroppo ambedue soffrono di problemi: QSapecNG crasha facilmente, mentre SAPWin non crasha mai (non a me almeno) ma purtroppo soffre di problemi di convergenza nell'analisi tali per cui, data una rete anche con soli due BJT e 4 costanti di tempo, riesce a calcolare tutto meno il diagramma di fase e i poli/zeri.
L'errore non dipende dalla topologia della rete, ma dai valori delle costanti di tempo: puo' capitare che per determinati valori di esse SAPWin converga e calcoli (in maniera corretta peraltro) poli e zeri, ma basta cambiarne una, anche di poco (allo scopo di variare, ad esempio la compensazione di un circuito) perche' SAPWin nuovamente non riesca ad effettuare i calcoli
Ho aggirato il problema copiando la funzione di trasferimento ottenuta e incollandola dentro un qualsiasi programma di calcolo simbolico come detto in un mio precedente post.
Sarebbe interessante se qualcuno potesse suggerire altri programmi simili ai due appena citati.
Max
1
voti
Segnalo anche questo (con MatLab)
che però parte sempre dalla funzione di trasferimento.
Per dirla tutta, sono scettico sull'uso pratico del "luogo delle radici"
Ho lavorato per 35 anni in una grande azienda elettromeccanica ed
ho visto innumerevoli loop di regolazione in impianti di ogni genere,
ma mai un progettista usare il metodo delle radici...
Da quando sono stati introdotti i regolatori con amplificatori oerazionali,
per la verità non ho visto nemmeno più usare Bode (la messa a punto
era lasciata al personale di istallazione) e solo in casi particolarmente
complicati si ricorreva alla simulazione (negli anni '60 con simulatori analogici,
dopo il '70 col computer)
Nella pratica non si conoscono quasi mai le costanti di tempo in gioco
e spesso queste variano nelle diverse condizioni di funzionamento
(ad esempio il posizionamento di un carrello pieno o vuoto) e
molti calcoli teorici sulle prestazioni dei regolatori vengono vanificati
dalla saturazione di questi.
che però parte sempre dalla funzione di trasferimento.
Per dirla tutta, sono scettico sull'uso pratico del "luogo delle radici"
Ho lavorato per 35 anni in una grande azienda elettromeccanica ed
ho visto innumerevoli loop di regolazione in impianti di ogni genere,
ma mai un progettista usare il metodo delle radici...
Da quando sono stati introdotti i regolatori con amplificatori oerazionali,
per la verità non ho visto nemmeno più usare Bode (la messa a punto
era lasciata al personale di istallazione) e solo in casi particolarmente
complicati si ricorreva alla simulazione (negli anni '60 con simulatori analogici,
dopo il '70 col computer)
Nella pratica non si conoscono quasi mai le costanti di tempo in gioco
e spesso queste variano nelle diverse condizioni di funzionamento
(ad esempio il posizionamento di un carrello pieno o vuoto) e
molti calcoli teorici sulle prestazioni dei regolatori vengono vanificati
dalla saturazione di questi.
1
voti
@franticEY:
ad ogni modo, nel caso specifico, trattandosi di filtri attivi, se uno vuole (per curiosita', interesse personale o altro) plottare il diagramma poli/zeri, si puo' risolvere la questione abbastanza facilmente.
Dato che i filtri attivi sono perlopiu' riconducibili a poche tipologie, li si puo' trattare come blocchi funzionali interconnessi tra loro nella maniera piu' opportuna e conveniente. Unica condizione e' che i blocchi non devono essere tra loro interagenti o che perlomeno vi siano le condizioni per assumere, sia pure in maniera approssimativa, che l'interazione sia trascurabile.
Per ogni blocco funzionale la funzione di trasferimento e' nota e la si puo' desumere dai vari libri che trattano l'argomento, assieme ai grafici caratteristici normalizzati e ai metodi per la scelta dei valori dei componenti.
In tal modo non e' poi troppo difficile scrivere la funzione di trasferimento completa, noti i poli/zeri dei singoli blocchi.
Max
ad ogni modo, nel caso specifico, trattandosi di filtri attivi, se uno vuole (per curiosita', interesse personale o altro) plottare il diagramma poli/zeri, si puo' risolvere la questione abbastanza facilmente.
Dato che i filtri attivi sono perlopiu' riconducibili a poche tipologie, li si puo' trattare come blocchi funzionali interconnessi tra loro nella maniera piu' opportuna e conveniente. Unica condizione e' che i blocchi non devono essere tra loro interagenti o che perlomeno vi siano le condizioni per assumere, sia pure in maniera approssimativa, che l'interazione sia trascurabile.
Per ogni blocco funzionale la funzione di trasferimento e' nota e la si puo' desumere dai vari libri che trattano l'argomento, assieme ai grafici caratteristici normalizzati e ai metodi per la scelta dei valori dei componenti.
In tal modo non e' poi troppo difficile scrivere la funzione di trasferimento completa, noti i poli/zeri dei singoli blocchi.
Max
10 messaggi
• Pagina 1 di 1
Chi c’è in linea
Visitano il forum: Nessuno e 73 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)





