SlideShare a Scribd company logo
1 of 11
Download to read offline
UNIVERSITA' DEGLI STUDI
DELL'AQUILA
CORSO DI LAUREA MAGISTRALE IN
INGEGNERIA INFORMATICA -
AUTOMATICA
Esercitazione
“Invarianza di un
politopo”
Studenti:
Luca Finocchio mat. 216082
Vittoriano Muttillo mat. 214248
1. INTRODUZIONE
Scopo della esercitazione è la realizzazione di un piccolo script MATLAB, che, dati in
ingresso due matrici , caratterizzanti un sistema lineare a tempo discreto, e i
vertici di un politopo, restituisca una matrice tale che esista una legge di controllo
per la quale il politopo risulti tempo invariante per il sistema dinamico a ciclo chiuso
oppure una segnalazione di non esistenza della soluzione.
Al problema sarà data in primis una soluzione teorica, alla quale, poi, seguirà
l’implementazione in MATLAB.
PROBLEMA
Dato un sistema lineare a tempo discreto descritto delle seguenti equazioni.
( ) ( ) ( )
( ) ( )
con e e dato un politopo , descritto attraverso i suoi
vertici, determinare, se esiste, una legge di controllo
( ) ( )
tale che il politopo risulta invariante per il sistema dinamico a ciclo chiuso, cioè tale
che
( )
2. SOLUZIONE TEORICA
Il sistema preso in considerazione nel testo del problema ( ) ( ) ( )
è un sistema lineare a tempo discreto in cui , , ( ) e
( ) .
Esso è soggetto a retroazione di stato ( ) ( ) dove la è la matrice di
retroazione dello stato. Il sistema a ciclo chiuso sarà quindi descritto dalla seguente
equazione:
( ) ( ) ( ) ( ) ( )
Dalla teoria, ricordiamo che il problema di stabilizzazione via retroazione dello stato
è risolubile se la coppia (A, B) è stabilizzabile, cioè se essa è completamente
raggiungibile oppure se eventuali autovalori non raggiungibili hanno parte reale
negativa.
Inoltre è utile sottolineare che “Se il sistema considerato non è stabilizzabile e il
politopo ha interno, esso non potrà essere reso invariante (a meno di politopi
speciali)”
Detto ciò definiamo ( ) la matrice dei vertici di un generico
politopo .
Il problema consiste nel calcolare (se esiste) tale che ( ) ( ) .
E’ possibile dimostrare che se la condizione precedente è vera per , è vera
sempre. Infatti:
Dunque ciò che vogliamo dimostrare è che
( )
Chiamiamo ̂ ( ) e riscriviamo il problema nella forma
̂ ( )
In generale, sappiamo che ogni punto del politopo può essere scritto come
combinazione convessa dei vertici del politopo, cioè , dove ,
( ), .
Procediamo quindi riscrivendo la condizione (1) in termini di vertici per il politopo:
̂ ( )
dove ( ) ( ) entrambe con dimensione e valgono le seguenti
condizioni:


 ∑
 ∑
Visto che la condizione (2) è vera per tutti i punti del politopo, è certamente vero
per ogni vertice. Grazie a questa precisazione possiamo scrivere la condizione (2) per
ogni vertice:
̂
dove valgono:

 ∑
Le condizioni da scrivere son quindi tante quanti sono i vertici del politopo.
A questo punto, vogliamo riportare il problema iniziale ad un problema di
programmazione lineare, in modo da poter utilizzare la funzione lineprog di
MATLAB. Per far ciò tutte le precedenti equazioni e disequazioni saranno
manipolate in modo appropriato, al fine di poter utilizzare la funzione sopracitata.
Partiamo da
( )
Che è un’equazione nelle incognite e .
Chiamiamo ottenendo il seguente sistema:
{ ( )
Controlliamo se il sistema (3) è robusto dal punto di vista dimensionale:
 ⇒
 ⇒
 ⇒
Estendendo la prima equazione del sistema (3) per ogni j otteniamo:
{
Riscrivendo il tutto in forma matriciale otteniamo invece:
( ) ( ) ( ) ( ) ( ) ( )
Che riscritta in forma compatta, assume la seguente forma:
̅ ̅ ̅ ̂
oppure alternativamente
(̅| ̅) ( ) ̅ ̂ ( )
Dalla seconda equazione del sistema (3) andando a trasporre otteniamo:
( )
dove , e
Definendo con la i-esima colonna di possiamo scrivere in forma estesa:
{
( )
( )
( )
con scalare.
Riscrivendo il tutto in forma matriciale otteniamo:
(
( )
( )
( ) )
( )
( )
oppure in forma compatta:
̅̅̅ ̅
dove ̅̅̅ , ̅ ,
Espandendolo ancora solo per elementi si ottiene:
{
̅̅̅ ̅
̅̅̅ ̅
̅̅̅ ̅
oppure
(
̅̅̅
̅̅̅
̅̅̅
) ̅ ( )
In forma compatta
̃ ̅
̃̅ ( )
Arrivati a questo punto possiamo definire il vettore delle variabili di ottimizzazione:
(
̅
)
e possiamo riportare le equazioni precedenti in termini di z:
dalla (4) segue
( ̅| ̅| ) (
̅
) ̅ ̂
dalla (5) segue
( | | ̃) (
̅
)
Da ⇒ segue
( | | ) (
̅
)
Dopo aver definito il vettore ̅ ( ) di dimensione da ∑ segue
( | | ) (
̅
)
dove (
̅
̅
̅
) ( )
Siamo finalmente giunti al punto nel quale possiamo riformulare in problema iniziale
come un problema di programmazione lineare:
( | | | )
s.t.
(
̅ ̅
̃ ) (
̅ ̂
)
( | | )
Definiamo:
 (
̅ ̅
̃ ) come
 (
̅ ̂
) come
 ( | | ) come ,
 come
E riscriviamo il problema come:
( | | | )
s.t.
3. IMPLEMETAZIONE SCRIPT
Di seguito sono riportati il codice relativo allo script ed il relativo output. Per
l’esempio sono state usate le seguenti matrici:
 ( )
 ( )
 ( )
e come politopo è stato scelto un rombo centrato nell’origine degli assi.
3.1 CODICE
clear all;
close all;
clc;
%es1
%A = [2 0; 2 -1];
%B = [1 1 ; 1 1];
%Q = [[1;0] [0;1] [-1;0] [0;-1]];
%x0=[0;0.5];
%es2
A = [-0.5 0; 3 -0.7];
B = [1 1 ; 1 0];
Q = [[-1;-1] [-2;0] [-1;1] [1;1] [2;0] [1;-1]];
x0=[0;0.5];
%es.3
%A = [-1 -2; 0 -1];
%B = [1; 1];
%Q = [[-1;-1] [-1;1] [1;1] [1;-1]];
%x0=[0;0.4];
% Definizione delle matrici che caratterizzano il sistema
disp('La matrice A è: ');
disp(A);
n = size(A,1);
disp('La matrice B è: ');
disp(B);
m = size(B,2);
C = [1 1];
% Definizione del politopo tramite i suoi vertici
% In questo esempio verrà scelto un rombo
r = size(Q,2);
% Calcoliamo gli autovalori della matrice A per vedere se il sistema è
% asintoticamente stabile
av_A = eig(A);
disp('Gli autovalori di A sono: ');
disp(av_A);
if sum(abs(av_A)<1) == length(av_A)
disp('Il sistema è asintoticamente stabile') ;
disp(' ');
else
disp('Il sistema non è asintoticamente stabile');
disp(' ');
end
% Controlliamo ora la controllabilità del sistema
S = ctrb(A,B);
rs = rank(S);
if rs == n
disp('Il sistema è controllabile');
disp(' ');
else
disp('Il sistema non è controllabile');
disp(' ');
[Abar,Bbar,Cbar,T,k] = ctrbf(A,B,C);
NC = Abar(1:n-rs, 1:n-rs);
av_NC = eig(NC);
av_A = eig(A);
if sum(abs(av_NC)<1) == length(av_NC)
disp('ma è stabilizzabile');
disp(' ');
else
disp('e non è stabilizzabile');
disp(' ');
end
end
% Calcoliamo le matrici necessarie alla risoluzione del problema di
% programmazione lineare
A_barrato = [];
B_barrato = [];
V_barrato = [];
V_cappuccio = [];
V_tilde = [];
V_trasp = cell(1,r);
K = [];
uno_segnato = ones(1,r);
b = uno_segnato';
for i=1:r
A_barrato = blkdiag(A_barrato, A);
B_barrato = blkdiag(B_barrato, B);
V_barrato = blkdiag(V_barrato, Q);
V_cappuccio = [V_cappuccio;Q(:,i)];
end
for i=1:r
for j=1:m
V_trasp{i} = blkdiag(V_trasp{i},Q(:,i)');
end
V_tilde = [V_tilde; V_trasp{i}];
end
for i=1:r
K = blkdiag(K, uno_segnato);
end
% Calcoliamo le matrici che controllano le condizioni di uguaglianza e
% disuguaglianza del problema di programmazione lineare
Aeq = [-V_barrato B_barrato zeros(size(V_barrato,1),size(V_tilde,2));
zeros(size(V_tilde,1),size(V_barrato,2)) -eye(r*m) V_tilde;
K zeros(r,r*m) zeros(r,n*m)];
beq = [-A_barrato*V_cappuccio;
zeros(r*m,1);
b];
Adiseq = [-eye(r^2) zeros(r^2,r*m) zeros(r^2,n*m)];
bdiseq = zeros(r^2,1);
f = [zeros(1,r^2) zeros(1,r*m) ones(1,n*m)]';
% Calcoliamo la soluzione al problema di programmazione lineare
[z,fval,exitflag] = linprog(f, Adiseq, bdiseq, Aeq, beq);
% Estraiamo F dalla soluzione
F = [];
F_tmp = z(r^2+r*m+1:end);
if m == 1
F = F_tmp';
else
for i=1:n:n*m
F = [F;F_tmp(i:i+n-1,1)'];
end
end
disp(' ');
disp('La matrice di retroazione dello stato F è: ');
disp(F);
disp('Gli autovalori della matrice A+BF sono: ');
disp(eig(A+B*F));
x=[Q(1:n:r*n) Q(1)];
y=[Q(2:n:r*n) Q(2)];
N=30;
xk=x0;
for i=1:N
xk_tmp(i,:) = xk';
xk = (A+(B*F))*xk;
end
plot(x,y,xk_tmp(:,1),xk_tmp(:,2));

More Related Content

What's hot

Fondamenti di algebra lineare, parte 2: sistemi lineari, autovalori e autovet...
Fondamenti di algebra lineare, parte 2: sistemi lineari, autovalori e autovet...Fondamenti di algebra lineare, parte 2: sistemi lineari, autovalori e autovet...
Fondamenti di algebra lineare, parte 2: sistemi lineari, autovalori e autovet...Nicola Iantomasi
 
Schema Risolutivo Delle Serie
Schema Risolutivo Delle SerieSchema Risolutivo Delle Serie
Schema Risolutivo Delle SerieDinoIT
 
Problemi np con esempio
Problemi np con esempioProblemi np con esempio
Problemi np con esempioRice Cipriani
 
Disequazioni [teoria ed esericizi][santi caltabiano]
Disequazioni [teoria ed esericizi][santi caltabiano]Disequazioni [teoria ed esericizi][santi caltabiano]
Disequazioni [teoria ed esericizi][santi caltabiano]santi caltabiano
 
Continuità e derivabilità di una funzione.
Continuità e derivabilità di una funzione.Continuità e derivabilità di una funzione.
Continuità e derivabilità di una funzione.Luigi Pasini
 
Rango di una matrice e teorema di rouche capelli
Rango di una matrice e teorema di rouche capelliRango di una matrice e teorema di rouche capelli
Rango di una matrice e teorema di rouche capelliNicola Iantomasi
 
Joseph louis lagrange
Joseph louis lagrangeJoseph louis lagrange
Joseph louis lagrangeIrisXhindole
 
An Optimal Algorithm for On-Line Bipartite Matching
An Optimal Algorithm for On-Line Bipartite MatchingAn Optimal Algorithm for On-Line Bipartite Matching
An Optimal Algorithm for On-Line Bipartite MatchingTiziana Spata
 
Appunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplessoAppunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplessoprofman
 
Pichierri Natalia SVM Classification
Pichierri Natalia SVM ClassificationPichierri Natalia SVM Classification
Pichierri Natalia SVM ClassificationNatalia Pichierri
 

What's hot (20)

Fondamenti di algebra lineare, parte 2: sistemi lineari, autovalori e autovet...
Fondamenti di algebra lineare, parte 2: sistemi lineari, autovalori e autovet...Fondamenti di algebra lineare, parte 2: sistemi lineari, autovalori e autovet...
Fondamenti di algebra lineare, parte 2: sistemi lineari, autovalori e autovet...
 
Schema Risolutivo Delle Serie
Schema Risolutivo Delle SerieSchema Risolutivo Delle Serie
Schema Risolutivo Delle Serie
 
Problemi np con esempio
Problemi np con esempioProblemi np con esempio
Problemi np con esempio
 
IC2008 Calcolo Dei Predicati
IC2008 Calcolo Dei PredicatiIC2008 Calcolo Dei Predicati
IC2008 Calcolo Dei Predicati
 
Asintoti
AsintotiAsintoti
Asintoti
 
Disequazioni [teoria ed esericizi][santi caltabiano]
Disequazioni [teoria ed esericizi][santi caltabiano]Disequazioni [teoria ed esericizi][santi caltabiano]
Disequazioni [teoria ed esericizi][santi caltabiano]
 
tesi
tesitesi
tesi
 
Integrale definito
Integrale definitoIntegrale definito
Integrale definito
 
Integrali definiti
Integrali definitiIntegrali definiti
Integrali definiti
 
Asintoti
AsintotiAsintoti
Asintoti
 
Continuità e derivabilità di una funzione.
Continuità e derivabilità di una funzione.Continuità e derivabilità di una funzione.
Continuità e derivabilità di una funzione.
 
nicolettibell
nicolettibellnicolettibell
nicolettibell
 
Fg esercizi 4
Fg esercizi 4Fg esercizi 4
Fg esercizi 4
 
Rango di una matrice e teorema di rouche capelli
Rango di una matrice e teorema di rouche capelliRango di una matrice e teorema di rouche capelli
Rango di una matrice e teorema di rouche capelli
 
Joseph louis lagrange
Joseph louis lagrangeJoseph louis lagrange
Joseph louis lagrange
 
An Optimal Algorithm for On-Line Bipartite Matching
An Optimal Algorithm for On-Line Bipartite MatchingAn Optimal Algorithm for On-Line Bipartite Matching
An Optimal Algorithm for On-Line Bipartite Matching
 
Appunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplessoAppunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplesso
 
Flessi
FlessiFlessi
Flessi
 
Derivate
DerivateDerivate
Derivate
 
Pichierri Natalia SVM Classification
Pichierri Natalia SVM ClassificationPichierri Natalia SVM Classification
Pichierri Natalia SVM Classification
 

Similar to Invarianza di un politopo

Umano vs Computer: un esempio pratico
Umano vs Computer: un esempio praticoUmano vs Computer: un esempio pratico
Umano vs Computer: un esempio praticoFrancesco Sblendorio
 
Simulation and analysis of a linear system in MATLAB
Simulation and analysis of a linear system in MATLABSimulation and analysis of a linear system in MATLAB
Simulation and analysis of a linear system in MATLABAlessioSechi
 
Kinetic_Modeling_02_12_2016
Kinetic_Modeling_02_12_2016Kinetic_Modeling_02_12_2016
Kinetic_Modeling_02_12_2016Michele Scipioni
 
Automation Engineering: Solved Models - Raccolta di modelli risolti
Automation Engineering: Solved Models - Raccolta di modelli risoltiAutomation Engineering: Solved Models - Raccolta di modelli risolti
Automation Engineering: Solved Models - Raccolta di modelli risoltiAndrea Tino
 
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiAngela Cristina
 
Minimax regret solution to linear programming problems with an interval obje...
Minimax regret solution to linear programming problems with  an interval obje...Minimax regret solution to linear programming problems with  an interval obje...
Minimax regret solution to linear programming problems with an interval obje...NicolasTortora
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)STELITANO
 
Controllo ibrido forza/moto
Controllo ibrido forza/motoControllo ibrido forza/moto
Controllo ibrido forza/motoVladimirZitoli
 
Minimax regret solution to linear programming problems with an interval obje...
Minimax regret solution to linear programming problems with  an interval obje...Minimax regret solution to linear programming problems with  an interval obje...
Minimax regret solution to linear programming problems with an interval obje...NicolasTortora
 
Modellazione tramite geometria frattale
Modellazione tramite geometria frattaleModellazione tramite geometria frattale
Modellazione tramite geometria frattaleMassimiliano Leone
 
Minimiemassimi
MinimiemassimiMinimiemassimi
Minimiemassimialecellini
 
Presentazione Tesi Laurea 2010
Presentazione Tesi Laurea 2010Presentazione Tesi Laurea 2010
Presentazione Tesi Laurea 2010Alessio Polidoro
 
Disequazioni con valore assoluto
Disequazioni con valore assolutoDisequazioni con valore assoluto
Disequazioni con valore assolutocinziavettese
 
Appendice 1.2.1 geoanalitica equaz. disequazioni lineari
Appendice 1.2.1 geoanalitica  equaz.  disequazioni lineariAppendice 1.2.1 geoanalitica  equaz.  disequazioni lineari
Appendice 1.2.1 geoanalitica equaz. disequazioni lineariFulvia Baccarani
 
Appunti di Elaborazione automatica dei dati: matrici e matlab
Appunti di Elaborazione automatica dei dati: matrici e matlabAppunti di Elaborazione automatica dei dati: matrici e matlab
Appunti di Elaborazione automatica dei dati: matrici e matlabprofman
 

Similar to Invarianza di un politopo (20)

Umano vs Computer: un esempio pratico
Umano vs Computer: un esempio praticoUmano vs Computer: un esempio pratico
Umano vs Computer: un esempio pratico
 
Simulation and analysis of a linear system in MATLAB
Simulation and analysis of a linear system in MATLABSimulation and analysis of a linear system in MATLAB
Simulation and analysis of a linear system in MATLAB
 
Kinetic_Modeling_02_12_2016
Kinetic_Modeling_02_12_2016Kinetic_Modeling_02_12_2016
Kinetic_Modeling_02_12_2016
 
Automation Engineering: Solved Models - Raccolta di modelli risolti
Automation Engineering: Solved Models - Raccolta di modelli risoltiAutomation Engineering: Solved Models - Raccolta di modelli risolti
Automation Engineering: Solved Models - Raccolta di modelli risolti
 
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -Fondamenti
 
Minimax regret solution to linear programming problems with an interval obje...
Minimax regret solution to linear programming problems with  an interval obje...Minimax regret solution to linear programming problems with  an interval obje...
Minimax regret solution to linear programming problems with an interval obje...
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)
 
1.01 Algoritmi
1.01 Algoritmi1.01 Algoritmi
1.01 Algoritmi
 
Controllo ibrido forza/moto
Controllo ibrido forza/motoControllo ibrido forza/moto
Controllo ibrido forza/moto
 
Metodi numerici
Metodi numericiMetodi numerici
Metodi numerici
 
Sistemi
SistemiSistemi
Sistemi
 
Pres talia tesi_pdf
Pres talia tesi_pdfPres talia tesi_pdf
Pres talia tesi_pdf
 
Minimax regret solution to linear programming problems with an interval obje...
Minimax regret solution to linear programming problems with  an interval obje...Minimax regret solution to linear programming problems with  an interval obje...
Minimax regret solution to linear programming problems with an interval obje...
 
Modellazione tramite geometria frattale
Modellazione tramite geometria frattaleModellazione tramite geometria frattale
Modellazione tramite geometria frattale
 
Minimiemassimi
MinimiemassimiMinimiemassimi
Minimiemassimi
 
Robotic Arm Simulation
Robotic Arm SimulationRobotic Arm Simulation
Robotic Arm Simulation
 
Presentazione Tesi Laurea 2010
Presentazione Tesi Laurea 2010Presentazione Tesi Laurea 2010
Presentazione Tesi Laurea 2010
 
Disequazioni con valore assoluto
Disequazioni con valore assolutoDisequazioni con valore assoluto
Disequazioni con valore assoluto
 
Appendice 1.2.1 geoanalitica equaz. disequazioni lineari
Appendice 1.2.1 geoanalitica  equaz.  disequazioni lineariAppendice 1.2.1 geoanalitica  equaz.  disequazioni lineari
Appendice 1.2.1 geoanalitica equaz. disequazioni lineari
 
Appunti di Elaborazione automatica dei dati: matrici e matlab
Appunti di Elaborazione automatica dei dati: matrici e matlabAppunti di Elaborazione automatica dei dati: matrici e matlab
Appunti di Elaborazione automatica dei dati: matrici e matlab
 

More from Vittoriano Muttillo

AIPHS: AdaptIve Profiling Hardware Sub-system
AIPHS: AdaptIve Profiling Hardware Sub-systemAIPHS: AdaptIve Profiling Hardware Sub-system
AIPHS: AdaptIve Profiling Hardware Sub-systemVittoriano Muttillo
 
A-LOOP: AMP system: 2-cores ARM Cortex A9/Linux OS and 4-cores Leon3/Linux OS...
A-LOOP: AMP system: 2-cores ARM Cortex A9/Linux OS and 4-cores Leon3/Linux OS...A-LOOP: AMP system: 2-cores ARM Cortex A9/Linux OS and 4-cores Leon3/Linux OS...
A-LOOP: AMP system: 2-cores ARM Cortex A9/Linux OS and 4-cores Leon3/Linux OS...Vittoriano Muttillo
 
Progettazione e realizzazione di un sistema software per il time logging
Progettazione e realizzazione di un sistema software per il time loggingProgettazione e realizzazione di un sistema software per il time logging
Progettazione e realizzazione di un sistema software per il time loggingVittoriano Muttillo
 
Algoritmi per l'ottimizzazione convessa
Algoritmi per l'ottimizzazione convessaAlgoritmi per l'ottimizzazione convessa
Algoritmi per l'ottimizzazione convessaVittoriano Muttillo
 
Advances in gml for geospatial applications slide
Advances in gml for geospatial applications slideAdvances in gml for geospatial applications slide
Advances in gml for geospatial applications slideVittoriano Muttillo
 

More from Vittoriano Muttillo (6)

AIPHS: AdaptIve Profiling Hardware Sub-system
AIPHS: AdaptIve Profiling Hardware Sub-systemAIPHS: AdaptIve Profiling Hardware Sub-system
AIPHS: AdaptIve Profiling Hardware Sub-system
 
A-LOOP: AMP system: 2-cores ARM Cortex A9/Linux OS and 4-cores Leon3/Linux OS...
A-LOOP: AMP system: 2-cores ARM Cortex A9/Linux OS and 4-cores Leon3/Linux OS...A-LOOP: AMP system: 2-cores ARM Cortex A9/Linux OS and 4-cores Leon3/Linux OS...
A-LOOP: AMP system: 2-cores ARM Cortex A9/Linux OS and 4-cores Leon3/Linux OS...
 
Progettazione e realizzazione di un sistema software per il time logging
Progettazione e realizzazione di un sistema software per il time loggingProgettazione e realizzazione di un sistema software per il time logging
Progettazione e realizzazione di un sistema software per il time logging
 
Ieee 802.15.4e nel wirelessHART
Ieee 802.15.4e nel wirelessHARTIeee 802.15.4e nel wirelessHART
Ieee 802.15.4e nel wirelessHART
 
Algoritmi per l'ottimizzazione convessa
Algoritmi per l'ottimizzazione convessaAlgoritmi per l'ottimizzazione convessa
Algoritmi per l'ottimizzazione convessa
 
Advances in gml for geospatial applications slide
Advances in gml for geospatial applications slideAdvances in gml for geospatial applications slide
Advances in gml for geospatial applications slide
 

Recently uploaded

Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO SimoneGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO SimoneServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI GiovanniGiornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI GiovanniServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA GiorgioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA GiorgioServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO AntonioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO AntonioServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI DanieleGiornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI DanieleServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' DavideGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' DavideServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO AndreaGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO AndreaServizi a rete
 

Recently uploaded (7)

Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO SimoneGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI GiovanniGiornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA GiorgioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO AntonioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI DanieleGiornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' DavideGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO AndreaGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
 

Invarianza di un politopo

  • 1. UNIVERSITA' DEGLI STUDI DELL'AQUILA CORSO DI LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA - AUTOMATICA Esercitazione “Invarianza di un politopo” Studenti: Luca Finocchio mat. 216082 Vittoriano Muttillo mat. 214248
  • 2. 1. INTRODUZIONE Scopo della esercitazione è la realizzazione di un piccolo script MATLAB, che, dati in ingresso due matrici , caratterizzanti un sistema lineare a tempo discreto, e i vertici di un politopo, restituisca una matrice tale che esista una legge di controllo per la quale il politopo risulti tempo invariante per il sistema dinamico a ciclo chiuso oppure una segnalazione di non esistenza della soluzione. Al problema sarà data in primis una soluzione teorica, alla quale, poi, seguirà l’implementazione in MATLAB. PROBLEMA Dato un sistema lineare a tempo discreto descritto delle seguenti equazioni. ( ) ( ) ( ) ( ) ( ) con e e dato un politopo , descritto attraverso i suoi vertici, determinare, se esiste, una legge di controllo ( ) ( ) tale che il politopo risulta invariante per il sistema dinamico a ciclo chiuso, cioè tale che ( )
  • 3. 2. SOLUZIONE TEORICA Il sistema preso in considerazione nel testo del problema ( ) ( ) ( ) è un sistema lineare a tempo discreto in cui , , ( ) e ( ) . Esso è soggetto a retroazione di stato ( ) ( ) dove la è la matrice di retroazione dello stato. Il sistema a ciclo chiuso sarà quindi descritto dalla seguente equazione: ( ) ( ) ( ) ( ) ( ) Dalla teoria, ricordiamo che il problema di stabilizzazione via retroazione dello stato è risolubile se la coppia (A, B) è stabilizzabile, cioè se essa è completamente raggiungibile oppure se eventuali autovalori non raggiungibili hanno parte reale negativa. Inoltre è utile sottolineare che “Se il sistema considerato non è stabilizzabile e il politopo ha interno, esso non potrà essere reso invariante (a meno di politopi speciali)” Detto ciò definiamo ( ) la matrice dei vertici di un generico politopo . Il problema consiste nel calcolare (se esiste) tale che ( ) ( ) . E’ possibile dimostrare che se la condizione precedente è vera per , è vera sempre. Infatti:
  • 4. Dunque ciò che vogliamo dimostrare è che ( ) Chiamiamo ̂ ( ) e riscriviamo il problema nella forma ̂ ( ) In generale, sappiamo che ogni punto del politopo può essere scritto come combinazione convessa dei vertici del politopo, cioè , dove , ( ), . Procediamo quindi riscrivendo la condizione (1) in termini di vertici per il politopo: ̂ ( ) dove ( ) ( ) entrambe con dimensione e valgono le seguenti condizioni:    ∑  ∑ Visto che la condizione (2) è vera per tutti i punti del politopo, è certamente vero per ogni vertice. Grazie a questa precisazione possiamo scrivere la condizione (2) per ogni vertice: ̂ dove valgono:   ∑ Le condizioni da scrivere son quindi tante quanti sono i vertici del politopo. A questo punto, vogliamo riportare il problema iniziale ad un problema di programmazione lineare, in modo da poter utilizzare la funzione lineprog di
  • 5. MATLAB. Per far ciò tutte le precedenti equazioni e disequazioni saranno manipolate in modo appropriato, al fine di poter utilizzare la funzione sopracitata. Partiamo da ( ) Che è un’equazione nelle incognite e . Chiamiamo ottenendo il seguente sistema: { ( ) Controlliamo se il sistema (3) è robusto dal punto di vista dimensionale:  ⇒  ⇒  ⇒ Estendendo la prima equazione del sistema (3) per ogni j otteniamo: { Riscrivendo il tutto in forma matriciale otteniamo invece: ( ) ( ) ( ) ( ) ( ) ( ) Che riscritta in forma compatta, assume la seguente forma:
  • 6. ̅ ̅ ̅ ̂ oppure alternativamente (̅| ̅) ( ) ̅ ̂ ( ) Dalla seconda equazione del sistema (3) andando a trasporre otteniamo: ( ) dove , e Definendo con la i-esima colonna di possiamo scrivere in forma estesa: { ( ) ( ) ( ) con scalare. Riscrivendo il tutto in forma matriciale otteniamo: ( ( ) ( ) ( ) ) ( ) ( ) oppure in forma compatta: ̅̅̅ ̅ dove ̅̅̅ , ̅ , Espandendolo ancora solo per elementi si ottiene: { ̅̅̅ ̅ ̅̅̅ ̅ ̅̅̅ ̅
  • 7. oppure ( ̅̅̅ ̅̅̅ ̅̅̅ ) ̅ ( ) In forma compatta ̃ ̅ ̃̅ ( ) Arrivati a questo punto possiamo definire il vettore delle variabili di ottimizzazione: ( ̅ ) e possiamo riportare le equazioni precedenti in termini di z: dalla (4) segue ( ̅| ̅| ) ( ̅ ) ̅ ̂ dalla (5) segue ( | | ̃) ( ̅ ) Da ⇒ segue ( | | ) ( ̅ )
  • 8. Dopo aver definito il vettore ̅ ( ) di dimensione da ∑ segue ( | | ) ( ̅ ) dove ( ̅ ̅ ̅ ) ( ) Siamo finalmente giunti al punto nel quale possiamo riformulare in problema iniziale come un problema di programmazione lineare: ( | | | ) s.t. ( ̅ ̅ ̃ ) ( ̅ ̂ ) ( | | ) Definiamo:  ( ̅ ̅ ̃ ) come  ( ̅ ̂ ) come  ( | | ) come ,  come E riscriviamo il problema come: ( | | | ) s.t.
  • 9. 3. IMPLEMETAZIONE SCRIPT Di seguito sono riportati il codice relativo allo script ed il relativo output. Per l’esempio sono state usate le seguenti matrici:  ( )  ( )  ( ) e come politopo è stato scelto un rombo centrato nell’origine degli assi. 3.1 CODICE clear all; close all; clc; %es1 %A = [2 0; 2 -1]; %B = [1 1 ; 1 1]; %Q = [[1;0] [0;1] [-1;0] [0;-1]]; %x0=[0;0.5]; %es2 A = [-0.5 0; 3 -0.7]; B = [1 1 ; 1 0]; Q = [[-1;-1] [-2;0] [-1;1] [1;1] [2;0] [1;-1]]; x0=[0;0.5]; %es.3 %A = [-1 -2; 0 -1]; %B = [1; 1]; %Q = [[-1;-1] [-1;1] [1;1] [1;-1]]; %x0=[0;0.4]; % Definizione delle matrici che caratterizzano il sistema disp('La matrice A è: '); disp(A); n = size(A,1); disp('La matrice B è: '); disp(B); m = size(B,2); C = [1 1]; % Definizione del politopo tramite i suoi vertici % In questo esempio verrà scelto un rombo r = size(Q,2); % Calcoliamo gli autovalori della matrice A per vedere se il sistema è % asintoticamente stabile av_A = eig(A);
  • 10. disp('Gli autovalori di A sono: '); disp(av_A); if sum(abs(av_A)<1) == length(av_A) disp('Il sistema è asintoticamente stabile') ; disp(' '); else disp('Il sistema non è asintoticamente stabile'); disp(' '); end % Controlliamo ora la controllabilità del sistema S = ctrb(A,B); rs = rank(S); if rs == n disp('Il sistema è controllabile'); disp(' '); else disp('Il sistema non è controllabile'); disp(' '); [Abar,Bbar,Cbar,T,k] = ctrbf(A,B,C); NC = Abar(1:n-rs, 1:n-rs); av_NC = eig(NC); av_A = eig(A); if sum(abs(av_NC)<1) == length(av_NC) disp('ma è stabilizzabile'); disp(' '); else disp('e non è stabilizzabile'); disp(' '); end end % Calcoliamo le matrici necessarie alla risoluzione del problema di % programmazione lineare A_barrato = []; B_barrato = []; V_barrato = []; V_cappuccio = []; V_tilde = []; V_trasp = cell(1,r); K = []; uno_segnato = ones(1,r); b = uno_segnato'; for i=1:r A_barrato = blkdiag(A_barrato, A); B_barrato = blkdiag(B_barrato, B); V_barrato = blkdiag(V_barrato, Q); V_cappuccio = [V_cappuccio;Q(:,i)]; end for i=1:r for j=1:m V_trasp{i} = blkdiag(V_trasp{i},Q(:,i)'); end V_tilde = [V_tilde; V_trasp{i}]; end for i=1:r K = blkdiag(K, uno_segnato); end
  • 11. % Calcoliamo le matrici che controllano le condizioni di uguaglianza e % disuguaglianza del problema di programmazione lineare Aeq = [-V_barrato B_barrato zeros(size(V_barrato,1),size(V_tilde,2)); zeros(size(V_tilde,1),size(V_barrato,2)) -eye(r*m) V_tilde; K zeros(r,r*m) zeros(r,n*m)]; beq = [-A_barrato*V_cappuccio; zeros(r*m,1); b]; Adiseq = [-eye(r^2) zeros(r^2,r*m) zeros(r^2,n*m)]; bdiseq = zeros(r^2,1); f = [zeros(1,r^2) zeros(1,r*m) ones(1,n*m)]'; % Calcoliamo la soluzione al problema di programmazione lineare [z,fval,exitflag] = linprog(f, Adiseq, bdiseq, Aeq, beq); % Estraiamo F dalla soluzione F = []; F_tmp = z(r^2+r*m+1:end); if m == 1 F = F_tmp'; else for i=1:n:n*m F = [F;F_tmp(i:i+n-1,1)']; end end disp(' '); disp('La matrice di retroazione dello stato F è: '); disp(F); disp('Gli autovalori della matrice A+BF sono: '); disp(eig(A+B*F)); x=[Q(1:n:r*n) Q(1)]; y=[Q(2:n:r*n) Q(2)]; N=30; xk=x0; for i=1:N xk_tmp(i,:) = xk'; xk = (A+(B*F))*xk; end plot(x,y,xk_tmp(:,1),xk_tmp(:,2));