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




Controllo Di Posizione Per Carrello


Messaggi consigliati

Inserito:

Buona sera , ho il seguente problema da risolvere:

un carrello si muove in modo rettilineo , vincolato a una blindo sbarra che lo alimenta. Non muovendosi su rotaie ma avendo le ruote che possono ruotare leggermente (le 4 ruote sono movimentate da un unico motore che le fa ruotare + encoder assoluto per conoscerne l'angolo di rotazione) devo controllare che il carrello si muova in linea retta rimanendo parallelo alla blindosbarra che a sua volta è parallela ad un muro.

Il carrello ha un misuratore di distanza che mi fornisce la quota nel senso di percorrenza del carrello (chiamiamolo Y) e due misuratori di distanza / sensori ultrasuoni installati all'estremità del carrello (testa e coda) che misurano la distanza del carrello dal muro (chiamiamoli XT e XC) al quale devo rimanere parallelo. Il sistema di controllo è un PLC S7-300.

L'idea è quella di misurare la distanza della testa e della coda del carrello dal muro , se sono uguali allora il carrello è parallelo , diversamente è necessario sterzare le ruote per correggerne la traiettoria.

Ora il problema è quale metodo / algoritmo utilizzare per legare l'errore di parallelismo con la correzione da imporre alle ruote?

L'ideale sarebbe riuscire a mantenere la testa del carrello rispetto allo 0 con un errore di + o - 1 cm.

La velocità di traslazione si aggira intorno ai 600 mm/sec. La corsa totale del carrello è di circa 20 mt e lungo la corsa posso fermarmi in una decina di stazioni.

Chiaramente il pavimento su cui si muove il carrello è piano e le ruote fanno si che il carrello si muova diritto (almeno da nuovo) , però qualche piccola correzione per mantenerlo parallelo si dovrà fare.

Lo scopo della mio post è avere qualche suggerimento sul metodo/algoritmo da utilizare per il controllo.

Ringrazio anticipatamente per gli eventuali suggerimenti.


Inserita:

Le 4 ruote sono legate meccanicamente e si muovono con lo stesso motore?

Se è così, io manterrei l'avanti del veicolo nel senso del movimento alla stessa distanza dal muro... e basta.

ciao

Roberto Gioachin
Inserita:
Ora il problema è quale metodo / algoritmo utilizzare per legare l'errore di parallelismo con la correzione da imporre alle ruote?

Controllo proporzionale + integrativo, come viene fatto su un controllo asse.

Ciao

Roberto

Inserita:

La soluzione più veloce che mi viene in mente è un controllo PID (poi ridotto solo a PI come suggerito da Roberto), avendo l'accortezza di congelare l'integrale quando la traslazione è ferma.

Se le ruote sono tutte comandate dallo stesso motore, immagino che mentre quelle anteriori sterzano da una parte, quelle posteriori sterzino dall'altra.

In questo modo riesci quindi a far variare l'inclinazione del carrello rispetto al muro, e quindi ad avvicinarlo o ad allontanarlo dal muro stesso.

Con i due sensori posti all'estremità del carrello riesci a misurare la distanza media e l'angolazione del carrello.

Potresti avere un primo PID (sempre ridotto a PI o forse anche solo P) per calcolare l'angolo da far assumere al carrello per riportarlo alla distanza corretta, ed un secondo PID che controlla lo sterzo in modo da far assumere al carrello l'angolazione desiderata.

Questo è quello che mi è venuto in mente al volo, quindi è possibilissimo che esistano soluzioni migliori.

Inserita:

Devi decidere in Che Spazio Longitudinale di avanzamento eseguire la Correzione.

Infatti se rilevi uno scostamento di 10mm devi decidere a priori in quanti metri poterlo correggere.

Chiamiamo questo Spazio per Correggere = SC

Ora decidendo che deve essere sempre il più parrallelo possibile (margine +-1 cm)

questo range determina anche un angolo massimo e minimo di correzione.

Fissato questo Limite lo applichi all'anello di posizione angolare come Limite di massima correzione possibile.

Ora quando rilevi una deviazione dell' angolo dovuta al pavimento usura ruote o altro, non fai altro che

applicare l'arcotangente dell' angolo rilevato:

Angolo di Correzione = ArcTang( (Distanza XT-XC) / SC )

bene ora questo set di Correzione va applicato all' anello di Posizione (Gestione Angolare Ruote), con in aggiunta

il Limite minimo e massimo che tu hai dichiarato.

Ovviamento l'anello di Posizione Angolare è un PID (potresti togliere Congelare l'integrale ogni volta che ti fermi (Velocità = 0))

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