Vai al contenuto
PLC Forum


Controllo del Tiro con Ballerino


Operational Amplifier

Messaggi consigliati

Operational Amplifier

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


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

Operational Amplifier

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

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

Operational Amplifier
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 :

FB_BasicPID_G(s).gif.7f7720ce9c4498e5f4b8a3a91de4cf96.gif

Come vedi nell'esempio viene modificato il GearRatio nel Blocco MC_GearInDyn :

GearRatio.jpg.15b4b759fd3a6882aaadd559a74135d4.jpg 

PID.jpg

DancerControl.jpg

GearInDyn.jpg

Link al commento
Condividi su altri siti

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

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

Operational Amplifier

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

Operational Amplifier
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

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

Operational Amplifier
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 😅.

Feedforward.thumb.jpg.2a2315b08d52bbcd4ea952a5284d8109.jpg

 

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

Operational Amplifier
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

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

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

 

Layout.jpg.f1b6a11dfc862d952a04f13ac36cfbc9.jpg

 

 

 

 

 

Modificato: da Operational Amplifier
Link al commento
Condividi su altri siti

Operational Amplifier

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: da Operational Amplifier
Link al commento
Condividi su altri siti

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

Operational Amplifier

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

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

Operational Amplifier

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

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

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