Salta al contenuto
Note per Studenti PWM e ADC - ritardo di risposta e sincronizzazione

PWM e ADC - ritardo di risposta e sincronizzazione

In questa pagina 4

Quando un sistema è controllato in PWM da un µC con ADC on chip (Modulazione PWM - duty-cycle, risoluzione e demodulazioneLa PWM trasferisce un segnale modulante $V^$ nella larghezza degli impulsi di un'onda quadra a frequenza fissa: con duty-cycle $d=t_1/T$ e livelli $\pm\frac E2$ la media è $V_{med}=(d-\frac12)E=E,\frac{V^}{V_p}$. L'informazione sta nel valor medio; il resto dello spettro (armoniche della portante) si elimina con un passa-basso (demodulazione). Il modulatore digitale è un timer: contatore + comparatore, $N=f_{clk}/f_{PWM}$ conteggi per periodo, risoluzione $n=\log_2N$ bit (massima frequenza per $n$ bit: $f_{clk}/2^n$), registro di compare = duty-cycle. Servono almeno 8 bit per evitare cicli limite.Modulazione PWM - duty-cycle, risoluzione e demodulazione →, ADC e DAC - risoluzione, SNR, ENOB ed erroriUn convertitore a $n$ bit con fondo scala $FSR$ ha risoluzione $LSB=FSR/2^n$; il codice vale $C=\mathrm{round}(V/LSB)$ e la tensione corrispondente è $V=C\cdot LSB$ con incertezza $\pm\frac12LSB$ (errore di quantizzazione). Con un modello a rumore uniforme di potenza $LSB^2/12$ il SNR di una sinusoide a fondo scala è $6{,}02,n+1{,}76$ dB; dal SNR misurato si ricava il numero di bit efficaci $ENOB=\frac{SNR-1{,}76}{6{,}02}$. Gli errori reali (offset, guadagno, INL, DNL, missing code) abbassano l'accuratezza. Accuratezza ≠ precisione: alta accuratezza implica alta precisione, non viceversa.ADC e DAC - risoluzione, SNR, ENOB ed errori →) si pone un problema di tempi: la scelta della frequenza di modulazione e di quella di campionamento, che non sono indipendenti.

Ritardo di risposta del modulatore digitale

Il modulatore digitale, a differenza di quello analogico, risponde con ritardo alle variazioni della modulante: in pratica la modulante è campionata alla frequenza di modulazione e tra due campioni resta costante. Se la modulante cambia subito dopo l'inizio di un periodo, la risposta (la variazione del duty-cycle) arriva solo nel periodo seguente: ritardo massimo di (quasi) un periodo di modulazione. Nei modulatori che permettono di aggiornare il duty-cycle a ogni semiperiodo (PWM simmetricaimpulsi centrati nel periodo, con contatore che sale e scende) il ritardo massimo si dimezza: è il motivo per cui esistono. La ISR del modulatore ha il compito di calcolare e scrivere il duty-cycle del periodo successivo.

Questo ritardo rallenta in modo significativo la dinamica del sistema sotto controllo e può rendere instabile un anello troppo veloce. Quindi:

  • il controllo digitale deve essere limitato in banda ben al di sotto della frequenza di modulazione: la frequenza di cross-overfrequenza a cui il guadagno di anello vale 1 (0 dB) fcrf_{cr} del guadagno di anelloprodotto delle funzioni di trasferimento di tutti i blocchi dell'anello di retroazione al massimo dell'ordine di fPWM10\frac{f_{PWM}}{10} (per non risentire del rippleondulazione residua alla frequenza della portante sui segnali di retroazione e del ritardo di campionamento);
  • il margine di fasedistanza della fase dell'anello da -180 gradi alla frequenza di cross-over: misura la stabilità deve restare almeno di circa 60∘60^\circ, per compensare la variabilità dello smorzamento e il ritardo del campionamento.

Campionamento a frequenza pari alla modulazione

Si vorrebbe la frequenza di campionamento fcf_c la più alta possibile per massimizzare le prestazioni; ma la modulazione e il campionamento non sono indipendenti. Una scelta comune è fc=fPWMf_c=f_{PWM}. Le variabili campionate in un sistema pilotato in PWM contengono sempre componenti armoniche alla frequenza di modulazione e multiple: campionarle a fc=fPWMf_c=f_{PWM} viola il teorema di Shannon (Campionamento, aliasing e sample and holdCampionare vuol dire prendere i valori di $s(t)$ a istanti $kT_c$ ($T_c$ periodo, $f_c=1/T_c$). Teorema di Shannon: se lo spettro è nullo sopra $BW$, $s(t)$ si ricostruisce esattamente da campioni con $f_c\ge2BW$. Lo spettro campionato è la replica periodica (ogni $f_c$) dello spettro originale; se $f_c<2BW$ le repliche si sovrappongono: aliasing (una sinusoide a $f$ campionata a $1{,}25f$ appare a $0{,}25f$). Si previene con un filtro anti-aliasing sotto $f_c/2$ e col sovracampionamento. Il sample and holdcircuito che campiona il segnale e lo mantiene costante durante la conversione tiene il segnale costante durante la conversione.Campionamento, aliasing e sample and hold →). Ma l'errore di aliasingsovrapposizione delle repliche dello spettro, che riporta le armoniche a bassa frequenza che ne risulta è qui utile: le armoniche della portante vengono riportate a frequenza nulla (continua) e, se il campionamento è fatto sempre nello stesso istante del periodo, la grandezza campionata non ha ripple: si ottiene direttamente il valore medio, cioè la demodulazione è implicita.

Come si ottiene. L'ADC deve essere sincronizzato con il PWM: il trigger di avvio della conversione è un segnale generato dallo stesso timer (un secondo registro di compare, CMP2), così la conversione parte sempre nello stesso punto del periodo. Senza sincronizzazione i campioni cadono in punti diversi del ripple e la misura è rumorosa (jitter di ampiezza).

Dove campionare. Il ripple di una grandezza filtrata (per esempio l'uscita di un RC o la corrente di un induttore) è triangolare: sale durante l'ON, scende durante l'OFF. Il suo valore medio si trova a metà della salita e a metà della discesa:

  • PWM asimmetrica a leading edge (ON dall'inizio del periodo fino al match su D⋅ND\cdot N): a metà dell'impulso, cioè al conteggio CMP2=D N2CMP_2=\dfrac{D\,N}2 (oppure a metà dell'OFF, (1+D)N2\frac{(1+D)N}2); per D=0,5D=0{,}5 e N=13333N=13333: CMP2=3333=0x0D05CMP_2=3333=\texttt{0x0D05} (o 10000=0x271010000=\texttt{0x2710});
  • PWM simmetrica (up-down): campionare al picco o alla valleil punto in cui il contatore up-down tocca il minimo del contatore, che cadono al centro dell'ON o dell'OFF. In questo modo si ha il filtraggio automatico del ripple al momento del campionamento.

Esempio di applicazione: controllo di un sistema del secondo ordine

Si controlla con un STM32G474RE un sistema dinamico del secondo ordine (emulariproduce il comportamento di un sistema reale con un circuito più semplice un inverter con filtro LC), pilotato da un PWM a fPWM=75f_{PWM}=75 kHz con valor medio regolabile (duty-cycle); le due variabili di stato hanno costanti di tempo molto diverse. La retroazione è unitaria con regolatore RR:

Errori comuni

  • Ritenere che la violazione di Shannon sia sempre un errore: nel campionamento sincrono a fPWMf_{PWM} è lo strumento che dà il valor medio.
  • Campionare in un istante qualunque e non sincronizzatoavviato sempre nello stesso istante del periodo della portante con la portante: il ripple entra nella misura.
  • Progettare il controllo con banda vicina a fPWMf_{PWM}: il ritardo di fino a un periodo destabilizza l'anello.
  • Confondere il registro di duty con quello di trigger dell'ADC (CMP1 e CMP2).

Versione ripasso

Esercizi su questo argomento

Teoria collegata