Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

16
voti

Conversione PWM->Tensione I

Questo articolo potrebbe a buon diritto chiamarsi come complicarsi la vita con due resistori e due condensatori nonché con tutte le osservazioni accessorie sulle specifiche e sulle prestazioni.

Una domanda posta sul forum [1] domandava come ricavare il valor medio della tensione di un segnale modulato in PWM. Il problema è spesso presente quando si vuole una uscita analogica da un microcontrollore che non contiene convertitori D/A ma ha la possibilità di generare un segnale modulato in larghezza d'impulso (PWM).

Questo articolo è la revisione di un mio post [2] ed è essenzialmente una scusa per presentare come si svolge la parte elettronica di un progetto semplice nello stile "back of the envelope" cominciando a studiare le specifiche, valutando le diverse soluzioni, calcolando i componenti del circuito e valutando infine le prestazioni ottenute.

Un secondo articolo [3], per i più temerari, analizzerà soluzioni ancora più complicate non presentate nel post.

Ad un progetto "vero" mancano svariati passi, ad esempio lo studio degli effetti delle tolleranze, la valutazione dei costi, della manufattibilità, la documentazione, l'aderenza alle normative... insomma tutte quelle cose che per me, in questo momento, non sono divertenti.


Indice

Introduzione

La conversione fra segnale PWM e sua tensione media avviene per mezzo di un filtro passa basso che estrae il valor medio, vale a dire la componente continua del segnale PWM. Nella Figura (1) è mostrata l'idea base del segnale PWM che veicola un segnale analogico.

Il segnale PWM è un segnale digitale che parte da zero e di ampiezza A\, a frequenza fissa f_c=\frac{1}{T_{sw}} in cui la durata dell'impulso T_{on}\, porta l'informazione. Per ogni ciclo di definisce il duty cycle come rapporto fra durata dell'impulso e durata del periodo D=T_{on}/T_{sw}\,. Il duty cycle di un impulso può evidentemente andare fra 0\, e 1\,, oppure anche fra 0%\, e 100%\,. Per alcuni calcoli si considera anche il rapporto complementare (T_{sw}-T_{on})/T_{sw}=T_{of\!f}/T_{sw}\,, che evidentemente vale 1-D\,.

Per estrarre la durata dell'impulso, cioè l'informazione, si deve valutare il valore medio della forma d'onda. In pratica un filtro passa basso prende l'area dell'impulso D\cdot A\,, tratteggio giallo in Figura (1), e la "spalma" su tutto un ciclo, area con tratteggio viola: il valore medio di ogni ciclo è dato dalla linea tratteggiata blu e vale V_m=D\cdot A. Inoltre il filtro passa basso smussa e ritarda la sequenza di valori medi che altrimenti formerebbero una gradinata.

Quella illustrata non è la sola forma possibile di segnale PWM: per variare la durata dell'impulso si può spostare il fronte di discesa, come in Figura (1) e si ha la modulazione trailing edge, oppure si sposta il fronte si salita, modulazione leading edge, o ancora si possono spostare in modo simmetrico i due fronti, modulazione double edge, così da mantenere a distanza costante T_{sw}\, i punti medi degli impulsi [6].

Nei tre casi il valore analogico estratto è sempre il valore medio. La modulazione trailing edge è usata negli alimentatori a commutazione ed è quella generata più spesso dai microcontrollori. La modulazione double edge è usata negli inverter per motori e negli amplificatori audio in classe D, mentre la modulazione leading edge non mi risulta essere utilizzata.

Esiste anche la modulazione PWM a tre livelli, in cui il segnale può assumere i valori +A\,\,, 0\,\text{V} e -A\,, viene per lo più usata negli inverter e negli amplificatori in classe D.

Infine si possono anche considerare dei sistemi in cui ad esempio T_{on}\, è di durata fissa e per variare il duty cycle si varia il periodo T_{sw}\, della forma d'onda. Questo sistema, a frequenza f_{c}\, variabile è usato solo in alcuni convertitori DC/DC ma non è quasi mai utilizzato per portare informazione analogica da recuperarsi con un filtraggio.

Specifiche

La richiesta iniziale riguardava il dimensionamento di un filtro passa basso da applicare a un segnale PWM per ricavarne il valore medio (continuo). Il segnale PWM è generato da un sensore di velocità di un motore e il suo valore medio deve essere mandato a un azionamento che comanda il motore.

Il segnale PWM di ingresso è un'onda quadra che varia fra 0\, e un'ampiezza costante A\, (almeno si spera) e la continua che si ricava sarà anche lei compresa fra il valore nullo (duty cycle D=0%\,) e il valore A\, (duty cyle D=100%\,), quindi il guadagno in banda del filtro deve essere unitario.

Se il sistema deve essere preciso, è necessario garantire che l'ampiezza del segnale digitale sia precisa e costante, dato che l'ampiezza A\, degli impulsi entra direttamente nel valore medio. Se l'alimentazione non è stabile e precisa, o se si carica l'uscita digitale e si provoca una caduta di tensione, si introducono errori sul valore medio generato. Nei casi in cui serva una elevata precisione, è necessario ricostruire il segnale digitale subito prima del filtro, garantendone la stabilità dell'ampiezza.

Poiché il valore medio è il prodotto di due grandezze indipendenti V_m=D\cdot A\,, variando indipendentemente l'ampiezza A\, e il duty cycle D\, è anche possibile realizzare un moltiplicatore con precisione elevata [5]. Fortunatamente in questo caso la richiesta è di un semplice filtro per estrarre il valore medio.

Le specifiche importanti per cominciare ad abbozzare un progetto sono in prima battuta le seguenti

  • Frequenza del segnale PWM
  • Attenuazione richiesta dal filtro (rumore residuo) e precisione
  • Tipo di filtro (attivo/passivo)
  • Ordine e famiglia del filtro
  • Impedenza di carico (e di sorgente), specie in caso di filtro passivo
  • Ritardi di risposta alla variazione del duty cycle, oppure banda passante del valor medio

Nel seguito vengono discussi i punti precedenti, facendo delle ragionevoli assunzioni sui parametri che non sono stati specificati.

Frequenza di lavoro

La frequenza del segnale è data, 20\,\text{kHz}, in generale la si indica con f_c\,. Il segnale non è a frequenza elevata, le prestazioni non dovrebbero essere disturbate dai parametri parassiti del circuito. D'altra parte la banda passante del sistema sarà limitata, essendo comunque limitata dalla frequenza del segnale PWM [4]. Il sistema è soggetto al teorema del campionamento di Nyquist e di fatto la banda passante che si può ragionevolmente ottenere è dalle parti di una decade circa al di sotto di f_c\,


Attenuazione richiesta

L'attenuazione richiesta ad alta frequenza ha a che vedere con il massimo ripple (rumore) tollerato in uscita: specifiche del tipo niente ripple di uscita, oppure attenuato il più possibile, non sono ovviamente accettabili. Putroppo casi simili capitano anche in ambito professionale.

La richiesta originale parla di un PWM generato con una risoluzione di 8bit, quindi 256 livelli, pertanto potrebbe essere una scelta accettabile attenuare il segnale ad onda quadra di ingresso in modo che in uscita il ripple alla frequenza f_c\, abbia una ampiezza pari a 1 \,\text{LSB} della massima tensione di uscita, massima tensione che è pari all'ampiezza A\, dell'onda quadra.

Essendo il duty cycle quantizzato a 8 bit, possiamo richiedere che il ripple massimo picco-picco sia pari al valore del fondoscala (ampiezza A) diviso per il numero di livelli V_r=\frac{A}{2^8}\,

Sfortunatamente le attenuazioni dei filtri sono date solo per segnali sinusoidali, non per onde quadre a duty cycle variabile, ma si può fare una approssimazione, detta approssimazione di fondamentale, in cui si considera solo la sinusoide a frequenza f_c\, "nascosta" nell'onda quadra, in pratica il primo termine dello sviluppo in serie di Fourier dell'onda quadra.

Nella Figura (2) sono mostrati due esempi con duty cycle D=50%\, e D=17%\,. In blu è riportato il segnale PWM, in rosso la sinusoide "nascosta" dentro al segnale blu, sinusoide che viene comoda per fare i conti approssimati, e in verde il valor medio del segnale PWM.



L'ampiezza della sinusoide dipende dal duty cycle, ha il suo valore massimo per D=0.5\, e l'ampiezza picco picco in questo caso vale \frac{4}{\pi}A\,, quindi è maggiore del 27%\, dell'ampiezza picco-picco dell'onda quadra! La dimostrazione di questa proprietà è nell'appendice A.

Se il segnale PWM ha una ampiezza picco-picco di 5\,\text{V}, il valore medio avrà un range da 0\,\text{V} a 5\,\text{V}, il ripple dovrà avere una ampiezza massima di 5\text{V}/256=19.5\text{mV}\,, ma dovremo considerare una tensione sinusoidale di ingresso di 5\text{V}\times 4/\pi=6.4\text{V}\,!

L'attenuazione richiesta a 20\,\text{kHz} risulta pertanto di \alpha=\frac{6.4\text{V}}{19.5\text{mV}}=326 volte che corrispondono a una attenuazione di 50.3 \text{dB}\,.

Per comodità di espressione, seguendo il linguaggio normalmente usato fra tecnici, chiamo attenuazione il fattore per cui bisogna dividere il segnale, quindi indico l'attenuazione richiesta come numero maggiore di uno, in questo caso attenuazione di 326\, volte. La ragione è che non essendo molto bravo con la matematica, per fare i conti a mente preferisco trattare numeri piccoli, interi e positivi. Anche l'attenuazione di decibel è rappresentata da un valore positivo, mentre quando si quota un diagramma di Bode, l'ordinata in decibel del grafico è negativa.

Da notare che usando solo la sinusoide fondamentale si trascurano tutte le armoniche, ma non dovrebbero dare troppi problemi perché le armoniche nell'onda sono di ampiezza minore della fondamentale e vengono attenuate dal filtro più della fondamentale.

Mentre per filtri elementari si potrebbe fare il conto analitico del ripple, riportato in Appendice B, appena si sale un pochino di complessità la valutazione esatta del ripple diventa una sofferenza inutile e si usa l'approssimazione di fondamentale, verificando poi il risultato con la simulazione.

Tipo di filtro

Il filtro, di tipo passa basso tempo continuo (quindi niente filtri numerici!), può essere fatto in più modi, con diverse tecnologie, ad esempio filtro attivo con resistori condensatori e operazionali, oppure passivo classico con induttori e condensatori, oppure un filtro passivo che utilizza solo resistori e condensatori (il filtro dei disperati!). Per una applicazione come questa in cui la maschera del filtro non è molto importante, in cui non si vuole la complessità di un operazionale e neppure il costo e l'ingombro degli induttori, le soluzioni più convenienti sono i filtri passivi di tipo RC\,, che presentano però delle limitazioni rispetto alle altre tecnologie. Un filtro attivo può dare prestazioni migliori in termini di ritardo del segnale a pari ripple in uscita al costo di una complessità maggiore. Nel seguito saranno analizzati i filtri RC\,, mentre i filtri attivi per la stessa applicazione sono analizzati nella seconda parte di questo articolo [3].

Ordine e famiglia del filtro

Con i filtri RC\, passivi, non si può parlare di famiglie (ad esempio Chebysheff, Butterworth, Cauer, Bessel...) perché le reti RC\, passive possono solo fornire funzioni di trasferimento con poli reali, mentre i filtri seri hanno bisogno di poli complessi coniugati (e talvolta anche di zeri complessi coniugati). Il solo grado di libertà che rimane con i filtri passivi RC\, è l'ordine del filtro, e parzialmente anche il piazzamento dei poli, tenendo presenti le limitazioni delle reti RC\,. In pratica i soli filtri ragionevoli sono quelli del primo e del secondo ordine a poli reali.

Impedenze di sorgente e di carico

Anche in questo caso i dati delle impedenze sono MIA (missed in action), anche se spulciando qualche datasheet dell'azionamento che deve ricevere la tensione media, sembra che l'impendeza di ingresso dell'azionamento, quindi l'impedenza di carico del filtro sia di 100\,\text{k}\Omega, mentre non si hanno notizie di quella di sorgente. Si assume di tipo logico, quindi in grado di erogare e assorbire una decina di milliampere (eventualmente anche un po' meno). Con un filtro attivo, o anche solo con un buffer, il problema dell'impedenza di carico scompare, ma il circuito del filtro attivo risulta più complicato.

Tempo di risposta alle variazioni del duty cycle

A questa richiesta di prestazione ovviamente la risposta è sempre "il più veloce possibile", che ovviamente non vuole dire nulla! Con un sistema PWM una banda ragionevole potrebbe essere dalle parti di f_c/10\,, in questo caso circa un paio di kilohertz, ma bisogna impegnarsi per ottenere un risultato del genere, probabilmente serve un filtro attivo o LC del terzo o del quarto ordine. Si procederà con filtro RC al meglio che si può ottenere, tanto pare di capire che il sistema serva per un azionamento meccanico che potrebbe avere una banda dell'ordine della decina di hertz (visti nella palla di cristallo). Però è sempre una buona occasione per ripassare qualcosa. Si procede quindi al progetto iniziale di un filtro RC del primo e uno del secondo ordine, con attenuazione a 20\,\text{kHz} di 326\, volte. Per confronto, nel secondo articolo [3] si progetteranno anche dei filtri attivi del secondo ordine per avere la massima banda compatibile con l'attenuazione richiesta, e un filtro di ordine più elevato per avere una banda di f_c/10=2\,\text{kHz}.

Filtri passivi

In questa sezione viene svolto il progetto di un filtro passivo RC\, del primo ordine e di uno del secondo ordine. La sola specifica che si può soddisfare è l'attenuazione del rumore al livello voluto, mentre per la banda passante è necessario accontentarsi di quello che viene. In molti casi un filtro del primo ordine è sufficiente, uno del secondo ordine potrebbe servire quando ci siano vincoli del tempo di ritardo con cui il valore medio passa attraverso il filtro. In questa sezione sarà usata una tecnica di calcolo sui diagrammi di Bode spiegata in [7].

Filtro del primo ordine

Un passa basso RC\, del primo ordine è quello di Figura (3), dove è anche indicata la funzione di trasferimento sul diagramma di Bode asintotico.

Le proprietà di filtraggio sono definite dal solo parametro della frequenza del polo f_p\,. Dopo il polo la funzione di trasferimento del filtro scende con pendenza di 20\text{dB/dec}\, e a 20\text{kHz}\, deve passare per -50\text{dB}\,.

Al posto dei calcoli con i decibel e le decadi, è molto più semplice ricordare che in una pendenza di 20\text{dB/dec}\,, due qualunque punti sono legati dalla relazione che dice che il rapporto delle frequenze è pari al rapporto delle ampiezze, quindi si può scrivere la proporzione

\alpha=\frac{20\text{kHz}}{f_p}\, da cui si ottiene la frequenza del polo f_p=\frac{20\text{kHz}}{326}=61.4\text{Hz}\,

Le relazioni per i conti rapidi sui diagrammi di Bode sono riportati nell'articolo [7]

La resistenza R\, del filtro deve essere molto minore della resistenza di carico 100\,\text{k}\Omega, altrimenti si forma un partitore di tensione che non permette all'uscita in continua di salire fino a quasi 5\,\text{V}, mentre deve essere molto maggiore di Z_{out}\,, in modo da non caricare troppo nei transitori l'uscita della sorgente e permettere così dei buoni fronti ripidi.

Un valore ragionevole potrebbe essere R=1\,\text{k}\Omega, in modo da avere la tensione di uscita massima pari al 99% di 5\,\text{V}, mentre con il condensatore completamente carico oppure scarico, la massima corrente istantanea richiesta alla porta, è limitata a 5\,\text{mA}.

Trascurando la resistenza da 100\,\text{k}\Omega, molto maggiore rispetto a R\,, come pure la Z_{out}\,, molto minore rispetto ad R\,, la frequenza del polo è data da f_p=\frac{1}{2\pi R C}\, da cui il valore della capacità del filtro risulta

C=\frac{1}{2\pi R f_p}=\frac{1}{2\pi \times 1\text{k}\Omega\times 61.4\text{Hz}}=2.6\mu\text{F} \Rightarrow 2.7\mu\text{F}\,

Con questo conto il progetto del filtro del primo ordine è finito! La frequenza del polo risulta pari a f_p=\frac{1}{2\pi\times 1\text{k}\Omega\times 2.7\mu\text{F}}=58.9\,\text{Hz} La costante di tempo RC\, del filtro è di 2.7\,\text{ms}, il che vuol dire che la risposta al gradino sale con quella costante di tempo, e impiega 6.2\,\text{ms} per arrivare al 90%\, del valore finale (o meglio ad arrivare al 90%\, della variazione comandata).

Come detto in precedenza, nel caso di filtro del primo ordine è possibile effettuare in modo abbastanza semplice, un calcolo analitico del ripple di uscita e determinare il valore del condensatore includendo tutte le armoniche. Questo conto è mostrato in Appendice B.

Filtro del secondo ordine

Un filtro passivo RC\, del secondo ordine, quindi con due poli reali, ha il vantaggio che a parità di attenuazione ad alta frequenza presenta una risposta al gradino più rapida, inoltre,a pari attenuazione, la capacità totale dei due condensatori è abbastanza più piccola di quella del condensatore del filtro del primo ordine. Lo schema di un filtro del secondo ordine è mostrato nella Figura (4). Come già detto, questo circuito, con due condensatori, può solo fornire due poli reali (e distinti).

Se fosse possibile avere una coppia di poli reali coincidenti alla frequenza f_{pp}\,, come mostrato in Figura (5a), considerando che l'attenuazione dopo i due poli aumenta in modo proporzionale al quadrato della frequenza [7], con questa proporzione si potrebbe trovare la frequenza f_{pp}\, del doppio polo che fornisce l'attenuazione desiderata

\left( \frac{f_c}{f_{pp}} \right)^2=\alpha da cui si ottiene f_{pp}=\frac{20\text{kHz}}{\sqrt{326}}=1.1\text{kHz}\,

Poli a frequenze più elevate implicano meno ritardo fra la variazione di duty cycle e la tensione di uscita.


Purtroppo con una rete RC\, passiva non è possibile ottenere due poli reali coincidenti, servirebbero componenti di valore infinito oppure negativo. L'idea ingenua di mettere due celle RC\, uguali in cascata non genera due poli reali coincidenti perché le due capacità interferiscono fra di loro.

Cominciamo con il cercare a quali frequenze distinte f_{p1}\, e f_{p2}\, si debbano posizionare i due poli reali per avere l'attenuazione voluta. Mettiamo quindi due poli distinti sul diagramma asintotico di Bode, a frequenza minore di 20\,\text{kHz}, come mostrato in Figura (5b) e facciamo in modo che si abbia una attenuazione di 326\, volte alla frequenza di 20\,\text{kHz}.

Facendo i conti sul diagramma di Bode, per avere l'attenuazione voluta di 326\, volte alla frequenza di 20\,\text{kHz} le frequenze dei due poli reali f_{p1}\, e f_{p2}\, devono soddisfare questa relazione (al solito vedere prima l'articolo [7]):

\frac{f_{p1}f_{p2}}{(20\text{kHz})^2}=\frac{1}{\alpha} \Rightarrow f_{p1}f_{p2}=\frac{(20\text{kHz})^2}{326}=(1.1\text{kHz})^2

Questa formula è molto simile a quella ricavata per i poli reali coincidenti, e dice che non è importante, dal punto di vista dell'attenuazione in alta frequenza, dove si mettono i poli (comunqne devono essere prima della frequenza f_c\,), la cosa importante è che il prodotto delle frequenze dei due poli sia costante. Al posto di mettere due poli coincidenti a 1.1\,\text{kHz}, se ne può mettere ad esempio uno a 3.3\,\text{kHz} e l'altro a 367\,\text{Hz} e il tutto, dal punto di vista dell'attenuazione a 20\,\text{kHz} funziona nello stesso modo, cambia però la risposta nel dominio del tempo.

Il problema è ora calcolare i valori dei componenti delle due celle RC\,. L'idea ingenua di fare due celle uguali ciascuna con frequenza del polo pari a 1.1\,\text{kHz} non funziona, la ragione è dovuta all'interazione delle due celle. Per avere due poli reali alla stessa frequenza bisognerebbe introdurre un voltage follower fra la due celle RC\,.

Se si prova a fare una singola cella RC\, alla frequenza di 1.1\,\text{kHz}, assumendo sempre che la resistenza della cella sia molto minore del carico e molto maggiore della sorgente, quindi il solito 1\,\text{k}\Omega, si trova che la capacità normalizzata deve essere C=150\,\text{nF}. La frequenza del polo della singola cella, dopo aver normalizzato la capacità, vale 1061\,\text{Hz} lo spostamento è dovuto all'aver scelto un valore normalizzato maggiore di quello teorico in modo da abbassare la frequenza del polo e attenuare maggiormente il rumore.

Mettendo due celle identiche in cascata si ha lo schema di Figura (6), soluzione ingenua (e sbagliata) per avere due poli reali coincidenti.

Se si vanno a calcolare le effettive frequenze dei poli del circuito di Figura (6), AHIMÈ si trova che i due poli NON sono più a 1.061\,\text{kHz}, ma uno si è alzato a 2.78\,\text{kHz} (evviva! polo a frequenza più alta, risposta più rapida!), ma l'altro si è abbassato a 405\,\text{Hz}, comunque sempre più alto del polo singolo che era a 61.2\,\text{Hz}. Il prodotto delle due frequenze vale 2.78\,\text{kHz}\times 0.405\,\text{kHz}=(1.061\,\text{kHz})^2 ! Evviva! L'attenuazione a 20\,\text{kHz} è mantenuta! Questo risultato non è un colpo di fortuna, ma una proprietà di questa rete a due poli RC\,.

Questa rete può essere generalizzata variando i componenti della seconda cella, mantenendo sempre però invariata la costante di tempo R_2C_2=R_1C_1\, al valore 1.061\,\text{kHz}, che vuol dire che se si aumenta la resistenza R_2\, della seconda cella di un fattore k\,, bisogna ridurre la capacità C_2\, dello stesso fattore k\,, in modo che il prodotto R_2C_2\, della sconda cella rimanga costante, e uguale a R_1C_1\,come mostrato in Figura (7).

Variando il fattore k\, NON cambia il prodotto della frequenza effettiva dei due poli (al solito la dimostrazione è in Appendice C) quindi non cambia l'attenuazione ad alta frequenza, mentre variano le singole frequenze dei due poli. Per k\, molto grande i due poli sono quasi coincidenti, quindi ci si avvicina alla condizione ideale di due poli alla stessa frequenza, mentre ad esempio per k=3.3\, si ha f_{p1}=626\,\text{Hz} e f_{p2}=1.82\,\text{kHz}, per k=2\, si ha f_{p1}=530\,\text{Hz} e f_{p2}=2.12\,\text{kHz}, infine per k=1\, i valori sono quelli indicati in precedenza.

La velocità di risposta del sistema è dominata dal polo a frequenza minore. Verrebbe pertanto naturare scegliere un valore di k\, elevato per avere un sistema con poco ritardo. Come sempre in ingegneria se c'è una buona ragione per fare un'azione, esiste un'altrettanta buona ragione per fare l'opposto e il progettista deve trovare un compromesso.

Se si aumenta il fattore k\,, la resistenza della seconda cella sale di valore e va a formare un partitore sempre più pesante con la resistena di carico, riducendo la tensione massima. Già con k=3.3\, ci si trova con due resistenze in serie di valore totale di 4.3\,\text{k}\Omega che fanno sì che la tensione massima sul carico sia di 4.79\,\text{V} al posto di 5\,\text{V}. È quindi opportuno non salire troppo con il fattore k\,, anzi, la soluzione con k=1\, tutto sommato non è tanto male, essendo il polo a frequenza minore a 405\,\text{Hz}, circa 6.8 volte più veloce rispetto al caso a singolo polo.

Risultati e verifica - Filtri passivi

I filtri che si possono utilizzare per filtrare il segnale PWM a 20\,\text{kHz} con un ripple residuo a pari a circa 1\,\text{LSB} sono in Figura (8)

Come discusso in precedenza la seconda cella del filtro del secondo ordine può essere scalata ad esempio con R=2.2\,\text{k}\Omega e C=68\,\text{nF} oppure R=3.3\,\text{k}\Omega e C=47\,\text{nF}, ma l'errore in continua aumenta a causa della partizione con la resistenza di ingresso dell'azionamento.

Per verificare i conti si è fatta una simulazione spice per verificare sia l'attenuazione sia la risposta al gradino e il ripple. Le attenuazioni dei due filtri di Figura (8) sono riportate in Figura (9) (cliccare sull'immagine per vederla completa. Se la riduco a dimensione della pagina non si leggono le scale e i dettagli).

Figura 9 - Funzione di trasferimento dei filtri RC di primo e secondo ordine

Figura 9 - Funzione di trasferimento dei filtri RC di primo e secondo ordine

In verde la risposta del filtro del primo ordine, in rosso quella del secondo ordine con k=1\, e in blu secondo ordine con k=3.3\,. A 20\,\text{kHz} le attenuazioni valgono rispettivamente 50.6\,\text{dB} per il primo ordine, 51.1\,\text{dB} per il secondo ordine con k=1\, e 51.3\,\text{dB} per k=3.3\,: tutti i tre filtri rispettano le specifiche di attenuazione.

Al variare del parametro k\, varia l'attenuazione nell'area intorno a un kilohertz, come si vede dalla differenza fra la curva rossa e blu, ma a 20\,\text{kHz} non si hanno praticamente cambiamenti. La banda passante del filtro del primo ordine è di 58.4\,\mathrm{Hz}, mentre la banda (a -3\,\text{dB}) dei filtri del secondo ordine è di 388\,\text{Hz} per k=1\, e si allarga a 522\,\text{Hz} per k=3.3\,. Si ricordi però che al salire del fattore di scalamento k\, aumenta il valore di R_2\, e si ha una partizione più sensibile con la resistenza di carico.

Il ripple di uscita in condizioni stazionarie e con duty cycle di ingresso D=0.5\, (condizione più sfavorevole) è nella Figura (10), in verde ripple di uscita del filtro del primo ordine, rosso secondo ordine con le celle uguali, blu secondo ordine con la seconda cella scalata con k=3.3\,. Vale il solito avvertimento di cliccare sull'immagine per vederla completa.

Figura 10 - Tensione di ripple di uscita D=0.5 filtri di primo e secondo ordine

Figura 10 - Tensione di ripple di uscita D=0.5 filtri di primo e secondo ordine

Il ripple di uscita del filtro di primo ordine è praticamente triangolare, la sua ampiezza picco-picco di 22.8\,\text{mV} è superiore al valore desiderato di 19.5\,\text{mV}: l'errore è dovuto al metodo di calcolo che considera solo la frequenza fondamentale e trascura le armoniche. In Appendice B viene riportato il calcolo più preciso.

I ripple dei due filtri del secondo ordine rispettano invece la specifica di massimo ripple, in rosso l'uscita del filtro con k=1\, con ampiezza di 17.1\,\text{mV} e in blu il ripple del caso con k=3.3\, e ampiezza di 16.6\,\text{mV}.

Nel caso del secondo ordine il ripple di uscita ha una forma approssimativamente data da archi di parabola raccordati perché derivano da un'onda quadra integrata due volte. I valori medi non sono pari al valore teorico V_o=5\text{V} \times 0.5=2.5\text{V} perché interviene la partizione fra la resistenza del filtro e la resistenza di carico. Nel caso del primo ordine, la resistenza in serie introdotta dal filtro è di 1\,\text{k}\Omega, nel secondo ordine con k=1\, la resistenza totale è di 2\,\text{k}\Omega, mentre quando k=3.3\, la resistenza totale è di 4.3\,\text{k}\Omega.

La risposta al gradino da D=0\, a D=1\, dei tre filtri è nella Figura 11, sempre con i soliti colori e con la figura da cliccare per vederla intera.

Figura 11 - Risposta al gradino di duty cycle, tempo al 90% del valore finale

Figura 11 - Risposta al gradino di duty cycle, tempo al 90% del valore finale

La curva verde mostra la tipica risposta esponenziale, con un tempo per arrivare al 90%\, del valore finale di 6.18\,\text{ms}. In rosso la risposta del secondo ordine con k=1\,, che impiega 950\,\mu\text{s} per arrivare al 90%\, del suo fondoscala, considerando la sua resistenza di 2\,\text{k}\Omega in serie al carico. Infine in blu la risposta al gradino del filtro del secondo ordine con k=3.3\, con un tempo di salita al suo 90%\, di 694\,\mu\text{s}. in quest'ultimo caso la resistenza serie è di 4.3\,\text{k}\Omega, e si vede che il valore massimo è sensibilmente minore di 5\,\text{V}.

Il caso teorico con due poli reali coincidenti (non realizzabile con una rete RC\, passiva), avrebbe come tempo di salita al 90%\, della variazione 588\,\mu\text{s} circa.

Conclusioni provvisorie

In questo articolo si è analizzato come filtrare con un filtro passivo RC\, un segnale PWM per estrarne il valore medio. Le soluzioni mostrate, pur con qualche limitazione, possono risolvere il problema nella gran parte dei casi di questo tipo di conversioni. Soluzioni più sofisticate e complesse, che forniscono prestazioni migliori, sono presentate nella seconda parte dell'articolo.

Appendici

In questa sezione sono riportate tutte le noiosità matematiche che servono per il progetto. In realtà per il progetto vero e proprio basta ricordare il risultato e utilizzarlo correttamente, qui sono riportate le dimostrazioni solo per complicare un po' l'articolo!

A - Ampiezza della fondamentale nel segnale PWM

Il calcolo della componente sinusoidale di un'onda quadra con duty cycle qualunque risulta abbastanza facile se si centra l'impulso intorno all'origine e lo si proietta su una cosinusoide. La simmetria dell'impulso fa sì che la componente con il seno non sia presente, quindi basta un integrale. Un generico impulso di larghezza D\, e la funzione cosinusoidale con cui viene fatto il prodotto scalare sono mostrate in Figura (A1).

Le ascisse sono normalizzate con periodo di lunghezza 1, in blu, oppure 2\pi\,, in giallo, per semplificare l'integrale. La figura ha una diversa scala sugli assi orizzontali e verticali, l'altezza dell'impulso è unitaria.

L'integrale per il calcolo del coefficiente del coseno alla frequenza sinusoidale è

\frac{1}{\pi}\int_{-\pi D}^{\pi D} 1\,\cos(\vartheta)\,\,\text{d}\vartheta= \frac{1}{\pi}\Big [ \cos(\vartheta)\Big ]_{-\pi D}^{\pi D}=

=\frac{1}{\pi}(\sin(\pi D)-\sin(-\pi D))=\frac{2}{\pi}\sin(\pi D)

Quello trovato è il valore di picco della componente fondamentale, per il valore picco-picco bisogna raddoppiare il valore, quindi il valore picco-picco della componente sinusoidale alla frequenza fondamentale vale \frac{4}{\pi}\sin(\pi D). Il valore massimo di questa espressione si ha per D=0.5\,, mentre si vede che per D=0\, e D=1\, non è presente componente alternata, essendo il segnale costante a zero o al valore massimo.

B - Calcolo del ripple con filtro del primo ordine

Nel caso del filtro del primo ordine con un'onda quadra all'ingresso, si hanno in uscita dei rami di esponenziali con la stessa costante di tempo data dal prodotto della capacità per la resistenza equivalente ai suoi capi. Il calcolo può quindi essere svolto in forma analitica (e noiosa)

In un caso generale, la relazione fra tensione di ingresso al filtro passa basso del primo ordine e tensione di uscita è mostrata in Figura (B1), dove si è messo in evidenza il ripple sull'uscita di forma esponenziale.

Come si vede in Figura (B1), ogni arco di esponenziale tende ai valori massimo e minimo (A\, e 0\,), ma prima che ci possa arrivare, la tensione di ingresso commuta e l'esponenziale riparte verso l'altro valore asintotico.

Nel caso in esame si possono semplificare i calcoli eliminando le funzioni esponenziali poiché la durata massima dell'impulso, data da T_{sw}=50\,\mu\text{s} e D=0.5\, è pari a T_{on}\, e a T_{of\!f}=T_{sw}-T_{on}\, e vale 25\mu\text{s}\,, da confrontarsi con una costante di tempo del filtro di RC=1\text{k}\Omega\times 2.7\mu\text{F}=2.7\,\text{ms}, di oltre due ordini di grandezza maggiore della durata del singolo arco esponenziale.

Un matematico parlerebbe di sviluppi in serie dell'esponenziale troncati al primo ordine, mentre un elettronico più semplicemente trascura la tensione di ripple, calcola la corrente che circola nella resistenza e da quella ricava la tensione di ripple, con andamento lineare, come si vede in Figura (B2)

Nelle due fasi della tensione di ingresso, la caduta di tensione sulla resistenza vale \pm 2.5\,\text{V} e quindi la corrente che carica e scarica il condensatore è, come indicato in Figura (B2) di \pm 2.5\,\text{mA}. La variazione di tensione sul condensatore, che poi è anche il ripple di uscita, vale pertanto

\Delta V_C=V_r=\frac{I_C}{C}\Delta T=\frac{\pm 2.5\text{mA}}{2.7\mu\text{F}}\times 25\mu\text{s}=23\,\text{mV}

che è il valore trovato nella simulazione riportata in Figura (10). Volendo rientrare nelle specifiche di ripple anche con il filtro del primo ordine, si può usare la formula precedente per ricavare il valore della capacità

C=\frac{I_C}{\Delta V_C}\Delta T=\frac{2.5\text{mA}}{19.5\text{mV}}\times 25\mu\text{s}=3.2\,\mu\text{F}

Anche nel caso del filtro del primo ordine con l'approssimazione lineare, il caso peggiore di ripple si ha quando D=0.5\,.

Calcoliamo la variazione del ripple, salita del tratto azzurro di Figura (B2) per un generico duty cycle.

\Delta V_C=\frac{A-DA}{RC}D T_{sw}=\frac{A T_{sw}}{RC}(1-D)D

si vede che il prodotto (1-D)D\, è una parabola con il massimo per D=0.5\,

C - Invarianza del prodotto f_{p1}f_{p2}\, al variare di k\,

Consideriamo il circuito di Figura (7) e calcoliamo analiticamente la sua funzione di trasferimento G(s)\,, trascurando le resistenze di carico e di sorgente. La funzione risulta

G(s)=\displaystyle\frac{1}{s^2 R^2 C^2+s R C (2+\frac{1}{k})+1}

Le soluzioni dell'equazione di secondo grado che si ottiene uguagliando a zero il denominatore sono le frequenze proprie del sistema, vale a dire la posizione dei poli.

Ricordando le proprietà delle equazioni di secondo grado, il coefficiente del termine s^2\, è il prodotto dei reciproci delle soluzioni dell'equazione, mentre il coefficiente del termine in s\, è la somma dei reciproci delle soluzioni dell'equazione. Cambiando il fattore k\, il coefficiente di s^2\, non varia, quindi il prodotto delle frequenze dei poli non varia, esattamente quanto serve per ottenere una attenuazione costante alla frequenza f_c\,.

Se non ci si ricorda delle proprietà delle equazioni di secondo grado, si possono scrivere esplicitamente i poli e uguagliare i coefficienti alla funzione di trasferimento della rete.

Una generica funzione di trasferimento F(s)\, scritta esplicitamente con due poli distinti a frequenza \omega_{p1}=2 \pi f_{p1}\, e \omega_{p2}=2\pi f_{p2}\, vale

F(s)=\displaystyle \frac{1}{(\frac{s}{\omega_{p1}}+1)(\frac{s}{\omega_{p2}}+1)}=
\frac{1}
{
\frac{s^2}
{\omega_{p1}\omega_{p2}}
+s
(\frac{1}{\omega_{p1}}+\frac{1}{\omega_{p2}})
+1

}

da cui uguagagliando i coefficienti dei coefficienti con quelli della funzione di trasferimento G(s)\,della rete di Figura 7 si ha

R^2C^2=\frac{1}{\omega_{p1}\omega_{p2}}\qquad \text{e}\quad RC\left(2+\frac{1}{k}\right)=\frac{1}{\omega_{p1}}+\frac{1}{\omega_{p2}}

dove si vede che il fattore k\, non cambia il prodotto delle frequenze dei due poli.

Bibliografia

[1] Forum EY Trasformare PWM in segnale analogico, 19 Gennaio 2021

[2] Forum EY Filtraggio di un segnale PWM. 24 Gennaio 2021

[3] IsidoroKZ Conversione pwm -> Tensione II, Gennaio 2021

[4] Huang, Padmanabhan, and Collins, The Sampling Theorem With Constant AmplitudeVariable Width Pulses, IEEE Trans. on Circuits and Systems—I: Vol. 58, No. 6, June 2011, pp. 1178-1190

[5] Thoren M. - PWM based-analog-calculator-provides-fourquadrant-multiplication-division, Electronic Design, Jan 15, 2013

[6] Deuty S. - PWM Pulse Width Modulation Basics and Some Advanced Concepts Planet Analog, May 2017

[7] Isidoro KZ - Calcoli sui diagrammi di Bode, Electroyou Feb. 2021

1

Commenti e note

Inserisci un commento

di ,

Guarda un po', per un progetto che ho in piedi da qualche tempo, sono a lavorare con una problematica identica, da PWM ad analogico, con frequenze diverse ma il concetto rimane. Lettura assicurata!

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.