Operational Amplifier Inserito: 9 marzo 2020 Segnala Share Inserito: 9 marzo 2020 Buonasera a Tutti, Ho alcuni dubbi sulla regolazione che dovrei sviluppare, ho scaricato dal sito del plc che sto utilizzando un'applicazione di esempio che gestisce un master ed uno slave tramite ballerino, l'applicazione in questione utilizza un PI(D) ed un blocco funzionale che gestisce l'accoppiamento dello Slave con il Master con cambio al volo del Gear. Il blocco infatti si chiama GearInDyn, nello specifico l'uscita del regolatore PI(D) corregge il rapporto tra Master e Slave facendo di conseguenza aumentare e/o diminuire la velocità dello Slave che sarebbe lo svolgitore. Sembrerebbe fare proprio al mio caso. La mia applicazione deve gestire uno svolgitore con diametro max 1500mm e diametro minimo 500mm gestito da Motore Brushless con freno, un traduttore lineare (ballerino) con segnale analogico che rileva l'ansa della piattina con posizione neutra al centro dello stelo, lo slave è un Motore Brushless. Essendo che il rapporto del diametro tra min e max è 3 personalemnte farei regolare puramente al regolatore PI(D). Quello che non mi convince è che il segnale di uscita del regolatore PI(D) regoli il Gear del blocco funzionale. Voi cosa ne pensate...? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 10 marzo 2020 Segnala Share Inserita: 10 marzo 2020 Non conosco il blocco di cui parli, magari se specificassi di quale dispositivo si tratta (PLC? funzione del drive? marca e modello) qualcuno potrebbe anche conoscerlo. Io credo di avere una notevole esperienza in questo tipo di controlli e, a mio parere, con un rapporto di 1:3 dei diametri potrebbe anche bastare la sola reazione del ballerino; però molto di pende dalle prestazioni dinamiche della macchina. Io, per principio, uso sempre regolare con un feed forward, in funzione del diametro, ed una correzione da ballerino che agisce con un +/-20% sul feed forward. Link al commento Condividi su altri siti More sharing options...
Operational Amplifier Inserita: 10 marzo 2020 Autore Segnala Share Inserita: 10 marzo 2020 Buongiorno Livio, Marca del Plc Beckhoff, l'applicazione di esempio che citavo nel post è la seguente : https://infosys.beckhoff.com/english.php?content=../content/1033/tcplclibpackal/819751179.html&id= Il problema è che questa libreria è stata sviluppata per il Twincat 2 che è la piattaforma precedente, nel Twincat 3 che è la piattaforma attuale quest'ultima non c'è, ma hanno sviluppato un progetto di esempio, metto il link, non c'è specificato un gran che, andrebbe convertito ed aperto (quello che ho fatto) : https://infosys.beckhoff.com/english.php?content=../content/1033/tcplclibmc2/458493707.html&id= Ora lo apro ed allego degli Screenshot Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 10 marzo 2020 Segnala Share Inserita: 10 marzo 2020 Non conosco questo prodotto, io poi ho sempre rifuggito l'uso di librerie dei produttori di PLC perchè, se va bene, sono studiate per adattarsi alla generalità dei problemi, mentre se va male .... hanno dei difetti. Sono anche del parere che se non conosci perfettamente la funzione di libreria perdi meno tempo a scriverti la funzione tua. Comunque, a questo punto, è meglio spostare la discussione nella sezione PLC, dove forse c'è qualche lettore che conosce questo PLC. Link al commento Condividi su altri siti More sharing options...
Operational Amplifier Inserita: 10 marzo 2020 Autore Segnala Share Inserita: 10 marzo 2020 4 minuti fa, Livio Orsini ha scritto: Comunque, a questo punto, è meglio spostare la discussione nella sezione PLC, dove forse c'è qualche lettore che conosce questo PLC In realtà non volevo legare la discussione al modello del plc e/o alla libreria in questione, comunque se reputi opportuno di doverla spostare nessun problema. Il PID ha la seguente funzione di trasferimento : Come vedi nell'esempio viene modificato il GearRatio nel Blocco MC_GearInDyn : Link al commento Condividi su altri siti More sharing options...
valvolina Inserita: 10 marzo 2020 Segnala Share Inserita: 10 marzo 2020 Buongiorno a tutti, concordo con l'analisi dell'applicazione fatta da Livio Orsini, Sarebbe interessante sapere quale tipo di materiale devi lavorare. Anche io per questa situazione con le info che ho al momento, non userei librerie, ma svilupperei la parte di programma in autonomia. Per quanto riguarda il blocco GearInDyn fa parte delle librerie di motion di Beckhoff. E' un blocco funzione che ho già usato più volte e consente il cambio di rapporto di albero elettrico tra master e slave al volo o se volete ad ogni giro di programma. Secondo me puoi usarlo, limitandone la capacità al 20% come consigliato da Livio magari anche filtrandolo un pochino, dipende dall'applicazione e da quanto deve essere reattivo il sistema, quindi anche velocità in gioco. un saluto Valvolina Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 10 marzo 2020 Segnala Share Inserita: 10 marzo 2020 13 minuti fa, valvolina ha scritto: E' un blocco funzione che ho già usato più volte e consente il cambio di rapporto di albero elettrico tra master e slave al volo o se volete ad ogni giro di programma. Da quello che dici non credo sia il meglio per un controllo di ballerino. Il controllo di ballerino è ,in buona sostanza, un controllo di posizione. Il sistema tende a mantenere il ballerino nella sua posizione neutra variando la velcità in entrata, nel caso di svolgitre, od in usccita nei casi di traini e/o avvolgitori. 25 minuti fa, Operational Amplifier ha scritto: Il PID ha la seguente funzione di trasferimento : E una dell forme canoniche del PID. Un regolatore PID può essere applicato a qualsiasi regolazione ad anello chiuso. Analizzando quel poco che si riesce a capire, cercano di controllare la posizione del ballerino agendo sul rapporto di velocità dei motori. E la versione moderna di quella antica che si realizzava con un PIV. Il ballerino si spostava in basso od in alto sino a che incontrava una leva che spostava il rapporto di velocità del PIV. Ne ho viste parecchie di queste applicazioni nel campo tessile e, devo ammettere, che funzionavano piuttosto bene (quelle meccaniche) Qui fanno qualche cosa di simile: cambiano il rapporto dell'albero elettrico in funzione dello scostamento del ballerino dalla sua posizione neutra. Teoricamente potrebbe anche funzionare bene, se l'albero elettrico è ben realizzato, anche se io la vedo come un UCAS (ufficio complicazioni affari semplici), ma questo è tipico dei teutonici. Link al commento Condividi su altri siti More sharing options...
Operational Amplifier Inserita: 10 marzo 2020 Autore Segnala Share Inserita: 10 marzo 2020 Ciao Valvolina, grazie per la tua risposta. Sono riuscito ad avere ulteriori informazioni riguardo all'applicazione, il materiale è una piattina di vario formato potremmo considerare altezza 5mm larghezza 10mm, la velocità di lavoro dovrebbe essere 7m/min (116,7 mm/s) con un massimo di 30m/min (500 mm/s), mi hanno confermato che è presente sulla bobina da svolgere (Slave) un tastatore che rileva il materiale, in poche parole l'operatore imposta il diametro nominale della bobina e con il tastatore si rileva l'usura (materiale mancante). Link al commento Condividi su altri siti More sharing options...
Operational Amplifier Inserita: 10 marzo 2020 Autore Segnala Share Inserita: 10 marzo 2020 11 minuti fa, Livio Orsini ha scritto: Teoricamente potrebbe anche funzionare bene, se l'albero elettrico è ben realizzato, anche se io la vedo come un UCAS (ufficio complicazioni affari semplici), ma questo è tipico dei teutonici. Premetto che le librerie PlcOpen o quelle di Beckhoff dedicate al Motion mi entusiasmano parecchio e solitamente prediligo utilizzarle, l'ultima per esempio che ho utilizzato è la FlySaw e devo dire che è fatta bene. Per quanto riguarda la gestione dello svolgitore preferirei non utilizzare questa tecnica, non so a fiuto non mi sembra la sua anche perchè se Beckhoff non l'ha più implementata ci sarà il suo bel perchè. Mi interesserebbe invece la tua soluzione Livio, quella del feedforward con gestione del diametro visto che mi installano il trasduttore, non essendo un mago in questo campo potresti gentilmente spiegarmi come effettuare il feedforward...? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 10 marzo 2020 Segnala Share Inserita: 10 marzo 2020 1 ora fa, Operational Amplifier ha scritto: questo campo potresti gentilmente spiegarmi come effettuare il feedforward...? Hai letto il mio tutorial sulle regolazioni? Lo trovi nella sezione didattica (link anche nella mia firma), sottosezione elettrotecnica; li trovi quiesta tecnica spiegata in almeno un esempio. Comunque è abbastanza banale. Se hai un trasduttore di diametro fai il rapporto tra il diametro minimo e quello misurato. Se fai concidere la velocità angolare del traino con la va velocità angolare del diametro minimo dello svolgitore,avrai che il feedforward, ovvero il riferimento di velocità per lo svolgitore, sarà : ws = wt * ( diametro minimo/ diametro misurato). Se tutto fosse perfetto non avresti nessuna correzione da effettuare. Purtroppo la perfezione non è di questo mondo, quindi è necessario apportare una correzione che compensa iperfezioni e tolleranze. La correzione la generi elaborando l'errore del ballerino, rispetto alla posizione neutra, tramite un algoritmo PID; la correzione la metterai in somma in modo da correggere del +/- 20% il valore di feed forward. PS sono anni che penso di pubblicare un mio tutorial sui controlli di avvolgitura; è già scritto al 90%, ma non trovo mai un momento di buona volontà per terminarlo, spero di riuscire a farlo prima o poi. Link al commento Condividi su altri siti More sharing options...
Operational Amplifier Inserita: 10 marzo 2020 Autore Segnala Share Inserita: 10 marzo 2020 52 minuti fa, Livio Orsini ha scritto: Hai letto il mio tutorial sulle regolazioni? Lo trovi nella sezione didattica (link anche nella mia firma), sottosezione elettrotecnica; li trovi quiesta tecnica spiegata in almeno un esempio. In parte si...attualmente ho letto il PID ed il FeedForward. Mi sembra che in queste righe di codice dove viene effettuato il controllo sulla variabile DA_Conv per soglia minima e massima ci sia un errore, sembra che sia restato Out al posto di DA_Conv dove ci sono i Then 😅. 1 ora fa, Livio Orsini ha scritto: Se hai un trasduttore di diametro fai il rapporto tra il diametro minimo e quello misurato. Se fai concidere la velocità angolare del traino con la va velocità angolare del diametro minimo dello svolgitore,avrai che il feedforward, ovvero il riferimento di velocità per lo svolgitore, sarà : ws = wt * ( diametro minimo/ diametro misurato). Se tutto fosse perfetto non avresti nessuna correzione da effettuare. Purtroppo la perfezione non è di questo mondo, quindi è necessario apportare una correzione che compensa iperfezioni e tolleranze. La correzione la generi elaborando l'errore del ballerino, rispetto alla posizione neutra, tramite un algoritmo PID; la correzione la metterai in somma in modo da correggere del +/- 20% il valore di feed forward. Nel primo pomeriggio provo ad effettuare un esempio così vediamo se ho capito bene. Link al commento Condividi su altri siti More sharing options...
Operational Amplifier Inserita: 10 marzo 2020 Autore Segnala Share Inserita: 10 marzo 2020 2 ore fa, Livio Orsini ha scritto: Se hai un trasduttore di diametro fai il rapporto tra il diametro minimo e quello misurato. Se fai concidere la velocità angolare del traino con la va velocità angolare del diametro minimo dello svolgitore,avrai che il feedforward, ovvero il riferimento di velocità per lo svolgitore, sarà : ws = wt * ( diametro minimo/ diametro misurato). Se tutto fosse perfetto non avresti nessuna correzione da effettuare. Purtroppo la perfezione non è di questo mondo, quindi è necessario apportare una correzione che compensa iperfezioni e tolleranze. La correzione la generi elaborando l'errore del ballerino, rispetto alla posizione neutra, tramite un algoritmo PID; la correzione la metterai in somma in modo da correggere del +/- 20% il valore di feed forward. Se dovessi effettuare il seguente ragionamento secondo te è corretto...? Esempio : Il Master (Tiro) mi movimenta la piattina con velocità di 200 mm/s, lo Slave (Svolgitore) ha un diametro attuale di 1000 mm, come velocità di FeedForward assume : f (Tiro) = 20 Hz (supponiamo di effettuare 10 mm a rotazione con il Tiro) f (Svolgitore) = Vt / (PI * d) = 200 / (3,14 * 1000) = 0.063 Hz Con il regolatore PID configurato con PI senza la componente D effettuo la correzione di +/- 20% in sommatoria al FeedForward. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 10 marzo 2020 Segnala Share Inserita: 10 marzo 2020 4 ore fa, Operational Amplifier ha scritto: sembra che sia restato Out al posto di DA_Conv dove ci sono i Then No, è giusto; si mette in uscita il limite inferiore o il limite superiore, altrimenti che senso avrebbe porre dei limiti. 2 ore fa, Operational Amplifier ha scritto: f (Svolgitore) = Vt / (PI * d) = 200 / (3,14 * 1000) = 0.063 Hz Se hai diametro minimo 500 e diametro attuale 1000 f(svolgitore) = ft 500/1000) ==>20*(500/1000) = 10Hz E anche logico, se pensi che il diametro (raggio) dell'aspo è il doppio del diametro minimo, la velocità angolare dovrà essere la metà per mantenere costante la velocità periferica. 2 ore fa, Operational Amplifier ha scritto: Con il regolatore PID configurato con PI senza la componente D effettuo la correzione di +/- 20% in sommatoria al FeedForward. Si; se non hai problemi di dinamica elevata durante i transitori, la correzione derivativa è più una fonte di problemi che altro. Link al commento Condividi su altri siti More sharing options...
Operational Amplifier Inserita: 10 marzo 2020 Autore Segnala Share Inserita: 10 marzo 2020 (modificato) 2 ore fa, Livio Orsini ha scritto: No, è giusto; si mette in uscita il limite inferiore o il limite superiore, altrimenti che senso avrebbe porre dei limiti Pensavo che il valore di uscita della funzione venisse assegnato con il return(DA_Conv)...niente parola torna indietro 😉 5 ore fa, Operational Amplifier ha scritto: Il Master (Tiro) mi movimenta la piattina con velocità di 200 mm/s, lo Slave (Svolgitore) ha un diametro attuale di 1000 mm, come velocità di FeedForward assume : f (Tiro) = 20 Hz (supponiamo di effettuare 10 mm a rotazione con il Tiro) f (Svolgitore) = Vt / (PI * d) = 200 / (3,14 * 1000) = 0.063 Hz Non ho capito se secondo te Livio questa formula è giusta, volevo specificare che nella mia applicazione non ho un aspo, ho un Master che trascina il filo tramite dei rulli che nell'esempio ho ipotizzato 10 mm a rotazione. Modificato: 10 marzo 2020 da Operational Amplifier Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 10 marzo 2020 Segnala Share Inserita: 10 marzo 2020 Lo svolgitore è un aspo! La formula corretta è quella che ti ho scritto Link al commento Condividi su altri siti More sharing options...
Operational Amplifier Inserita: 11 marzo 2020 Autore Segnala Share Inserita: 11 marzo 2020 (modificato) Buongiorno Livio, 11 ore fa, Livio Orsini ha scritto: La formula corretta è quella che ti ho scritto Non lo metto in dubbio, il problema è che mi sfugge qualcosa, nella mia testa immagino il sistema, credo che per avere il trasporto della piattina in modo uniforme, sia il Tiro che l'Aspo devono essere sincroni ovvero avere la stessa velocità tangenziale (non sull'asse) poi le eventuali imperfezioni vengono corrette con il ballerino...pensarla in questo modo è corretto...? Modificato: 11 marzo 2020 da Operational Amplifier Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 11 marzo 2020 Segnala Share Inserita: 11 marzo 2020 2 ore fa, Operational Amplifier ha scritto: sia il Tiro che l'Aspo devono essere sincroni ovvero avere la stessa velocità tangenziale Certamente. Forse è a me che sfugge qualche cosa. Tagliamo la testa al toro: scrivi tutti i dati di velocità nominale dei motori aspo e traino (quello che tu chiami "tiro"), rapporti di riduzione aspo e traino e diamo dei rulli di traino. Così almeno siamo sicuri che non ci siano fraintendimenti. Link al commento Condividi su altri siti More sharing options...
Operational Amplifier Inserita: 11 marzo 2020 Autore Segnala Share Inserita: 11 marzo 2020 *** Aspo *** Velocità Nominale Motore : 3000 Rpm Velocità Max Motore : 6000 Rpm Diametro Min Bobina : 500 mm Diametro Max Bobina : 1000 mm Rapporto di Riduzione : 1:1 (Diretto) *** Traino *** Velocità Nominale Motore : 3000 Rpm Velocità Max Motore : 6000 Rpm Diametro Rulli : 10 mm Rapporto di Riduzione : 1:1 (Diretto) Esempio : Il traino assume una velocità di 200 mm/s tangente ai rulli (velocità di spostamento della piattina) Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 11 marzo 2020 Segnala Share Inserita: 11 marzo 2020 Allora vediamo di fare qualche verifica con i numeri. Con un traino avente 10 mm di diametro, equivalenti a 31.4mm di svilupp, diretto sul motore con velocità lineare di 200mm/1" avremo una velocità angolare di 200/31.4 pari a circa 6.37 rps equivalenti a circa 382 rpm, corrispondenti a 6.36 Hz circa Io non so se questa è la velocità tipica di lavorazione e se è una velocità presa a caso. Se fosse una velocità tipica sarebbe da rivedere motore e trasmisisone. Comunque con questa velocità l'aspo a diametro minimo, quindi con sviluppo pari a circa 1571mm avrebbe una velocità angolare pari a 0.127 rps, equivalenti a 7.63 rpm equivalenti a 0.127Hz circa, che con diametro massimo scenderebbero a 0.042 Hz. A mia espereinza c'è da rivedere tutta la motorizzazione e le trasmissioni perchè sono freqeunze improponibili Link al commento Condividi su altri siti More sharing options...
Operational Amplifier Inserita: 11 marzo 2020 Autore Segnala Share Inserita: 11 marzo 2020 Ora mi Trovo, Naturalmente come da te evidenziato ci saranno i rapporti di riduzione che attualmente non conosco e di conseguenza ipotizzavo per semplicità di calcolo 1:1 visto che è un esempio. Non mi trovo con il risultato 0.042Hz con diametro max 1000 mm, a me risulta 0.063 Hz che poi sarebbe 0.127/2 la metà 1 ora fa, Livio Orsini ha scritto: che con diametro massimo scenderebbero a 0.042 Hz Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 12 marzo 2020 Segnala Share Inserita: 12 marzo 2020 Il rapporto diametri è 1:3, quindi la velocità angolare sarà in rapporto 3:1, così come la frequenza. Se con diametro minimo la freqeunza sarebbe pari a 0.127Hz, deve scendere a 0.0423 circa con diametro massimo. 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