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




Tuning Motore Brushless Dacheng


Messaggi consigliati

Inserito:

Ciao a tutti

Ho acquistato 2 motori con relativi driver brushless da questa ditta e devo dire che sono ottimi prodotti in relazione al prezzo(esternamente identici ai Panasonic),ma ora a causa della mia scarsa preparazione ho bisogno un'aiuto per settarli a dovere.

Ho letto il manuale propedeutico sulle tecniche di regolazione ma sono ancora nella nebbia totale....

Ho fatto l'autotunig dei motori prima di collegarli e a grandi linee funziona tutto,solo che ora devo perfezionarli.

I driver ricevono impulsi Step/Dir da una scheda collegata ad un pc e sono collegati con 2 giunti gioco 0 alle viti a ricircolo di sfere passo 5.

I movimenti sono fluidi e li ho lasciati girare per 2 giorni ed è andato tutto bene.

Ora però ho montato un comparatore sugli assi e ho notato che perdo circa 2 centesimi ogni ciclo,mi spiego meglio:

nel ciclo di prova l'asse parte da Z0 ed arriva a Z2 per tornare a Z0,quindi Z0->z2->z0.

Lo spostamento di 2 mm è corretto ma l'asse continua ad arretrare di 0.02 ad ogni ciclo.

Z 0.00->z2.00->z0.00

Z-0.02->z1.98->z0.02

Z-0.04->z1.96->z0.04

Z-0.06->z1.94->z0.06

Z-0.08->z1.92->z0.08

ecc...

Sicuramente è dovuto a qualche valore da settare nell'azionamento ma come ho detto è buio completo.

Se qualcuno ha voglia di dedicarmi un pò di tempo magari riusciamo a tarare il motore e

io anche a capire quello che stò facendo.

Ricordate che è come spiegare questa cosa ad un bambino che non ne sà nulla.

Manuale driver DCSF-C SERIES SERVO MOTOR:

http://www.megaupload.com/?d=970MP93R

Grazie


Inserita:

Non è che ti sei spiegato molto chiaramente.

Tento di spiegare come ho capito.

Tu dai una quota pari a 2mm in avanti, poi dai una quota pari a 2 mm indietro. DOvresti avere l'asse sullo zero invece è spostato in avanti di 0.2 mm. Ad ogni missione il ritono perde 0.2 mm. Mentre nell'avanzamento in avanti non perde nulla.

E' così?

Inserita:

l errore è sempre preciso di 2mm?? che scheda controllo assi usi? non credo sia un errore di qualche parametro, pero controllerei bene i guadagni di controllo della posizione, io ho una cnc con motori brushless dove è possibile settare un guadagno sulla posizione per macchine generiche, robot o montaggi direttamente sulle viti a ricircolo di sfere, nel collaudo avevo anche io 1 centesimo sul comparatore di spostamento ma o in piu o in meno, aumentato il guadagno ho il risolto il problema.

Il motore della tua marca non lo conosco, provo a dare uno sguardo veloce al manuale se trovo i parametri.

Controlla anche la meccanica, dovresti avere due cuscinetti obliqui che vanno ''tirati'' con una ghiera a vite, se sono lenti hai gioco meccanico e l errore di posizionamento, pero non bisogna nemmeno tirarli troppo altrimento addio cuscinetti...

Inserita:

Scusami Livio non avevo ancora letto la tua risposta :)

Inserita: (modificato)

Inanzitutto grazie per le risposte.

X roberto8303:

La meccanica è precisa,ho ricontrollato tutto ed è tutto ok,penso sia solo un problema di settaggio degli azionamenti.

X Livio Orsini:

Allora ho crato un programma in ISO che fà un loop andando da quota 0mm a quota +2mm per tornare a quota 0mm,ad ogni esecuzione del programma invece che tornare a 0mm arretra -0.02mm in più,così ad ogni ciclo del programma.

Quindi dopo ad esempio 10 cicli mi ritrovo l'asse che sul comparatore invece che fare da quota 0mm a quota +2mm per tornare a quota 0mm fà quota -0.2mm a quota +1.8mm per tornare a quota -0.2mm.

0.02 X10 cicli sono i 0.2mm che trovo d'errore.

Se faccio più cicli naturalmente l'errore aumenta di pari passo.

Spero di essermi spiegato.

Grazie

Modificato: da seifter
Inserita:
Spero di essermi spiegato.

Non molto.

Vediamo se ho capito correttamente.

1.o ciclo: Andata 0 ---> 2.00 mm ritorno 2.00 mm -----> -0.02 mm

.........

10.o ciclo: Andata -0.18 ---> 1.82 mm ritorno 1.82 mm -----> -0.2 mm

E' così?

Se è così una possibile causa può essere la finestra di posizionamento ampia. Oppure la velocità di ritorno troppo elevata. oppure una combinazione delle due.

Sembra facile usare un posizionamento preciso, ma è necessaria molta pazienza e molta cura nella bessa a punto degli assi, specie qaundo non si ha esperienza in merito.

Inserita:

si esattamente così,l'unico dubbio che ho è che magari perde 1 centesimo in andata e ne fà 1 in più al ritorno,quindi l'errore a ciclo è di 2 centesimi.

Domani mattina proverò con un comparatore millesimale per accertarmi dove perde precisamente i centesimi.

Comunque il mio problema è proprio quello che ha descritto.

Sembra facile usare un posizionamento preciso, ma è necessaria molta pazienza e molta cura nella bessa a punto degli assi, specie qaundo non si ha esperienza in merito.

Si me ne sono accorto....

Inserita:

ogni mm quanti impulsi encoder hai? e quanti impulsi ogni mm genera la scheda di posizionamento?

Inserita:

gioco zero mi sembra troppo preciso per la meccanica

di solito nei software per frese

si puo' inpostare il recupero del gioco detto baklasc

oppure

certi azzionamenti debbono essere azzerati ad ogni ciclo (l'encoder)

Inserita:

allora l encoder ha 2500 line revolution 10000 impulse revolution con l ingranaggio elettronico rapportato 5 a 1 con 100 impulsi faccio 1 giro della vite quidi 5mm. Il backslash posso usarlo per recuperare il gioco meccanico ma qui non é della meccanica ma é un problema di settaggio dell azionamento.

Inserita:

quindi per ottenere un centesimo di spostamento dovresti avere : 1mm=20impulsi ; 1 centesimo di mm = 0,2 impulsi... 100impulsi per 1mm non sono un po pochi?potresti provare ad aumentare la risoluzione dell encoder motore x4 cosi hai meno decimali da gestire.

Pero ho riletto meglio questo passaggio

Allora ho crato un programma in ISO che fà un loop andando da quota 0mm a quota +2mm per tornare a quota 0mm,ad ogni esecuzione del programma invece che tornare a 0mm arretra -0.02mm in più,così ad ogni ciclo del programma.

Sono tentato nel pensare che il problema sta nel programma e non nel servo...se controlli sul display del drive la posizione effettiva del servo ad ogni posizionamento di ritorno ti trovi con i 2 cent in meno?

Inserita:

ciao

hai verificato che non sia un problema di impulsi tra scheda ed azionamento, cioe sul panellino di controllo del servo riesci a leggere il numero di impulsi ricevuti dalla scheda di controllo , ed a verificare che corrispondono !!

Inserita:

Ma se l'encoder è callettato sul motore e l'albero motore non ha giochi, non dovresti perdere impulsi.

Ma tu noti che la posizione letta nella tua scheda assi è correttamente esatta, oppure noti che anche essa rileva questa

perdita di posizione?

Di solito se leggi la posizione dalla scheda assi corretta da +0.000 mm e poi sempre +2.000mm questo indica che perdi impulsi

dall' uscita emulata dell' encoder sul Drive. ( il Brushless ha il Resolver oppure un encoder assoluto En-dat o Sin-Cos Iperface ?)

Di solito non dovresti mai perdere nessun impulso dall' uscita emulata del Drive.

Può essere che il segnale TTL di emulazione Encoder sia disturbato,

(Controlla con un Oscilloscopio i segnali dell' segnale emulato Encoder=> Scheda assi)

Oppure potresti avere che l'albero motore non sia ben calletato alla vite.

Se l'errore come dici tu è ripetitivo, dovresti vederlo nella lettura dell' asse.

Se però anche sull' asse leggi questo errore, può essere che tu stia dando dei comandi per Poszionamento Relativo

Mi spiego meglio Tipo Avanza di 2.00mm e poi retrocedi di 2.00mm.

Molto probabilmente così facendo potresti avere dei problemi. Prova invece a impartire comandi per un posizionamento Assoluto

tipo vai a alla posizone +2.00mm e poi vai alla posizone +0.00mm

Specialmente con un Comando Dir+Step potresti avere di questi problemi.

Normalmente nel Drive la taratura potrebbe anche essere non precisa, ma la scheda assi rileva questa imprecisione e ne tiene conto.

Hai provato ad eseguire il posizionamento a velocità molto ma molto basse?

Inserita:

Controlla il Parametro Pr38 che deve essere lasciato a 1 per avere 2500 Counts/Rev sul Uscita Emulata encoder Connettore CN2

Potresti fare una prova per vedere se il problema è nell' segnale di emulazione o nella tua scheda Assi.

Dovresti usare il posizionatore interno del Drive ed impartire i comandi dal seriale Rs232 (Comando Pr90 =7)

Cosi può avere la certezza se il problema già risiede nel Drive.

Chiaramente devi avere anche il software di controllo e configurazione di questo Drive.

Altrimenti prova ad impostare delle quote di posizionamento fisse, che penso si possono attivare tramite la selezione degli ingressi

digitali.

Inserita:

Ho controllato tutto quello che mi avete detto e sembrava tutto regolare,poi ho controllato con l'oscilloscopio i tempi di invio dei segnale step/dir dal PC e ho notato che restavano alti per troppo tempo,questo perchè prima avevo dei motori Passo passo e il driver richiedeva che il segnale restasse alzato almeno 5 microsecondi mentre con questi driver richiedono 1 microsecondo.

Abbassato questo tempo e messo al minimo i PR27 PR28 in modo da avere un'accellerazione e una decellerazione rapide tutto è andato a posto.

Ora esegue i movimenti correttamente,in questo momento l'asse gira da 1 ora e non ho nessun errore di posizionamento.

Ora devo sistemare il resto dei parametri....

Guardando il comportamento dell'asse tramite il comparatore si nota che quando arriva alla posizione diciamomm "+2.00" l'asse và fino a mm"+2.01" per poi recuperare e tornare a mm*+2.00".

Più alzo la velocità e più tende a scappare per poi rientrare giusto alla quota.

Altra cosa è che se ruoto a mano la vite l'asse oppone resistenza ma è molto facile da spostare anche di 0.5mm per poi recuperare la corretta posizione.

Grazie 1000 a tutti quanti per l'aiuto!

Inserita:

devi aumentare il guadagno per il controllo di posizione di solito sono due parametri, ma non sono riuscito a scaricare il tuo manuale... :(

Inserita:

Ho messo il manuale sul mio sito: http://www.ifamai.com/brushless.pdf

Premetto che questo che stò facendo è a livello hobbistico e non per lucro,quindi il vostro aiuto per mè è molto importante per evitare notti insonni davanti al pc.....

Ho cercato come aumentare il guadagno ma sono indeciso tra alcuni parametri PR20-21-22-23 oppure Pr 30-31-32-33 o ancora pr69-70-71.

Mi pare di capire che se sono 3 gruppi di parametri per il guadagno da usare in base a come è settato il pr90 (nel mio caso a 6).

Grazie

Inserita:

ho dato un occhiata veloce, a pag 36 ti spiega quali parametri settare, hai fatto l autotuning per caso?

Inserita:

Ciao

Sì ho fatto l'autotuning all'inizio prima di collegarlo all'asse.

Si ho letto la parte sul PDI,quindi sono i Parametri:

Pr-20 Speed loop Kp
Pr-21 Speed loop chi
Pr-30 Current loop kp
Pr-31 Current loop chi
Pr-70 The first gain Kp of position location
Pr-71 Position location feed forward kc
Pr-22 Speed loop kc
Pr-32 Current loop kc
Pr-77 The second gain of position-locating

Giusto per non andare a caso mi potreste indicare un metodo giusto per settare i valori?

Grazie

Inserita:

Sezione didattica, sottosezione elettrotecnica, trovi il mio tutorial sulle regolazioni. Nel tuttorial è spiegata dettaglaitamente la procedura per tarare ed ottimizzare un regolatore PID.

E' inutile che scriva un messaggio lunghissimo per ripetere le solite cose.

Inserita:
Ho letto il manuale propedeutico sulle tecniche di regolazione ma sono ancora nella nebbia totale....

L'ho riletto e la cosa non è cambiata....

Ho fatto delle prove ma senza risultato perchè sinceramente non ho capito come devo fare.

ho riletto il manuale più volte ma non riesco a darmi una logica di azioni da fare ne tantomeno distinguere i parametri,mi sembrano tutti da regolare e poi nessuno.... bhà....

Ho letto anche una parte di manuale di un'azionamento Yaskawa dove spiegavano come tarare ma non riesco proprio ad andarci sù.

Mi spiace proverò a rileggere tutto finchè magari non capisco.

Grazie

Inserita:
Ho fatto delle prove ma senza risultato perchè sinceramente non ho capito come devo fare.

allora, primo devi capire se il drive comanda al motore degli impulsi maggiori rispetto a quelli ricevuti dalla scheda pc, cioe faccio un esempio posizione 2mm = 50impulsi scheda pc = sul drive 10,000 , ti fermi su questa quota, e leggi sul drive la posizione reale del albero motore di solito scritta in codice esadecimale.

Ci sara sicuramente un oscillare di alcune cifre intorno al valore di set point, se lo riconduci all unita di misura puoi sapere di quanti centesimi oscilla la posizione.

Attenzione a non confondere la lettura con la posizione di set point cioe quella che il motore deve raggiungere i parametri di lettura sono elencati a pag 21.

Il problema è che bisognerebbe trovare qualcuno che abbia domestichezza con questo tipo di servoamplificatore, ecco perche a volte quando si compra occorre tener conto di avere in caso di bisogno un buon supporto di assistenza tecnica della casa madre.Altrimenti si deve studiare tutto il manuale... :(

Inserita:

Ciao

Il problema del posizionamento l'ho risolto come ho scritto sopra,ora si posiziona perfettamente dopo 4 ore l'errore di posizionamento era zero,sia a velocità lente sia in rapido.

Ora volevo regolare bene il motore perchè come dicevo sopra l'albero se lo ruoto a mano non oppone molta resistenza,esce dalla quota per poi rientraci,mentre come movimento in rapido sorpassa la quota per poi rientrare in posizione(di 1-2 centesimi)

questo penso sia dovuto solo alla regolazione del PID.

Ora ho letto del metodo di Ziegler-Nichols,ma vorrei capire quali parametri precisamente ci sono sul mio driver per regolare queste cose.

Grazie

Inserita:
..ora ho letto del metodo di Ziegler-Nichols,..

Tutte cose molto belle per la teoria, teoria che serve ad analizzare un regolatore. Poi devi usare il regolatore e la teoria può essere solo un buon complemento alla pratica. Con la sola teoria non si ottimizzano i rgolatori. La teoria sta alla base degli algoritmi di autotuning; però se l'autotuning non è sufficiente per ottimizzare l'applicazione, deve intervenire l'uomo.

Ora senza entrare in ragionamenti filosofici, fuori luogo ed inutili a risolvere il tuo problema, vediamo se ti si può aiutare.

Prima cosa il problema deve essere spezzato in sottoproblemi.

Nel tuo sistema ci sono almeno 3 anelli di regolazione in cascata: corrente, velocità e posizione.

Per non complicare troppo assumiamo che l'anello di corrente sia sufficientemente ottimizzato con l'auto tuning.

A questo punto si passa ad ottimizzare l'anello di velocità.

Per questa operazione devi poter la vorarare senza posizionamento, cioè il motore deve poter ruotare senza muovere l'asse (altrimenti c'è il rischio di andare a sbattere :) )

I parametri relativi sono:

Pr-20 Speed loop Kp --> proporzionale

Pr-21 Speed loop chi --> integrale

La procedura di come si ottimizza il regolatore è descritta nel tuttorial: devi seguirla pedissequamente passo per passo.

Ottimizzato ben l'anello di velocità dovresti già avere dei buoni risultati anche in posizione.

Pr-70 The first gain Kp of position location

Questo è il proporzionale dell'anello di posizione. Aumentandolo diminuisci l'errore istantaneo di posizione, ma aumenti la sovraelongazione (va oltre il traguardo)

Pr-77 The second gain of position-locating

Questo sembra simile al precedente ma dovrebbe intervenire per differente soglia di errore. Veirifcare bene sul manuale a che serve e come si usa.

Pr-71 Position location feed forward kc

Questo è molto importante. In pratica stabilisce il riferimento di velocità. Se ben tarato riduce qausi a zero l'errore di posizione (leggi bene il capitolo sul feedforward del mio tutorial).

Pr-22 Speed loop kc

Questo è un coefficiente di proporzionalità per il servo. Fai riferimento al manuale per la taratura.

Da ultimo.

Spostando a mano avrai sempre un errore che poi deve essere recuperato, lo puoi diminuire ma non annullare. Questo perchè il guadagno non può essere infinito. Il concetto del guadagno finito è spiegato gia dalla prime righe del tuttorial.

Inserita:
Spostando a mano avrai sempre un errore che poi deve essere recuperato, lo puoi diminuire ma non annullare.

infatti! anche io nella costruzione della mia cnc ho dovuto settare il motore consapevole di quanto ''errore poter dare'' mi spiego, il mio encoder è di 32768 imp/giro, la vite passo 10 quindi per ottenere 1 cent di spostamento sono 32 impulsi circa, Appena installato il motore avevo 50 impulsi in piu e in meno nel posizionamento, ho settato tutti i parametri nel drive portando l errore a 2 impulsi!! quindi circa 1 millesimo di spostamento vite! ho caricato anche un video delle prove che feci. E si vede nel drive la posizione che oscilla di 2 impulsi, percio ti consiglio seifter di calcolare quale è il tuo errore accettabile per la tua applicazione :)

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