Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Esperimenti Pwm - (mal riusciti)


Messaggi consigliati

Inserito: (modificato)

Sto facendo qualche esperimento con il PWM ma sto avendo problemi.

Ho una lampadina a cui devo far arrivare una tensione percepita di 0,9V partendo da una batteria con un voltaggio qualsiasi compreso tra 3 e 15V, allora ho programmato un pic che legge la tensione della batteria e calcola il duty cycle necessario a fornire la suddetta tensione. Ho allegato lo schema.

Il problema è che al variare della tensione in ingresso la luminosità della lampadina.

Il duty cycle fornito al mosfet (misurato con l'apposita funzione sul tester) è corretto, ecco una tabellina:

V batteria Duty Cycle V percepita

11,44 7,8% 0,892

7,63 11,7% 0,893

3,82 23,4 0,894

Visto che la tensione percepita è uguale per tutti i casi, perchè la luminosità della lampadina cambia??? La lampadina è piccola, consuma poco meno di 1mA, ma il problema si ripete se uso una resistenza riscaldante (vero target del progetto) dal consumo di 500mA.

Il datasheet del mosfet è questo

http://www.st.com/stonline/books/pdf/docs/11631.pdf

user posted image

Modificato: da Neway

Inserita:

Come generi il PWM? Usi la funzione precostituita del PIC?

Visto che le aree di "on" sono praticamente identiche in tutti e 3 i casi, una possibile spiegazione potrebbe essere una variazione della frequenza di PWM.

Inserita:

Si, uso il modulo PWM del pic. Ho provato diverse frequenze:

100000 Hz

10000 Hz

5000 Hz

3000 Hz

Ho anche verificato con il tester (che ha il frequenzimetro) che fossero corrette.

Qualche giorno fa, quando ancora non mi ero accorto ancora del problema, da un amico abbiamo collegato un vecchio oscilloscopio analogico all'uscita. Il segnale era pulito con i fronti di salita e discesa ben netti.

Aggiungo che se metto i puntali del tester ai capi della lampadina leggo voltaggi un poco diversi, ma penso che siano falsi visto che il mio tester non è TRUE RMS:

V batteria V alla lampadina letta dal tester (non true RMS)

11,43 0,927

7,62 0,912

3,81 0,899

Grazie per l'aiuto.

Inserita:

Devi verificare che vari solo il rapporto del duty cycle, mentre la frequenza deve rimanere costante.

Se calcoli l'area del rettangolo in cui la lampada è comandata, se al frequenza rimane costante, devi avere costante anche l'area. Se è così non capisco la variazione di luminosità, dato che la tensione termica (RMS) è costante.

Che tipo di lampadian stai usando?

Inserita:

Confermo che la frequenza rimane perfettamente costante.

Sto usando una piccola lampadina per luci natalizie che consuma meno di 1mA, però ho lo stesso risultato usando una luce di posizione per auto e un filamento di nickel-cromo lungo 1,5cm. Con la batteria a basso voltaggio non si arroventa, con voltaggi della batteria più alti diventa rosso.

Aggiungo che per l'alimentazione uso una batteria Lipo 3 celle, per cambiare voltaggio collego semplicemente più o meno celle.

Inserita:

Chiedo scusa per il mio vecchio Avatar, ma da questa postazione non riesco a collegarmi come Mirko Ceronti.

Per me la luminosità della lampada Ti varia, perchè la tensione di alimentazione è singola.

Per cui Tu variando il PWM vari l'integrale che va alla lampada abbassandone od alzandone sia il valore medio che quello efficace.

Con tensione duale invece (2 Mos-Fet quindi) quando il rettangolo di tensione positiva rispetto a massa si stringe, quello di tensione negativa rispetto a massa si allarga, il valore medio cambia, e quello efficace invece rimane invariato, motivo per cui se colleghi un motorino a C.C. in parallelo ad una lampadina, vedrai il motorino rallentare od aumentare i suoi giri, e la lampadina fare sempre la stessa luce.

Saluti

Asmo/Mirko

Inserita:

Non avevo notato dove vai a derivare la tensione di misura!

Non devi derivarla sul drain del mosfet, ma direttamente dall'alimentazione.

Commetti 2 errori:

1 - Errore di misura perchè non misuri la tensione di batteria, ma la tensione affetta dalla cdt della lampadina.

2 - Il partitore di misura influenza il valore di tensione ai capi del carico!

Questo spiega la variazione di luminosità.

Ho voluto fare un prova veloce. Ho usato un LED (10 mA di corrente). Ho variato la tensione di alimentazione in 2 passi: 12 V e 5 V. Nessun apprezzabile variazione di luminosità.

Ovviamente la misura della tensione l'effettuo sull'alimentazione.

Mirco se rimane costante il valore efficace, detto anche valore termico, la luminosità non cambia. Questo indipendentemente dal mono o bipolare.

Si dice appunto valore termico perchè, per definizione, al valore RMS o efficace corrisponde un effetto termico identico a quello che produrrebbe una corrente continua.

Inserita:

Ah, ma su questo Livio siamo daccordissimo, smile.gif infatti io ho scritto (riferendomi all'unidirezionale o unipolare):

Ossia se il valore efficace varia, varia anche la luminosità della lampada, se invece rimane fisso, la lampada non "muove" di un lux la sua resa luminosa.

Ho poi fatto l'esempio della corrente alternata ad onda quadra (bipolare) proprio per suffragare questo concetto, infatti in quel caso se si varia il Duty-Cicle, il valore efficace NON varia (quindi è costante) il valore medio invece oscilla in funzione del Mark e dello Space da valori "Zero" (Mark e Space uguali ossia semionda quadra positiva uguale alla negativa) a valori quasi tutti positivi o negativi.

Se quindi il valore efficace rimane costante la luminosità (come dici Tu) rimane invariata, poichè costei essendo un prodotto del surriscaldamento e quindi dell' R.M.S. dell'onda, dipende appunto per definizione da questo parametro e non dal valore medio.

Ma il mio errore è stato il non aver capito cosa aveva richiesto l'utente, ho capito (spero) leggendo la Tua ultima risposta).

Ossia lui non si chiede il perchè variando il Duty-Cicle varia la luminosità della lampada (cosa peraltro normale in unipolare, e che è scaturita nella mia prima risposta.

Lui chiede perchè variando la tensione di batteria al ribasso, la luce varia invece di rimanere costante (cosa che se il circuito di retroazione funziona bene ed agisce sul P.W.M. al rialzo, non deve succedere).

Ed a questo punto è vero quello che Tu gli fai rilevare, cioè è sbagliato il punto di prelievo del segnale di errore.

Saluti

Asmo/Mirko

Inserita:

No no! Attenzione, sono stato stupido a non dire nel messaggio che quel partitore serve soltanto a capire se il carico è collegato e a calcolarne molto approssimativamente la resistenza. La vera lettura della tensione è fatta sulla batteria.

Mi scuso per questo equivoco wink.gif . Ecco lo schema più preciso

user posted image

Esattamente!

Inserita:

Non è una questione di lettura, ma di carico.

Prova a togliere quel partitore e tutto dovrebbe tornare normale, a meno che il circuito reale sia differente dallo schema.

Ti ripeto, ho fatto una prova veloce con un pic16F877 ed un LED senza problemi di luminosità.

Inserita:

Credimi, segui i consigli di Livio. Il partitore non và collegato nel modo da te descritto.

Penso che per verificare il carico, dovresti inserire un resistore di 0.22 tra surce e massa, quindi tramite un resistore da 1K prelevi la tensione da far leggere alla PIC quando il ciruito è sotto carico, però tieni presente che non stabilizza un bel niente, variando la tensione di batteria vedresti sempre variare l'intensità luminosa della lampada o led ed esso collegato.

Per ottenere la stabilizzazione, oltre al controllo della PIC, ci vuole qualche altra cosa, è credimi non è nemmeno molto difficile trovare la soluzione.

Vorrei prima parlarne con Livio, e poi, se c'è una soluzione, la posteremo. wink.gif

Inserita:

Ho tolto completamente il partitore R17, R18 ma non è cambiato assolutamente nulla. Però ho fatto una prova a mettere un led al posto della lampadina e con il led non ci sono problemi!

Grazie ancora.

Inserita:

Potrebbe essere, ma il condizionale è d'obbligo, che dipenda dalle variazioni di resistività della lampadina.

Tra l'altro, io mi sarei aspettato di avere più problemi di variazione di luminosità con un LED, perchè l'inerzia del LED è praticamente nulla e la sua luminosità dipende unicamente dalla corrente assorbita. Sicuramente è l'occhio che svolge la funzionde integrale.

Per apprezzare al variazione di luminosità della lampadina è necessario che la temperatura del filamento abbia notevoli variazioni.

Potrebbe essere che la corrente istantanea quando la tensione di batteria sia più alta, faccia crollare, per effetto termico, la resitenza del filamento; in questo modo si indurrebbe un effetto a spirale che causa poi la variazione di luminosità.

Visto che hai riscontrato un fenomeno simile con un restistore, prova a verificarne il coefficiente termico. Se il dispositivo è a bassa inerzia termica, perchè le dimensioni son piccole, potrebbe essere la spiegazione del fenomeno.

Inserita:

Ok, quindi non ci sarebbe nulla di semplice da fare. Cambiamo discorso allora: se voglio che la luminosità rimanga sempre la stessa posso cambiare filosofia e alimentare il carico a corrente costante usando un integrato apposito.

I led driver sono semplici generatori di corrente costante e quindi possono essere usati anche per un filamento resistivo? Mi servirebbe qualcosa che eroghi fino a 1A

Inserita:

Ti serve un regolatore lineare, altrimenti i problemi rimangono. I driver per LED sono a tecnologia switching, quindi PWM.

Inserita: (modificato)

tanto per mettere altra carne al fuoco:

per semplicità immaginiamo di voler tirar fuori 1v da una batteria da 3v.

secondo i calcoli basterebbe un duty cycle per cui Ton=1/3 e Toff=2/3.

Così facendo la tensione MEDIA sarebbe di 1v, ma NON la tensione RMS che è poi quella calorimetrica, ovvero quella che scalda il resistore o il filamento della lampadina.

Per riprendere l'esempio: se alimenti a 3V una resistenza che avresti voluto alimentare a 1V avresti una dissipazione ISTANTANEA di 9volte superiore (W=V*V*R) visto che la ponza è quadratica con la tensione.

Se ora applichi questo triplo di tensione per un terzo del tempo avrai una DISSIPAZIONE media di 9/3=3 (il triplo dell'atteso!!), ulteriore domanda: quale Vin continua darebbe quella dissipazione? radice di tre! (1,73..V).

Et voilà: 3V con duty cycle 33,3% ottieni una Vmedia di1V e una Vrms di circa 1,73V sul carico.

per trovare il duty cycle non devi dividere il tempo attivo per il fattore di partizione, ma per il suo quadrato!

prova questi valori:

11,44V 0,62%

7,63v 1,39%

3,82V 5,55%

Attento all'eventuale loop di controllo della Vuscita: presa attraverso un filtro passabasso leggeresti la Vmedia, non la Vrms!

Modificato: da ludo69
Inserita: (modificato)

P.S.

con il LED funziona perchè l'energia applicata è Vled(COSTANTE!)*I(variabile con Vcc), quindi la relazione Vcc/potenza è lineare e NON è quadratica come per un resistore (dove la Vcarico NON è costante ma PROPORZIONALE alla Vcc).

Spero di averci preso....

Modificato: da ludo69
Inserita:

Se sei interessato ad un regolatore a corrente costante, puoi trarre spunto dallo schema che vedi al messaggio N°3 del seguente Link

http://www.plcforum.it/forums2/index.php?s...=0entry414941

Metti la lampadina in serie all'amperometro, (od al posto di costui), ed avrai ottenuto quello che cerchi.

N.B. se usi però una lampadina a 12 Volt alimentandola a 12 volt, non ci sarà santo che tenga, la luminosità si abbasserà.

E ciò è valido anche per il vecchio discorso del PWM.

Quindi utilizza (ad esempio) una lampada da 6 Volt, oppure da 12 Volt, ma alimentandola con una seire di batterie a 24 Volt.

Se la alimenti a 12 ed hai scelto una lampada da 6, ricavati la sua corrente partendo dalla potenza e dalla tensione della lampada medesima, poi tara il regolatore a corrente costante (col trimmer) a quella corrente, e vedrai che abbassando la tensione di batteria, la luminosità non scenderà, non almeno finchè non passi sotto i 6-:-7 volt

Saluti

Mirko

Inserita: (modificato)

Ma...in un'onda quadra unidirezionale (quella a cui presumo ci si stia riferendo) il valore efficace e quello medio, non sono la stessa cosa ? huh.gif

Infatti essa ha fattore di forma uguale ad 1 e quindi questo suffraga l'uguaglianza tra i 2 parametri (medio ed efficace)

OOOpss ho letto meglio ora il tuo messaggio....come non detto...!

Saluti

Mirko

Modificato: da Mirko Ceronti
Inserita:

Ho pensato bene a tutta la faccenda e ho tratto la conclusione che tutti, io per primo, abbiamo trattato il problema in modo semplicistico perdendo di vista la base teorica e affidandoci beceramente alla pratica.

A questo punto facciamo una pausa e andiamo alla fonte. In altri termini si deve studiare il problema secondo la teoria. Le leggi fisiche, se corretttamente applicate, non mentono mai e non hanno bisogno dell'interpretazione della cassazione.

wink.gif

Per un poco ritorno adolescente e riapro il vecchi testo di elettrotecnica generale.

Citazione testuale dall'Olivieri e Ravelli, volume primo, pagina 394 (almeno secondo la 13.a edizione, quella che risale a mezzo secola fa, la mia sad.gif ).

Pubblico i risultati del mio ritorno ai banchi di scuola in modo che possano eventualmente servire anche ad latri.

Non starò a ricopiare l'intero capitolo.

Riassumendo, sempre dal medesimo testo,

Che si tratti di onda rettangolare unipolare o bipolare ha poca importanza: i qudrati sono sempre positivi per definizione!

nel caso in esame i segnali sono rettangolari, questo semplifica un poco il calcolo. Infatti è sufficiente, con riferimento ad un periodo, moltiplicare il quadrato del valore di tensione della batteria (trascurando la cdt del mosfet), per la percentuale di ciclo utile e dividere per cento, poi si estrae la radice. Questo è il vero valore efficace o valore termico!

Applichiamo ora queste definizioni ai segnali rettangolari dell'esperimento.

Secondo quanto riportato abbiamo le seguenti coppie di valori.

11,44 V <==> 7,8%

7,63 V <==> 11,7%

3,80 V <==> 23,4%

Applichiamo la forumla:

V rms = SQR( (V^2*%)/100) [1]

da cui avremo :

11,44 V <==> 7,8% ==> V = 3.195 V

7,63 V <==> 11,7% ==> V = 2.609 V

3,80 V <==> 23,4% ==> V = 1.847869V

In pratica siamo al 57.8%

A questo punto mi cospargo il capo di cenere perchè, a volte, l'esperienza pratica fa dimenticare la corretta base teorica. Avrei dovuto pensarci prima. mad.gif (con me stesso)

In genere per chi, come me, si occupa di regolazioni ad anello chiuso questo problema non esiste. L'eventuale errore di feed forward viene corretto dalla reazione. In questo caso essendo un anello aperto il problema si nota, eccome se si nota.

Soluzione.

E' necessario cambiare algoritmo di regolazione. Non più una semplice proporzionalità tra tensione di batteria duty cycle, ma si dovrà risolvere l'equazione [1] dove la variabile indipendente è la tensione di batteria e l'incognita la percentuale di PWM.

Si può anche usare un algoritmo semplificato se si accetta un errore maggiore.

Altra soluzione è adottare la regolazione ad anello chiuso. Essendo lo scopo finale mantenere costante una temperatura al variare della tensione di batteria, si potrebbe usare un trasduttore di temperatura e risolvere brillantemente il problema con ottima precisione.

Da ultimo, ma non ultimo.

L'apparente costanza di luminosità del LED.

E' un fenomeno che mi ha sorpreso, perchè mi sarei aspettato il contrario.

Però la spiegazione sta nel foglio tecnico del LED.

La corrente termica per il LED serve solo a determinarne l'usura e non la luminosità. L'emissione non proporzionalemente lineare con la corrente. Se si unisce al fatto che la precisione di misura dell'occhio umano, a questi livelli, non è trascendentale sembra che il LED emetta sempre la medesima intensità luminosa.

Inserita:

Favoloso! Ho implementato la funzione direttamente visto che uso un pic 18. Funziona come un orologio!

Siete stati tutti gentilissimi, in particolare Livio Orsini per tutto il tempo dedicatomi e la pronta risposta e Ludo69 per aver centrato il problema.

clap.gif

L'equazione si può anche scrivere in forma più semplice così:

V_rms = V * sqrt(D)

con il duty cycle D compreso tra 0 e 1

Effettivamente il valore efficace è una delle prime cose che ci hanno insegnato in elettrotecnica wink.gif. Purtoppo fin quando le cose stanno sulla carta senza averle mai applicate non se ne capisce l'importanza. Durante il corso facevamo i conti dando per scontato che tutte le tensioni fossero in valore efficace e alla fine ci si dimentica che esistano altri tipi di tensione.

Inserita:

Si perchè il periodo è costante ed pari a 1 (100%).

Inserita:

Questa è stata una di quelle discussioni davvero didattiche ! clap.gif

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...