mazzinga Inserito: 30 agosto 2008 Segnala Share Inserito: 30 agosto 2008 Buonasera.Devo sviluppare un programma che sia in grado di generare il riferimento di un carrello seguendo un determinato passo di lavoro.La macchina e costituita da un mandrino e un carrello dove il carrello porta il materiale da avvolgere attorno al pezzo ammorsato dal mandrino,il sistema funziona con un plc S7226 due inverter e due encoder uno sul mandrino e uno sul carrello,la comunicazione tra i due e data da una scheda analogica.Ho pensato di realizzare un PID che mi genera il riferimento di velocita del carrello e mi mantine costante l'errore,il problema e sul calcolo del Feed-Forward e l'errore tra i due.Per il calcolo del Feed-Forward ho dei problemi perche con cosi pochi elemti non riesco a trovare un nesso per calcolarmelo,per l'errore non sono riuscito a trovare una strada per calcolarmelo.Qualcuno sarebbe cosi gentile ad aiutarmi a realizzare queste due parti del mio regolatore?Grazie Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 31 agosto 2008 Segnala Share Inserita: 31 agosto 2008 Di cosa hai bisogno? Spiega un poco di più le tue esigenze.Il calcolo del feed forward è semplice. Moltiplichi il riferimento che dai all'inverter di rotazione per una costante proporzionale al passo di traslazione, avendo cura che con massima velocità di rotazione e passo massimo si raggiunga il 90%(9v) del riferimento dell'inverter di traslazione.Quindi bisognerà tarare opportunamente questo inverter.A questo riferimento sommi il risultato del regolatore PI.L'errore è la differenza tra la posizione reale e quella teorica. Quella teorica è facilissima da calcolare. In funzione del passo sai esattamente di quanti impulsi di encoder il carello dovrà avanzre ad ogni rotazione completa del mandrino. Conoscendo il numero di impulsi al giro dell'encoder mandrino, ricavi il rapporto impulsi mandrino / impulsi carello. Esempio. Se per un certo apsso il rapporto impulsi è 1,456 ed il tuo mandrino ha totalizzato 1000 impulsi, il carro dovrà aver totalizzato 1456 impulsi. Questa è la posizione ideale. Gli impulsi contati ti danno la posizione reale. la differenza è l'errore che processaria con un PI. Link al commento Condividi su altri siti More sharing options...
mazzinga Inserita: 31 agosto 2008 Autore Segnala Share Inserita: 31 agosto 2008 Di cosa hai bisogno? Spiega un poco di più le tue esigenzeDiciamo che ai afferratto perfettamente il mio problema,In sostanza devo realizzare un PID (PI) che mi mantenga costante l'errore prossimo allo zero tra mandrino e carro seguendo un passo impostato da display.Come dicevo prima la parte proporzionale e integrale non è un problema,il problema è calcolare il feed forward che in sostanza sara il riferimento che andro a dare all'inverter e l'errore tra mandrino e carrello.Moltiplichi il riferimento che dai all'inverter di rotazione per una costante proporzionale al passo di traslazione, avendo cura che con massima velocità di rotazione e passo massimo si raggiunga il 90%(9v) del riferimento dell'inverter di traslazione.Quindi bisognerà tarare opportunamente questo inverter.Livio la costante che devo moltiplicare al riferimento del mandrino è il rapporto tra manrdino è carrello moltiplicato per il passo,quindi:se un impulso mandrino eqivale a 0.0257 qradi e un impulso carrello equivale a 0.0528 il mio rapporto sara di 2.0544 quindi andro a moltiplicare al 2.0544 al passo di lavoro e il risultato al riferimento del mandrino.Correggimi se sbaglio Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 31 agosto 2008 Segnala Share Inserita: 31 agosto 2008 Cerco di essere chiaro con un esempio.Ammettiamo che un giro di mandrino corrisponda a 1000 impulsi di encoder.Ammettiamo che un impulso dell'encoder del carro corrisponda a 10um (0,01mm)Ammettiamo che sia impostato un passo di 2mm.Con quiesti dati ad ogni giro di mandrino il carello avanzerà di 2mm; quindi per 1000 impulsi di mandrino 200 impulsi di carello, il che porterà ad avere 1 impulso di carello per 5 impulsi di mandrino. Questa è la costante per il calcolo dell'errore. Moltiplichi per 0,2 gli impulsi accumulati dal contatore encoder del mandrino, ottenendo così la posizione ideale del carello. La differenza tra questo valore e quello del contatore ti rivela l'errore totale.Per quanto riguarda il calcolo del feed forward il calcolo è diverso.Ammettiamo che alla massima velocità di rotazione del mandrino (riferimento mandrino 10v o codice corrispondente) e con il massimo passo corrisponda una velocità di traslazione equivalente a 65Hz. Questa velocià la ricavi dalla catea cinematica del carello. Imposti l'inverter di traslaione in modo tale che con 10v raggiunga 72,5 Hz in modo da avere un margine del 10% di riserva per correggere comunque evenbtuali errori.Se imposti il passo massimo generi un riferimento per il carello identico a quello generato per il mandrino. Se il passo impostato è inferiore calcoli il rapporto tra passo massimo e passo impostato e moltiplichi il riferimento del mandrino per il rapporto calcolato (sempre <=1). Questo è il tuo feedforward.Se non generi tu il riferimento al mandrino, gnerando anche le rampe di accelerazione positiva e negativa, allora sei costretto a misurare la velcità del mandrino. Se non hai a disposizione un valore analogico sei costretto a misurarla tramite l'encoder, che comporterà inevitabilmente un ritardo Usando una 226 hai a disposizione una CPU più che sufficiente. Quasi 10 anni fa ho realizzato un qualche cosa di simile con una 214 che era molto meno potente. Anzi ora che mi ricordo, se guardi negli esempi del mio tutorial sulle regolazioni dovresti poter recuperare un programma che risolve un problema simile, credo fosse un posizionatore spira spisra (scusa se non sono più preciso, ma dovrei andare a rivedere gli esempi che avevo inserito come allegati).Mi permetto di suggerirti di richiamare la funzione che eseguirà tutto il calcolo ed il PI dall'interrupt del timer di sistema, timer che se impostato a 10ms è il giusto valore di campionamento: sufficientemente veloce per una buona regolazione e che lascia risorse di CPU libere per completare l'automazione. Link al commento Condividi su altri siti More sharing options...
mazzinga Inserita: 31 agosto 2008 Autore Segnala Share Inserita: 31 agosto 2008 Ammettiamo che alla massima velocità di rotazione del mandrino (riferimento mandrino 10v o codice corrispondente) e con il massimo passo corrisponda una velocità di traslazione equivalente a 65Hz. Questa velocià la ricavi dalla catea cinematica del carello. Imposti l'inverter di traslaione in modo tale che con 10v raggiunga 72,5 Hz in modo da avere un margine del 10% di riserva per correggere comunque evenbtuali errori.Se imposti il passo massimo generi un riferimento per il carello identico a quello generato per il mandrino. Se il passo impostato è inferiore calcoli il rapporto tra passo massimo e passo impostato e moltiplichi il riferimento del mandrino per il rapporto calcolato (sempre <=1). Questo è il tuo feedforward.Scusami livio ma se imposto all'inverter una frequenza maggiore del 10%,con il carrello andro sempre un 10% piu veloce perche il rapporto e calcolato sui 65Hz non sui 72,5 HzLivio una cosa non mi è chiara,il carrello quando ritorna in posizione di partenza torna indietro alla massima velocita ipotiziamo a 120Hz,se in fase di lavoro genero un riferimemto prossimo ai 10 volt non andro a 65Hz ma molti di piu.Apparte questa parentesi purtroppo ho ancora dei problemi nel calcolare la frequenza massima all'inverter del carrello,ti sarei grato se riesci a spiegarmi meglio come fare come ai fatto per l'erroreSe ho capito bene il rapporto tra mandrino e carrello viene impostato sull'inverter,il plc genera un riferimento proporzionale alla velocita e al passo di lavoro Link al commento Condividi su altri siti More sharing options...
mazzinga Inserita: 1 settembre 2008 Autore Segnala Share Inserita: 1 settembre 2008 Apparte questa parentesi purtroppo ho ancora dei problemi nel calcolare la frequenza massima all'inverter del carrelloLivio raggonandoci su credo di aver trovato la strada giusta per calcolarmi la frequenza all'inverte del carrello,ti faccio un esempio per vedere se è la strada giusta.Ipotizziamo di avere Un passo massimo di 180mmUn impulso carrello equivale a 0,03mmRapporto riduttore 1/63Giri max Manrdino 30 giri/minQuindi mi calcolo la velocita che dovra portare il carrello che alla massima velocita di rotazione del mandrino che equivale a 180*30 = 5400mm/min,di seguito mi calcolo quanti giri dovra fare il riduttore meccanico in uscita 5400*0,03 = 162.A questo punto moltiplico i giri del riduttore in uscita per il rapporto di riduzione avro i giri del motore 162*20 = 3240 giri/min motore,a questo punto converto i giri del motore in frequenza quindi se il motore e 1400/50Hz = 28 giri per ogni Hz, 3240/28 = 115.71 Hz questa è la frequenza che dovra portare il motore per seguire il passo alla massima velocita di rotazione del mandrino con il maggiore passo inserito.Spero di essere stato chiaro e di aver afferrato iòl concetto,l'ultimo post che ho inserito fa riferimento al problema per calcolarmi la frequenza dell'inverter del carrello,l'altro problema della frequenza massima sull'inverter sono senpre allo stesso punto.Grazie Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 1 settembre 2008 Segnala Share Inserita: 1 settembre 2008 Scusami livio ma se imposto all'inverter una frequenza maggiore del 10%,..Ti chiarisco al volo questo punto, poin il resto lo leggo con calma.Devi avere il motore di traslazione che fa almeno il 10% in più di velcità rispetto alla velocità di sincronismo con passo massimo e massima velcotià di mandrino; questo per garantire un regolazione anche in condizioni limite.Se la velocità di traslazione è molto più elevata del necessario crea problemi di regolazione, specie alle basse velocità, perchè diminuisce la risoluzione. Link al commento Condividi su altri siti More sharing options...
mazzinga Inserita: 1 settembre 2008 Autore Segnala Share Inserita: 1 settembre 2008 Ti chiarisco al volo questo punto, poin il resto lo leggo con calma.Devi avere il motore di traslazione che fa almeno il 10% in più di velcità rispetto alla velocità di sincronismo con passo massimo e massima velcotià di mandrino; questo per garantire un regolazione anche in condizioni limite.Livio io questo l'avevo capito gia dal tuo primo post infatti ero consapevole che dovevo andare un po piu veloce della velocita nominale,per prevenire eventuali errori.Quello che io mi chiedevo è come si conporta il regolatore con un rapporto non 1-1 tra riferimento plc e inverter ma sfalzato di parecchio.Grazie Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 1 settembre 2008 Segnala Share Inserita: 1 settembre 2008 Partendo dal tuo esempio del messaggio #6, diciamo che il mandrino gira a 30 rpm quando il suo motore ruota 750 rmp, corrispondti a un 6 poli alimentato a circa 55Hz.Ovviamnete l'inverter dovrà essere tarato per fornire 60Hz con riferimento di 10v. 9166mv corrisponderanno al riferimento per la mssima velocità di rotazione mandrino (30rpm)L'inverter del carello lo imposti affichè possa fornire 130 Hz con 10v di riferimento. Ora fai il calcolo inverso. Partendo da 130 Hz ==> 1400*130/50 = 3640 rpm di velocità massima che corrisponde 0,364 rpm/1mV di riferimentoInoltre la tua costante velocità lineare/velocità angolare equivale a 1,66666 mm/min per 1 rpm.Immagina di impostare un passo di 180mm ==> 5400mm/min massimi ==> 3240 rpm a cui corrisponde un riferimento di 8901 mv (3240/0,354).Il rapporto tra riferimento velocità mandrino e riferimento velocità carello sarà 8901/9166 ==> Kf = 0,971 Quindi, durante la rampa, dovrai moltiplicare il riferimento mandrino per 0,971 come riferimento carello.A titolo di esempio 1V ==> 0,9712V ==> 1,9423v ==> 2,913e così viaPer calcolarti tutti i coefficienti per ogni passo è sufficiente calcolare il rapporto passo attuale / passo massimo e moltiplicare per KfEsempio.Passo impostato = 120Kp = 120/180 = 0,66666Kff = Kp*Kf = 0,66666*0,971 = 0,647 questo valore andrà a moltiplicare il riferimento mandrino per ottenre il riferimento carelllo.Gli unici calcoli in linea sono Kp e Kff; tutti gli altri sono costanti di amcchina.Io uso normalizzare tutto in counts del D/A così è gia pronta la parola da mettere in uscita sia per la rampa che per il feedforward.Ammetti di dover accelerare da 0 al massimo in 10 secondi e avere 10v = 2047 cont di D/A. fai un timer di 10ms ed ad ogni incremento aumenti di 2, 047 counts, La somma la fai in real e poi converti, o tronchi, in intero. L'intero lo moltiplichi in real per Kff e tronchi in intero; i due interi li metti in uscita sui D/A, al valore di riferimento del carello sommi il valore di correzione.Spero di essere stato sufficientemente chiaro, se no chiedi. Link al commento Condividi su altri siti More sharing options...
mazzinga Inserita: 3 settembre 2008 Autore Segnala Share Inserita: 3 settembre 2008 Livio purtroppo stasera non riesco a leggere bene la tua risposta,domani dovrei avere un po di tempo per leggere attentamente il tuo messaggio e poi ti faro sapere.Il calcolo che avevo fatto io nel messaggio 6# era riferito non ai 130Hz ma calcolavo la velocita massima che doveva portare il mio carrello per coprire le esigene del massimmo passo con la massima velocita di rotazione,Secondo te come procedura di calcolo potrebbe andar bene,nulla da togliere al tuo era solo curiosita.Oggi stavo pensando se io calcolo il rapporto che c'e tra la velocita massima e quella di lavoro e il risultato la moltiplico al mio feed forward,potrebbe essere una buona idea,nel senso che se la velocita di lavoro per eseguire il massima passo è 60Hz e la velocita rapida del carrello è 130Hz,il rapporto sara di 0.461.Calcolato il rapporto lo vado a moltiplicare al mio feed forward il risultato non dovrebbe essere la velocita del carrello,che ne pensi?Grazie Link al commento Condividi su altri siti More sharing options...
mazzinga Inserita: 3 settembre 2008 Autore Segnala Share Inserita: 3 settembre 2008 Livio stavo leggendo il tuo messaggio,vorrei alcuni chiarimentiOvviamnete l'inverter dovrà essere tarato per fornire 60Hz con riferimento di 10v. 9166mv corrisponderanno al riferimento per la mssima velocità di rotazione mandrino (30rpm)Il massimo riferimento non è molto piu vicino a i 10VInoltre la tua costante velocità lineare/velocità angolare equivale a 1,66666 mm/min per 1 rpm.Livio questo rapporto non riesco a capirlo,e come ai fatto a ricavarteloLa somma la fai in real e poi converti, o tronchi, in intero. L'intero lo moltiplichi in real per Kff e tronchi in intero; i due interi li metti in uscita sui D/A, al valore di riferimento del carello sommi il valore di correzione.Se ho capito bene tu dici di generare la rampa con il riferimento proveniente dal mandrino,una volta generata la rampa lo converto in intero poi lo riconverto in reale e lo moltiplico per Kff e lo riconvetrto in intero.Il risultato lo metto in uscita al D/A,la parte PI del sistema la converto in intero e la metto in somma al D/A.Perche converti in intero piu volte,non e meglio convertirlo alla fine in intero e spedirlo al D/ALivio scusami se il riferimento del mandrino lo moltiplico per Kff aggiungo la parte PI del sistema poi lo tronco e lo spedisco al D/A non è la stessa cosa Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 4 settembre 2008 Segnala Share Inserita: 4 settembre 2008 Livio scusami se il riferimento del mandrino lo moltiplico per Kff aggiungo la parte PI del sistema poi lo tronco e lo spedisco al D/A non è la stessa cosaE' esattamente lo stesso, anzi va fatto in questo modo. Io l'ho descritto con le operazioni separate solo per evidenziare le tre componenti. Probabilmente la parte PI andrà riscalata dividendo per 10, almeno io solitamente faccio così. In questo modo il massimo feed forward è 9v a cui sommi 1v di correzione massima e non sfori i 10v. I "posizionari" usavano la mitica "velotto", ovverossia con 8v di feed forward l'asse raggiungeva la massima velocità operativa e si tenevano ancora 2v (20%) di sovravelocità per le correzioni del PID.Teoricamente la ricalibrazione dovrebbe essere fatta anche per il rapporto feed attuale/feed max, in mdo che la correzione abbia lo stesso peso qualsiasi sia la velocità dell'asse, però non mi sembra il caso di spaccare il capello in 16.Livio questo rapporto non riesco a capirlo,e come ai fatto a ricavartelo(5400mm/1') /( 3240 rpm) [velocità lineare / velocità angolare corrispondente] = 1,6666 mm / 1rpm Link al commento Condividi su altri siti More sharing options...
mazzinga Inserita: 6 settembre 2008 Autore Segnala Share Inserita: 6 settembre 2008 OK!Livio adesso e tutto chiaro,ti faccio un ultimo esempio per vedere se ho capito bene come mi dovrò comportare per realizzare il tutto.Immaginiamo di avere una rotazione del mandrino di 45 giri/min che corrispondono a 900 giri/min di un motore con rapporto 1/20,il tutto si intende con il D/A a fondo scalaIl passo massimo di lavoro e di 125mmRapporto riduzione motore carrello 1/25Sviluppo carrello,un giro riduttore 115mmLa frequenza massima del carrello sarà di 140Hz.La prima cosa da fare è calcolare la velocità massima del motore del carrello,quindi 1400*140/50 = 3920 rpm del motore carrelloOra mi calcolo il rapporto Vmax/D/A che equivale a 3920/9166 = 0,427 rpm /1mV di riferimento carrello.Ora mi calcolo il rapporto velocita lineare/velocità angolare,come prima cosa mi devo calcolare la velocità massima in mm/min e i giri del motore con la massima velocità e con massimo passomm/min e = 45*120 5625 mm/min alla max velocità con il massimo passorpm e = 5625/115*25 1222 rpm alla max velocità con il massimo passouna volta che ho queste due costanti mi calcolo il rapporto velocità lineare/velocità angolare quindi5625/1222 = 4,30851 mm/min per 1 rpm. Una volta calcolate queste costanti abbiamo tutti i dati per calcolarci i nostri due parametri Kp che è uguale al rapporto tra passo massimo e passo impostato che si ricava dividendo il passo impostato con il passo massimoKf che è il rapporto tra riferimento velocità mandrino e riferimento velocità carrello che si ricava convertendo i giri del motore carrello in mV diviso il riferimento del mandrino espresso in mVUna volta calcolati Kp e Kf li moltiplico e il risultato andrà moltiplicato al riferimento mandrino,il risultato di quest’ultima e il mio feed forward Quindi ipotizziamo che l’operatore imposti una rotazione di 20 giri/min che equivale a 9166/45*20 = 4073 mV di riferimento mandrino e un passo di lavoro di 90 mm.Il parametro Kp vale 90/125 = 0.72 Kf vale 125*45 = 2500 mm/min carrello 5625/4,30851 = 1305 rpm motore carrello 1305/0,427 = 3057 mV di riferimento 3057/9166 = 0,333,questo è il rapporto tra mandrino e carrelloLa costante del riferimento del carrello sarà di 0,72*0,333 =0,240Se l’operatore a impostato una rotazione di 20 giri/min equivale a 4073 mV di riferimento mandrino il riferimento carrello sari di 4073*0,240 = 977 mV a cui corrispondono 1800mm/minPer calcolare l’errore devo procedere in questo modo: ammettiamo che un giro mandrino corrisponde a 1600 imp e ho impostato un passo di 200 mm e un impulso carrello corrisponde a 0,5 mm,200/0,5 = 400 impulsi per 200 mm, 1600/400 = 4 impulsi mandrino per uno del carrello, 1/4 = 0,25 questa è la costante di errore, moltiplico gli impulsi del mandrino per 0,25 per ottenere gli impulsi virtuali del carrello la differenza determina l’errore.Livio spero di essere stato chiaro e di ever afferrato pienamente il tuo concettoGrazie Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 7 settembre 2008 Segnala Share Inserita: 7 settembre 2008 Sembrerebbe corretto. Se c'è un errore non l'ho rilevato. Speroamo che non si tratti di demnza senile (mia) Link al commento Condividi su altri siti More sharing options...
mazzinga Inserita: 7 settembre 2008 Autore Segnala Share Inserita: 7 settembre 2008 OK Livio!Grazie mille Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora