Calcolo energia dissipata motore passo-passo

Sezione dedicata all'elettronica di controllo cnc.
Rispondi
noshirt
Newbie
Newbie
Messaggi: 10
Iscritto il: martedì 18 marzo 2025, 17:45

Calcolo energia dissipata motore passo-passo

Messaggio da noshirt » martedì 18 marzo 2025, 18:01

Buonasera a tutti.
Un po' di contesto prima di esporre il problema:
sto lavorando con un manipolatore a 5 gradi di libertà, dotato di 5 motori passo-passo di diversa grandezza.

Dopo aver sviluppato un sistema di controllo, sia lato hardware che lato software, sono passato alle misurazioni di corrente e tensione sui motori, al fine di effettuare delle stime indirette.

Per semplicità mi limiterò a elencare quello che succede su un singolo motore, che ripetuto per 5 offre una vista completa su quello che è il mio sistema.

Il motore in questione è un NEMA 17, che faccio muovere utilizzando un driver DM556. Il motore ha una corrente nominale di 1.8 A, lo alimento a 24 V e ho impostato il microstepping a 1/3200 step/rev.

Ho installato due sensori di corrente ACS712 per effettuare le misure sulla fase A e sulla fase B, e un sensore di tensione ADS1115 da quattro canali per misurare la tensione sui pin A+, A-, B+ e B-. Poiché la tensione massima supportata dall'ultimo sensore è di circa 6 V, ho utilizzato delle resistenze per creare un partitore di tensione in modo da scalare la tensione in uscita dal driver.

Le misure che ottengo sono coerenti con la teoria e, a parte del rumore sul segnale di corrente, ottengo quello che mi aspetto: un andamento sinusoidale sia sulla tensione che sulla corrente, con valore medio nullo e con frequenza corrispondente a 1/64 della frequenza degli impulsi che invio per far muovere il motore.

1/64 poiché la frequenza della sinusoide di corrente e tensione è data da 1/(microstepping*n_fasi), quindi 1/(16*4) = 1/64.

Fin qui tutto bene. Acquisisco i dati sulla stessa traiettoria, nelle stesse identiche condizioni (senza carico sul motore) e ricavo la potenza istantanea nel seguente modo:

V_A = V_a+ - V_a-;
V_B = V_b+ - V_b-;

P_A = V_A*I_A;
P_B = V_B*I_B;

P_tot = P_A+P_B;

Integrando poi i valori di potenza istantanea mi ricavo l'energia dissipata durante il movimento.

Qual è il problema? Che per ogni test, nonostante le condizioni siano identiche, mi ritrovo dei risultati che differiscono abbastanza da non poter affermare con certezza, senza saperlo a priori, che il test è stato effettuato sulla stessa traiettoria e nelle stesse condizioni.

Come posso modificare l'approccio? Dove sto sbagliando?

Grazie mille in anticipo a chiunque mi darà una risposta.

Avatar utente
hellfire39
God
God
Messaggi: 3790
Iscritto il: domenica 16 dicembre 2012, 9:04
Località: AN

Re: Calcolo energia dissipata motore passo-passo

Messaggio da hellfire39 » martedì 18 marzo 2025, 19:00

Non ho capito bene cosa vuoi ottenere dalle misure, però vorrei fornirti uno spunto di ragionamento.

Se tu stai utilizzando i classici driver ad anello aperto, la corrente assorbita non dovrebbe dipendere dal carico. Sia che il motore sia fermo, sia che il motore sia in movimento, il driver fornisce sempre la stessa corrente (al netto del dip-switch per dimezzare la corrente quando il motore è fermo).

Da questa premessa, come pensi di stimare la potenza necessaria per il movimento?

Aggiungo: attenzione che, sebbene tu abbia impostato il driver per una determinata corrente, all'aumentare della frequenza di rotazione, la corrente effettivamente erogata sarà minore.

P.S.
- hai anche plottato le curve di tensione e corrente che ottieni?
- non ho il datasheet sottomano, hai verificato la banda passante del ACS712?

Avatar utente
maufedro
Senior
Senior
Messaggi: 904
Iscritto il: lunedì 15 giugno 2020, 11:38
Località: Praia do Frances Brasil

Re: Calcolo energia dissipata motore passo-passo

Messaggio da maufedro » martedì 18 marzo 2025, 19:09

La potenza dissipata la calcoli eventualmente misurando la temperatura di esercizio

Avatar utente
hellfire39
God
God
Messaggi: 3790
Iscritto il: domenica 16 dicembre 2012, 9:04
Località: AN

Re: Calcolo energia dissipata motore passo-passo

Messaggio da hellfire39 » mercoledì 19 marzo 2025, 8:19

La temperatura è espressione della sola potenza "sprecata" ma non di quella trasmessa all'asse.

noshirt
Newbie
Newbie
Messaggi: 10
Iscritto il: martedì 18 marzo 2025, 17:45

Re: Calcolo energia dissipata motore passo-passo

Messaggio da noshirt » mercoledì 19 marzo 2025, 10:01

Buongiorno a tutti.
hellfire39 ha scritto:
martedì 18 marzo 2025, 19:00
Non ho capito bene cosa vuoi ottenere dalle misure, però vorrei fornirti uno spunto di ragionamento.

Se tu stai utilizzando i classici driver ad anello aperto, la corrente assorbita non dovrebbe dipendere dal carico. Sia che il motore sia fermo, sia che il motore sia in movimento, il driver fornisce sempre la stessa corrente (al netto del dip-switch per dimezzare la corrente quando il motore è fermo).

Da questa premessa, come pensi di stimare la potenza necessaria per il movimento?

Aggiungo: attenzione che, sebbene tu abbia impostato il driver per una determinata corrente, all'aumentare della frequenza di rotazione, la corrente effettivamente erogata sarà minore.

P.S.
- hai anche plottato le curve di tensione e corrente che ottieni?
- non ho il datasheet sottomano, hai verificato la banda passante del ACS712?
Sono d'accordo su tutto. Mi sono dimenticato di dire che nel software di controllo ho implementato un algoritmo di retroazione che recupera eventuali passi persi dalla traiettoria di riferimento (che pre-calcolo, in termini di passi encoder) agendo sulla velocità del motore.

Immagina la traiettoria A -> B divisa in n sotto-traiettorie A1, A2, A3... An

Il numero totale di passi per andare da A a B è di 1000 (ipotizziamo per semplicità), e in ogni sotto-traiettoria ho 100 passi, quindi n = 10.

Alla fine di ogni sotto-traiettoria eseguo un check: se il valore dell'encoder è diverso da quello atteso (se ad esempio ho fatto 90 passi piuttosto che 100), allora i 10 passi persi vanno nella prossima sotto-traiettoria, diventando così 110. La velocità verrà ricalcolata di conseguenza per rispettare il tempo fissato per percorrere la traiettoria.

Ciò vuol dire che in quella sotto-traiettoria avrò un maggiore consumo di energia, quindi teoricamente da questo dovrei poter capire se c'è stata una perdita di passi o meno, quindi se eventualmente è stato applicato un carico o se il motore ha incontrato un ostacolo.

Qui il grafico di tensione e corrente durante un movimento (i primi 500 campioni acquisiti), sempre sul motore 4:
untitled.jpg
La banda passante dell'ACS712 è di 80 kHz, io lavoro con frequenze molto più basse, quindi il problema non si pone.
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login

Avatar utente
maufedro
Senior
Senior
Messaggi: 904
Iscritto il: lunedì 15 giugno 2020, 11:38
Località: Praia do Frances Brasil

Re: Calcolo energia dissipata motore passo-passo

Messaggio da maufedro » mercoledì 19 marzo 2025, 10:54

Dissipata vuol dire sprecata, persa

Avatar utente
hellfire39
God
God
Messaggi: 3790
Iscritto il: domenica 16 dicembre 2012, 9:04
Località: AN

Re: Calcolo energia dissipata motore passo-passo

Messaggio da hellfire39 » mercoledì 19 marzo 2025, 11:24

Beh, l'autore può dissipare ogni dubbio al proposito! :mrgreen:

Volevi calcolare solamente la potenza sprecata in calore oppure quella necessaria al lavoro meccanico?

(comunque, analizzando corrente e tensione avrai sempre la somma delle due!)

Avatar utente
hellfire39
God
God
Messaggi: 3790
Iscritto il: domenica 16 dicembre 2012, 9:04
Località: AN

Re: Calcolo energia dissipata motore passo-passo

Messaggio da hellfire39 » mercoledì 19 marzo 2025, 11:32

@noshirt
salvo che il micro dentro il driver faccia cose strane, il consumo di energia è (teoricamente) lo stesso sia che il motore stia fermo, sia che il motore giri.

Ci sono due macro fattori che rendono falsa l'effermazione precedente:
- il dip switch che dimezza la corrente quando il driver non riceve impulsi;
- il fatto che la corrente sarà minore all'aumentare della velocità (aspetto visibile soprattutto alle velocità più elevate).

P.S. ho visto dal grafico della corrente che hai parecchi disturbi. Forse potresti provare ad applicare un filtro passa-basso per ripulire un po' le curve di corrente.

noshirt
Newbie
Newbie
Messaggi: 10
Iscritto il: martedì 18 marzo 2025, 17:45

Re: Calcolo energia dissipata motore passo-passo

Messaggio da noshirt » mercoledì 19 marzo 2025, 11:36

hellfire39 ha scritto:
mercoledì 19 marzo 2025, 11:32
@noshirt
salvo che il micro dentro il driver faccia cose strane, il consumo di energia è (teoricamente) lo stesso sia che il motore stia fermo, sia che il motore giri.

Ci sono due macro fattori che rendono falsa l'effermazione precedente:
- il dip switch che dimezza la corrente quando il driver non riceve impulsi;
- il fatto che la corrente sarà minore all'aumentare della velocità (aspetto visibile soprattutto alle velocità più elevate).

P.S. ho visto dal grafico della corrente che hai parecchi disturbi. Forse potresti provare ad applicare un filtro passa-basso per ripulire un po' le curve di corrente.
A velocità più elevate noto (ovviamente) un aumento nella frequenza di corrente e tensione, ma l'ampiezza della sinusoide rimane sempre uguale. Poiché l'energia è l'integrale della potenza, avendo una frequenza maggiore suppongo che avrò anche un consumo energetico maggiore. Oppure mi sto perdendo qualcosa?

Comunque chiedo venia per il mio errore di espressione nel titolo, quello che m'interessa non è la corrente "dissipata" dal motore (mi rendo conto che detta così può trarre in inganno), ma il consumo energetico effettivo del motore durante una traiettoria, in modo da analizzare eventuali differenze in termini energetici tra un movimento fatto senza carico e uno fatto con un carico applicato.

Avatar utente
hellfire39
God
God
Messaggi: 3790
Iscritto il: domenica 16 dicembre 2012, 9:04
Località: AN

Re: Calcolo energia dissipata motore passo-passo

Messaggio da hellfire39 » mercoledì 19 marzo 2025, 11:54

Sul calcolo dell'integrale ti sbagli, non c'è dipendenza dalla frequenza.
Partiamo da un caso semplice, in cui tensione e corrente sono in fase. Il loro prodotto sarà sin(wt)*sin(wt).
La soluzione è quella in figura che, come vedi è sostanzialmente t/2, se la calcoli tra periodi interi.
Non c'è dipendenza da w, che esprime la frequenza.

Mi pare strano che non noti una diminuzione sulla ampiezza della corrente a frequenze più elevate.
A quanti rpm arrivi?
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login

noshirt
Newbie
Newbie
Messaggi: 10
Iscritto il: martedì 18 marzo 2025, 17:45

Re: Calcolo energia dissipata motore passo-passo

Messaggio da noshirt » mercoledì 19 marzo 2025, 14:24

@hellfire39 hai ragione, ho fatto delle verifica modificando in modo arbitrario ampiezza e frequenza delle sinusoidi (mantenendole in fase) e il valore finale è sempre lo stesso, cambia solo in base al valore finale del periodo.

Considera però che durante il movimento la velocità che do al motore non è costante, ma segue un profilo parabolico (utilizzo un polinomio di terzo grado per "disegnare" la posizione, dal quale poi ne ricavo uno quadratico per ottenere i valori di velocità). La frequenza variabile potrebbe incidere in questo caso?

A questo punto mi chiedo, sulla base di corrente e tensione, come posso visualizzare delle variazioni nel carico applicato al robot durante una traiettoria?
hellfire39 ha scritto:
mercoledì 19 marzo 2025, 11:54
Mi pare strano che non noti una diminuzione sulla ampiezza della corrente a frequenze più elevate.
A quanti rpm arrivi?
Il motore arriva massimo a 12 RPM. Considerando rapporto di trasmissione e microstepping, la frequenza massima degli impulsi che posso dare è:
Screenshot 2025-03-19 142015.png
(200 sono i passi per un giro completo, 38:1 è il rapporto di tramissione e 16 è il microstepping)

Che equivale a poco più di 24 kHz, ma ho impostato il limite massimo a 10 kHz (poco meno di 5 RPM) poiché non necessito di lavorare con alte velocità.
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login

Avatar utente
hellfire39
God
God
Messaggi: 3790
Iscritto il: domenica 16 dicembre 2012, 9:04
Località: AN

Re: Calcolo energia dissipata motore passo-passo

Messaggio da hellfire39 » mercoledì 19 marzo 2025, 16:18

Se arrivi a 24 rpm, sei "quasi fermo" :D
Ecco perché non vedi variazioni apprezzabili nella corrente. Io pensavo a valori di centinaia di rpm.
Ti allego una cattura di una curva di corrente. Il motore parte da fermo e poi accelera fino a velocità costante.
Non ricordo le impostazioni dello stepper, ma mi pare che andavo velocino. La frequenza finale è di 500 Hz

A mio avviso, non è possibile fare misure con uno stepper ad anello aperto.

Se vuoi fare delle analisi sulle correnti, dovresti utilizzare dei brushless (meglio) o degli stepper ad anello chiuso.
La logica dei driver stepper ad anello chiuso è molto diversa dai classici open-loop e molto simile a quella dei brushless.

In questi driver, la corrente è adattata in modo continuo alle necessità del motore (in base alla retroazione dell'encoder). Quindi, per questi driver, la correlazione coppia-corrente è molto precisa.

Preferisco i brushless perché hanno molti meno coppie polari degli stepper (2-8 contro 50), quindi la frequenza della corrente delle fasi è una decina di volte più bassa.
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login

noshirt
Newbie
Newbie
Messaggi: 10
Iscritto il: martedì 18 marzo 2025, 17:45

Re: Calcolo energia dissipata motore passo-passo

Messaggio da noshirt » mercoledì 19 marzo 2025, 17:39

hellfire39 ha scritto:
mercoledì 19 marzo 2025, 16:18
Se arrivi a 24 rpm, sei "quasi fermo" :D
Ecco perché non vedi variazioni apprezzabili nella corrente. Io pensavo a valori di centinaia di rpm.
Il problema principale è che il motore è installato all'interno del braccio robotico, quindi su questo non ho alcun tipo di potere ahahha

Per quanto riguarda gli RPM, da datasheet questo motore arriva massimo a 12, quindi non saprei... probabilmente il rapporto di riduzione elevato serve a compensare la bassa velocità, altrimenti non saprei a cos'altro pensare.

Quindi nulla, mi tengo i miei dati di corrente e tensione ma non posso fare alcun tipo di analisi energetica?

Avatar utente
MauPre75
Senior
Senior
Messaggi: 2986
Iscritto il: venerdì 1 dicembre 2017, 14:43

Re: Calcolo energia dissipata motore passo-passo

Messaggio da MauPre75 » mercoledì 19 marzo 2025, 19:38

Il motore è ridotto, a 12 giri in uscita fa 456 giri (12x38), non gira piano.

Avatar utente
maufedro
Senior
Senior
Messaggi: 904
Iscritto il: lunedì 15 giugno 2020, 11:38
Località: Praia do Frances Brasil

Re: Calcolo energia dissipata motore passo-passo

Messaggio da maufedro » mercoledì 19 marzo 2025, 19:43

Se metti un wattmetro sulla alimentazione del driver hai un valore preciso del consumo energia in qualsiasi condizione

Rispondi

Torna a “Elettronica CNC”