Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Cicli limite in filtri digitali

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utentecarloc, Foto UtenteDirtyDeeds, Foto Utenteg.schgor, Foto UtenteIsidoroKZ, Foto UtenteBrunoValente

1
voti

[1] Cicli limite in filtri digitali

Messaggioda Foto Utentecoto » 10 giu 2020, 3:36

Ciao a tutti,

sto cercando avvicinarmi al digital signal processing senza nessuna esperienza e senza tante basi matematiche.

Sto provando a controllare un convertitore buck con un filtro digitale IIR in forma diretta tipo 1 a virgola fissa. So che in virgola mobile e' piu' semplice l'analisi ma poi sarebbe difficile l'implementazione.

Ho fatto uno scriptino in matlab per tirare fuori i coefficienti in z partendo da un compensatore in s del terzo ordine, poi ho disegnato un modello in simplis per simulare le ac e transitorio.

Per regolare regola ma vedo dei cicli limite che non mi sembrano trascurabili e vorrei capirci di piu'.

script matlab
Codice: Seleziona tutto
%plant coefficients
s=tf('s');Ri=1;Rc=0.02;Ro=32;Co=2.2e-6;Lo=47e-6;Ts=1e-6;Vi=12;Vr=1;Vo=3.3;

%filter transfer function
Gfilter=(1+(Co*Rc)*s)/(1+(Ri/Ro)+(((Lo/Ro)+(Rc*Co)+(Ri*Co)+((Ri*Rc*Co)/Ro))*s)+(((Ro+Rc)/Ro)*Lo*Co*(s^2)));

%plant transfer function
Gmod=Vi/Vr;Gplant=Gmod*Gfilter;

%compensator coefficients
P0=2*pi*(0.1/Ts);P1=2*pi*500;P2=0.9*2*pi*(1/Ts);P3=0.9*2*pi*(1/Ts);Z1=1/sqrt(Lo*Co);Z2=1/sqrt(Lo*Co);

%compensator transfer function
Gcomp=((s+Z1)*(s+Z2))/((s+P1)*(s+P2)*(s+P3));

%loop gain cross-over
Kp=abs(1/(evalfr(Gcomp,1i*P0)*evalfr(Gplant,1i*P0)));Gloop=Kp*Gcomp*Gplant;

%plot margins
margin(Gloop);hold on;bode(Gplant,Gcomp*Kp);figure(2);pzmap(Gloop);figure(3);nyquist(Gloop);

%step response
Gsys=feedback(Gloop,1);figure(4);hold on;opt=stepDataOptions('InputOffset',0,'StepAmplitude',Vo);step(Gsys,opt);

%discrete plant transfer function
GplantD=c2d(Gplant,Ts,'zoh');figure(5);bode(GplantD);hold on;

%discrete compensator transfer function
GcompD=c2d(Kp*Gcomp,Ts,'tustin');figure(5);bode(GcompD);

%discrete loop transfer function
GloopD=(GcompD*GplantD);GsysD=feedback(GloopD,1);figure(5);margin(GloopD);figure(6);pzmap(GloopD);

%comparison
figure(7);bode(Gloop,GloopD);figure(4);step(GsysD,opt);GcompD


Modello simplis

compensatore
compensator.png
compensatore


loop gain ac (in virgola mobile)
loopgain.png
loop gain ac


load step transient (con quantizzazione)
transient.png
load step


come vedete nell'ultima immagine oscilla a regime.

Manca il modulatore e il filtro ma non riesco ad inserire piu' di tre allegati, comunque si tratta di un semplice buck, l'uscita del DAC va in un comparatore che confronta con una rampa ed esce il PWM.
Lo scaling delle costanti e' di 2^q dove q e' 16, ma non cambia anche variandolo.
Il peso dell'LSB in volt dell'ADC e' maggiore di quello del DPWM, condizione che dovrebbe essere rispettata per evitare cicli limite.
C'e' anche un ADC di feedforward sul VIN che fissa 5bit di duty e questo effettivamente aiuta un po ma non e' sufficiente.
So che quella del rapporto tra le risoluzioni IN/OUT non e' l'unica condizione ma non conosco nel dettaglio le altre dato che sono un somaro.
Ho letto qualcosa sul troncamento e il round off ma chiedo aiuto qui nella speranza che qualche buon anima mi indirizzo meglio.
Se serve uno zoom o qualche altra info non esitate a chiedere.

Dove sbaglio?

Grazias
Avatar utente
Foto Utentecoto
5 2
 
Messaggi: 3
Iscritto il: 9 giu 2020, 12:45

0
voti

[2] Re: Cicli limite in filtri digitali

Messaggioda Foto UtenteEcoTan » 10 giu 2020, 8:01

coto ha scritto:o qualche altra info non esitate a chiedere

Cosa sono i cicli limite?
Avatar utente
Foto UtenteEcoTan
5.734 4 10 13
Expert EY
Expert EY
 
Messaggi: 3583
Iscritto il: 29 gen 2014, 8:54

0
voti

[3] Re: Cicli limite in filtri digitali

Messaggioda Foto UtenteMarcoD » 10 giu 2020, 8:17

Cosa sono i cicli limite?

Provo a rispondere io che non lo so esattamente:
Sono delle oscillazioni persistenti dovute al comportamento non lineare di un controllore digitale. Comportamento non lineare a sua volta creato dalla risoluzione finita dei calcoli.
In parole rozze, l'uscita di un DAC di solito "balla" di circa +/- 1 bit, o qualcosa di più in seguito ai calcoli complessi a monte. Potresti chiamarlo "rumore digitale".
Esistono anche nei regolatori meccanici e negli attuatori, dovuti alla presenza di giochi, attriti al distacco, bande morte e isteresi.
Attendo anche io di leggere una definizione migliore da parte di un esperto.
Saluti a tutti O_/
Avatar utente
Foto UtenteMarcoD
7.262 4 8 13
Master EY
Master EY
 
Messaggi: 3223
Iscritto il: 9 lug 2015, 16:58
Località: Torino

0
voti

[4] Re: Cicli limite in filtri digitali

Messaggioda Foto UtenteEcoTan » 10 giu 2020, 8:40

Grazie.
Insomma un leggero tremolìo da Parkinson. Forse aggiungendo una isteresi...EDIT o anche una cella FIR?
I filtri IIR si chiamano così perché hanno una risposta infinita nel tempo cioè l'impulso in ingresso torna a zero esatto ma l'uscita invece rimane permanentemente diversa da zero per uno o più digit (dico giusto?). In fondo anche questo è una specie di ciclo limite, non oscillante ma costante?
Insomma se scegliamo il digitale poi non dovremmo rimpiangere il continuo...
Avatar utente
Foto UtenteEcoTan
5.734 4 10 13
Expert EY
Expert EY
 
Messaggi: 3583
Iscritto il: 29 gen 2014, 8:54

1
voti

[5] Re: Cicli limite in filtri digitali

Messaggioda Foto UtenteMarcoD » 10 giu 2020, 8:48

Si. :ok: :-)
Ho trovato la definizione di Wiki:
Nello studio dei sistemi dinamici, un ciclo limite è un'orbita periodica isolata, ovvero tale per cui non esistono altre orbite periodiche nelle vicinanze e tutte le traiettorie compiute dal sistema che sono sufficientemente vicine convergono ad essa per t → ± ∞ .


I filtri digitali IIR risposta infinita all'impulso, son quelli reazionati in cui la risposta al transitorio ha una durata infinita (anche se correttamente convergente a zero). A causa dei troncamenti converge a un tremolio (ciclo limite)

I fltri FIR risposta finita all'impulso dopo un certo tempo si assestano e perdono memoria del transitorio, sono più stabili e controllabili dei IIR, ma richiedono più celle per avere prestazioni di filtraggio equivalenti

I miei complimenti a Foto Utentecoto, sono obsoleto , comprendo solo in parte quanto scrive e purtroppo non posso essere di aiuto. :cry:
O_/
Avatar utente
Foto UtenteMarcoD
7.262 4 8 13
Master EY
Master EY
 
Messaggi: 3223
Iscritto il: 9 lug 2015, 16:58
Località: Torino

0
voti

[6] Re: Cicli limite in filtri digitali

Messaggioda Foto UtenteMarcoD » 10 giu 2020, 8:59

Insomma se scegliamo il digitale poi non dovremmo rimpiangere il continuo...

E' un problema che tende al filosofico: il mondo fisico non è lineare, satura per energie mediamente elevate, forse ha un comportamento relativistico ad altissime energie e ha un comportamento quantistico nel microcosmo.
Lo semplifichiamo considerandolo lineare in quanto, entro certi limiti, ci permette di progettare e predirne il comportamento.
Avatar utente
Foto UtenteMarcoD
7.262 4 8 13
Master EY
Master EY
 
Messaggi: 3223
Iscritto il: 9 lug 2015, 16:58
Località: Torino

2
voti

[7] Re: Cicli limite in filtri digitali

Messaggioda Foto Utentemarioursino » 10 giu 2020, 9:09

1. Hai definito uno zero-error bin (un range di errore di tensione che, intorno allo zero, è tradotto in errore nullo)? Se non lo fai è impossibile non avere cicli limite, e la condizione che hai citato tra DPWM e ADC dipende dall'ampiezza di tale soglia.

2. Sei uno studente di Udine o di Padova?

3. Riesci ad allegare un archivio con i file Simplis?

Consiglio la lettura di questo
Avatar utente
Foto Utentemarioursino
4.492 3 9 13
G.Master EY
G.Master EY
 
Messaggi: 1452
Iscritto il: 5 dic 2009, 4:32

0
voti

[8] Re: Cicli limite in filtri digitali

Messaggioda Foto Utentemarioursino » 10 giu 2020, 12:30

Una precisazione: l'ADC e l'implementazione della generazione dell'errore implicano un range intrinseco che darà come risultato zero, mi chiedevo se questo fosse stato modellato.
Avatar utente
Foto Utentemarioursino
4.492 3 9 13
G.Master EY
G.Master EY
 
Messaggi: 1452
Iscritto il: 5 dic 2009, 4:32

0
voti

[9] Re: Cicli limite in filtri digitali

Messaggioda Foto Utentecoto » 12 giu 2020, 12:29

marioursino ha scritto:1. Hai definito uno zero-error bin (un range di errore di tensione che, intorno allo zero, è tradotto in errore nullo)? Se non lo fai è impossibile non avere cicli limite, e la condizione che hai citato tra DPWM e ADC dipende dall'ampiezza di tale soglia.

2. Sei uno studente di Udine o di Padova?

3. Riesci ad allegare un archivio con i file Simplis?

Consiglio la lettura di questo

intanto grazie mille per l'aiuto, scusa se rispondo solo ora. Non sono uno studente e non ho fatto l'universita', studio per conto mio nel tempo libero perche' sono appassionato al tema.

Riguardo al primo punto, l'errore in uscita dal sottrattore e' zero quando la tensione acquisita dell'ADC e' dentro un LSB, non so e' questo a cui ti riferivi. Purtroppo sembra che il compensatore porti la regolata ad oscillare tra errore 1 e 2, non riesco a fare in modo che si fermi ad errore zero.

Allego l'allegato con il modello simplis
digital_buck.zip
(21.96 KiB) Scaricato 7 volte


Grazie per l'articolo, me lo studio per bene anche se vedo che prende in esame un compensatore in forma PID mentre io sto usando una forma diretta nel dominio della frequenza. Adesso penso dovrei cercare di mettere in relazione le due tipologie di compensatori per ottenere le costanti Kp,Ki,Kd partendo da una funzione di trasferimento in forma poli-zeri. Sono convinto che sia un passo necessario per confrontare le due soluzioni ma mi ci vuole tempo.

Di nuovo grazie
Avatar utente
Foto Utentecoto
5 2
 
Messaggi: 3
Iscritto il: 9 giu 2020, 12:45

0
voti

[10] Re: Cicli limite in filtri digitali

Messaggioda Foto Utentecoto » 14 giu 2020, 12:43

Riporto un estratto da "Digital control of High-Frequency Switched-Mode Power Converters" (ISBN 978-1-118-93510-1), par. 5.3.3 Dynamic Quantization Effects

With quantization effects, the converter is a complex nonlinear dynamic system, and limit-cycling disturbances can sometimes be observed even when the loop is designed for stable operation, and the basic no-limit-cycling conditions are met. On the other hand, for a stable, well designed resolution A/D and DPWM components, the amplitudes of any such limit-cycling disturbances in the output voltage tend to be relatively small, in the order of q(A/D). In practice, such small-amplitude disturbances may be tolerated.

More rigorous dynamic stability and performance analysis of quantization effects in digitally controlled switched-mode converters is a subject of ongoing investigations.

Dopo cita alcuni articoli tra cui anche quello postato da marioursino.

Mi sembra che il mio modello rientri in questo caso, piccole oscillazioni dell'ordine di un LSB dell'ADC.
Le tre condizioni base le ho rispettate ma devo accettare gli effetti piu' subdoli della quantizzazione, per i quali pare lo studio sia ancora in corso. Aspettero' che gli studiosi risolvano l'analisi traducendola in regole semplici utilizzabili per tutti, sempre sia possibile.
Quanto lavoro c'e' ancora da fare...
Avatar utente
Foto Utentecoto
5 2
 
Messaggi: 3
Iscritto il: 9 giu 2020, 12:45


Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 19 ospiti