Vai al contenuto
PLC Forum


Motore BLDC lavatrice LG


marcoc4d

Messaggi consigliati

Sandro Calligaro
58 minuti fa, marcoc4d ha scritto:

Magari é un'opzione che funziona con altre schede di potenza nelle quali é misurata la tensione di fase, proverò a guardare 

Se hai un attimo, sarei curioso di saperlo.

Comunque mi hai già dato delle informazioni interessanti (prima non ti ho ringraziato): la scheda attualmente funziona piuttosto bene con bus DC a piena tensione e senza misura delle tensioni di bus.

Si conferma che in ST hanno fatto veramente un buon lavoro. Devo dire che quel tipo di motore, con un numero di poli alto, rende un po' più facili le cose a bassa velocità, perché uno dei problemi a bassa velocità è come distinguere la back-EMF dall'offset. Per il sensorless basato sulla stima di back-EMF (e non di flusso) si parla pochissimo di questo problema, in letteratura, ma secondo me è fondamentale. Quindi non è solo l'ampiezza delle back-EMF ad una certa velocità, che conta, ma anche la frequenza. L'offset di tensione (che finisce dritto dritto nella back-EMF stimata) è dovuto ad una combinazione di offset della misura di corrente e distorsione delle tensioni dovuta ai dead-time.

Link al commento
Condividi su altri siti


  • Risposte 159
  • Created
  • Ultima risposta

Top Posters In This Topic

  • marcoc4d

    71

  • Sandro Calligaro

    62

  • Livio Orsini

    19

  • zhavinchi1

    4

8 ore fa, Sandro Calligaro ha scritto:

Comunque mi hai già dato delle informazioni interessanti (prima non ti ho ringraziato)

Sono io che devo ringraziare te e anche Livio per le indicazioni che mi avete dato.

Ho provato l' "on the fly startup" dopo aver dato una sbirciata al codice senza capirci molto. Funziona!

Nei parametri di configurazione ci sono due tempi da settare che sono il primo chiamato "detection duration" e il secondo "braking duration", ho messo dei valori quasi a caso non sapendo cosa facciano.

Di fatto al primo avvio per forza da fermo si sente che il motore fa un pò di friggio di fondo senza muoversi per qualche secondo prima di partire con la solita sequenza di avvio. 

Successivamente quando si da lo start prima che il motore sia fermo si sente un breve fischio, penso due tre decimi di secondo di durata e poi riparte al volo. Il "fischio" é piu o meno acuto a seconda della velocità del motore quando si ridà lo start. Mi sembra che durante il fischio sia anche frenato.

Nel link ho messo l'audio, l'oblò era aperto si sente il fruscio di fondo dell'aria

https://drive.google.com/open?id=1605g9ihSVNHoC0CCPLSqF-pN7UTmsUnL

Link al commento
Condividi su altri siti

Anzi tutto buona sera , ho letto con curiosita il problema dell'arduino , dunque per entrare nell adc con l'acs 712 tutto ok , ma dopo la lettura ti consiglio di farlo passare 3 volte successivamente ad un filtro recursivo della forma  valore filtrato attuale =( k*lettura in entrata)+(1-k)*(valore filtrato precedente ).il fattore k deve essere positivo non superiore ad 1.Cosi facendo ultimamente sono riuscito su un arduino due a controllare una valvola proporzionale idraulica completa di dither variabile ,mediante controllo della corrente con un acs723 .tiene il diecimo di milliampere su 1.5 ampere .anche con la bobina riscaldata nel tempo.Con buona pace del Sig. Livio ho dei problemi di tenuta ai disturbi che risolvero  a breve spero .

 

 

isidoro modiano

 

Link al commento
Condividi su altri siti

Sandro Calligaro

ISITRO, purtroppo il controllo di un motore trifase è parecchio più complicato di quello di una valvola proporzionale, e nonostante gli sforzi marcoc4d (che mi sembra bravino, a programmare 😊) ha lasciato perdere, pur avendo ottenuto qualche risultato.

 

Volevo segnalare, perché oggi me lo sono trovato davanti, questo libro che parla di controllo di motori sincroni a magneti permanenti (con una parte importante sul sensorless).

A quanto pare è liberamente scaricabile dal sito dell'editore (e non credo sia per un qualche errore):

https://link.springer.com/content/pdf/10.1007%2F978-981-15-0050-3.pdf

Modificato: da Sandro Calligaro
Link al commento
Condividi su altri siti

1 ora fa, Sandro Calligaro ha scritto:

A quanto pare è liberamente scaricabile dal sito dell'editore (e non credo sia per un qualche errore):

 

Scarichi le  2 e le ultime 2 pagine.

 

12 ore fa, ISITRO ha scritto:

.Con buona pace del Sig. Livio ho dei problemi di tenuta ai disturbi che risolvero  a breve spero .

 

Non capisco cosa c'entro io se hai problemi di EMC con arduino. Io ho solo evidenziato che è altamente probabile averne.

Link al commento
Condividi su altri siti

Sandro Calligaro
3 ore fa, Livio Orsini ha scritto:
5 ore fa, Sandro Calligaro ha scritto:

A quanto pare è liberamente scaricabile dal sito dell'editore (e non credo sia per un qualche errore):

 

Scarichi le  2 e le ultime 2 pagine.

Scusate, non mi ero accorto che implicitamente stavo usando un account, per il fatto di essere connesso dalla rete dell'università.

Link al commento
Condividi su altri siti

 

Bello!

Un libro per le vacanze da leggere davanti al camino😬.

In questi giorni ho fatto un pò di prove coi sensori del motore. Ho provato ad aumentare la capacità del buffer utilizzato dalla libreria per calcolare la velocità media del motore. Il codice prevede un numero massimo di 16 valori su cui calcolare la velocità media. Pensavo fosse una buona idea aumentare il buffer per limare meglio il rumore presente nei sensori. Ho cambiato quindi il codice per avere un buffer di 100 elementi. 

Il risultato é che la velocità diventa instabile a meno di abbassare molto il Kp, ma con Kp basso il PI di controllo della velocità funziona male e tende ad essere instabile a sua volta, quindi tentativo inutile.

 

Link al commento
Condividi su altri siti

 

Potrebbe succedere che, specie a causa dei panni che si ribaltano, la coppia di disturbo tenda invece a fargli "perdere il passo", impedendogli di avviarsi. 

Nel funzionamento normale non ci si può permettere che il motore stalli, perciò magari usano le sonde, a bassa velocità. 

Ho provato a fare andare il motore sensorless con carico di biancheria e acqua, e funziona perfettamente.

L'unica cosa spiacevole é che abbassando la velocità di rotazione sotto i 30 rpm a un certo punto il motore si blocca e talvolta riparte girando in senso contrario alla massima potenza perché girando al contrario l'errore non può che aumentare all'aumentare della velocità (per fortuna sono stato abbastanza rapido a dare lo stop e c'é stato solo qualche salto della lavatrice tipo canguro ma senza danni).Però penso che sia una caso estremo e forse rimediabile settando meglio i parametri del controllo PI.

Link al commento
Condividi su altri siti

Rimane l'origine del disturbo della pwm sui sensori Hall che non capisco, anche se il motore funziona benissimo sensorless.

Ho collegato l'oscilloscopio al sensore di pressione per il livello dell'acqua. Semplificando questo sensore funziona a 5V e fornisce una sinusoide la cui frequenza varia con il livello dell'acqua nella vasca. Volevo vedere se anche nel segnale di questo sensore fosse presente il disturbo della pwm visto che i fili passano nella stessa unica matassa dove passano quelli dei sensori pwm e le fasi del motore. Non c'é traccia della pwm nel segnale del sensore di pressione.

Possibile che il disturbo si generi perché i sensori hall sono vicini alle bobine del motore?

Link al commento
Condividi su altri siti

Sandro Calligaro

Il fatto che i sensori Hall siano vicini, direi quasi attaccati al motore è probabilmente la causa. Leggendo quei segnali come "single-ended" e non in differenziale, il modo comune tra massa del controllo (che poi è la stessa dell'inverter, se ho capito bene) e carcassa del motore può causare forti disturbi.

 

Bisogna considerare che le uscite dell'inverter hanno un valore medio (media tra le tre tensioni) che, rispetto al negativo del bus DC, varia di molto (centinaia di V, nel tuo caso) e molto velocemente. Quella media è la tensione di "modo comune", che in pratica si riflette per via capacitiva anche sul ferro di statore.

Una delle contromisure per i disturbi di modo comune è quella di avvolgere i fili (i segnali Hall, tutti assieme) attorno ad un nucleo di ferro o, meglio, ferrite. La stessa cosa che si fa sui segnali video, ad esempio, o su uscite di alimentatori switching di potenza abbastanza alta.

Per ridurre l'emissione di disturbi si può provare a fare lo stesso anche con le tre uscite dell'inverter (tutte e tre assieme).

 

Ovviamente, oltre a questo puoi filtrare (con un R-C) i segnali.

 

 

 

 

non è che le sonde hanno uscite open-collector

Avrebbe delle implicazioni per il rumore?

Certo, se fosse così, ce l'avrebbe!

Hai provato, con l'oscilloscopio, a guardare i segnali delle sonde di Hall? Il disturbo c'è sempre, o è più marcato quando i segnali sono alti (a 1 o 5V, intendo)?

 

PS: scusate, ma da un po' di giorni la citazione non funziona correttamente. Non trovo più il tasto con le virgolette, e se seleziono una parte di testo di un post non si vede il fumetto con "quota selezione".

Link al commento
Condividi su altri siti

 

massa del controllo (che poi è la stessa dell'inverter, se ho capito bene)

Si é la stessa massa, tutte le masse vengono messe insieme nella scheda dell'inverter.

 

 

Il disturbo c'è sempre, o è più marcato quando i segnali sono alti (a 1 o 5V, intendo)?

Si c'é sempre sia quando l'uscita é alta che bassa

Link al commento
Condividi su altri siti

Sandro Calligaro

"Si c'é sempre sia quando l'uscita é alta che bassa"

Quindi l'uscita non è open-collector.

Che resistenza c'è, come carico, lato ricevitore? Se non c'è alcuna resistenza, varrebbe la pena di applicare qualcosa come qualche kOhm, come primo test, e poi se non cambia niente filtrare con un R-C. La resistenza dovrebbe essere attorno al kOhm o anche meno, mentre la capacità va tarata per far sì che la frequenza di taglio sia almeno 3-5 volte superiore alla frequenza dei segnali Hall alla massima velocità.

Anche la prova con qualche giro attorno ad un anello di ferro vale la pena.

 

PS: io, comunque, studierei accuratamente la scheda di controllo originale, per capire come hanno fatto loro. Potresti mandare qualche foto della parte dove si trova il connettore delle sonde Hall, oppure seguire i segnali e ricavare uno schema di massima. Siamo sicuri che l'alimentazione che stai usando sia giusta (non è che magari loro usano una tensione più alta, per le sonde)?

Link al commento
Condividi su altri siti

 

 

PS: scusate, ma da un po' di giorni la citazione non funziona correttamente. Non trovo più il tasto con le virgolette, e se seleziono una parte di testo di un post non si vede il fumetto con "quota selezione"

Sappiamo e.......soffriamo :( , pensavo fosse difficile per me come negato col pc , ma mi fai sentire meglio .

Link al commento
Condividi su altri siti

 

 

PS: scusate, ma da un po' di giorni la citazione non funziona correttamente. Non trovo più il tasto con le virgolette, e se seleziono una parte di testo di un post non si vede il fumetto con "quota selezione"

 

Ci sono 2 modi per citare:

  1. Passare con il mouse sulla frase da citare, apparirà un fumetto con un trattino al centro, clickare sul trattino ela frase viene citata.
  2. In basso a sinistra di ogni messaggio c'è il comando "Quote" questo camando cita l'intero messaggio, poi nell'editor si può cancellare la parte del messaggio non significativa.
Link al commento
Condividi su altri siti

 

Che resistenza c'è, come carico, lato ricevitore?

 

varrebbe la pena di applicare qualcosa come qualche kOhm, come primo test, e poi se non cambia niente filtrare con un R-C

Il sensore é alimentato a 10V e da un uscita tra 0 e 10V, ho messo sull'uscita una resistenza da 6kohm in modo da ottenere un uscita tra 0 e 5Volt (in realtà sono 4.5 circa o forse meno).

Nell' immagine seguente si vede la tensione ai capi della resistenza da 6K.

IMG_20191214_142801.thumb.jpg.ee440fafd221e5c6490ee91520df3945.jpg

Nell' immagine seguente si vede l'uscita di uno dei due sensori un condensatore da 0.1µF  in parallelo alla resistenza da 6K.

IMG_20191214_142713.thumb.jpg.80d74c024192c7b749d58e29fdf9be02.jpg

Anche col condensatore il funzionamento del codice dell'inverter é impreciso.

Forse aggiungendo dopo il condensatore un Trigger di Schmitt si riuscirebbe a ripulire il segnale.

 

PS: io, comunque, studierei accuratamente la scheda di controllo originale, per capire come hanno fatto loro. Potresti mandare qualche foto della parte dove si trova il connettore delle sonde Hall, oppure seguire i segnali e ricavare uno schema di massima

Ci avevo pensato anche io ma la scheda é immersa in una cosa trasparente gommosa che sembra silicone, non saprei come estrarla dal suo involucro, metto comunque la foto, il connettore 2X2 centrale è quello dei sensori, i pin in basso a sinistra ed in alto a destra sono le uscite dei sensori gli altri due l'alimentazione.

Lo scotch sui cavi fa parte della dotazione originale della lavatrice :)

 

IMG_20191214_143022.thumb.jpg.fd59a44552ed730017db6fe91690880c.jpg

Link al commento
Condividi su altri siti

Sandro Calligaro
 
 

Il sensore é alimentato a 10V e da un uscita tra 0 e 10V, ho messo sull'uscita una resistenza da 6kohm in modo da ottenere un uscita tra 0 e 5Volt (in realtà sono 4.5 circa o forse meno).

Non ho capito... Con una sola resistenza (e non un partitore), come fai ad abbassare la tensione?

Ci vorrebbe uno schema di quello che hai fatto (anche su carta e fotografato è sufficiente).

 

Nell' immagine seguente si vede la tensione ai capi della resistenza da 6K.

 

A guardarlo così, il segnale, mi sembra che i disturbi siano molto più forti (e a frequenza relativamente bassa) quando il segnale è alto.

Questo potrebbe confermare la mia ipotesi, cioè che si tratti di un open-collector. Se fosse così, ci vorrebbe un pull-up, cioè una resistenza bassa (direi <1 kOhm), collegata tra +5V e l'uscita. E' solo un'ipotesi, aspetto lo schema per dire qualcosa in più.

 

 

PS: la citazione funziona, ma il fumetto ha una zona molto piccola nella quale cliccare...

Link al commento
Condividi su altri siti

 

ma il fumetto ha una zona molto piccola nella quale cliccare...

 

Si è un lavoro di precisione.:(

Purtroppo non dipende dal nostro webb masster, ma dalla piattaforma su cui è sviluppato il forum. Ogni tanto emettono una nuova versione, a cui si è obbligati ad adeguarsi, e alcune volte la versione nuova è meno amichevole della precedente.

Link al commento
Condividi su altri siti

Mi scuso per il disegno immondo l' ho fatto col telefono.

IMG_20191216_214624.thumb.jpg.0ebeb993401dd07c6354e9b1c803db73.jpg

Penso ci sia già una resistenza di pull up nel sensore, che con la resistenza messa da me fa un partitore. Tra vcc e l'uscita del sensore ci sono circa 5k adesso non ricordo il valore esatto. Io ho messo una resistenza da 6k tra l'uscita del sensore e la massa.

Link al commento
Condividi su altri siti

Sandro Calligaro

Questo conferma il fatto che l'uscita sia open-collector. Togliendo il tuo carico, che resistenza vedi, con il multimetro, tra uscita e massa, quando l'uscita è "bassa"?

image.png.03ee80ddbfc2fb16309efb8b75e6c5b7.png

Il partitore a poco meno di 5 V rende l'ingresso molto sensibile ai disturbi, mentre forzare 10 V "a riposo" e poi abbassarli solo se sono "troppo alti" mi sembrerebbe molto meglio.

 

Vedrei due possibilità.

Si può mettere un pull-up ai 5 V, di valore molto minore di 5 kOhm (es. 500 Ohm o anche meno, sperando che li regga).

Una resistenza di carico potrebbe andare bene, ma deve essere molto più alta del pull-up (>>500 Ohm).

image.png.e28c9578ce8ecb9f8ce4271722890f53.png

 

Un'altra possibilità, diciamo un po' "al contrario" rispetto a quella che ho appena scritto, è quella di non applicare un carico resistivo (se non, magari, una resistenza alta, >5 kOhm), ma mettere uno zener tra uscita e massa o un diodo normale (meglio Schottky) con anodo sull'uscita e catodo verso i 5 V, per limitare la tensione all'ingresso.

image.png.d120d349796f528e85262260b17381b7.png

Modificato: da Sandro Calligaro
Link al commento
Condividi su altri siti

 

 

Questo conferma il fatto che l'uscita sia open-collector. Togliendo il tuo carico, che resistenza vedi, con il multimetro, tra uscita e massa, quando l'uscita è "bassa"?

Ciao Sandro,

grazie per il tuo ultimo post, sono via da casa appena rientro ai primi di gennaio faccio la misura e provo i circuiti che hai postato, sono molto curioso di vedere come si comporta il segnale.

Link al commento
Condividi su altri siti

  • 4 weeks later...

rieccomi, auguri a tutti per prima cosa.

Il 16/12/2019 alle 22:14 , Sandro Calligaro ha scritto:

image.png.03ee80ddbfc2fb16309efb8b75e6c5b7.png

Ma la resistenza a uscita bassa la devo misurare col sensore alimentato giusto? perché non sono riuscito a misurarla, nel senso che il tester da dei valori che cambiano a seconda della scala selezionata.

 

Il 16/12/2019 alle 22:14 , Sandro Calligaro ha scritto:

image.png.e28c9578ce8ecb9f8ce4271722890f53.png

ho provato questo circuito, ma i disturbi rimangono molto forti praticamente come prima.

Link al commento
Condividi su altri siti

  • 3 months later...

Rieccomi dopo un pò di tempo durante il quale ho studiato un pò di teoria dei sistemi per cercare di comprendere le basi teoriche che stanno dietro al funzionamento della libreria di ST.

Direi che ho più o meno capito e decifrato il codice per il funzionamento con observer+pll.

Mi rimane da capire perché i sensori Hall restano inutilizzabili a causa dei disturbi generati dalla PWM.

Nella libreria della ST i sensori Hall vengono gestiti tramite un interrupt, quindi ogni volta che c'é un cambiamento di stato dei due sensori del motore viene attivata la routine di gestione dell'interrupt e poiché i sensori subiscono molto i disturbi della pwm il risultato é che il motore funziona malissimo.

Ho visto che i disturbi sono presenti anche quando é la scheda originale della lavatrice a comandare il motore, ne deduco quindi che il problema non sono i disturbi in sé, quanto piuttosto come vengono usati i sensori.

Mi chiedo quindi se forse sarebbe meglio fare il polling dello stato dei sensori in un momento specifico durante la pwm (per esempio prima che passi da 0 a 1) in modo che il disturbo della pwm non influisca sulla lettura dello stato dei sensori.

È una cosa sensata quella che dico?

Link al commento
Condividi su altri siti

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...