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




Posizionamento


Messaggi consigliati

Inserita: (modificato)

Vediamo se riusciamo a fare un pò di ordine.

Vmax = 200 mm

Rampa Acc. = 2 s

Rampa Dec. = 3 s

Corsa 150 mm

Essendo (almeno a livello teorico) un moto uniformemente accelerato con partenza da fermo, potresti calcolare la lunghezza delle rampe di accelerazione e di decelerazione semplicemente considerando la velocità media moltiplicata per il tempo di accelerazione (decelerazione).

Con i dati da te forniti avresti quindi bisogno di 100 * 2 = 200 mm per accelerare, e di 100 * 3 = 300 mm per decelerare (100 = velocità media).

Questo è lo stesso risultato che ottieni applicando la formula s = 1/2 * a * t^2 e calcolando l'accelerazione a.

Infatti in accelerazione avresti:

a = v / t = 200 / 2 = 100 mm/s^2

ed in decelerazione

a = v / t = 200 / 3 = 66.667 mm/s^2

La rampa di accelerazione sarebbe quindi lunga

s = 0.5 * 100 * 2^2 = 200 mm

e quella di decelerazione

s = 0.5 * 66.667 * 3^2 = 300 mm.

Quello che salta immediatamente all'occhio è che le rampe sono più lunghe della corsa totale, quindi non potrai, con una corsa così breve, arrivare alla velocità massima.

Se decidi di usare il sistema da me suggerito (tieni presente che gli altri sono assolutamente equivalenti) potresti procedere nel seguente modo:

1) l'accelerazione è comodo gestirla con incrementi fissi di velocità ad intervalli fissi di tempo (con tempo sufficientemente breve da non creare gradini)

2) considera che se sei ad una distanza dalla quota target inferiore a 300 mm sei già nella zona di decelerazione, ma nell'esempio quando sei a 150 mm dalla quota finale sei di fatto ancora fermo e devi quindi accelerare.

3) calcoli in continuo la velocità con la formula v = SQRT(2as), e la assumi come velocità limite.

Facciamo un esempio con i numeri, e vediamo cosa succederebbe istante per istante:

t = 0 secondi

spazio percorso = 0 mm

velocità = 0 mm/s

distanza da target = 150 mm

Velocità calcolata da funzione rampa decelerazione: v = SQRT(2as) = SQRT(2*66.667*150) = 141.42 mm/s

Velocità reale = 0 mm/s

t = 0.5 s

Velocità (rampa accelerazione): v = a*t = 100*0.5 = 50 mm/s

Spazio percorso: s = 1/2 *at^2 = 0.5 * 100 * 0.5^2 = 12.5 mm

Distanza da target = 150 - 12.5 = 137.5 mm

Velocità calcolata da funzione rampa decelerazione = SQRT(2*66.667*137.5) = 135.40 mm/s

Sei ancora in accelerazione. Velocità = 50 mm/s

t = 1.0 s

Velocità (rampa accelerazione): v = a*t = 100*1.0 = 100 mm/s

Spazio percorso: s = 1/2 *at^2 = 0.5 * 100 * 1.0^2 = 50 mm

Distanza da target = 150 - 50 = 100 mm

Velocità calcolata da funzione rampa decelerazione = SQRT(2*66.667*100) = 115.47 mm/s

Sei ancora in accelerazione. Velocità = 100 mm/s

t = 1.09545 s

Velocità (rampa accelerazione): v = a*t = 100*1.09545 = 109.545 mm/s

Spazio percorso: s = 1/2 *at^2 = 0.5 * 100 * 1.5^2 = 60 mm

Distanza da target = 150 - 60 = 90 mm

Velocità calcolata da funzione rampa decelerazione = SQRT(2*66.667*90) = 109.545 mm/s

Hai raggiunto il punto in cui dovrai iniziare a decelerare. Velocità = 109.545 mm/s

Il bello (secondo me) di questo metodo è che non hai bisogno di fare tanti calcoli per definire dove finisce l'accelerazione, dove comincia la decelerazione, se riuscirai o meno a raggiungere la velocità massima.

Ti basta gestire la rampa di accelerazione con incrementi fissi e calcolare la velocità in decelerazione in base alla distanza dal target. Prendi sempre il valore più basso ed hai risolto il problema.

Modificato: da batta

Inserita: (modificato)
ti sarei grato se mi potresti indicare dove sbaglio il passaggio per il calcolo dell'equazione

leggi le mie risposte e confronta i miei conti: ti sarà chiaro dove sono le differenze. Il tempo di aaccelerazione di 3" vale per velocità da 0 a 200mmsec. Ma se percorri solo 75mm non raggiungi la velocità di 200msec. Ecco perchè devi ricavarti il tempo in cui, con accelerazione costante, raggiungi la quota di 75mm. Quel tempo determina anche la velocità max raggiunta.

Batta il tuo metodo è simile a quello che uso io, anzi forse se confrontassimo il codice scopriremmo che è quasi identico.

Il problema di fondo è che, probabilmente, "pineto" non ha molta dimestichezza con le leggi che regolano il moto, quindi gli riesce un poco ostico comprendere il sistema.

Modificato: da Livio Orsini
Inserita:

Batta ti ringrazio dell’aiuto.

Se ho capito bene la velocita si calcola in ogni istante che vado ad incrementare

la rampa di accelerazione,

dove ad ogni istante che vado ad incrementare ciorrisponde una velocita virtuale e nel momentoche che la velocita reale è uguale a quella virtuale indipendentemente se sono arrivato o meno al tempo di accelerazione inizio ad effettuare la decelerazione.

Alcune cose non mi sono chiare,

Nella formula del calcolo della velocita “Spazio percorso: s = 1/2 *at^2 = 0.5 * 100 * 0.5^2 = 12.5 mm”

per calcolarmi lo spazio percorso non sarebbe piu semplice azzerare la quota l’encoder alla partenza e avere all’istante lo spazio percorso.

Dal momento che ho la possibilita di azzerare l’encoder alla partenza?

Nella formula del calcolo della velocita “Velocità (rampa accelerazione): v = a*t = 100*0.5 = 50 mm/s”

Per calcolarmi la velocita fisica dell’asse non è piu semplice calcolarla con l’encoder direttamente sull’asse?

Spero di essere stato chiaro e di aver afferrato il concetto che hai esposto nel messaggio di prima

Per livio

Il problema di fondo è che, probabilmente, "pineto" non ha molta dimestichezza con le leggi che regolano il moto, quindi gli riesce un poco ostico comprendere il sistema.

Livio in effetti non ho molta dimestichezza nelle leggi del moto è la prima volta che mi cimento in queste applicazione,per tanto volgiate scusarmi per la mia scarsa conoscena della materia

Grazzie mille

Inserita:
..per tanto volgiate scusarmi per la mia scarsa conoscena della materia

"pineto" non hai niente di cui scusarti, l'ignoranza non ne un peccato ne un reato, anzi avere l'umiltà di riconoscere i propri limiti è un grande pregio. proprio per questo sto cercando di aiutarti a chiarirti le idee dal punto di vista teorico. La strategia proposta da Batta è antica e collaudata, si usava (almeno io la usavo) ancora quando si dosponeva solo di sitemi esclusivamente cablati. Offre il grandissimo vantaggio di non dover fare calcoli in linea. Puoi usare, come unità di misura, gli impulsi di encoder. In effetti io faccio proprio così

Inserita:
Nella formula del calcolo della velocita “Spazio percorso: s = 1/2 *at^2 = 0.5 * 100 * 0.5^2 = 12.5 mm”

per calcolarmi lo spazio percorso non sarebbe piu semplice azzerare la quota l’encoder alla partenza e avere all’istante lo spazio percorso.

Dal momento che ho la possibilita di azzerare l’encoder alla partenza?

Non è che sarebbe più semplice, semplicemente devi fare riferimento unicamente alla lettura dell'encoder.

Il calcolo dell'esempio serviva solo per fotografare la situazione teorica in alcuni istanti.

Nella formula del calcolo della velocita “Velocità (rampa accelerazione): v = a*t = 100*0.5 = 50 mm/s”

Per calcolarmi la velocita fisica dell’asse non è piu semplice calcolarla con l’encoder direttamente sull’asse?

Per la rampa di accelerazione non c'è bisogno di fare nessun calcolo. Si deve solamente incrementare il valore di riferimento ad intervalli fissi.

Per esempio, per ottenere una rampa da 0 a 100% in 2 secondi potresti incrementare del 2.5% ogni 50 ms, o (meglio) del 1% ogni 20 ms, oppure (ancora meglio) dello 0,5% ogni 10 ms.

Un'altra soluzione potrebbe essere quella di impostare la rampa di accelerazione nell'inverter. Quando devi partire dai immediatamente il riferimento massimo possibile (compatibilmente con la quota attuale) e ti trovi così a dover gestire solo il calcolo della rampa di decelerazione.

Livio, la formula di partenza è una sola, quindi i metodi difficilmente saranno molto diversi. Io ho descritto il mio metodo non per sostenere che sia il migliore, ma semplicemente perché è quello che uso abitualmente :)

Inserita:
Io ho descritto il mio metodo non per sostenere che sia il migliore, ma semplicemente perché è quello che uso abitualmente

Io sono invece dell'avviso che lo sia se no non louserei :D (la mia autostima è molto alta).

Scherzi a parte, io questo strategia l'ho scoperta più di 30 anni fa quando mi documentai per realizzare il mio primo posizionatore, tutto HW ovviamente. Ho ancora ingiro gli schemi di una versione che avevo pubblicato su di una rivista di automazione (anno 1976 circa)

Inserita:

Livio il calcolo di batta dato il suo penultimo messaggio mi sembra piu tosto chiaro sembra un calcolo molto semplice anche se è di vecchia data,

mi piacerebbe capire molto bene anche il tuo metodo di calcolo,il problema è che ho grandi difficolta ad apprenderlo.

Se non ti chiedo troppo me lo potresti esporrere allo stesso modo di quello di batta

l'ignoranza non ne un peccato ne un reato, anzi avere l'umiltà di riconoscere i propri limiti è un grande pregio

Anche se sto facendo una pessima figura il mio pensiero e che ne esco a testa alta,perche so che in fin dei conti ho imparato un qualcosa davvero utile.

Grazzie mille

Inserita:
Anche se sto facendo una pessima figura....

Pineto , dai retta, non preoccuparti di questo, non è vero .

Nessuna delle persone che ti stanno aiutando è nata conoscendo già le leggi del moto accelerato.

Semplicemente, si impara.

Con curiosità.

Quando avrai risolto il tuo problema, sarai una persona migliore, perchè più consapevole dei propri mezzi.

E' solo così che si cresce.

Ci siamo passati tutti......... :rolleyes:

Inserita:
Anche se sto facendo una pessima figura....

Assolutamente no! Anzi. Stai facendo la figura di una persona che, non conoscendo una cosa, cerca di impararla con tanta buona volontà. Per me questa è un'ottima figura. A meno che tu dopo ci racconti che hai una laurea di secondo livello in ingegneria :D

In quanto al metodo il mio e quello di Batta sono praticaemnte identici.

Quello che ho esposto sino ad adesso soni le leggi, e le relative eqauzioni, del moto uniformemente accelerato. Il metodo che applichiamo io e Batta trae origine da queste leggi, non potrebe essere altrimenti.

Tu hai un problema. Per risolverlo avrei potuto dirti: "Vai alla sezione didattica, c'è il mio tutorial sui controlli, negli esempi allegati al capitolo 6 c'è anche un posizionatore con S7-200, usa quel codice". Io però sono convinto che non sia corretto rispondere solo in questo modo. Sono convinto che bisogna dare anche le informazioni necessarie affinchè uno comprenda anche come si fa; facevo così anche con i miei collaboratori: ho sempre cercato di portarli alla soluzione dle problema passo dopo passo, anche se è molto più rapido dargli la soluzione direttamente.

Ora io ti consiglierei di leggere, magari su wilkipedia, le poche righe che spiegano le equazioni sul moto. Poi, se vuoi, puoi leggere il mio tutorial; nel capitolo 6 c'è una sezione che tratta i posizionamenti e spiega anche questo tipo di approccio per le accelerazioni.

Inserita:
Io però sono convinto che non sia corretto rispondere solo in questo modo. Sono convinto che bisogna dare anche le informazioni necessarie affinchè uno comprenda anche come si fa....

Livio , qualcuno disse : " Se incontri chi ha fame, non donargli un pesce, ma insegnagli a pescare...!" :clap:

Inserita:
A meno che tu dopo ci racconti che hai una laurea di secondo livello in ingegneria

Assolutamente no!

Comunque seguiro il tuo consiglio e mi andro immediatamente a documentare,

non appena finisco il proggetto e l'avro collaudato in macchina vi faro sapere i risultati

Grazzie mille

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