Il blocco BRAIN

Introduzione

Il blocco Brain, come suggerisce il nome, è il vero e proprio cervello che gestisce e coordina tutte le fasi, compresa quella di reset.

E’ una macchina a stati implementato tramite stateflow, altro tool di Matlab. Nella pratica potrebbe essere concretizzato tramite PLC , microprocessore, oppure, con una certa dose di pazienza, tramite porte logiche.

Figura 64 Il blocco BRAIN

Tabella11

Tabella12

Panoramica del blocco Brain

Come visibile nella figura seguente, il blocco Brain è composto da 5 superstati per migliorare la modularità e quindi la leggibilità dello schema:

Figura 65 Schema stateflow del blocco Brain

I 5 superstati coincidono con le 5 manovre da eseguire:

  1. fase di reset;
  2. primo posizionamento del gancio e quindi del carro e del ponte nelle coordinate di carico YS e XS dove si trova il carico da sollevare;
  3. fase di prelievo vale a dire aggancio e sollevamento del carico;
  4. posizionamento del carico e quindi del carro e del ponte nelle coordinate di carico YF e XF che corrisponde alla locazione dove dovrà essere depositato il carico;
  5. deposizione del carico ossia fase conclusiva in cui viene depositato il carico.

La fase di reset

Per la descrizione di questo superstato si farà riferimento alla figura 70.

Appena avviata la simulazione, lo stato attivo è “Inizializzazione”, l’ingresso in questo stato provocherà l’inizializzazione di alcune delle variabili d’uscita e quindi di alcuni dei controllori.

Figura 66 Implementazione del superstato "Reset"

Prima di tutto assegnando alle variabili “stimacarico” e “freno” un valore pari a 1 viene eseguita la stima del peso del gancio e attivato il sistema frenante, settando la variabile “switchM” a 2 il Cable motor sarà connesso al Cable Controller Reset mentre la variabile d’uscita errZ verrà resettata.

Si uscirà da tale stato dopo un tempo di quattro secondi; questo intervallo sufficientemente ampio è necessario al Cable Motor per terminare il suo transitorio.

Come già detto quando la variabile “tempo” supererà il valore di quattro secondi, lo stato attivo diventerà Avvia_Reset e quindi verrà disinserito il freno e disabilitato il Processor Stima Massa; in tale situazione il gancio inizierà la sua salita a velocità pressoché costante, l’unica condizione che permette l’uscita da questo stato è che il gancio salendo arrivi al finecorsa e quindi la variabile “cableup” transisce a uno.

Si entrerà allora nella stato Fine_Corsa dove la variabile locale “tmpL” verrà posta uguale alla lunghezza (ancora inconsistente) del cavo in quell’ istante e si proverà ad attivare il sistema frenante (che entrerà in funzione solo quando la velocità del cavo scenda al di sotto di 0.01 m/s) per tutto il tempo in cui questo stato sarà attivo.

Quando il freno sarà attivo, la variabile “frenato” varrà uno, abilitando la rispettiva transizione e di conseguenza il nuovo stato attivo diverrà Fine_Reset.

All’ingresso in questo la variabile “errZ” rappresenterà la distanza dalla sommità della struttura al punto in cui si è fermato il gancio.

La somma di tale variabile sommata con misura fornita del sensore cable length rappresenterà il valore, in questo caso corretto, della lunghezza di rotolamento del cavo.

Successivamente ponendo la variabile “reset” uguale a uno verrà resettato il sensore di lunghezza.

Trascorso un secondo lo stato “Fine_Reset” terminerà la sua attività.

All’uscita dello stato “Fine_Reset” infine si abiliterà il Cable Controller Reset, si connetterà fisicamente quest’ultimo col cable motore e verrà abilitato il blocco Processor XY .

La fase di primo posizionamento

Una volta terminata la fase di reset, trolley e bridge dovranno essere posizionati nella posizione di prelievo del carico identificata dai valori assunti rispettivamente dalle costanti YS e XS; a coordinare questa operazione provvederà il superstato “Posizionamento1” la cui implementazione è mostrata di seguito.

Figura 67 Implementazione del superstato "Posizionamento1"

E’ composto da due soli sottostati “Posizionamento_Prelievo” e “In_Posizione_Prelievo” la cui funzione rispettivamente è comunicare al Trolley Controller e al Bridge Controller le coordinate in cui posizionare il carrello e il ponte e abilitare il Cable Controller trasmettendogli la posizione in cui dovrà fermarsi il gancio.

Si entrerà nello stato “Posizionamento_Prelievo” un secondo dopo aver concluso la fase di reset; si uscirà invece dallo stato solo la variabile d’ingresso “ControllaXY” è maggiore di 0.5 vale a dire quando l’errore sulle posizioni di Trolley e Bridge è inferiore a 0.3 metri.

La variabile “ControllaXY” è identica all’uscita “In posizione” del blocco “Processor XY” che vale uno quando le posizioni di trolley e bridge restano per almeno due secondi nel range definito da ±XYL_tolerance intorno alle rispettive posizioni di riferimento.

Figura 68 Settaggio delle porte del blocco Processor XY

Quando diverrà attivo lo stato “In_Posizione_Prelievo” il Cable Controller viene abilitato e successivamente connesso al Cable Motor,mentre il blocco Processor XY verrà prima resettato e poi disabilitato in modo da renderlo, al momento opportuno, disponibile per altre misure.

L’attività dello stato “In_Posizione_Prelievo” terminerà un secondo dopo l’ingresso nello stesso stato.

La fase di prelievo

In questa fase il gancio giungerà precisamente sul carico che verrà prima agganciato e successivamente sollevato a una quota sicuramente superiore a 11 metri e frenato (è proprio questa la condizione che provocherà l’uscita dal superstato.

Figura 69 Implementazione del superstato "Fase_di_Prelievo"

Il primo sottostato “Scendi_Gancio” determinerà il disinserimento del sistema frenante e quindi la discesa del gancio fino alla sommità del carico. Una volta frenato il gancio e le oscillazioni dello stesso sono in modulo minori di 0.1 si attende per 7 secondi; questo intervallo è necessario per permettere alla velocità delle oscillazioni di scendere al di sotto di 0.003 radianti al secondo.

Un’altra soluzione possibile poteva essere il diretto controllo della velocità delle oscillazioni mediante l’uso del sensore Load Position Phi (che però ha costo pari a 2500) abbandonata in fase di ottimizzazione perché peggiorava l’indice di performance di circa una unità. Infatti l’uscita di questo sensore è a tempo discreto e affetta da disturbi quindi l’operazione di derivazione è risultata sufficientemente precisa causava un’attesa molto maggiore dei 7 secondi necessari alla quasi totale scomparsa delle oscillazioni.

Trascorso questo intervallo di tempo, il carico verrà agganciato e in queste condizioni sarà leggermente sollevato da terra quindi, abilitando il blocco “Processor Stima Massa”, è possibili conoscere il peso del gancio sommato al peso del carico. Dopo un’attesa di ulteriori 0.3 secondi (tempo necessario al “Processor Stima Massa“ per portare a termine il suo compito) si inizierà la salita fino a 3.5 metri dalla sommità della struttura e successivamente, quando possibile, verrà attivato il freno che una volta avvenuto l’inserimento sarà abilitata la relativa transizione provocando l’uscita dal superstato “Fase_di_Prelievo”.

La fase di secondo posizionamento

Una volta sollevato il carico a una quota superiore a 9 metri, trolley e bridge dovranno essere posizionati nella posizione di deposito del carico identificata dai valori assunti rispettivamente dalle costanti YF e XF e successivamente far scendere il cavo; a coordinare questa operazione provvederà il superstato “Posizionamento2” la cui implementazione è mostrata di seguito.

Figura 70 Implementazione del superstato "Posizionamento2"

E’ composto da due soli sottostati “Sposta_XY_Finali” e “In_Posizione_Scarico” la cui funzione rispettivamente è comunicare al Trolley Controller e al Bridge Controller le coordinate in cui posizionare il carrello e il ponte e abilitare il Cable Controller trasmettendogli la posizione in cui dovrà fermarsi il gancio.

Non appena entrerà in funzione il sistema frenante si entrerà nello stato “Sposta_XY_Finali” in cui come già detto verranno comunicate le nuove coordinate ai controllori per carrello e ponte e abilitato il blocco “Processor XY”;

Si entrerà nello stato “In_Posizione_Scarico” non appena la variabile d’ingresso “ControllaXY” è maggiore di 0.5 vale a dire quando l’errore sulle posizioni di Trolley e Bridge è inferiore a 0.3 metri.

Quando diverrà attivo lo stato “In_Posizione_Scarico” verrà comunicata la nuova posizione al Cable Controller e successivamente disinserito il freno per permettere la discesa.

L’attività dello stato “In_Posizione_Prelievo” terminerà quando la lunghezza del cavo sarà maggiore o uguale a 14.95 metri ossia il carico si trova a 5 millimetri del suolo.

La fase di deposito

La fase conclusiva è quello di deposizione del carico in totale sicurezza e senza bruschi urti col terreno e con oscillazioni controllate. Il superstato permette quanto appena detto. Di seguito ne viene mostrata l’implementazione:

Figura 71 Implementazione del superstato "Fase_di_Deposito"

Non appena la lunghezza del cavo supera i 14.95 metri verrà attivato il sistema frenante e una volta attivo si entrerà in uno stato di attesa che resterà attivo fino al momento in cui l’errore sulle coordinate X e Y del carico sia in modulo inferiore a 0.1 metri.

Come verrà mostrato in seguito in queste condizioni si ha la matematica certezza che la velocità e l’entità delle oscillazioni sono entro i limiti imposti.

Se l’operazione di deposizione del carico avverrà correttamente nella schermata principale di Matlab verrà visualizzato il seguente messaggio:

Messaggio visualizzato in matLab