Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

13
voti

Conversione PWM -> Tensione II

Indice

Introduzione

In questo secondo articolo si continua l'analisi di possibili soluzioni al problema posto sul forum [1], in cui si chiedeva come convertire un segnale PWM in una tensione continua pari al valor medio del segnale PWM. Nell'articolo precedente [2], si sono analizzate soluzioni basate su filtri RC passivi, filtri che nella maggioranza dei casi sono sufficienti per risolvere il problema.

Benché il problema di passare da segnale PWM a segnale analogico probabilmente non richieda prestazioni così spinte da ricorrere all'uso di un filtro attivo, vale comumque la pena di esaminare anche questa soluzione in confronto con i precedenti filtri passivi RC\,. In realtà questa è solo una scusa per ripassare qualcosa sui filtri attivi.

Filtri attivi

I filtri attivi, rispetto a quelli visti fino qui, mettono a disposizione del progettista poli complessi coniugati e quindi permettono di realizzare fitri appartenenti alle varie famiglie di filtri classici. Pur usando solo resistori, condensatori e operazionali, permettono di ottenere le stesse funzioni di trasferimento dei filtri passivi classici che però impiegano anche induttori, costosi, voluminosi e con caratteristiche di idealità elettrica non così buone come invece i condensatori. Lo svantaggio dei filtri attivi, oltre al dover usare operazionali, doverli alimentare... risiede nelle limitazioni in frequenza che si possono ottenere con gli operazionali. Esistono numerosissimi libri sui filtri attivi: una prima introduzione la si trova nei capitoli 3 e 4 di questo splendido libro di Sergio Franco [3]. Altri testi più specialistici sono ad esempio il Valkenburg [4], il Deliyannis [5], il Williams [6] e un po' meno approfondito lo Huelsman [7].

Ripassino sui filtri

Un filtro ideale passa basso dovrebbe essere totalmente trasparente per tutti i segnali compresi nella sua banda passante, al di sotto della frequenza di taglio f_t\, cioè dovrebbe far passare il segnale con attenuazione nulla e fase lineare, mentre dovrebbe bloccare con attenuazione infinita i segnali fuori banda (trasparenza nulla). La transizione fra banda passante e banda bloccata dovrebbe essere un "muro", vedi Figura (1). Purtroppo un filtro del genere non può esistere, anche per motivi teorici, e si è costretti ad approssimare il muro con una funzione realizzabile con componenti elettronici, curva rossa in Figura (1).

Queste funzioni realizzabili sono dei polinomi che formano la funzione di trasferimento: a seconda della famiglia scelta di polinomi (Butterworth, Chebysheff...) si ottengono caratteristiche diverse dei filtri. Per molti filtri reali si indica come frequenza di taglio f_t\, quella alla quale il guadagno del filtro scende di 3\,\text{dB} rispetto al valore massimo in banda passante.

Non essendo possibile descrivere qui le caratteristiche delle varie famiglie di filtri, in questo caso per nulla critico si sceglierà di usare in prima battuta filtri di Butterworth, che sono dei filtri "tranquilli", con attenuazione che scende in modo monotono, vanno bene per uso generale, ma, come si vedrà, con qualche inconveniente.

Progetto con filtri attivi

Per il progetto di un filtro attivo bisogna specificare questi parametri

  • guadagno del filtro in banda passante
  • frequenza di taglio
  • frequenza della banda attenuata
  • attenuazione in banda attenuata
  • famiglia del filtro

oltre a una miriade di altri parametri, come la dinamica del segnale, il rumore in uscita, impedenze di ingresso e capacità di pilotaggio dell'uscita, errori ammessi a causa delle tolleranze dei componenti...

In questo caso il guadagno del filtro in banda passante deve essere unitario (già discusso in [2]) e l'attenuazione in banda attenuata, richiesta per avere un ripple in uscita sufficientemente basso, deve essere di almeno 326\, volte alla frequenza di 20\,\text{kHz}.

La scelta iniziale della famiglia Butterworth deriva dal volere filtri che non abbiano poli con fattore Q\, troppo elevato per evitare sovraelongazioni e oscillazioni nella risposta al gradino. L'ordine e la frequenza di taglio del filtro verranno discussi nelle due soluzioni presentate.

Filtro di ordine assegnato

In questa sezione, al posto di procedere nel modo classico con il progetto, ovvero fissando la frequenza di taglio e l'attenuazione a una data frequenza in banda attenuata, e calcolando poi quale ordine di filtro sia necessario, si seguirà invece una procedura non standard in cui si fissa l'ordine del filtro (secondo) e si accettano la banda passante e il ritardo che ne risultano.

La ragione di questa scelta si basa sulla considerazione che se un filtro passivo con due poli reali soddisfa le specifiche con buone caratteristiche di risposta nel dominio del tempo, usando una cella attiva con due poli complessi coniugati alla stessa frequenza si dovrebbe ottenere una risposta con ancora minore ritardo. La frequenza di taglio f_t\, viene scelta in modo da garantire la richiesta di attenuazione a 20\,\text{kHz}.

La frequenza di taglio del filtro attivo del secondo ordine è la stessa calcolata in precedenza per i due poli reali coincidenti. La ragione euristica di questa scelta è basata su due aspetti. Il primo è che due poli complessi coniugati sono a tutti gli effetti due poli alla stessa frequenza e se si guarda la banda attenuata, quindi a frequenza abbastanza maggiore dei poli, l'attenuazione che ne risulta è praticamente la stessa dei poli reali poiché a frequenza f\gg f_{pp}\,, il solo termine importante del denominatore della funzione di trasferimento è quello in s^2\,, che non dipende dalla posizione dei singoli poli.

Si deve quindi progettare un filtro con f_{pp}=1.1\,\text{kHz} e un fattore Q\, dei poli dato dall'approssimazione di Butterworth per il secondo ordine, Q=\sqrt{0.5}. Il guadagno in continua del filtro deve essere unitario. Nei filtri di Butterworth, di qualunque ordine, la frequenza f_{pp}\, di tutti i poli è la stessa e coincide con la frequenza di taglio f_t\, del filtro, mentre varia il fattore Q\, delle varie coppie di poli.

Una struttura che permette di rispettare facilmente queste specifiche è la cella di Sallen e Key costruita intorno al voltage follower [8], che fornisce in continua un guadagno unitario.

La struttura del filtro di Sallen e Key con guadagno unitario è nella Figura (2), in cui si sono poste le due resistenze dello stesso valore, cosa possibile quando il Q\, del filtro è basso.

Il progetto della cella parte scegliendo un valore ragionevole R\, per le due resistenze uguali e calcolando poi i valori di C_1\, e C_2\, con queste formule [9]

C_1=\frac{Q}{\pi f_t R} \qquad \qquad C_2=\frac{1}{4 \pi f_t R Q}

Se si sceglie ad esempio R=10\,\text{k}\Omega, in modo da non caricare troppo la sorgente del segnale PWM, si ottiene per i due condensatori

C_1=\frac{\sqrt{0.5}}{\pi \times 1.107\text{kHz} \times 10\text{k}\Omega}=20.3\,\text{nF}\rightarrow 20\,\text{nF}

 C_2=\frac{1}{4 \pi \times 1.107\text{kHz}\times 10\text{k}\Omega \sqrt{0.5}}=10.2\,\text{nF}\rightarrow 10\,\text{nF}

Si noti che se con le resistenze uguali si mettono anche i condensatori di uguale valore, si ottiene un filtro con due poli reali coincidenti, impossibili da realizzare con una rete passiva. Nella Figura (3) sono riportati gli schemi del filtro attivo di Butterworth e della cella che fornisce i due poli reali coincidenti.

Si tenga presente che un sistema con due poli complessi coniugati dà origine a overshoot (sovraelongazione) nella risposta al gradino. Nel caso del secondo ordine la sovraelongazione M_p\, può essere calcolata analiticamente in modo abbastanza facile (si trovano le formule sui libri!) [10].

M_p=\exp\left(-\frac{\pi}{\sqrt{4Q^2-1}}\right)

e per il filtro Butterworth del secondo ordine com Q=\sqrt{0.5} ha una sovraelongazione pari al 4.3%\,, che in qualche caso potrebbe non essere accettabile.


Filtro con banda passante assegnata

I filtri dimensionati nella sezione precedente derivano da un progetto decisamente scadente dal punto di vista ingegneristico poiché non si è tenuto conto delle non idealità e tolleranze dei componenti.

Si è cercato di soddisfare al pelo le specifiche, senza lasciare spazio per le tolleranze dei componenti. Si è anche progettato il filtro in modo non standard, cercando di garantire una specifica attenuazione in banda attenuata e accontentandosi di quello che si aveva per la banda passante.

In generale il filtro viene progettato in funzione di una banda passante e in banda attenuata si ottiene di solito una attenuazione maggiore di quella richiesta.

Per avere margine per le tolleranze dei componenti ma ottenere comunque una banda relativamente elevata e al contempo avere almeno l'attenuazione richiesta, usando ancora una cella del secondo ordine si deve ridurre la frequenza di tagliof_t\, e aumentare quindi l'attenuazione richiesta a 20\,\text{kHz}.

Ad esempio se per sicurezza si specificano 60\,\text{dB} di attenuazione a 20\,\text{kHz}, corrispondenti a una attenuazione di 1000\, volte, il prodotto della frequenza dei due poli complessi deve essere [11] al massimo di f_{pp}=\frac{20\text{kHz}}{\sqrt{1000}}=632\,\text{Hz}, perdendo in velocità di risposta.

Un'altra soluzione che sarà esplorata qui prevede di specificare la banda passante e salire con l'ordine del filtro pagando con la complessità circuitale la compensazione degli effetti dei componenti non ideali, senza perdere in banda o attenuazione.

I filtri del terzo ordine sono realizzati con una cella attiva che fornisce i due poli complessi coniugati, ad esempio la Sallen e Key vista prima e una cella RC\, che dà il polo reale. La cella RC\, che realizza il polo reale va piazzata all'ingresso del filtro, secondO la regola standard di piazzare le celle in ordine crescente di Q\, per ridurre le possibilità di saturazione a causa della sovraelongazione delle celle con Q\, elevato.

Sono possibili due architetture di filtro, una con la cella RC\, separata da un voltage follower dalla seguente cella attiva, Figura (4A), l'altra invece con la cella RC\, assorbita dalla cella del secondo ordine, come mostrato in Figura (4B).

Nel caso di cella passiva assorbita nella cella del secondo ordine, l'interazione delle capacità aumenta in modo considerevole le quantità di calcoli da farsi per piazzare correttamente i tre poli. Considerando che lo spazio occupato da un operazionale doppio è praticamente lo stesso di quello di un operazionale semplice (otto piedini), e il costo è quasi lo stesso, nel seguito farò solo i conti per l'architettura con cella RC\, separata, Figura (4A).

Con un filtro ideale Butterworth del terzo ordine, sempre per avere una attenuazione di 326\, volte alla frequenza di 20\,\text{kHz}, procedendo come fatto prima, ma tenendo conto che ora la discesa della funzione di trasferimento è di 60\,\text{dB/dec} potremmo piazzare i tre poli alla frequenza [11] f_t\approx \frac{20\text{kHz}}{\sqrt[3]{326}}=2.9\,\text{kHz}.

Poiché si vuole un progetto più reale, si riduce la frequenza della banda passante, ad esempio a 2\,\text{kHz} circa in modo da avere ancora margine di attenuazione alla frequenza di 20\,\text{kHz}.

Un progetto potrebbe quindi essere di un filtro Butterworth del terzo ordine con frequenza di taglio di 2\,\text{kHz}. Un filtro di ordine dispari ha un polo reale e due poli complessi coniugati, che, come visto prima, purtroppo danno una sovraelongazione nella risposta al gradino. Nel caso di Butterworth del terzo ordine servono tre poli alla frequenza di taglio, uno reale e due complessi coniugati con Q=1\, [3], quindi con maggiore overshoot del caso precedente, che risulta essere del 16.3%\,. Questo valore però viene ridotto dal fatto di avere un polo reale che addolcisce il gradino applicato al filtro. Il valore esatto potrebbe essere calcolato analiticamente, ma è più facile ricorrere alla simulazione.

Il calcolo del Butterworth del terzo ordine è semplice: serve un polo reale a 2\,\text{kHz} seguito da una cella Sallen e Key con poli complessi coniugati ancora a 2\,\text{kHz} e fattore Q=1\,. Scegliendo come prima per la cella del secondo ordine due resistori uguali da R=10\,\text{k}\Omega e usando le formule già usate in precedenza, si ricava

C_1=\frac{1}{\pi \times 2\text{kHz} \times 10\text{k}\Omega}=15.9\,\text{nF}\rightarrow 16\,\text{nF}

 C_2=\frac{1}{4 \pi \times 2\text{kHz}\times 10\text{k}\Omega \times 1}=3.98\,\text{nF}\rightarrow 3.9\,\text{nF}

La cella del primo ordine, se si usa ancora lo stesso valore di resistenza, richiede un condensatore C_3\, di valore

C_3=\frac{1}{2\pi\times 2\text{kHz}\times 10\text{k}\Omega}=7.96\,\text{nF}  \rightarrow 8.2\,\text{nF}

Il risultato del progetto del filtro di Butterworth del terzo ordine è in Figura (5)

Esistono delle famiglie di filtri che danno un overshoot ridotto o quasi inesistente, le principali sono i filtri gaussiani e i filtri di Bessel (da notare che sia Carl Friedrich Gauss sia Friedrich Wilhelm Bessel sono vissuti fra la fine del 1700 e metà del 1800, quando i filtri erano ancora oltre ogni possibile immaginazione. Discorso analgo anche per Pafnuty Chebysheff vissuto nel 1800). I filtri gaussiani hanno sovraelongazione nulla, mentre quelli di Bessel hanno una sovraelongazione molto ridotta.

Poiché non so progettare i filtri gaussiani, non avendo le tabelle delle funzioni a portata di mano, oltre al Butterworth del terzo ordine, si calcolerà anche un filtro di Bessel del terzo ordine con frequenza di taglio anch'esso di 2\,\text{kHz}, sperando che rimanga margine in banda attenuata poiché i filtri di Bessel nella transizione fra banda passante e banda attenuata scendono più lentamente e quindi in alta frequenza hanno una attenuazione minore delle altre famiglie di pari ordine.

Un filtro di Bessel del terzo ordine con banda passante di 2\,\text{kHz}, sempre definita a -3\,\text{dB}, richiede un polo reale alla frequenza f_{pr}=2.645\,\text{kHz} e due poli complessi coniugati alla frequenza di f_{cc}=2.895\,\text{kHz} con un fattore Q=0.691\, [3]. Si osservi che il fattore Q\, dei poli del Bessel è minore di quello del Butterworth, e quindi dà una sovraelongazione minore.

Il progetto della filtro di Bessel procede esattamente come fatto in precedenza: scegliendo per la cella del secondo ordine i soliti due resistori uguali R=10\,\text{k}\Omega e usando le formule già usate in precedenza, si ricava

C_1=\frac{0.691}{\pi \times 2.895\text{kHz} \times 10\text{k}\Omega}=7.6\,\text{nF}\rightarrow 7.5\,\text{nF}

 C_2=\frac{1}{4 \pi \times 2.895\text{kHz}\times 10\text{k}\Omega \times 0.691}=3.98\,\text{nF}\rightarrow 3.9\,\text{nF}

La cella del primo ordine, se si usa ancora lo stesso valore di resistenza, richiede un condensatore C_3\, di valore

C_3=\frac{1}{2\pi\times 2.645\text{kHz}\times 10\text{k}\Omega}=6.02\,\text{nF}  \rightarrow 6.2\,\text{nF}

Il risultato del progetto del filtro di Butterworth del terzo ordine è in Figura (6)

Risultati e verifica - Filtri attivi

In questa sezione sono presentate le simulazioni dei circuiti attivi dimensionati in precedenza. Per tutti i filtri saranno presentati, come al solito, l'attenuazione in frequenza, il ripple residuo per il caso più sfavorevole di D=0.5\, e la risposta al gradino, con passaggio da D=0\, a D=1\,

Filtri del secondo ordine

Nel grafico di Figura (7) è riportata la simulazione della funzione di trasferimento del filtro di Butterworth del secondo ordine e del filtro con due poli reali coincidenti. Per vedere la figura completa cliccare sull'immagine.

Figura 7 - Attenuazione Butterworth secondo ordine e due poli reali

Figura 7 - Attenuazione Butterworth secondo ordine e due poli reali

Il filtro di Butterworth, con i poli complessi coniugati alla frequenza di taglio mantiene "elevato" il guadagno e quindi allarga la banda, mentre i due poli reali alla stessa frequenza provocano una attenuazione di 6\,\text{dB} e quindi la banda passante è più stretta. L'attenuazione a 20\,\text{kHz} è di 50\,\text{dB}, appena inferiore a quella voluta, a causa della normalizzazione dei condensatori a valori standard più piccoli dei valori calcolati.

Il ripple di uscita dei due filtri attivi del secondo ordine è mostrato in Figura (8)

Figura 8 - Ripple di uscita Butterworth e due poli coindicenti

Figura 8 - Ripple di uscita Butterworth e due poli coindicenti

La tensione di ripple picco-picco in uscita è di 19.4\,\text{mV}, esattamente il valore desiderato, mentre quella dei due poli coincidenti è appena maggiore, 19.8\,\text{mV} a causa della normalizzazione effettuata sui componenti.

Infine la (brutta) sorpresa della risposta al gradino, mostrata in Figura (9)

Figura 9 - Risposta al gradino

Figura 9 - Risposta al gradino

La risposta al gradino del filtro di Butterworth del secondo ordine ha una sovraelongazione del 4.4%\, a causa dei due poli complessi coniugati. Pur non essendo una sovraelongazione di valore elevato, in alcune applicazioni una risposta che vada oltre al valore desiderato potrebbe non essere accettabile. Il tempo di salita al 90%\, del valore finale per il filtro di Butterworth è di 376\,\mu\text{s}, mentre per il filtro con due poli coincidenti si ha un tempo di salita maggiore, di 548\,\mu\text{s}, e presenta una banda passante più stretta del Butterworth. Si osservi che comunque i due poli reali coincidenti danno un tempo di salita minore dei due poli reali ottenuti con le reti passive RC\,, come trovato in [2].

Filtri del terzo ordine

Le funzioni di trasferimento dei due filtri del terzo ordine (Butterworth e Bessel) con banda passante di 2\,\text{kHz} e attenuazione di almeno 50\,\text{dB} alla frequenza di 20\,\text{kHz} sono mostrate in Figura (10). Entrambi i filtri hanno un guadagno di -3\,\text{dB} alla frequenza di taglio, ma come si vede dalle curve il filtro di Bessel ha una discesa, che pur essendo sempre di 60\,\text{dB/dec}, raggiunge la pendenza finale a frequenze maggiori e l'attenuazione pertanto, a pari frequenza, è minore.

Figura 10 - Attenuazione filtro Butterworth e Bessel

Figura 10 - Attenuazione filtro Butterworth e Bessel

La cosa interessante di questi due filtri è il confronto del ritardo di gruppo, rappresentato dalle due curve tratteggiate. Il filtro di Bessel ha un ritardo di gruppo praticamente costante in tutta la banda passante. Questo significa che un segnale composto da tante frequenze (in banda passante) esce dal filtro con una forma inalterata. Invece lo stesso segnale che passa per un filtro di Butterworth ha le sue diverse componenti frequenziali ritardate di fasi e tempi diversi e la forma d'onda all'uscita non ha più la stessa forma dell'ingresso perché le diverse sinusoidi che la compongono arrivano all'uscita con ritardi che dipendono dalla frequenza.

Il ripple di uscita dei due filtri è mostrato in Figura (11). Come c'è da aspettarsi dall'attenuazione dei due filtri a 20\,\text{kHz}, le due ondulazioni sono di ampiezza diversa.

Figura 11 - Ripple Butterworth e Bessel

Figura 11 - Ripple Butterworth e Bessel

Anche il filtro di Bessel, che ha minore attenuazione, rientra entro le specifiche di ripple di uscita.

Infine in Figura (12) sono presentate le risposte al gradino dei due filtri.

Figura 12 - Risposta al gradino Butterworth e Bessel terzo ordine

Figura 12 - Risposta al gradino Butterworth e Bessel terzo ordine

Il filtro di Butterworth ha una sovraelongazione considerevole, 8%\,, malgrado la cella del primo ordine smussi il gradino all'ingresso. Anche il filtro di Bessel, avendo poli complessi coniugati, ha sovraelongazione, ma di valore molto ridotto, 0.58%\,. Inoltre il filtro di Bessel del terzo ordine ha un tempo di salita più corto rispetto al Butterworth di pari ordine, 234\,\mu\text{s} rispetto a 263\,\mu\text{s}, cosa che a prima vista potrebbe sorprendere. In realtà, se si va a vedere la posizione dei poli dei due filtri, si osserva che il filtro di Bessel ha i poli a frequenza maggiore del filtro di Butterworth, e pertanto è più veloce nella risposta, ma con attenuazione minore ad alta frequenza.

Conclusioni

In questa lunga carrellata, che mi è servita per ripassare i filtri, si è passati da un filtro del primo ordine con tempo di salita di 6.2\,\text{ms} a un filtro attivo del terzo ordine con tempo di salita di 234\,\mu\text{s}, quasi trenta volte più veloce, ma parecchio più complicato: le prestazioni si pagano. Qual è il filtro migliore? Per questa specifica applicazione direi un passivo del primo ordine, al più del secondo, ma le possibilità di complicarsi la vita ci sono sempre!

Bibliografia

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

[2] Isidoro KZ, Conversione PWM -> Tensione I, ElectroYou, Gennaio 2021

[3] S. Franco, Design with Operational Amplifiers and Linear Integrated Circuits, Mg Graw-Hill, 4th ed. 2014.

[4] R. Valkenburg, M. Schauman, H. Xiao, Design of Analog Filters, Oxford University Press, 2nd ed. 2009

[5] T. Deliyannis, Y. Sun, J.K. Fidler, Continuous-Time Active Filter Design, CRC Press 1999

[6] A. Williams, Analog Filter Circuit Design Handbook, McGraw Hill 2013.

[7] L. Huelsman, Active and Passive Analog Filter Design, McGraw Hill 1993

[8] Isidoro KZ, Sensitivity III - Filtri attivi, ElectroYou, Dic. 2010

[9] Maxim Integrated, Minimizing Component-Variation Sensitivity in Single Op Amp Filters, Jul 2002

[10] G. Franklin, J. Powell, A. Emami-Naeini, Feedback Control of Dynamic Systems, Pearson, 8th ed. 2018

[11] Isidoro KZ, Calcoli sui diagrammi di Bode, ElectroYou Feb 2021

1

Commenti e note

Inserisci un commento

di ,

Grande analisi dei filtri RC attivi. Decisamente molto interessante.

Rispondi

Inserisci un commento

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