Progettazione di un sistema di controllo per un ROV sottomarino: preparazione del modello alla sintesi 2/4

Nella prima parte è stata presentata la fisica del problema. In questo post, verrà introdotto il modello in ambiente Simulink e preparato alla sintesi.

MODELLO IN SIMULINK

Il sistema complessivo si struttura in tre parti:

[*] Parte del processo che modella lo spostamento lungo x
[*] Parte del processo che modella lo spostamento lungo y
[*] Parte del processo che modella l’angolo di imbardata φ

In ingresso ai vari blocchi sono inseriti gli ingressi simbolici richiesti per la linearizzazione.

Il modello viene sollecitato con un ingresso costituito da

 

 

 

 

si indica con:

[*] T_{x} la componente lungo x della forza fornita dai propulsori
[*] T_{y} la componente lungo y della forza fornita dai propulsori
[*] M_{z} il momento dovuto all’ applicazione delle due forze T x , T y .

In uscita dal modello invece abbiamo un vettore con le posizioni e l’ angolo di imbardata

 

 

 

Dopo aver inserito i vari coefficienti all’interno del workspace di Matlab ordiniamo le tre equazioni, mettendo al primo membro i termini relativi alle accelerazioni (poiché corrispondono al grado di variazione più elevato: le altre variabili di grado inferiore si ottengono usando degli integratori).
Successivamente in Simulink si raggruppano i termini delle equazioni attraverso un unico blocco Funzione (con uno o più ingressi) e si divide in tre sottosistemi le parti corrispondenti alla modellazione di x, y e φ . Infine, per rendere lo schema più comprensibile etichettiamo le varie parti con dei nomi significativi.

Il risultato finale è il seguente:

VERIFICA DELLE PRESTAZIONI A CICLO APERTO

Prima di procedere con la sintesi del controllore riportiamo una breve analisi del comportamento del sistema a ciclo aperto.

Mandando il sistema in evoluzione libera otteniamo la seguente risposta per la variabile x:

Questa dinamica è dovuta dalla contrapposizione della forza della corrente, e quella di trazione del cavo (paragonabile ad una forza elastica) che, dopo il transitorio, si stabilizza ad un certo valore e oscilla in un suo intorno.

Di seguito viene riportata l’evoluzione libera della variabile φ :

Qui si vede che l’angolo diverge. Questa risposta è causata da un errore di modellazione sul parametro p_{9} (rappresentante il momento torcente M_{c}); dato che, è pari ad una costante(invece che essere in funzione dell’angolo di torsione del cavo, ad esempio) allora tende a far ruotare il Rov, non tenendo conto dell’attorcigliamento del cavo stesso.

Possiamo concludere che le variabii:
[*] X e Y sono stabili.
[*] \phi diverge.

LINEARIZZAZIONE

La linearizzazione è una fase importante per lo studio di sistemi non lineari come quello in questione. In effetti per poter effettuare la sintesi di un controllore, bisogna attuare questa tecnica per ricavare il sistema lineare dal sistema non lineare. Per poter linearizzare un modello non lineare occorre scegliere un punto di equilibrio intorno al quale si definisce una funzione implicita. La funzione non lineare ha la seguente forma:

Siccome non possiamo scindere le variabili di stato e ingresso occorre portare la funzione in un’altra forma utilizzando un vettore degli stati di equilibrio e un vettore degli ingressi di equilibrio:

I vettori scelti sono i seguenti:

Infine il sistema ottenuto è del tipo:

in cui

sono matrici di dimensioni nxn, nxm.

Testiamo se il sistema è stato linearizzato correttamente inserendo come ingresso al sistema non linearizzato tre blocchi costanti con valori u_{e1} ,u_{e2} e u_{e3} e i valori di x_{e} come condizioni iniziali degli integratori. Gli scope restituiscono i seguenti grafici:

Analizzando i risultati ottenuti si può verificare l’ottimalità della scelta dei valori, in quanto, il sistema, dato l’ingresso calcolato, si mantiene sullo stato di equilibrio.
Fissato il punto di equilibrio e trovato l’ingresso da applicare, inseriamo in ambiente matlab tale punto, richiamando le matrici A,B,C,D tramite il comando linmod. Di seguito sono riportate le matrici restituite:

PASSAGGIO MIMO/SISO

Per effettuare una sintesi per tentativi di un processo MIMO ci si riconduce a più processi di tipo SISO, ciò è possibile se il sistema di partenza rispetta la condizione di dominanza diagonale.

Prelevate le matrici dello spazio di stato A, B, C e D si costruisce la funzione di trasferimento ingresso-uscita del processo in forma matriciale 3×3.
La matrice di trasferimento è composta da sei funzioni di trasferimento sulla quale verifichiamo la condizione di dominanza diagonale al fine di rendere trascurabile la dipendenza di ciascuna variabile dalle altre.
Un metodo pratico per verificare la dipendenza diagonale delle funzioni, è basato sul confronto del modulo delle funzione sulla diagonale, con le altre funzioni presenti sulla medesima riga.
Se il modulo delle funzioni extradiagonali, è minore del modulo della funzione sulla diagonale allora la dipendenza diagonale è verificata.

Schermata 2016-02-14 alle 19.46.26

Si è riportato solamente i grafici delle funzioni relative agli spostamenti xy e non quello relativo alla variabile \phi poichè quest’ultima è totalmente disaccoppiata e non dipende dalle due funzioni. Come possiamo vedere la dominanza diagonale è verificata. I moduli delle funzioni sulla diagonale risultano maggiori dei moduli delle funzioni della relativa riga.

Non ci resta che effettuare la sintesi dei controllori, la quale verrà affrontata nella parte 3.

Se ti sei perso la prima parte clicca qui

 

 

Francesco Celiberti

Ciao a tutti,


mi chiamo Francesco, sono laureato in Ing. Informatica e dell’Automazione. Sono attualmente coinvolto in un progetto di ricerca Europeo, MOTORIST. www.motorist-ptw.eu


Tags: ,
By Francesco Celiberti | novembre 30th, 2011 | SHOW COMMENTS (6)

6 Responses

  1. Michelangelo says

    Ciao Francesco,

    sono anch’io uno studente di ing. dell’automazione. Sono molto interessato al progetto che avete sviluppato sul rov in quanto sto cercando anch’io di realizzare una simulazione del controllo di un rov tramite controllori PID. Ci sarebbero problemi per te se mi mandassi il modello dinamico del rov con l’anello di controllo fatto in simulink?

  2. Progettazione di un sistema di controllo per un ROV sottomarino: sintesi dei controllori 3A/4 | Automazione Open Source says

    […] parte precedente è stato introdotto il modello matematico in ambiente Simulink. Tuttavia a causa della non […]

  3. Francesco Celiberti
    fra_celi says

    Ciao Michele,

    Il sistema di controllo del ROV nel complesso si compone di due parti indipendenti:

    -una che controlla la profondità
    -l’altra che controlla posizione e orientazione sul piano

    il modello matematico presentato e sul quale abbiamo effettuato la sintesi dei controllori, si occupa della seconda parte, ovvero rappresenta il sistema fisico nel piano x-y

    Nel modello inoltre, sono state trascurate le oscillazioni intorno agli angoli di beccheggio e di rollio anche in presenza della corrente sottomarina, dato che il ROV considerato ha una massa non indifferente, di conseguenza, durante le operazioni di traslazione e rotazione si considera il ROV stabile ad una quota z prefissata.

    Per ciò che riguardano le supefici, nel modello compaiono dei coefficienti Cd Cr, rispettivamente, coefficiente di trascinamento e coefficiente di packing; quest’ultimo dipende dalle caratteristiche geometriche della parete laterale, pertanto in questo caso non si prendono in considerazione di portanza/deportanza.

    A breve uscirà la terza parte, in cui verranno sintetizzati i controllori per la traslazione e la rotazione del ROV.

    • Michele Brami says

      Ottimo, davvero!
      Mi sembra un approccio molto metodico e preciso… non vedo l’ora di conoscere il resto!

  4. Michele Brami says

    Wow! Interessante!!! Una osservazione: è stato considerato il ROV in perfetto equilibrio tra peso e spinta idrostatica oppure si è tenuto conto della spinta verticale in funzione della profondità? E’ stata valutata anche la portanza/deportanza delle superfici? Oppure si prevede un modello di regolazione della quota indipendente dalle cause di variazione?