- userLoginStatus
Welcome
Our website is made possible by displaying online advertisements to our visitors.
Please disable your ad blocker to continue.
Mathematical Engineering - Fondamenti di Automatica
Lab 3 - Soluzione Ecercizi
Laboratory
Esercitazione di laboratorio del 31-5-2011 Esercizio 1: Legge di controllo e ricostruzione dello stato; progetto del regolatore Innanzitutto occorre definire il sistema in spazio di stato nel workspace di matlab (vedi esercitazione 1); pertanto i comandi da digitare nel prompt sono i seguenti: A=[2 1 -1; -3 -2 -1; -1 1 -4]; b=[1 0 1] '; c=[0 0 1]; d=0; % definizione matrici del sistema a) Valutando gli autovalori della matrice A autoval=eig(A) autoval = 1.5616 -2.5616 -3.0000 si può notare che hanno modulo superiore a 1 così che il sistema risulta instabile. b) Affinché il sistema sia stabilizzabile mediante un regolatore lineare composto da legge di controllo k e ricostruttore dello stato l, occorre che questo sia completamente raggiungibile e completamente osservabile. I comandi matlab ctrb() e obsv() restituiscono, rispettivamente, le matrici di raggiungibilità e di osservabilità. R=ctrb(A,b); % matrice di raggiungibilità det_R=det(R) det_R = 12 % completa raggiungibilità O=obsv(A,c); % matrice di raggiungibilità det_O=det(O) det_O = 8 % completa osservabilità Poiché le matrici di raggiungibilità e di osservabilità hanno determinante non nullo, il sistema è, rispettivamente, completamente raggiungibile e osservabile. Pertanto, il sistema è stabilizzabile mediante un regolatore lineare e la dinamica del sistema regolato è fissabile ad arbitrio. In particolare, sarà possibile determinare una legge di controllo k e un ricostruttore dello stato l tale che tutti i transitori di annullino in tempo finito. c) Progetto della legge di controllo k. Per progettare una retroazione dello stato che assegni gli autovalori come chiesti (tutti nulli) si può utilizzare la formula di Ackermann e il comando matlab acker(). (digitare help acker per una discussione dettagliata sull’uso del comando; in particolare, il comando fa riferimento a una legge di controllo u = – kx così che, nell’uso del comando, il vettore b andrà sostituito con il vettore – b). autovalori=[0 0 0]; così come l’apertura delle paratie. Al prompt del matlab dichiariamo alcuni parametri che vengono utilizzati dallo schema simulink: >> clear all; close all; >> kalserio=5/(1.9*365); % costante di deflusso Alserio >> ksegrino=5/(0.8*365); % costante di deflusso Segrino >> kpusiano=139752/(12.7*10^6); % costante di deflusso Pusiano % non regolato >> kparatie=0; % apertura delle paratie Simulando lo schema, si ottiene che la portata del Lambro (>> portata_Lambro) è pari a 2.1633 m 3 secondo -1 = 186910 m 3 giorno -1 = ALSERIO PUSIANO y y mentre il volume del lago di Pusiano (>> volume_Pusiano) è pari a 12,7 milioni di m 3. Questi valori sono inferiori ai valori di esondazione del lago e massima portata del Lambro. Supponendo ora che sul lago di Pusiano insista un evento di pioggia pari a 150 mm/giorno e della durata di 10 giorni, è necessario sottoporre il sistema Pusiano a un impulso di durata finita (10 giorni) e ampiezza 1 3 6 giorni m 825000 10 5 . 5 150 . 0 ˜ ˜ .