NEW Servo Drive Dc 100W e 800W

Sezione dedicata all'elettronica di controllo cnc.
Rispondi
Avatar utente
claudio.lorini
Junior
Junior
Messaggi: 199
Iscritto il: domenica 31 maggio 2009, 13:03
Località: Genova

Re: NEW Servo Drive Dc 100W

Messaggio da claudio.lorini » mercoledì 30 giugno 2010, 8:43

Ciao Marco,
se posso permettermi volevo farti un osservazione,
se R26 è lo shunt per la lettura/protezione della corrente di commutazione del ponte (così ad occhio mi pare che lo sia)
l'induttanza parassita potrebbe essere un problema, se la usi per l'interruzione della PWM del ponte; durante la commutazione
si creano degli spike di tensione che possono essere interpretati come overcurrent (oppure sei costretto a filtrarli molto,
degradando la velocità  dell'intervento della protezione).
Io a posto di una unica R (che non deve essere una res. a filo ma una strato metallico) metterei il parallelo di un certo
numero di res. di valore più elevato in modo da diminuire l'induttanza parassita.
Altra cosa, mi sembra che dicevi di volere mettere anche il mos per la resistenza di frenatura, se hai intenzione di pilotarla
in PWM ti conviene mettere anche un diodo veloce per il ricircolo, sempre per discorsi di ind. parassita...

Sono proprio curioso di vederle finite!
Vai! A BOMBAZZA!!!! :lol:
C.
...no, non è terra.

Avatar utente
marcosin
Senior
Senior
Messaggi: 839
Iscritto il: mercoledì 27 giugno 2007, 23:11
Località: Arezzo
Contatta:

Re: NEW Servo Drive Dc 100W

Messaggio da marcosin » mercoledì 30 giugno 2010, 13:28

Ottime osservazioni!
R26 sul pcb è disegnata come se fosse una resistenza unica ma in realtà  sono più resistenze in parallelo come già  avevo fatto nel primo driverino piccolo con l293.
La limitazioe in corrente è affidata a un comparatore dotato di filtro passa basso che va ad inibire il pwm in fase, usando la funzione apposita prevista sul pic nell'ingresso FLTA, inibendo in fase si limita anche gli spike che, per forza di cose, sono comunque moooolto presenti in questo tipo di applicazione.
La frenatura qui non l'ho prevista, nel driverino piccolo l'avevo messa più che altro per proteggere il 293 da sovratensioni, su questo confidando su delle belle capacità  di filtro nella sezione esterna di alimentazione che fanno da "volano" non ho previsto niente.
Per le sovratensioni transitorie credo e spero che i mosfet non abbiano problemi.
Spara spara consigli che io li accolgo con grande piacere! 8)
E' la prima volta che mi trovo su un progetto simile, non troppo complesso. ma pieno di insidie dovute alle correnti e tensioni in gioco.

@Leopiro
Ma siamo già  in estate! :lol: Spero nel fine settimana di fare le prime prove, ma non garantisco niente...

Avatar utente
leopiro
Senior
Senior
Messaggi: 1304
Iscritto il: domenica 6 maggio 2007, 12:33
Località: Castrolibero (Cosenza)

Re: NEW Servo Drive Dc 100W

Messaggio da leopiro » mercoledì 30 giugno 2010, 13:58

Marco,vedi che devi finirla prima dell'estate che dobbiamo fresare i pcb :mrgreen: :mrgreen: :mrgreen: ....Ciao leo

Avatar utente
billykid
Member
Member
Messaggi: 451
Iscritto il: lunedì 13 novembre 2006, 13:42
Località: la spezia

Re: NEW Servo Drive Dc 100W

Messaggio da billykid » mercoledì 30 giugno 2010, 14:23

Visto che i consigli sono benvenuti mi permetto di dartene alcuni...
premetto che io ho fatto quelli di Chan smc3 con atmel, ne ho ben 5 1 a 75 volt 2 a 60 volt e 2 a 27 volt.
i 2 a 60 volt sono il mandrino e la tavola girevole, anche se quella non ancora finita :D
ho avuto molti problemi di disturbi mettendoli nel contenitore.... i 3 assi magari andavano ma aggiungendo il mandrino peggiorava il tutto.
ho usato cavi usb standard per gli encoder e per gli ingressi ho usato linee differenziali con sn 75174 e 175 con cavo a coppie e calza solo lato pc.
per i condensatori elettrolitici visto che con poche migliaia di microfarad i motori andavano bene ma ronzavano a 100 hz li ho tolti dalla scheda
e messi da 15000 mf vicino il ponte e trasformatore.
sulla scheda serve uno da 1,5 mf fra + e - del ponte ad h
per i 15 volt degli ir 2184 ho notato che è importante che vengano tutti dalla stessa sorgente, in pratica portare i fili tutti assieme sui 15 volt.
poi ogni scheda ha un regolatore per i 5 volt ricavandoli dai 15.
la potenza dei motori separata.
complimenti per il tuo lavoro visto che stai facendo anche il firmware da solo.
ciao
Mauro
Coltivate Linux che windows si pianta da solo...
Linux registered user #447354
http://counter.li.org/

Avatar utente
claudio.lorini
Junior
Junior
Messaggi: 199
Iscritto il: domenica 31 maggio 2009, 13:03
Località: Genova

Re: NEW Servo Drive Dc 100W

Messaggio da claudio.lorini » mercoledì 30 giugno 2010, 14:38

...Per le sovratensioni transitorie credo e spero che i mosfet non abbiano problemi.
Spara spara consigli che io li accolgo con grande piacere!
...dai visto che mi sembra che di 'progettazione azionamenti' hai gia superato
il corso 'avanzato ed oltre' =D> te ne butto un altra lì:
Visto che stiamo parlando di Mos da almeno una 30ina di Amps (e immagino 100V) la capacità 
di gate sarà  piuttosto grandi, i driver differnziali spareranno in commutazione delle botte da 1-3Amps;
porta grande attenzione a come fai girare le correnti nel circuito di pilotaggio del gate.
La spira generata da Capacità  di bootstrap e bypass, resistenza gate gate e ritorno al driver deve avere
l'area minore possibile (e qindi ind.parassita + bassa possibile) sempre per evitare sovratensioni che
potrebbero forarti il gate. Inoltre se riesci cerca di equilibrare la lunghezza delle piste del driver differenziale
del lato alto e basso, per avere la commutazione dei due mos esattamente diffrenziale.
Attenzione anche se le correnti di carica dei gate ti passano per lo shunt della protezione; anche quelle
potrebbero venire viste come sovracorrenti.

Si vede che questa tua sfida mi appassiona? se avrai successo sarà  veramente un bel risultato, un driver
di quella potenza su praticamente un singolo layer! io per fare cose simili (anche se un po più compatte
delle tue) utilizzo 6 strati!

Bye, C.
...no, non è terra.

Avatar utente
marcosin
Senior
Senior
Messaggi: 839
Iscritto il: mercoledì 27 giugno 2007, 23:11
Località: Arezzo
Contatta:

Re: NEW Servo Drive Dc 100W

Messaggio da marcosin » mercoledì 30 giugno 2010, 22:23

Grazie per i consigli.
Sul pcb ho tenuto conto delle cose di cui parlate ma non ho fatto propio tutto :( oramai l'ho fresato e ho quasi finito di montarlo quindi vedo un pò cosa fare tenendo conto dei vostri preziosi consigli.
Il circuito l'ho provato qualche settimana fa montandolo sulla breadboard, usavo un motore electrocraft e240, alimentando il tutto a 50V e non avevo grossi problemi, ho dovuto mettere diversi condensatori di bypass, ma questo era dovuto molto dal montaggio super volante, poi dei condensatori da 220mF vicino al 12V degli IR2184 per poter sopperire ai buchi che creano quando vanno ad eccitare i gate.
Infine ho dovuto mettere dei condensatori da 1000pF sugli ingressi step e dir, perchè ho notato che senza dargli gli step, a motore in coppia, se andavo a forzare l'albero mi si incrementava la variabile della posizione comandata dentro al pic, nonostante gli ingressi fossero in pull-up. Non avevo ancora messo i fotoaccoppiatori quindi questo problema credo che si risolva con quelli, comunque nello stampato ho previsto anche questi condensatori montandoli sotto in smd.
Prenderò anche in considerazione gli ingressi differenziali per l'encoder, che sicuramente rendono il tutto molto più professionale, oramai sulla prossima release, oppure potrei fare una schedina che si connette direttamente al posto della morsettiera in modo che si possano prevedere vari tipi di interfaccia elettrica.

Avatar utente
marcosin
Senior
Senior
Messaggi: 839
Iscritto il: mercoledì 27 giugno 2007, 23:11
Località: Arezzo
Contatta:

Re: NEW Servo Drive Dc 100W

Messaggio da marcosin » giovedì 1 luglio 2010, 23:17

Terminato il montaggio, mi mancano i fotoaccoppiatori e i diodi veloci da montare in parallelo ai mosfet, ma ho fatto le prime prove anche se sono arrivato solo a 50V 3A di alimentazione perchè non ho al momento un alimentatore adatto.
Solita prova con elettrocraft E240, sembra funzionare benino, due problemini riscontrati:
-quando faccio lavorare la limitazione di corrente ho qualche disturbino sulla seriale
-il 7805 scalda abbastanza alimentando il pic che assorbe 160-170ma e l'encoder del motore che ne assorbe altri 200
Il primo problema penso sia dovuto a qualche massa, oppure è da imputare a qualche problema software, il secondo è risolvibile con una bella aletta.
Durante le prove pilotavo lo step con il generatore di funzioni, dando e togliendo il segnale da 20-30Khz quindi senza rampe, l'errore in partenza è pochissimo, migliore delle me aspettative, mentre in fermata ho notato che il motore tende a superare di poco il target e poi ritorna leggermente indietro e non sono riuscito a migliorarlo tarando il pid, sembra quasi che l'integrale faccia fatica ad azzerarsi, devo riguardare meglio...
Penso comuque che per la cnc che lavora sempre con le rampe il problema sia poco rilevante.
Adesso devo trovarmi un alimentazione degna e un motore un pò più ignorante per fare altre prove.
Metto una foto, non è pubblicità  occulta, il paccheto è solo per dare l'idea delle dimensioni.
A proposito non sono sigarette di grandezza standard, ma sono compact quindi un pò più corte :lol:
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
claudio.lorini
Junior
Junior
Messaggi: 199
Iscritto il: domenica 31 maggio 2009, 13:03
Località: Genova

Re: NEW Servo Drive Dc 100W

Messaggio da claudio.lorini » venerdì 2 luglio 2010, 13:51

...non sono riuscito a migliorarlo tarando il pid, sembra quasi che l'integrale faccia fatica ad azzerarsi, devo riguardare meglio...
Hai implementato un PID con 'anti-windup'? se no (probabilmente) è quello.

C.
...no, non è terra.

Avatar utente
marcosin
Senior
Senior
Messaggi: 839
Iscritto il: mercoledì 27 giugno 2007, 23:11
Località: Arezzo
Contatta:

Re: NEW Servo Drive Dc 100W

Messaggio da marcosin » venerdì 2 luglio 2010, 20:15

L'anti-windup l'ho implementato nella maniera pià  semplice, bloccando l'integrazione quando l'uscita entra in saturazione, praticamente quando l'uscita supera il limite impostato.
Tra tutti i metodi è quello più grossolano forse non è il più appropiato.
Ma adesso riguardando il firmware ho trovato degli errori nei calcoli, stò cercando di rimediare...

Avatar utente
marcosin
Senior
Senior
Messaggi: 839
Iscritto il: mercoledì 27 giugno 2007, 23:11
Località: Arezzo
Contatta:

Re: NEW Servo Drive Dc 100W

Messaggio da marcosin » lunedì 5 luglio 2010, 0:12

Il problema è risolto, rimane una leggera elongazione dell'integrale nel momento un cui si interrompe il comando e il motore deve inchiodarsi.
La funzione dell'integrale è questa:
Errore = SetPoint - PosizioneAttuale
Integrale = Integrale + Errore*dt
Ho trovato che l'integrazione diventa molto più reattiva facendola diventare quadratica in questo modo:
Errore = SetPoint - PosizioneAttuale
Se errore >= 0 allora Integrale = Integrale + (Errore^2)*dt
Se errore <0 allora Integrale = Integrale - (Errore^2)*dt
La condizione che determina il segno dell'errore è necessaria perchè il quadrato altrimenti avrebbe sempre segno positivo.

Ma poi siccome questa funzione era troppo inventata e non so se può portare a problemi maggiori ho preferito tornare alla condizione iniziale, come è il pid classico, o meglio quello vero :lol:

Nella cnc il problema scuramente non c'è visto che i movimenti seguono sempre una rampa e non sono mai repentini e comunque con un pò di pazienza e pratica l'elongazione dell'integrale è possibile eliminarla aumenando il guadagno proporzionale in modo da sovrastarla, poi con un pò di derivata si riporta in condizione di stabilità  visto che il guadagno proporzionale tende a portare in oscillazione il sistema.
L'integrale lavora benissimo durante la movimentazione, con un comando di 30khz che corrisponde a circa 900 giri/m si riesce a tenere l'errore dento i 2 punti a motore libero e dentro i 5-7 con il motore sotto sforzo, significa che l'errore è al massimo di circa 1 grado visto che l'encoder è un 500 impulsi e che quindi su un giro motore abbiamo 2000 fronti.
Adesso devo vedere come si comporta il motore installandolo sulla macchina, a breve qualche video...

Avatar utente
marcosin
Senior
Senior
Messaggi: 839
Iscritto il: mercoledì 27 giugno 2007, 23:11
Località: Arezzo
Contatta:

Re: NEW Servo Drive Dc 100W

Messaggio da marcosin » venerdì 9 luglio 2010, 18:37

Aggiornamento 8)
Inizia a prendere una buona forma, ho aggiunto qualche funzione:
-Ingressi settabili come step-dir o come quadratura, in quadratura controllo propio la sequenza dei segnali per discriminare eventuali disturbi esterni ed in modo da inchiodare in caso di rottura di un canale. La quadratura è utilissima se si monta due motori nelllo stesso asse per tenerli sincronizzati perfettamente.
-Controllo sovracorrente per tempo limite, il tempo si imposta dal sw, quando il motore assorbe troppo per un certo tempo interviene mandando il drive in fault.
-Controllo errore di inseguimento impostabile, se l'errore si discosta troppo manda il drive in fault.
-Implementate le trap routine per errori interni del pic, oscillatore, errore matematico, errore stack o errore di indirizzamento
-Inserito dei parametri aggiuntivi sul pid che normalmente sono esclusi ma possono essere usati con la sezione avanzata del sw, sono le limitazioni di ogni azione di correzione, il bias, correzione diretta proporzionale al comando e correzione derivata del comando. (durante le prove li ho usati ma poi in pratica tengo tutto escluso)
-Aggiunto uscita di allarme in modo che se un motore va in allarme è possibile fermare anche gli altri e la lavorazione (devo ancora modificare il pcb)
-Sul software di parametrizzazione ho aggiunto le indicazioni riguardanti gli errori e gli stati.

Questo un video dove uso un encoder per gli ingressi in quadratura:
http://www.youtube.com/watch?v=RkOWdITn5H8
Qui invece la prova con una discreta massa (la mia futura mill) mossa a 18000mm/m:
http://www.youtube.com/watch?v=rHOORZZi ... re=channel

mirkz84
Newbie
Newbie
Messaggi: 31
Iscritto il: domenica 21 marzo 2010, 15:19
Località: Sinalunga (Siena) - Firenze

Re: NEW Servo Drive Dc 100W

Messaggio da mirkz84 » venerdì 9 luglio 2010, 18:59

Grande! Mi piace vedere questo tipo di video :)
Hai anche implementato diverse features interessanti...ottimo lavoro ;)

Io ancora sono fermo che devo reperire tutto il materiale elettrico (tranne i motori che mi sono arrivati), compreso il programmatore per fare tutte le prove. (ne ho uno vecchio lpt, ma voglio prendere il pic kit 2 o il 3...a proposito qualche consiglio? Ho visto che te hai il pickit 3 )
Poi una domanda. Il controllo sulla corrente come lo fai? Hai messo una resistenza tra ponte e GND e misuri con l'adc del pic la caduta di tensione (traslata di livello con un OpAmp magari)?
Ancora complimenti, ciao!

Avatar utente
marcosin
Senior
Senior
Messaggi: 839
Iscritto il: mercoledì 27 giugno 2007, 23:11
Località: Arezzo
Contatta:

Re: NEW Servo Drive Dc 100W

Messaggio da marcosin » venerdì 9 luglio 2010, 19:34

Io ho il pickit2, non differisce troppo dal 3, funziona bene.
La corrente non la faccio gestire al pic, ma tramite un comparatore leggo la tensione sulla resistenza di shunt poi vado a pilotare l'ingresso FLTA del pic.
Con un trimmer regolo l'intervento.
Questo ingresso è predisposto per poter disattivare le uscite pwm in maniera hardware, è una risorsa interna, come vantaggio ha di farlo immediatamente oltre che a farlo in fase con il pwm.
Poi leggo l'ingresso FLTA come se fosse un igresso normale per fare accendere il led e per fare avanzare il temporizzzatore per il ritardo del fault per overcorrente.
Volevo entrare sull'ADC del pic per poter visualizzare la corrente, volendo si può fare ma ho lasciato perdere per non ingrandire il pcb, tanto la corrente una volta tarata con il trimmer è quella.

Avatar utente
claudio.lorini
Junior
Junior
Messaggi: 199
Iscritto il: domenica 31 maggio 2009, 13:03
Località: Genova

Re: NEW Servo Drive Dc 100W

Messaggio da claudio.lorini » venerdì 9 luglio 2010, 21:14

...Qui invece la prova con una discreta massa (la mia futura mill) mossa a 18000mm/m:
Wow! che musica, ragazzi!
A quanti RPM stai portando il motore? (il passo della vite?)
Come si comporta l'errore di inseguimento con il carico nel video?
...limitazioni di ogni azione di correzione, il bias, correzione diretta proporzionale al comando...
il bias mi sfugge... di cosa si tratta?

Beh, da quanto si vede direi che sei praticamente in fondo... a quando l'invasione del mercato mondiale? :lol:
...no, non è terra.

Avatar utente
marcosin
Senior
Senior
Messaggi: 839
Iscritto il: mercoledì 27 giugno 2007, 23:11
Località: Arezzo
Contatta:

Re: NEW Servo Drive Dc 100W

Messaggio da marcosin » venerdì 9 luglio 2010, 22:31

Il bias non serve a niente :lol: :lol: :lol:
E' solo un comando fisso per spostare lo 0 del ponte, in questo caso non credo serva a molto visto che la retroazione sposterebbe a suo piacimento l'offset, al massimo potrebbe servire sull'asse Z per compensare la forza gravità , in modo da aiutare il pid a bilanciare le compensazioni positive e quelle negative, ma non l'ho mai visto usare.
In molti pid viene implementato e visto che si trattava di una somma, beh l'ho messo anche io :lol:
Poi ho messo i feedforward, che non sono altro che una correzione proporzionale al comando e una derivata del comando , (comando, non errore come il pid tradizionale) ma anche queste non servono, le ho trovate in un libro di testo, anzi specialmente la prima destabilizza molto mi sembra.
Anche sul pid di EMC2 ci sono e allora ho detto perchè no!
Qui si vede la struct del pid di EMC2 dove si possono notare i parametri:
http://linuxcnc.org/handbook/fileref/em ... ource.html
http://www.linuxcnc.org/docview/html//m ... tml#r1_1_2
Girando per il sito di emc e guardano i sorgenti si possono trarre diverse informazioni...

I giri sono circa 1800-2000 al minuto e la vite è passo 10mm, considera che l'alimentazione era bassa, mi pare intorno ai 36-40V andando a 60-70V la musica cambia di sicuro!
L'errore rimane basso, durante il tratto rettilineo si mantiene su 2-3 impulsi, nelle rampe ha picchi di 20-30 mi pare, ma per una frazione di secondo, e con accelerazione di 1000mm/s^2 e velocità  di punta si 18000mm/m.
Con l'utensile a contatto anche se la velocità  di taglio fosse di 2000-3000mm/m l'errore sarebbe quasi nullo.

Per la commercializzazione mhhh....
Non credo di commercializzarli, certo se mi capita di farne qualcuno sono contento per riprendere le spese che ho avuto, decine e decine di ore (più di un centinaio sicuro) e vari componenti per fare le prove, prototipi etc...
Ma di sicuro, eventualmente, lo faccio solo dopo che sono sicuro al 1000% che funzioni perfettamente e che ne ho almeno una decina in prova da amici.
Il sorgente e i progetti credo di tenerli per me, dal momento che già  altre volte c'è chi ha lucrato sul lavoro free di altri, il mio compreso...

Rispondi

Torna a “Elettronica CNC”