Implementazione e realizzazione del sistema di controllo
Vincoli principali
Prima di procedere all’ effettiva implementazione del sistema di controllo, si è cercato di individuare e affrontare analiticamente tutti i vincoli che potessero essere più o meno determinanti nella progettazione dell’intero sistema di controllo. Queste problematiche vengono riportate ed affrontate a grandi linee nei paragrafi che seguono, per poi essere trattate in modo esauriente nei capitoli successivi:
- CONTROLLO DEL CAVO IN ASSENZA DI CARICO;
- AGGANCIO DEL CARICO;
- CONTROLLO DEL CAVO IN PRESENZA DI CARICO;
- SPOSTAMENTO DELLA STRUTTURA LUNGO GLI ASSI;
- SGANCIO DEL CARICO IN SICUREZZA;
- OTTIMIZZAZIONE DEL SISTEMA.
CONTROLLO DEL CAVO IN ASSENZA DI CARICO
Appena viene avviato l’intero sistema vi è la necessità di resettare il sensore di lunghezza del cavo poiché il valore letto all’uscita del sensore “Cable Lenght” è inconsistente essendo tale sensore un encoder incrementale e pertanto fornisce in uscita un valore riferito alla posizione di partenza ossia quella assunta nel momento in cui viene alimentato il sistema (o avviata la simulazione).
Il compito di rendere attendibile il valore fornito dal sensore è affidato alla fase di reset (gestita dal “Cable Controller Reset” a sua volta comandato dalla macchina a stati denominata “Brain”) che verrà illustrata in dettaglio nel capitolo 7.
AGGANCIO DEL CARICO
Per agganciare il carico basta forzare a livello logico alto un ingresso del blocco “Crane”; possono allora verificarsi due condizioni:
- l’operazione va a buon fine, il carico ora è solidale al gancio;
- l’operazione si conclude con esito negativo e la simulazione termina visualizzando un messaggio d’errore.
- Le cause che possono far fallire l’aggancio sono molteplici: Il gancio può dal carico al più di 10 centimetri sugli assi X, Y e Z;
- L’angolo φ (vedi figura 1.1) sia inferiore a 0.004 radianti ;
- La derivata dell’angolo φ, ovvero la velocità con cui varia l’angolo, sia interiore a 0.003 radianti al secondo ;
- La velocità del cavo lungo l’asse Z sia, in valore assoluto, inferiore a 0.2 metri al secondo ;
Tutte queste condizioni verranno gestite dal “Cable Controller” comandato dalla macchina a stati “Brain”.
CONTROLLO DEL CAVO IN PRESENZA DI CARICO
Anche questa fase verrà governata dal blocco “Brain” e dal “Cable Controller”.
L’unico vincolo in tale fase sarà quello di non superare la soglia imposta sulla forza massima agente sulla struttura ovvero non causare brusche accelerazioni al carico per evitare di danneggiare la stessa struttura e bisognaricordare la forza massima che può erogare il motore del cavo che è pari a circa 200 KN.
Ovviamente devono essere rispettati i valori massimi della lunghezza del cavo 0 e 15 metri.
SPOSTAMENTO DELLA STRUTTURA LUNGO GLI ASSI
I due motori che comandano il ponte e il carrello permettono rispettivamente gli spostamenti lungo gli assi Y e X, vengono comandati dai rispettivi controllori “Trolley Controller” e “Bridge Controller” coordinati dal “Brain”. I vincoli da rispettare sono:
- Non superare su entrambi gli assi il valore di ±5 metri perché comporterebbe la fuori uscita dai binari del carro e del ponte o il danneggiamento della struttura;
- Evitare eccessive oscillazioni del gancio con o senza carico, l’angolo massimo φ da rispettare è fissato a 50 gradi.
SGANCIO DEL CARICO IN SICUREZZA
Questa è l’ultima fase che il sistema dovrà eseguire ovvero deporre il carico alla locazione identificata dalle costanti XF e YF, le condizioni da rispettare sono quelle imposte anche nella fase di aggancio del carico.
OTTIMIZZAZIONE DEL SISTEMA
L’indice di performance è funzione del tempo di simulazione (tempo impiegato dalla fase di reset escluso) e del costo totale dei componenti. La figura seguente mostra lo schema Simulink che calcola l’indice:
Figura 10 Interno del blocco che calcola indice di performance
Il blocco accetta sugli ingressi “OpTime” e “Cost” rispettivamente il tempo di simulazione e il costo totale dei componenti utilizzati e fornisce sull’uscita “Performance” l’indice di performance cosi calcolato:
Performance=OpTime+Cost * 40/50000
Il costo totale è pari a 33550 e pertanto per ogni secondo l’indice verrà incrementato di una unita partendo però da 26.84.
Per l’ottimizzazione del sistema si è perciò cercato prima di tutto e dove è stato fattibile usare componenti economici mantenendo però alto il grado di affidabilità del sistema; successivamente si è mirato a restringere quanto più possibile i tempi di durata di tutte le manovre.
Panoramica del sistema di controllo
La figura seguente mostra l’intero sistema di controllo e il simulatore di carro ponte:
Figura 11 Schema simulink del carro ponte e del sistema di controllo
Con riferimento alle figura precedente viene riportata in seguito una tabella che illustra in modo sintetico la funzione di ogni singolo blocco.
Analisi dei singoli blocchi
In questo paragrafo verranno analizzati in dettaglio alcuni dei blocchi utilizzati nel sistema di controllo, mentre ad altri sicuramente più complessi meriteranno interi capitoli. Questi blocchi sono:
- Cable Controller Reset
- Cable Controller
- Bridge Controller
- Trolley Controller
- Brain
Il blocco Processor Stima Massa
La funzione di tale blocco è quella di fornire direttamente al Cable Controller il valore della massa connessa al cavo; le variabili d’ingresso sono due: l’uscita del sensore cable load e il segnale di abilitazione fornita dal blocco Brain. Di seguito ne viene rappresentata l’implementazione.
Figura 12 Il blocco Processor Stima Massa
Figura 13 Interno del blocco Processor Stima Massa
Il sotto blocco Stima Carico è una macchina a stati, lo switch tra l’ingresso “Sensore di Carico” e quello “cableload” ha il compito di disconnettere fisicamente il sensore di carico dalla macchina a stati in modo da evitare l’elaborazione di dati non necessari e quindi accelerare leggermente la simulazione.
In principio si era pensato di fare più di una misura e successivamente la media, ma durante la fase di ottimizzazione si è deciso di abolire tale soluzione poiché si aveva un eccessivo e soprattutto non necessario spreco di tempo (3 secondi), infatti controllando in modo opportuno le oscillazioni e logicamente mantenendo attivo il freno, un’unica misura è sufficientemente precisa. Lo schema stateflow è raffigurato di seguito:
Figura 14 Schema Stateflow del blocco Stima Carico
All’accensione del sistema lo stato attivo è “Attesa” perciò alla variabile tmp2 le viene assegnato un valore pari a zero; la condizione per uscire da tale stato è che l’ingresso abilita sia compreso tra 0.5 e 1.5 entrando quindi nella stato “Inizio” dove le variabili tmp2 e tmp vengono forzate rispettivamente a uno e al valore presente sull’ingresso tempo che corrisponde al tempo di simulazione, si entrerà nello stato “Misura” dopo un tempo pari a 0.1 secondi, la variabile stima1 viene forzata al valore pari all’uscita del sensore cable load, dopo un’ulteriore decimo di secondo finalmente l’uscita del blocco corrisponderà al valore della massa connessa al cavo, si ritornerà allo stato attesa dopo un mezzo secondo in modo da poter effettuare una nuova misura.
Il blocco Processor XY
Funzione di questo blocco è quella di comunicare al Brain se il ponte e il carrello hanno concluso la loro corsa ovvero le loro oscillazioni attorno a una posizione di riferimento sono di modesta entità.
Il Processor XY è implementato da due blocchi chiamati Controlla X e Controlla Y, (anche se di nome diverso sono identici), il primo per il controllo delle oscillazioni del bridge e l’altro per le oscillazioni del trolley, i valori d’uscita (booleani) vengono moltiplicati tra loro in modo da avere un risultato vero solo e solo se entrambi i valori sono veri. Come è possibile vedere nella figura seguente il risultato della moltiplicazione rappresenta l’uscita dell’intero blocco Processor XY.
Figura 16 Implementazione del Processor XY
Figura 17 Implementazione del blocco Controlla X
Lo stato iniziale è “Attesa”, quando l’ingresso abilita sarà maggiore di 0.5, si entrerà nello stato “Inizializzazione” dove l’uscita verrà settata a zero, si uscirà da tale stato solo quando il valore assoluto della differenza del segnale riferimento e del segnale input sarà minore della costante ErrMax entrando nello stato “Attendi” dove si può uscire al verificarsi di una delle tre condizioni:
- il valore assoluto della differenza del segnale riferimento e del segnale input diventerà maggiore della costante ErrMax
- saranno trascorsi due secondi
- il segnale di reset diventa maggiore di 0.5.
Se verificata la condizione 1 si ritornerà allo stato “Inizializzazione”;
Se verificata la condizione 3 si ritornerà allo stato “Attesa”;
Se verificata la condizione 2 si passerà allo stato “Fine” dove la variabile Output viene settata a uno.
Qualora il segnale di reset diventerà maggiore di 0.5, si abiliterà lo stato “Attesa” qualsiasi sia quello attivo e allora il sistema sarà pronto per un altro controllo.
Non verrà descritto la macchina a stati Controlla Y poiché identica a quella appena illustrata.
I blocchi X Processor e Y Processor
I blocchi X Processor e Y Processor malto semplici nell’implementazione sono di fondamentale importanza per il controllo delle oscillazioni. Fanno uso del sensori che forniscono le coordinate di trolley e bridge e del sensore di visione artificiale Load Position Camera che fornisce le coordinate del gancio.
Figura 18 Il blocco X Processor e il blocco Y Processor
Descrizione delle porte di I/O
Le figure seguenti mostrano l’implementazione dei due blocchi: