A seguito di alcuni articoli ([1] [2][3]) sull'argomento, si esamina la possibilità di utilizzare il programma di simulazione MicroCap per lo studio della risposta nel tempo di un blocco definito dalla funzione di trasferimento nella s di Laplace.
L'attuale edizione di MicroCap è la 10 ed una versione ridotta 'Evaluation è scaricabile da qui.
Il problema
Il problema è sintetizzato nella seguente figura:
Si vuole cioè conoscere quale sarà l'andamento nel tempo di un segnale d'uscita, dati il segnale d'ingresso e la funzione di trasferimento in termini di Laplace.
MicroCap mette a disposizione per questo uno speciale generatore LF (Laplace Function) che esegue direttamente l'antitrasformazione (percorso: Component/Analog Primitives/Laplace Sources/LFVofV)
Naturalmente il generatore di Vi può essere programmato per qualsiasi tipo di forma d'onda (ad es. gradino, onda quadra, sinusoide, ecc.), scrivendo, nella definizione di LF, la particolare funzione di trasferimento da considerare.
Vediamo subito un esempio semplice: la risposta di una costante di tempo ad un'onda quadra, considerando la costante 10ms (ad es. un RC da rispettivamente 1 kOhm e 10 uF), alimentato da un'onda quadra di 10 Hz.
Ecco il grafico di MicroCap (in blu Vi, in rosso Vu):
La funzione di trasferimento è scritta in FL semplicemente in questo modo: 1/(1+0.01*s)
E' ovvia la facilità nel trattare funzioni più complesse, evitando di ricorrere all'antitrasformazione (ad es. con Mathcad) per poi disegnarne l'andamento nel tempo.
Un esempio
Come esempio meno banale consideriamo il programma dimostrativo presente nella versione Evaluation (File/Open/L1.GIR) che riporta il caso di un circuito con L,R e C.
Applicando per l'analisi del circuito il metodo di Laplace, si può esprimere l'impedenza del parallelo di R1 e C1 come : e l'impedenza dell'intero circuito :
.
Poiché la corrente è , si può esprimere la tensione d'uscita come :
..
La funzione di trasferimento risulta allora :
Nel programma citato, i valori sono:
e la funzione di trasferimento può essere scritta esattamente così:
50/(50+1E-6*s+5E-14*s*s)
Il grafico risultante per una firma d'onda d'ingresso quadra a 1MHz è la seguente:
Attenzione al fatto che la funzione di trasferimento è ad anello aperto (cioè senza retroazione), quindi per lo studio di regolazioni occorre tenerlo ben presente.
Funzioni in anello chiuso
Per lo studio di una FdT ad anello chiuso ci sono due possibilità: calcolare la funzione equivalente all'intero anello o prevedere il calcolo dell'errore e la funzione di regolazione con una configurazione separata.
Esaminiamo il primo caso. Cosa succede se richiudiamo ad anello una semplice costante di tempo?
Varrà allora l'uguaglianza: da cui si ricava la FdT globale
Spero che il risultato non meravigli nessuno: a regime (cioè alla fine del transitorio) l'uscita Vu risulta la metà dell'ingresso Vi (errore "statico" del 50%).Si ha però il vantaggio del dimezzamento della costante di tempo T, quindi una risposta più rapida
Ecco infatti la risposta se programmiamo la funzione LF come 0.5/(1+0.005*s) . (la costante di tempo vista all'inizio, retroazionata unitariamente):
E' noto che per una regolazione proporzionale l'errore (cioè la differenza Vi-Vu) va moltiplicata per un coefficiente K che riduce sia l'errore statico che la costante di tempo.
L'introduzione nell'anello di un'amplificazione K porta infatti il guadagno da 0,5 a K/(K+1), (avvicinandosi al valore 1 più è grande K) e riducendo la costante di tempo a T/(K+1).
La simulazione in MicroCap mostra questo effetto ponendo ad es. K=10 nelle configurazioni precedenti:
Si vede nettamente che l'errore statico si è ridotto a ca 1/10 e così il "tempo di salita".
Sembra ovvio che con un K=100 l'errore si riduca ad 1/100.
Ma questo è vero nella realtà anche per il tempo di salita? Purtroppo no e vediamo il perché
Una possibile alternativa di simulazione è quella di inserire il regolatore proporzionale nell'anello,
quindi realizzando "fisicamente" la retroazione. Ecco una possibile configurazione in MicroCap:
Come si vede Vi è il segnale d'ingresso (con segno cambiato per tener conto dell'inversione dovuta all'amplificatore operazionale) a cui viene "sottratto" Vu. Per l'effetto della retroazione R2, questa differenza (l'errore) viene moltiplicata per 10 (K) ed applicata alla funzione LF che simula G.
Ora se diamo a Vi un valore molto basso (ad es 1V) possiamo vedere (traccia blu nell'immagine a sinistra) una risposta (traccia rossa) secondo la teoria (cioè ridotta a ca 1/10 rispetto a quella di G).
Si vede anche (traccia nera) l'uscita del regolatore che amplificando l'errore "forza" la risposta.
Nell'immagine di destra si ha invece il caso di Vi=5V. In tal caso l'errore iniziale moltiplicato per K richiederebbe un'uscita di 50V dal regolatore, cosa fisicamente impossibile. Si nota quindi (traccia nera) una saturazione dell'uscita che non può forzare più di tanto il tempo di salita di Vu.
Il risultato è quindi che il tempo di salita varia col livello del segnale di riferimento.
Lo stesso avverrebbe con un regolatore proporzionale-integrale, con cui l'errore statico viene praticamente azzerato: il "forzamento" della risposta potrebbe rivelarsi illusorio rispetto alla teoria.
E' per questa maggior aderenza alla realtà (non me ne vogliano i professori...) che, da ingegnere, per i progetti elettronici preferisco le simulazioni alle soluzioni puramente matematiche.