Modulazione PWM - duty-cycle, risoluzione e demodulazione
In questa pagina 6
La modulazione a larghezza di impulso (PWM) trasmette l'informazione di un segnale, detto modulante, usando come supporto un'onda quadra di frequenza e ampiezza fissate in cui la durata degli impulsi è proporzionale al livello della modulanteil segnale che si vuole trasmettere con la modulazione. Spesso la modulazione comporta una forte amplificazione di potenza: gli impulsi possono essere a centinaia di volt mentre il comparatore lavora a livelli logici. È una tecnica fondamentale nei convertitori a commutazionealimentatori e convertitori di potenza in cui gli interruttori sono accesi e spenti a frequenza elevata (SMPSSwitch Mode Power Supply: alimentatore a commutazione), negli azionamenti, negli amplificatori audio di classe Damplificatore audio con uscita a commutazione, comandata in PWM e nei convertitori D/A.
Principio
Un modulatore PWM analogico confronta con un comparatore il segnale modulante con un segnale portante triangolare (ampiezza , periodo ). L'uscita comanda gli interruttori di un semi-ponte, e la tensione vale per e per . La frazione si chiama duty-cycle. Il valor medio nel periodo è Al variare di tra 0 e 1, varia in modo proporzionale tra e : l'informazione di si è trasferita nel valor mediomedia del segnale su un periodo di modulazione, e la potenza associata a può essere molto maggiore di quella di . Con segnale a livelli e (invece di ) . Se varia lentamente rispetto a vale ancora .
Altre modulazioni (PFM, random, densità di impulsi, delta) variano anche la distanza tra gli impulsi: sono meno usate.
Spettro e demodulazione
La PWM è una trasformazione non lineare e distorce molto il segnale; ma lo spettro ha una forma caratteristica: il valor medio (o la modulante) più righe attorno ai multipli interi della frequenza portanteil segnale periodico (triangolare o a dente di sega) con cui si confronta la modulante. Quindi basta un filtro passa-basso che elimini le componenti alla frequenza della portante e multiple per recuperare la modulante (demodulazionerecupero del segnale modulante, nella PWM con un filtro passa-basso). Funziona tanto meglio, con minore distorsione residua, quanto più il rapporto tra la frequenza portante e la massima frequenza della modulante è grande: per questo le frequenze PWM sono relativamente alte e bastano filtri semplici. Il segnale demodulato conserva un ripple residuo alla frequenza PWM e uno sfasamento dovuto al filtro. In molti sistemi (SMPS, audio) la demodulazione la fa il sistema stesso, che è passa-basso.
Attenuazione di un filtro del primo ordine. Con polo in e componente alla frequenza il modulo vale . Esempio: PWM a 100 kHz ( krad/s) con filtro di polo krad/s: , attenuazione dB.
Ripple su un filtro RC. Per un'onda tra e (picco-picco ) con duty , periodo e costante di tempo , il rippleondulazione residua del segnale demodulato alla frequenza della portante picco-picco è (la tensione ai capi di sale per con pendenza e il valor medio è ). Per V, , µs, µs: V (il calcolo esatto con gli esponenziali dà V). Con sul valor medio (nullo per ).
Modulatore PWM digitale
Si realizza con circuiti digitali: la portante è un contatore binario e il comparatore analogico è un comparatore binariocircuito che confronta due numeri binari e segnala quando sono uguali o uno supera l'altro. Il contatore conta fino a (periodo di modulazione) e l'uscita è alta finché il conteggio è sotto il valore del registro di compare. Il registro di compare vale : ha il significato di duty-cyclefrazione del periodo in cui l'onda quadra è a livello alto.
- Conteggi per periodo: (con prescaler: ).
- Risoluzione del duty-cycle: il passo di è ; i bit effettivi sono . La massima frequenza di modulazione per bit è . È difficile avere alta risoluzione e alta frequenza di modulazione insieme.
- Modulazione asimmetrica (contatore che sale e riparte da 0: impulsi allineati a un bordo, "leading/trailing edge") e simmetrica (up-down: l'impulso è centrato nel periodo; necessaria per molti convertitori; in alcuni modulatori il duty-cycle si aggiorna ogni semiperiodo). Con conteggio up-down i conteggi per periodo sono (si dimezza la risoluzione a parità di frequenza).
- Tempo morto (dead time): ritardo tra lo spegnimento di un interruttore e l'accensione dell'altro, per evitare cortocircuiti tra le alimentazioni.
Esempi numerici
- Frequenza massima per 10 bit. Clock 10 MHz, duty su 10 bit: kHz. A kHz i conteggi sono : servono almeno 6 bit per rappresentare il duty-cycle () e la risoluzione effettiva è bit. Con duty teorico (modulazione tra e V) il registro vale con troncamento: . Valor medio ideale V, reale V: errore V.
- Clock 170 MHz, onda quadra a 100 kHz, risoluzione bit. conteggi con prescaler 1: ✓. Registro di periodo ; per il registro di duty vale .
- Timer a 16 bit, 170 MHz, portante 20 kHz, almeno 10 bit. Con clock 170 MHz: ( bit). Aumentando la frequenza di clock del contatore si migliora la risoluzione temporale, ma : . Fra il massimo è 4× ( MHz): (registro di match/periodo), bit effettivinumero di bit equivalente alla risoluzione del duty-cycle: il logaritmo in base 2 dei conteggi per periodo; per un duty del : .
- Clock 200 MHz, 16 bit, bit di risoluzione: kHz; per una portante vicina a 15 kHz: ( bit); : (o 6666). Modulazione leading edgemodulazione in cui il fronte di salita coincide con l'inizio del periodo: il pin si setta al reset del timer (inizio periodo) e si resetta al match sul duty-cycle; il match sul periodo coincide con il reset del conteggio.
- PWM come DAC (tema d'esame dicembre 2020): dati a 16 bit (0.16 U) generati a 1 kHz, PWM tra 0 e 5 V a 20 kHz con clock del contatore 16 MHz: , bit equivalenti ; per il dato : (41,4%), tensione media V; per una risoluzione di 10 bit: kHz.
Risoluzione e cicli limite
Con troppo alta la risoluzione scende sotto gli 8 bit e possono emergere cicli limite in un controllo a catena chiusa (Quantizzazione, fattori di scala e cicli limiteUn algoritmo di filtro o regolatore pensato per un processore ideale va adattato alla realtà: temporizzazionedistribuzione nel tempo delle operazioni di un algoritmo (l'algoritmo nella ISR dell'ADC, durata minore di $T_c$), acquisizione (condizionamento del segnale per sfruttare tutto il fondo scala dell'ADC), fattori di scala (normalizzazione intera o 1.15; evitare overflow), quantizzazione di ingresso, uscita, coefficienti e prodotti (sposta i poli, genera errori a regime e cicli limite). Una frequenza di campionamento troppo alta rende più critica la quantizzazione dei coefficienti: va scelta coerente con la lunghezza di parola.Quantizzazione, fattori di scala e cicli limite →). Per risoluzioni tipiche di 12 bit la frequenza di modulazione non supera di solito 500 kHz. Se la frequenza non è fissata dalle specifiche conviene sceglierla la più alta possibile (demodulazione più semplice) compatibilmente con la risoluzione.
Applicazioni
Controllo di convertitori di potenza (SMPS, inverter): il convertitore agisce da buffer di tensione con grande guadagno di potenza e la parte passiva (induttore e condensatore) è il demodulatore (passa-basso del secondo ordine), mentre il µC calcola con un PID i valori del duty-cycle (Regolatori PI e PID digitaliIl PI digitale è $y(k)=k_p,e(k)+y_I(k)$ con $y_I(k)=k_I',e(k)+y_I(k-1)$ e $k_I'=k_iT_c$ (con una MAC bastano 3 cicli). Nel PID la derivata si calcola come $\frac{k_d}{T_c}[e(k)-e(k-1)]$ ed è sensibile al rumore: si usa la versione filtrata $y_d(k)=\frac{k_d}{T_c+\tau_L}[e(k)-e(k-1)]+\frac{\tau_L}{T_c+\tau_L}y_d(k-1)$ o una media su più campioni. Con la saturazione dell'attuatore serve l'anti-wind-up: $|y_I|\le L(k)=Y_{max}-|k_pe(k)|$. Il controllo dead-beatcontrollo che porta l'errore a zero in un numero finito di passi (predittivo) azzera l'errore in un numero finito di passi ma è poco usato in industria.Regolatori PI e PID digitali →). Amplificatori audio in classe D. Convertitori D/A. Un esempio: un LED comandato in PWM a più di 100 Hz non è percepito come sfarfallio dall'occhio umano; con PWM a 16 bit, clock 10 MHz, frequenza 200 Hz e almeno 10 bit: conteggi (15,6 bit): e match .
Errori comuni
- Calcolare i bit effettivi con la frequenza di clock del processore invece che con quella del contatore (dopo il prescaler).
- Applicare a un segnale bipolare: per livelli la media è .
- Scambiare il significato del registro di periodo e di quello di compare/duty-cycle.
- Pretendere sia alta frequenza sia alta risoluzione con un clock basso.
Versione ripasso
- Principio: ; (bipolare), (unipolare); demodulazione con passa-basso (attenuazione : 100 kHz con krad/s: 22,0 dB); ripple RC .
- Digitale: , risoluzione , ; registro di compare ; simmetrica (up-down) o asimmetrica; tempo morto.
- Numeri: 10 MHz, 200 kHz: , , errore V; 170 MHz, 100 kHz: , , 10,73 bit; 20 kHz, ×4: , 75% = ; 200 MHz, 12 bit: 48,8 kHz; 15 kHz: ; leading edge: set al reset, reset al match.
- Cicli limite: servono bit; 12 bit a kHz.
- Errori: clock del processore al posto di quello del contatore; formula della media; periodo≠duty; alta e alta risoluzione insieme (PWM e ADC - ritardo di risposta e sincronizzazioneUn modulatore PWM digitale ritarda la risposta: il duty-cycle si aggiorna una volta per periodo (al massimo si attende $T_{PWM}$; $T_{PWM}/2$ se si aggiorna a ogni semiperiodo). Perciò il controllo digitale deve avere banda ben sotto $f_{PWM}$ (cross-over $\lesssim f_{PWM}/10$, margine di fase $\ge60^\circ$). Si campiona di solito a $f_c=f_{PWM}$: viola Shannon, ma se l'ADC è sincronizzato con la portante (trigger dal timer PWM) l'aliasing estrae il valor medio, senza ripple. Il campionamento va fatto a metà del tempo di ON (leading edge: $\frac{DT}2$, in generale a metà dell'impulso) o al picco/valle del contatore (PWM simmetrica).PWM e ADC - ritardo di risposta e sincronizzazione →).
Esercizi su questo argomento
- Esercizio 20 · regolatore PI in C per il controllo PWM di un motore, valore del duty-cycle e risoluzione (tema d'esame gennaio 2023)
- Esercizio 23 · timer, calcolo di prescaler e registro di match, modalità toggle (temi d'esame febbraio 2023, 2004 e novembre 2020)
- Esercizio 25 · modulatore PWM con timer a 16 bit, registri di periodo e di confronto, risoluzione (temi d'esame gennaio 2025, febbraio 2025, gennaio 2026 e 2006)
- Esercizio 26 · demodulazione di un segnale PWM con filtro RC, ripple, PWM come convertitore D-A (temi d'esame luglio 2026, dicembre 2020 e luglio 2020)