Sei sulla pagina 1di 170

Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo

quadratico, ottimizzazione e tecniche di identificazione e controllo industriale


A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

1
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Parte I : Controllo dei Processi

2
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
1 Gestione ottima di centrali elettriche interconnesse.

Un problema molto ricorrente nellerogazione dellenergia elettrica da parte


dellENEL, la gestione del fabbisogno utile di energia per utente, laddove per
energia utile si intende la somma di una potenza reale di base Pr, ritenuta pressoch
costante durante larco di tutta la giornata, e una potenza di picco Pp(t) di natura
variabile nel tempo, che dipende dalla richiesta dellutente allistante di tempo t.
Supponiamo che vi siano n centrali interconnesse, che generano una potenza di base
Pr e che si voglia minimizzare la spesa complessiva di energia erogata in base alle
richieste dellutenza.

La centrale i-esima eroga un potenza Pi che ha un costo di gestione di ordine


quadratico del tipo ci ( pi ) = ai pi2 + bi i=1n ed in base a ci il problema:
di ottimizzazione associato il seguente:
n
min p ci ( p i )
i =1

s.a.
n
Pr = p i
i =1

0 p i PiM

Dove PiM il valore massimo di pi .

3
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Il problema verr computato tramite matlab nel caso particolare in cui n=2 e con i
seguenti dati:

c1 ( p1 ) = p12 + 1 , c 2 ( p 2 ) = 0.5 p i2 + 3 P1M = P2 M = 10 Pr = 15

1.1 Esercizio:

min p1, p 2 p12 + 0.5 p 22 + 3


s.a.
15 = p1 + p 2
0 p1 10
0 p 2 10

Il problema pu essere risolto in maniera analitica o numerica tramite matlab, in


questa sede verranno affrontate tute e due le tipologie di risoluzioni.

1.2 Risoluzione analitica.

Per risolvere il problema di ottimizzazione suddetto in maniera analitica necessario


Riscriverlo in maniera opportuna, andando a distinguere i vari vincoli di
disuguaglianza:

min p1, p 2 p12 + 0.5 p 22 + 3


s.a.
15 = p1 + p 2
p1 10
p1 0
p 2 10
p2 0

Si costruisce la Langrangiana per trattare un problema di minimo vincolato, come un


problema di minimo non vincolato.

p1 10

T
p1
l ( p, , ) = p1 + 0.5 p 2 + 3 + ( p1 + p 2 15) +
2 2 T

p 10
2
p
2

4
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Si calcola il gradiente e lo si impone uguale a zero per valutare i punti critici che
potrebbero essere di massimo o di minimo o di sella:

2 p 1 1 1 0 0
grad [l ( p, , )] = 1 + + = 0
p 2 1 0 0 1 1
1


un moltiplicatore di Lagrange scalare mentre = 2 ed in forma scalare si ha:

3

4
2 p1 + + 1 2 = 0

p2 + + 3 4 = 0

Adesso bisogna distinguere tutti i casi in cui i vari vincoli di uguaglianza e di


disuguaglianza si combinano tra di loro e valutare quando il sistema dei vincoli e del
gradiente ammettono insieme soluzione.
Nello studio delle varie condizioni di vincolo possibili, che sono in tutto quindici i
casi in cui si hanno soluzioni ammissibili per il sistema sono:

caso 1)

p1 + p 2 = 15
2 p1 + + 1 = 0 10
p1 = 10 p *
=
p + =0 1

5
p1 < 0
2

p1 + p 2 = 15 1 = 5
*

p 2 < 10 p = 10
1 15
p2 < 0
0
1 0, 2 = 3 = 4 = 0 1 =
*

0

0

Caso 2)

p1 + p 2 = 15
2 p1 + 2 = 0 0
p1 < 10 p *
=
p + = 0 2

2 15
p1 = 0
p1 + p 2 = 15 *2 = 15
p 2 < 10 p = 0
1 0
p2 < 0
15
2 0, 1= 3 = 4 = 0 2 =
*

0

0

5
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Caso 3)

p1 + p 2 = 15
2 p1 + = 0 5
p1 < 10 p + + = 0 p *
3 =
2 3 10
p1 < 0
p1 + p 2 = 15 *3 = 10
p 2 = 10 p = 10
1 0
p2 < 0
0
3 0, 1= 2 = 4 = 0 3 =
*

0

0

Caso 4)

p1 + p 2 = 15
2 p1 + = 0 15
p1 < 10 p + = 0 p 4* =
2 4 0
p1 < 0
p1 + p 2 = 15 *4 = 30
p 2 < 10 p = 0
2 0
p2 = 0
0
4 0, 1= 2 = 3 = 0 4* =
0

30

I punti critici sono in definitiva:

10 0 5 15
p1* = p 2* = p3* = p 4* =
5 15 10 0
1* = 5 *2 = 15 *3 = 10 *4 = 30
15 0 0 0

0 15 0 0
1 =
*
2 =
*
3 =
*
4 =
*

0 0 0 0

0 0 0 30

Per verificare se i punti sono di massimo di minimo o di sella necessario calcolare


lHessiano e verificare se definito positivo (condizione sufficiente allesistenza di
minimo) e studiare una delle derivate parziali seconda e verificare se positiva: se
positiva si ha un punto di minimo. Se lHessiano nullo non si pu avere
informazione sulla presenza di minimo.

6
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
In questo caso lhessiano definito positivo per qualsiasi p, e le derivate seconde
sono costanti e positive per qualsiasi p.

2 0 2 c( p1 , p 2 ) 22 c( p1 , p 2 )
H l ( x , , ) = H l ( x , , ) = 2 > 0 , 1 = 2 > 0 =1> 0
0 1 p12 p 22

La funzione non crescente in ogni punto del dominio ma non si sa con precisione
quali sono i punti di minimo.
Per tale motivo facciamo una restrizione nellintorno dei punti critici lungo delle
autodirezioni opportune.
In questo caso basta prendere delle rette passanti per i punti critici stessi e da tale
analisi si evince che il punto di minimo vincolato il punto che ha il seguente valore
che segue, mentre tutti gli altri sono punti di sella:

5
p 3* =
10
*3 = 10
0

0
3 =
*

0

0

p2
p3*

p1

Dal grafico precedente si vede come il punto p3* un punto di minimo.

7
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

1.3 Risoluzione numerica.

Allo stesso risultato si giunge con lausilio di matlab attraverso un analisi di tipo
numerico ed in particolare utilizzando il comando matlab fmincon, che consente il
calcolo di minimo vincolato soggetto a vincoli lineari e non lineari di uguaglianza e
di disuguaglianza.

X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)

i) fun la f-function che si vuole minimizzare che va scritta in un file diverso


da quello in cui vengono scritti i dati di vincolo o si pu scrivere nello
stesso file se la viene dichiarata inline [param duscita]=inline(function).
ii) X0 il vettore iniziale di iterazione del metodo non lineare associato
allalgoritmo di minimizzazione.
iii) Aeq matrice del vincolo di disuguaglianza lineare (AeqX<=B).
iv) Beq
v) LB estremo inferiore di vincolo non lineare (LB<X).
vi) UB estremo superiore di vincolo non lineare (X<UB).
vii) NONLCON funzione non lineare vincolante.
viii) OPTIONS Opzioni varie che possono essere visualizzate tramite help di
Matlab.

E stata scritta la f-function su in questione da minizzare su un file, su un altro si


sono scritti i dati del problema con i vari parametri prima elencati ottenendo il
seguente risultato:

Optimization terminated successfully:


First-order optimality measure less than options.TolFun and
maximum constraint violation is less than options.TolCon
Active Constraints:
1
5

x=

5
10

fval =
8
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

78

exitflag =

out =

iterations: 3
funcCount: 15
stepsize: 1
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
firstorderopt: 7.3343e-007
cgiterations: []

lambda =

lower: [2x1 double]


upper: [2x1 double]
eqlin: -10.0000
eqnonlin: [0x1 double]
ineqlin: [0x1 double]
ineqnonlin: [0x1 double]

grad =

10.0000
10.0000

Hessian =

1.3465 -0.6535
-0.6535 0.3390

Si ottenuto come minimo il vettore x=[5 10] dopo un numero di passi pari a 3 con
successo (lexitflag maggiore di zero indica che il metodo converge).
Il moltiplicatore di lagrange lambda=-10 , il grad=[10;10 ] lHessiano pari al
vettore Hessian=[1.3465 -0.6535;-0.6535 0.3390].
Nella pagina successiva verr inserito il codice matlab usato per la simulazione
numerica.

9
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

1.4 Codice Matlab


%fobbiettivo.m
%Indentificazione della funzione obbiettivo
%C(p_i)=a_i*p_i+b_i i=1,2 in forma di function per i=2
function [c]=fobbiettivo(p)
a1=1
a2=0.5
b=3
c=a1*p(1)^2+a2*p(2)^2+3
end

%Central_optim.m
%Gestione ottimale di centrali elettriche interconnesse
%Caso i=2 con (p1,p2) variabili appartenenti a R^2
%Condizione iniziale
cp0=[0;0];
%Vincolo di uguaglianza lineare
Aeq=[1 1];
Beq=15;
%Vincolo di disuguaglianza non lineare definito da un lower bound
% e da un upper bound
LB=[0 0]';
UB=[10 10]';
%Calcolo del minimo locale soggetto a vincoli di uguaglianza e di
%disuguaglianza
[x,fval,exitflag,out,lambda,grad,Hessian]=fmincon('fobbiettivo',cp0,[],[],Aeq,Beq,LB,UB)

10
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

2 Stima ottima dello spazio di raggiungibilit.


-calcolo della matrice pseudo inversa destra-

Unapplicazione dei metodi analitici e matematici nellambito dei controlli il


problema di valutazione ottima del sottospazio di raggiungibilit.
Un sottospazio si dice raggiungibile se a partire da un certo istante t1 iniziale il
generico forzamento u (t1 ) consente di raggiungere un stato prefissato x nello spazio
di stato.
Particolareggiando la definizione per il caso discreto, si dice che un sottospazio
raggiungibile (controllabile nel caso tempo invariante) in un numero di passi N > n ,
se n [0, N ]u[ 0, N ] U : x = x( N ) = ( N ,0, x0 , u[0, N ] ) .
In particolare uno sottospazio discreto completamente raggiungibile se la matrice di
raggiungibilit ha rango pieno ossia:

B

AB

Rank A 2 B = n

M
N 1
A B

Il problema di ottimizzazione relativo il seguente:

min uU U T QU F = [ B, AB L A N 1 B] R n N , N > n, u R N
s.a. dove b = x A N x0 R n
Fu = b Q = diag (Q1 , Q2 L Q N ) R N N semidefinita positiva

La soluzione ottima di questo problema data dal prodotto della pseudo inversa
minima destra, chiamata cos perch non una matrice rettangolare, quindi non
propriamente invertibile, riferita ad un minimo, e se premoltiplicata dalla matrice
F restituisce la matrice identica.

u * = F RM b con F RM = Q 1 F T ( FQF T ) 1

11
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Questa tipologia di problemi fa parte della classe dei problemi quadratici con vincoli
di uguaglianza sottospecicati, e questo e dovuto al fatto che vi sono pi incognite di
equazioni (N>n).
Adesso verr trattato un caso particolare per n=2 e per N=4.

2.1 Esercizio:
3
min u u 2 (i )
i =0

s.a.
0 1 0
x(n + 1) = x(n) + u (n)
1 1 1
10
x(0) = x 0 = 0, x(4) =
1

Risoluzione:

Lesercizio stato risolto facendo un semplice script matlab ottenendo il seguente


risultato:

Scrivo le matrici del sistema

A=

0 1
1 1

B=

0
1

Calcolo la matrice di controllabilit e ne valuto il rango

Mcont =

0 1
1 1

rc =
12
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Il sistema totalmente controllabile

Fisso lo stato iniziale, quello finale

x0 =

0
0

N=

x4 =

10
1

Valuto la matrice b ed F del vincolo

b=

10
1

F=

2 1 1 0
3 2 1 1

Calcolo la ustar minima come il prodotto tra Frm e b, dove Frm la pseudo inversa minima destra

Frm =

0.3333 0.0000
-0.3333 0.3333
0.6667 -0.3333
-1.0000 0.6667

13
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
ustar =

3.3333
-3.0000
6.3333
-9.3333

2.2 Codice Matlab :

%Applicazione della pseudoinversa minima destra nei problemi di


%controllabilit(Raggiungibilit)
A=[0 1;1 1]
B=[0 1]'
%Calcolo della matrice di controllabilit
Mcont=ctrb(A,B)
%Valutazione del rango della matrice di controllbilit
rc=rank(Mcont)
disp('Il sistema totalmente controllabile')
%Stato al passo zero
x0=[0 0]'
%Numero di passi totali
N=4
%Stato al passo 4
x4=[10 1]'
b=x4-A^N*x0
F=[A^(N-1)*B A^(N-2)*B A^(N-3)*B B]
Frm=F'*inv(F*F')
%Soluzione del problema di minimizzazione
ustar=Frm*b

14
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

3 Stima ottima in un problema di identificazione.


-calcolo della matrice pseudo inversa sinistra-

Molto spesso si vuole trovare il valore ottimo in una classe di problemi a partire da un certo
numero di dati sperimentali ( si voglia ad esempio stimare la mortalit o la natalit in una citt in un
determinato arco di anni a partire da dati ricavati statisticamente ) e questo pu essere ottenuto
mediante lutilizzo del metodo dei minimi quadrati o calcolo della matrice pseudo inversa sinistra.
Supponiamo di avere m vettori di dati sperimentali ad n componenti con m>n a cui corrispondono
m vettori di realizzazioni di n componenti.

Dati sperimentali:

k1 y1
k2 y2
con k i = (k i1 , k i 2 ,L, k in ), i = 1L m yi = ( f 1 (k i ), f 2 (k i ),L, f n (k i ))
M
km ym

A partire dai dati sperimentali si possono ottenere le stime che non coincidono con i dati
sperimentali, ma differiscono per un errore residuo.

Stime:

y1 y 1 = x1 f 1 ( k1 ) + L + x n f n ( k1 ) con i = y i y i , i = 1L m errore residuo


y 2 y 2 = x1 f 1 ( k 2 ) + L + x n f n ( k 2 )
M
y m y m = x1 f 1 ( k m ) + L x n f n ( k m )

Si ottiene in definitiva il seguente sistema matriciale:

f 1 (k1 ) L f n (k1 ) x1 y1 1

L O M M = M Fx = b

f 1 (k m ) L f n (k m ) x n y m m

15
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Il problema di ottimizzazione associato diventa:

min xX T Q
Q R mm , R m
s.a. dove
F R mn , x R n , b R m , m > n
Fx = b

Siccome la presenza di da fastidio il problema si trasforma in un uno equivalente


ponendo:

x ~ 0 0 ~
V = , Q = , F = (F I)
0 Q

~
min V X V T QV
s.a.
~
FV = b

Il fatto che m sia maggiore di n implica che il problema di ottimizzazione sia sovraspecificato, il
che significa che vi sono delle equazioni che sono combinazioni lineari di altre e quindi si ha che le
soluzioni sono
n p
con n numero di incognite e p rango della matrice. A partire da ci si pu dire
che lo scopo del problema, quello di trovare la soluzione interpolante che approssima in modo
migliore la nube di punti rappresentata dai dati sperimentali; un esempio di approssimazione ai
minimi quadrati nellambito controllistico rappresentato dalla identificazione di un modello a
partire dalla sua risposta in frequenza.
Tramite Matlab si verificato prima sperimentalmente e poi si ricavato numericamente il valore
della funzione di trasferimento associata ai dati della risposta
in frequenza.

3.1 Esercizio:

Data una funzione parametrica del 1 ordine parametrica, si vuole risalire ai valori del guadagno g
in continua e la costante di tempo che ottimizza i dati sperimentali della risposta in frequenza.

g
G (s) =
1+ s

Risoluzione:

Si risalito ai dati sperimentali tramite il comando freqs che ha dato in uscita la risposta in
frequenza del sistema da identificare e il numero di frequenze scelte per approssimare,
successivamente si risolto un problema di minimi quadrati.

16
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
I risultati dati da Matlab sono stati i seguenti:

Frequenze di interesse

W=

0.0100
0.3162
10.0000

Parte reale ed immaginaria della funzione di risposta in frequenza

Hreal =

1.9998
1.8182
0.0198

Himag =

-0.0200
-0.5750
-0.1980

Matrici di vincolo del problema

F=

1.0000 -0.0002
0 0.0200
1.0000 -0.1818
0 0.5750
1.0000 -1.9802
0 0.1980

b=

1.9998
0.0200
1.8182
0.5750
0.0198
0.1980

17
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Soluzione del problema di ottimizzazione

xstar =

2.0000
1.0000

Guadagno in continua e costante di tempo del sistema parametrico

g=

2.0000

tau =

1.0000

Funzione di trasferimento

2
-----
s+1

Grazie al metodo sopra descritto stato possibile identificare sperimentalmente


una semplice funzione del primo ordine.
Nella pagina successiva scritto il codice Matlab utilizzato con i rispettivi commenti
sull utilizzo dei comandi .

18
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
3.2 Codice Matlab

%Calcolo della pseudoinversa minima sinistra in un problema di


%identificazione (Problema dei minimi quadrati o sovraspecificato)
%Sistema del 1 ordine.
g=2;
d=[1 1];
%A partire dai dati sperimentali (Diagramma di Bode),
%ricaviamo la G(s) di partenza.
%Determinazione della risposta in frequenza di G(s)
[H,W]=freqs(g,d,3);

%Valore del campo frequenziale W


W
%Separazione di parte reale e parte immaginaria
%della funzione di risposta armonica
Hreal=real(H)
Himag=imag(H)
%Si costruisce la matrice pseudo inversa sinistra a
%partire dai dati sperimentali
for i=1:length(W)
omega=W(i);
reH=Hreal(i);
imH=Himag(i);
o(i)=ones(1,1);
f1(i)=omega*imH;
z(i)=zeros(1,1);
f2(i)=omega*reH;
end
Fstar=[o' f1';z' f2'];
bstar=[Hreal;-Himag];
F1=Fstar(1,:);
F2=Fstar(4,:);
F3=Fstar(2,:);
F4=Fstar(5,:);
F5=Fstar(3,:);
F6=Fstar(6,:);
b1=bstar(1,:);
b2=bstar(4,:);
b3=bstar(2,:);
b4=bstar(5,:);
b5=bstar(3,:);
b6=bstar(6,:);
%F la Matrice pseudo inversa sinistra che consente di risolvere il
%problema
F=[F1;F2;F3;F4;F5;F6]
b=[b1;b2;b3;b4;b5;b6]
%Si fissa la Matrice Q del problema di ottimizzazione
Q=eye(6);
%La soluzione del problema :

19
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
xstar=inv(F'*Q*F)*F'*Q*b
%selezioniamo il guadagno in continua g e la costante di tempo tau
g=xstar(1,1)
tau=xstar(2,1)
%Il risultato coincide con la funzione di partenza
ns=g;
ds=[1 tau];
Gs=tf(ns,ds)
%Diagramma di Bode
bode(ns,ds)
grid on

3.3 Diagramma di Bode del sistema

20
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
4 Tecnica del piazzamento dei poli sul piano di Gauss.
E possibile influenzare il comportamento di un sistema a ciclo chiuso, assegnando i poli sul piano
complesso attraverso la tecnica del piazzamento dei poli.
Tale tecnica pu essere usata solo se il sistema di partenza disponibile alla retroazione di stato e se
completamente controllabile ed valida sia per sistemi SISO che per sistemi MIMO. In questa
sede tratteremo, per facilit, il caso in cui il sistema di partenza abbia un solo ingresso.

Il sistema che verr studiato il sistema S :

x& = Ax + bu
A R nn , x R n , u R, k R n
u (t ) = k T x(t )

La zona di convergenza a ciclo chiuso quella in blu, con lalgoritmo del piazzamento dei poli si
vuole costruire un controllore che abbia i poli nella regione segnata. Adesso si andranno ad elencare
i passi dellalgoritmo del piazzamento dei poli.

21
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

4.1 Algoritmo del piazzamento dei poli:


Sia S un sistema disponibile per la retroazione e completamente controllabile
Allora:

an

a
Si calcola PA ( ) = n + a1n 1 + L + a n e si ricava il vettore a =
n 1
i)
M

a
1

a n 1 a n 2 L a1 1

a n2 a n 3 L 1 0
ii) Siccome A completamente controllabile A = M M N N 0

a1 N N N M

1 0 0 L 0

n
iii) Si calcola il polinomio desiderato Pd ( ) = ( i ), = {1 2 L n }
i =1

dn

d n 1
e si ricava a =
M

d
1

a n 1 a n2 L a1 1 bT

a n2 a n 3 L 1 0 b T AT
iv) Si calcola T = M
T
M N N 0 b T ( AT ) 2

a1 N N N M M
1 T T n 1
0 0 L 0 b ( A )

v) Si calcola (T T ) 1

vi) Si calcola infine la matrice di retroazione k = (T T ) 1 (a d )

22
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Una volta esplicati i passi dellalgoritmo si pu passare alla formalizzazione del problema, andando
a scrivere il listato Matlab per il seguente sistema.

4.2 Esercizio:
2 0 0 1

Dato il sistema x& = 0 1 1 x + 1u andare a posizionare i poli a ciclo chiuso nellinsieme
0 0 3 1

= { 1, 1, 1}

Risoluzione:

Si formalizzato lalgoritmo in Matlab andando a scrivere un semplice programma per il calcolo,


che ha fornito gli stessi risultati del comando ACKER ( consente di piazzare i poli per un sistema
SISO, mentre per sistemi a pi ingressi invece si usa il comando PLACE). Si ottiene il seguente
risultato

Matrici del sistema

A=

2 0 0
0 1 1
0 0 3

B=

1
1
1

Matrice di controllabilit

Mcont =

1 2 4
1 2 5
1 3 9

Rango della matrice di controllabilit

rcont =

23
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Il sistema completamente controllabile

Coefficienti del polinomio caratteristico

Pilamda =

1 -6 11 -6

Vettore a associato al polinomio caratteristico


a=

-6
11
-6

Coefficienti del polinomio desiderato

Pdes =

1 3 3 1

Vettore d associato al polinomio desiderato a ciclo chiuso

d=

1
3
3
Matrice antitrangolare (alla Toeplitz) che si pu costruire a partire dal vettore a di A

Phi =

11 -6 1
-6 1 0
1 0 0

To coincide con la matrice Matrice (TT)

To =

3 4 2
-4 -4 -3
1 1 1

24
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Toinv coincide con la matrice Matrice (TT)-1

Toinv =

-1 -2 -4
1 1 1
0 1 4

K il controllore cercato

K=

27
-8
-28

Ac la matrice controllata

Ac =

29 -8 -28
27 -7 -27
27 -8 -25

Gli autovalori a ciclo chiuso

lambda =

-1.0001
-1.0000 + 0.0001i
-1.0000 - 0.0001i

Calcolo fatto usando listruzione acker(A,B,[pol des])


K1 =

-27
8
28

Ac1 =

29 -8 -28
27 -7 -27
27 -8 -25

lamda1 =

-1.0001
-1.0000 + 0.0001i
-1.0000 - 0.0001i

25
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Attraverso alcuni grafici si po vedere la posizione dei poli e degli zeri a ciclo aperto e quella che
hanno assunto a ciclo chiuso:

26
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
4.3 Codice Matlab

%Algoritmo del piazzamento dei poli


%Assegnamento delle matrici del problema
A=[2 0 0;0 1 1;0 0 3]
B=[1 1 1]'
C=zeros(3);
D=zeros(3,1);
%Verifica di controllabilita della coppia (A,B)
Mcont=ctrb(A,B)
rcont=rank(Mcont)
disp('Il sistema completamente controllabile')
%Calcolo del polinomio caratteristico di A
Pilamda=poly(A)
%Vettore che ha i coefficienti di Pilamda a=(an an-1...a1)' dove an
%l'ultimo coefficiente di Pilamda
a=Pilamda(:,4:-1:2)'
%Polinomio desiderato
Pdes=[1 3 3 1]
%Vettore d che ha i coefficienti del Pdes d=(dn dn-1...d1)' dove dn
%l'ultimo coefficiente di Pdes
d=Pdes(:,4:-1:2)'
%Siccome la coppia (A,B) completamente controllabile allora possibile
%scrivere la matrice A come una matrice antitriangolare superiore (matrice
%di Toeplitz) che ha per coefficienti i coefficienti di a=(an an-1...a1)
Phi=[11 -6 1;-6 1 0;1 0 0]
%Si calcola la matrice prodotto tra Phi ed Mcont' e si ottiene la matrice
%To'
To=Phi*Mcont'
%Si inverte la To
Toinv=inv(To)
%Calcolo la matrice di guadagno K degli stati ad anello chiuso
K=Toinv*(a-d)
%Calcolo la matrice di retroazione a ciclo chiuso
Ac=A+B*K'
lambda=eig(Ac)
%Verifichiamo con l'istruzione place di Matlab che i risultati
%coincidono,usando l'istruzione Acker valida solo per sistemi ad un
%ingresso
K1=acker(A,B,[-1 -1 -1])'
%Si ottiene K1 di segno opposto a K, perch per convenzione il matlab
%suppone che per retroazionare lo stato si deve calcolare la matrice A-B*K1'
%e non la matrice A+B*K1'
Ac1=A-B*K1'
lamda1=eig(Ac1)
sys=ss(A,B,C,D);
sys1=ss(Ac,zeros(3,1),zeros(3),zeros(3,1));
%Plottiamo i grafici che danno informazione sulla posizione dei poli e
%degli zeri sia a ciclo aperto che a ciclo chiuso
figure(1)

27
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
pzmap(sys)
title('Posizione dei poli e degli zeri a ciclo aperto')
legend('poli a ciclo aperto')
figure(2)
pzmap(sys1)
title('Posizione dei poli e degli zeri a ciclo chiuso')
legend('poli a ciclo chiuso','zeri a ciclo chiuso')
grid on

28
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
5 Teoria degli osservatori.
Dato un sistema S multivariabile, si dice osservatore lineare di stato un sistema lineare che stima lo
stato di S a partire dagli ingressi u (t ) e dalle uscite y (t ) .
Luso dellosservatore di stato dovuto essenzialmente al fatto che molto spesso, o le variabili di
stato sono non misurabili, o risulta dispendioso utilizzare un sensore dedicato, o la variabile di stato
pu non corrispondere ad una grandezza fisica dopo un cambiamento di base.
Inizialmente si pens di costruire losservatore connettendo lingresso di S allingresso
dellosservatore, ma poi ci rese conto che in questo modo si replicavano le dinamiche del sistema di
partenza e questo non consentiva di avere un controllo efficace: infatti se il sistema era instabile,
anche losservatore risultava instabile. Questa problematica port i ricercatori a cercare un modello
alternativo di osservatore di stato e fu proprio DAVID LUENBERGER, in un suo scritto dal titolo
INTRODUCTION TO DYNAMICAL SYSTEM, a comunicare la scoperta.
Il nuovo osservatore aveva in ingresso gli ingressi e le uscite del sistema di partenza e in uscita gli
stati stimati, al contrario del modello precedente non replicava le dinamiche del sistema di partenza
ma quelle di un sistema retroazionato di guadagno di anello L.

u (t ) x(t )

y (t ) = x (t )

Andiamo ed esplicitare i sistemi che corrispondono ai due blocchi prima disegnati:

x& = Ax + Bu x& = Ax + Bu + L( y C T x Du )
S : Osservatore :
y = Cx + Du y = x

Le dinamiche dellerrore sono:

e& = ( A LC T )e

Sono simili alle dinamiche di un sistema retroazionato, infatti usando il teorema di dualit si
progetta un osservatore con la tecnica del piazzamento dei poli.

29
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Ponendo :

AT A
CT B
LK

Una volta costruito losservatore possibile retroazionarlo e costruire la legge di controllo per il
sistema di partenza.
Tramite Matlab si verificato che luscita stimata dallosservatore approssima gli stati del sistema
si partenza.

5.1 Esercizio:
0 1 0
x& = x + u
Dato il sistema 0 2 1 andare a posizionare i poli in
y = (1 0 )x
= { 10 + i, 10 i} e valutare la risposta dellosservatore assumendo come stato

iniziale xo 0 = [0.2 0.4]

Risoluzione:

Computando i dati tramite matlab si sono ottenuti i seguenti risultati:

Matrici di partenza

A=

0 1
0 -2

B=

0
1

C=

1 0

D=

30
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
0

Matrice di controllabilt

Mcont =

0 1
1 -2

Rango della matrice di controllabilit

rc =

Matrice di osservabilit

Moss =

1 0
0 1

Rango della matrice di osservabilit

ro =

Il sistema non controllabile ma osservabile

Matrice di guadagno di anello dellosservatore

L=

18.0000
65.0000

Matrici dellosservatore

Ao =

-18.0000 1.0000
-65.0000 -2.0000

Bo =

0 18.0000
1.0000 65.0000

Co =

31
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
1 0
0 1

Do =

0 0
0 0

5.2 Confronto fra la risposta dello stimatore e gli stati del sistema di partenza:

5.3 Codice Matlab

32
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

%Confronto fra gli stati del sistema e il suo osservatore


%Matrice delsistema.
A=[0 1 ;0 -2 ]
B=[0 1 ]'
C=[1 0 ]
D=zeros(1)
Mcont=ctrb(A,B)
rc=rank(Mcont)
Moss=obsv(A,C)
ro=rank(Moss)
disp('Il sistema non controllabile ma osservabile')
%Il sistema non controllabile e quindi,per retroazionare lo stato,si deve
%usare un osservatore di Luemberger.
%Applicando l'algoritmo del piazzamento dei poli:
L=place(A',C',[-10+i,-10-i])'
%Matrici dell'osservatore
Ao=A-L*C
Bo=[B-L*D L]
Co=eye(2)
Do=zeros(2,2)
sys=ss(A,B,C,D);
sys1=ss(Ao,Bo,Co,Do);
[y,t,x]=step(sys,1,0:0.01:10);
%stato iniziale per la valutazione della risposta
xo0=[0.2, -0.4];
%Plotting
[yo,to,xo]=lsim(sys1,[ones(size(t)) y],t,xo0);
figure(1)
plot(t,x,to,xo,'.')
title('Confronti fra gli stati del sistema e quelli stimati')
legend('stato1','stato2','stato stimato1','stato stimato2',4)
grid on

33
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

6 Controllo ottimo LQR


Il controllo moderno, si differenzia da quello classico per due motivi: con il controllo classico era
possibile controllare solo sistemi di tipo SISO e lapproccio era nel dominio della trasformata di
Laplace, mentre col controllo moderno possibile controllare sia sistemi SISO che sistemi MIMO e
lapproccio nel dominio del tempo, in particolare nello spazio di stato.
Il progetto del controllore ottimo si basa sulla teoria dellottimizzazione ed in particolare sulla
minimizzazione del funzionale V.
Il problema di minimizzazione il seguente:

T
V = min u[ t ,T ] l ( x, u , )d + m[ x(T )]
t
s.a.
x& = f ( x, u , t )

Il problema problema precedente pu essere semplificato applicando il principio di ottimatilit di


Belmann che dice:

Sia una qualunque traiettoria nellintervallo [t,T] che ha per estremi x(t), x(T), sia u*(t) un indice
di costo sullo stesso intervallo. Se u*(t) ottimale nellintervallo [t,T] partendo dallo stato x(t),
allora sar necessariamente ottimale nel sottointervallo [t+t,T].

Per tale motivo lintegrale precedente diventa:

t + t
V = min u ( t ,T ) l ( x, u , )d + V * [ x(t + t ), t + t ]
*

t
s.a.
x& = f ( x, u , t )

34
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Approssimando lintegrale attraverso il teorema del valor medio e la condizione al contorno


mediante lo sviluppo di Taylor per funzioni a due variabili, si ottiene:

t + t

l ( x, u, )d l ( x, u, )t
t

T
V * V * dx
V [ x(t + t ), t + t ] V ( x, t ) +
* *
t + t + o(t )
t x dt

Sostituendo tali approssimazioni allintegrale precedente, dividendo per t e passando al limite per
t 0 si ottiene:

V * V *
T

= min u ( t ) l ( x, u , ) + f ( x, u , t )
t x
V * [ x(T ), T ] = m[ x(T )], x X

Nel caso di sistemi lineari lequazione precedente diventa:


V * V *
T

= min u x Qx + u Ru +
T T
( Ax + Bu )
t x
V * [ x, T ] = x T Mx, x X

Liberando lequazione dal minimo si ottiene:

V *
T
1 V *
grad u x Qx + u Ru +
T T
( Ax + Bu ) = 0 u * = R 1 B
x 2 x

V *
H u 2 Ru + B T = 2 R, R > 0
x

Dalla problema di minimizzazione precedente si evince che la matrice Q deve essere semidefinita
positiva, mentre la matrice R deve essere definita positiva.
Sostituendo u* nellequazione di Hamilton-Jacoby-Belmann, ponendo:
V * V *
= x T P& x , = 2 Px
t x
si ottiene lequazione di Riccati con la corrispettiva condizione al contorno, che lequazione che
permette di risolvere il problema LQR per sistemi lineari.

P& = AT P + PA + Q PBR 1 B T P
P(T ) = M

35
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
C una condizione sufficiente per lesistenza della soluzione delleq di Riccati che dice che la P
esiste se la coppia (A,C) osservabile quella (A,B) controllabile .
Si pu raffinare lipotesi imponendo che (A,Q1/2) sia rivelabile e (A,B) stabilizzabile.
Nel caso in cui le matrici sono lineari e tempo varianti, si ha un problema su orizzonte finito, mentre
se sono tempo invarianti si ha un problema su orizzonte infinito.
Nellesercizio svolto al Matlab, si fatta la computazione su orizzonte infinito andando a valutare la
ARE (Algebric Riccati Equation).

P& (T +) = 0 = AT P + P A + Q + P BR 1 B T P
P = P(T +)

6.1 Esercizio:
I due carelli in figura di massa rispettivamente M1=5 Kg, M2=7 kg, si muovono grazie a due forze
costanti impresse e sono vincolati tra di loro tramite un elemento elastico di costante elastica
k2=100 N/m ed uno viscoso di costante b2=Ns/m, mentre sono vincolati a due pareti tramite altre
due elementi elastici di costanti k1=k3= 300 N/m, e due viscosi di costanti b1=30 Ns/m ,b3=40
Ns/m. Andare a costruire la legge di controllo ottimo LQR per il sistema massa, molla, smorzatori.

Risoluzione:

Innanzitutto si scrivono le equazioni dinamiche del moto:


M 1&s&1 = F1 k1 s1 b1 s&1 + k 2 ( s 2 s1 ) + b2 ( s&2 s&1 )
M 2 &s&2 = F2 k 3 s 2 b3 s&2 + k 2 ( s1 s 2 ) + b2 ( s&1 s&2 )

Ponendo:
x1 = s1 x 2 = s&1 x3 = s 2 x 4 = s&2 x&1 = x 2 u1 = F1 u 2 = F2 y1 = x1 y 2 = x3

Si ottiene un modello ISU:


0 1 0 0 0 0
( k1 + k 2 ) (b1 + b2 ) k2 b2 1
0
M1 M1 M1 M1 x(t ) + M 1
x& = u (t )
0 0 0 1 0 0
k2 b2 (k 2 + k 3 ) (b1 + b3 ) 1
1
M2 M2 M2 M2 M 2
1 0 0 0
y = x(t )
0 0 1 0

36
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Attraverso Matlab si fatta la seguente computazione riuscendo a stabilizzare il sistema a ciclo


chiuso:

Matrici del sistema

A=

0 1 0 0
-80 -8 20 2
0 0 0 1
14 1 -57 6

B=

0 0
0 0.2000
0 0
0.1000 1.0000

C=

1 0 0 0
0 0 1 0

D=

0 0
0 0
0 0
0 0

Autovalori della matrice dinamica

Lamda =

-3.9703 + 8.1348i
-3.9703 - 8.1348i
2.9703 + 6.5887i
2.9703 - 6.5887i

Il sistema instabile.

37
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Matrice di controllabilit

Mcont =

0 0 0 0.2000 0.2000 0.4000 1.6000 13.2000


0 0.2000 0.2000 0.4000 1.6000 13.2000 -20.6000 -46.8000
0 0 0.1000 1.0000 0.6000 6.2000 -1.9000 -16.6000
0.1000 1.0000 0.6000 6.2000 -1.9000 -16.6000 -41.2000 -434.2000

Calcolo del rango per la valutazione dello spazio di controllabilit

rc =

Il sistema completamente controllabile

Matrice di osservabilit

Moss =

1 0 0 0
0 0 1 0
0 1 0 0
0 0 0 1
-80 -8 20 2
14 1 -57 6
668 -14 -274 16
4 12 -322 -19

Calcolo del rango per la valutazione dello spazio di osservabilit

ro =

Il sistema completamente osservabile. Matrice semidefinita positiva

Scelgo Q in modo da ottimizzare i pesi matriciali


Q=

1.0e+032 *

0.0000 0 0 0
0 0.0000 0 0
0 0 10.0000 0
0 0 0 1.0000

38
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Matrice R definita positiva Fisso R ed M=0

R=

1.0e+032 *

0.0000 0
0 3.3554

Risolvo il problema LQR associato

Matrice di retroazione K

K=

1.0e+003 *

0.1397 0.0101 9.4444 3.2526


0.0000 0.0000 0.0000 0.0000
Soluzione dellequazione di Riccati

P=

1.0e+032 *

0.0002 0.0000 -0.0001 0.0001


0.0000 0.0000 -0.0001 0.0000
-0.0001 -0.0001 3.2006 0.0094
0.0001 0.0000 0.0094 0.0033
Autovalori a ciclo chiuso

E=

1.0e+002 *

-3.1610
-0.0400 + 0.0800i
-0.0400 - 0.0800i
-0.0317

Nelle pagine successive verr mostrato il risultato delle simulazioni a ciclo aperto e a ciclo chiuso
fatte al simulink di Matlab.

39
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

6.2 SCHEMA DI CONTROLLO A CICLO APERTO:

Qui di seguito sono state plottate le uscite a ciclo aperto:

40
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

41
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

6.3 SCHEMA DI CONTROLLO A CICLO CHIUSO:

Le risposte controllate sono:

42
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

43
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Qui di seguito viene riportato il codice Matlab usato per risolvere il problema precedente:

6.4 Codice Matlab

%Matrice associate al sistema


A=[0 1 0 0;-80 -8 20 2;0 0 0 1;14 1 -57 6]
B=[0 0 0 0.1;0 0.2 0 1]'
C=[1 0 0 0;0 0 1 0]
D=[0 0 0 0;0 0 0 0]'
%Scrivo la matrice allargata Cstar per plottare gli stati, le uscite ele
%variabili di controllo.
Cstar=[0 1 0 0;-80 -8 20 2;0 0 0 1;14 1 -57 6;0 0 0 0.1;0 0.2 0 1;1 0 0 0;0 0 0 1];
disp('gli autovalori della matrice dinamica sono:')
Lamda=eig(A)
disp('Il sistema instabile')
%Calcolo della matrice di controllabilit
Mcont=ctrb(A,B)
disp('Calcolo del rango per la valutazione dello spazio di controllabilit')
rc=rank(Mcont)
disp('Il sistema completamente controllabile')
%Calcolo della matrice di osservabilit
Moss=obsv(A,C)
disp('Calcolo del rango per la valutazione dello spazio di osservabilit')
ro=rank(Moss)
disp('Il sistema completamente osservabile ')
%Essendo (A,B) controllabile e (A,C) osservabile esiste P soluzione della
%ARE(Algebric Riccati Equation)
disp('Scelgo Q in modo da ottimizzare i pesi matriciali')
Q=[10^27 0 0 0;0 10^27 0 0;0 0 10^33 0;0 0 0 10^32]
disp('Fisso R ed M(T)=0 ')
R=[10^25 0;0 20^25]
disp('Risolvo il problema LQR associato')
[K,P,E]=lqr(A,B,Q,R)
%simulazione a ciclo aperto del sistema massa, molle, smorzatori e
%valutazione degli stati,delle uscite e delle variabili di controllo
sim('simlqr');
figure(1)
plot(t,x);
legend('x1','x2','x3','x4',2)
title('Uscita degli stati a ciclo aperto')
grid on
figure(2)
plot(t,u)
legend('u1','u2')
title('Uscita delle variabili di controllo a ciclo aperto')
grid on
figure(3)
plot(t,y)

44
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
legend('y1','y2',2)
title('Uscite del sistema a ciclo aperto')
grid on
%Simulazione del sistema retroazionato usando la Matrice di retroazione K
%ricavata dal problema LQR precedente
sim('sim_feedback')
figure(4)
plot(tfeed,xfeed);
legend('x1','x2','x3','x4',2)
title('Uscita degli stati a ciclo chiuso')
grid on
figure(5)
plot(tfeed,ufeed)
legend('u1','u2')
title('Uscita delle variabili di controllo a ciclo chiuso')
grid on
figure(6)
plot(tfeed,yfeed)
legend('y1','y2',2)
title('Uscite del sistema a ciclo chiuso')
grid on

45
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
7 Controllo ottimo LQ stocastico.
Molto spesso capita che un sistema sia soggetto a disturbi di processo di natura additivo-stocastica.
Tali disturbi oltre che peggiorare le prestazioni del sistema di partenza, non permettono di utilizzare
la tecnica di controllo LQR prima vista, poich gli ingressi in gioco non possono essere pi valutati
in maniera deterministica, ma solo in media. A tal proposito diamo la definizione di processo
stocastico: un processo stocastico definito come linsieme
{p( i , t ), i } dove pi il segnale
aleatorio i-esimo ed i la frequenza di realizzazione del processo con i=1n.

p(t)
p1 (t ) = p(1 , t )

p n (t ) = p ( n , t )

Si supporr allora che il disturbo stocastico sia rumore bianco di tipo Gaussiano, stazionario, a
media nulla e per questo si avr che:

{ }
E p (t ) p T ( ) = (t ) (t )
i) (t ) matrice di cov arianza Rumore bianco
ii) Aleatorio in senso stretto, in senso Gaussiano
lato,ergodigo.
iii) La media e non dipende dal tempo. Stazionario
iv) E{p(t )} = 0 Media nulla
E { x(t1 ) x (t1 ) x( ), t} = E { x(t1 ) x (t1 ) x(t )}
T T
v) Vettore di Markov

46
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Il problema di ottimizzazione nel caso stocastico per sistemi non lineari diventa:

T
V = min u[t ,T ] E l ( x, u , )d + m[ x(T )] x(t )
t
s.a.
x& = f ( x, u, t ) + p (t )
E{p(t )} = 0
{ }
E p(t ) p T ( ) = (t ) (t ), (t ) 0

Andando a risolvere il problema precedente, si ottiene una nuova riformulazione dellequazione di


Hamilton-Jacoby-Belmann che la seguente:

V * V *
T
1
= min u[t ,T ] l ( x, u , ) + f ( x, u , t ) + tr ( H V * )
t x 2
V * ( x, T ) = m( x), x

Nel caso di sistemi lineari lequazione precedente diventa:

V * V *
T
1
= min u x Qx + u Ru +
T T
( Ax + Bu ) + tr ( H V * )
t x 2
V * [ x, T ] = x T Mx, x X

La soluzione dellequazione stocastica di Hamilton-Jacoby-Belmann per sistemi lineari equivale


alla soluzione dellequazione di Riccati stocastica:

P& = AT P + PA + Q PBR 1 B T P Parte _ non _ aleatoria


c& = tr ( P ) Parte _ aleatoria
P(T ) = M condizione _ al _ contorno _ non _ aleatoria
c(T ) = 0 condizione _ al _ contorno _ aleatoria

Anche in questo caso, condizione sufficiente affinch lequazione di Riccati ammetta soluzione e
che la coppia di matrici (A,B) sia stabilizzabile, mentre quella (A,Q1/2)
sia rivelabile.
Siccome molto difficile risolvere il problema nella forma data, allora si usa il teorema di dualit
attraverso il quale si trasforma il problema stocastico in uno deterministico ponendo:
S P , AT A , Q , C x 0
Adesso si riformuler il problema del sistema meccanico costituito da masse, molle, smorzatori,
supponendo che oltre alle forze costanti in ingresso, vi siano dei disturbi di processo additivi di tipo
Gaussiano bianco.

47
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

7.1 Esercizio:

Supporre, nellEs 6 si sommino agli ingressi deterministici, due disturbi di tipo Gaussiano bianco e
poi andare a costruire la legge di controllo ottimo LQ Stocastico.

Risoluzione:

Il sistema precedente pu essere scritto nella seguente forma:

0 1 0 0 0 0
(k1 + k 2 ) (b1 + b2 ) k2 b2 1
0
M1 M1 M1 M1 x(t ) + M 1
x& = [u (t ) + p(t )]
0 0 0 1 0 0
k2 b2 (k 2 + k 3 ) (b1 + b3 ) 1
1
M2 M2 M2 M2 M 2
1 0 0 0
y = x(t )
0 0 1 0

Con:

{ }
E p (t ) p T ( ) = (t ), 0

Siccome la somma tra un segnale determinato ed un segnale aleatorio si pu pensare come un


~ ~
segnale aleatorio, la somma u (t ) + p (t ) = p (t ) dove p (t ) un segnale aleatorio.
Applicando il teorema di dualit, si va a risolvere il problema stocastico come un problema
deterministico, facendo le posizioni suddette.
Andiamo a scrivere la computazione fatta da Matlab.

48
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Matrici del sistema

A=

0 1 0 0
-80 -8 20 2
0 0 0 1
14 1 -57 6

B=

0 0
0.2000 0
0 0
1.0000 0.1000

C=

1 0 0 0
0 0 1 0

Gli autovalori della matrice dinamica sono:

Lamda =

-3.9703 + 8.1348i
-3.9703 - 8.1348i
2.9703 + 6.5887i
2.9703 - 6.5887i

Calcolo del rango per la valutazione dello spazio di controllabilit

Mcont =

0 0 0.2000 0 0.4000 0.2000 13.2000 1.6000


0.2000 0 0.4000 0.2000 13.2000 1.6000 -46.8000 -20.6000
0 0 1.0000 0.1000 6.2000 0.6000 -16.6000 -1.9000
1.0000 0.1000 6.2000 0.6000 -16.6000 -1.9000 -434.2000 -41.2000

rc =

Il sistema completamente controllabile

49
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Calcolo del rango per la valutazione dello spazio di osservabilit

Moss =

1 0 0 0
0 0 1 0
0 1 0 0
0 0 0 1
-80 -8 20 2
14 1 -57 6
668 -14 -274 16
4 12 -322 -19

ro =

Il sistema completamente osservabile


Uso il teorema di dualit e passo dal problema stocastico a quello deterministico
Scelgo Q in modo da ottimizzare i pesi matriciali

Q=

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

G=

0 0
0.2000 0
0 0
1.0000 0.1000

Fisso R ed M=0

R=

1 0
0 1

50
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Risolvo il problema LQR associato

K=

-0.1862 1.1720 -0.3904 14.9677


-0.0090 0.0124 -0.0423 1.4943

P=

0.1306 -0.4826 0.0655 -0.0897


-0.4826 5.2407 0.1627 0.1239
0.0655 0.1627 0.3402 -0.4229
-0.0897 0.1239 -0.4229 14.9429

E=

-4.2363 + 8.8255i
-4.2363 - 8.8255i
-4.4395 + 6.6513i
-4.4395 - 6.6513i

Vinf =

15.3515
Si ottenuto un indice di costo peggiorato

Nelle pagine successive verranno plottate le risposte del sistema a ciclo aperto e a ciclo chiuso.

51
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

7.2 Risposte del sistema a ciclo aperto:

52
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

53
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

7.3 Risposte a ciclo chiuso:

54
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

55
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
7.4 Codice Matlab

%Matrice associate al sistema


disp('Matrici associate al sistema')
A=[0 1 0 0;-80 -8 20 2;0 0 0 1;14 1 -57 6]
B=[0 0.2 0 1;0 0 0 0.1]'
C=[1 0 0 0;0 0 1 0]
%Costruisco la matrice Cstar che una matrice C allargata in modo da
%plottare le uscite,le variabili di controllo e gli stati.
Cstar=[A;B';C];
D=zeros(8,4);
disp('Gli autovalori della matrice dinamica sono:')
Lamda=eig(A)
disp('Calcolo del rango per la valutazione dello spazio di controllabilit')
%Calcolo della matrice di controllabilit
Mcont=ctrb(A,B)
rc=rank(Mcont)
disp('Il sistema completamente controllabile')
disp('Calcolo del rango per la valutazione dello spazio di osservabilit')
Moss=obsv(A,C)
ro=rank(Moss)
disp('Il sistema completamente osservabile ')
disp('Uso il teorema di dualit e passo dal problema stocastico a quello deterministico')
%Essendo (A,G) controllabile e (A,C) osservabile esiste P soluzione della
%ARE(Algebric Riccati Equation)
disp('Scelgo Q in modo da ottimizzare i pesi matriciali')
Q=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]
G=B
disp('Fisso R ed M=0')
R=[1 0;0 1]
disp('Risolvo il problema LQR associato')
[K,P,E]=lqr(A',G,Q,R)
Vinf=trace(P*G*G')
disp('Si ottenuto un indice di costo peggiorato')
%Simulazione a ciclo aperto
sim('simlqr1')
figure(4)
plot(t1,x1);
legend('x1','x2','x3','x4',2)
title('Uscita degli stati a ciclo aperto')
grid on
figure(5)
plot(t1,u1)
legend('u1','u2')
title('Uscita delle variabili di controllo a ciclo aperto ')
grid on
figure(6)
plot(t1,y1)
legend('y1','y2',2)
title('Uscite del sistema a ciclo aperto ')

56
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
grid on
%Simulazione del sistema retroazionato usando la Matrice di retroazione K
%ricavata dal problema LQR precedente
sim('sim_feedback1giusto')
figure(7)
plot(tfeed1,xfeed1);
legend('x1','x2','x3','x4',2)
title('Uscita degli stati a ciclo chiuso')
grid on
figure(8)
plot(tfeed1,ufeed1)
legend('u1','u2')
title('Uscita delle variabili di controllo a ciclo chiuso')
grid on
figure(9)
plot(tfeed1,yfeed1)
legend('y1','y2',2)
title('Uscite del sistema a ciclo chiuso')
grid on

57
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
8 Controllo ottimo LQG.
Se un sistema corrotto sia da rumore di processo che da rumore di misura, ragionevole pensare
di voler costruire una legge di controllo, che sia allo stesso tempo ottima e che consenta di filtrare i
disturbi. Una legge di controllo di tale natura insita nel filtro di Kalman che un osservatore per
problemi di natura stocastica. Infatti dato il problema di sotto enunciato

x& = Ax + Bu + p
y = Cx + n
E[ p(t ) p T (t )] = (t ), Rumuore _ di _ processo
E[n(t )n T (t )] = N (t ), Rumuore _ di _ misura
E[ p(t )n T (t )] = 0, Rumuori _ scorrelati _ tra _ di _ loro

u (t ) x(t )

y (t ) = x (t )

Il filtro di Kalman rappresentato dal seguente sistema ISU:

x& = Ax + Bu + k f ( y Cx )
Filtro _ di _ Kalman
y = x

A partire dal filtro si pu stimare la dinamica dellerrore che la seguente:

e& = x& x& = ( A k f C )( x x ) + p k f n


= p k f n contributo _ aleatorio
E[e(t ) x (t )] = 0 vettori _ disaccoppiati

Il problema di ottimizzazione deve essere riformulato come un problema che preveda di


minimizzare lerrore in funzione del guadagno di filtro kf , ossia come:

58
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
min k f lim E[e T CC T e]
t +

s.a.
E[ (t )] = E[ p (t ) k f n(t )] = 0
E[ p (t ) p T (t )] = ( + k f Nk f ) (t )
T

La soluzione del problema :

( A k f C ) S + S ( A k f C ) T + + k f Nk f = 0
T

V f = tr ( SCC T )
*

Attraverso il teorema di dualit si pu passare semplicemente dal problema stocastico suddetto al


problema deterministico equivalente ponendo:

PS
xo C
( A Bk ) T ( A k f C )
AT A
kT k f
BT C
Q
RN

1 T
Tenendo conto che k = R B P la soluzione sar:

( A Bk ) T P + P( A BK ) + Q + Qk T Rk = 0
Vc * = tr ( Px 0 x 0 )
T

A questo punto possibile enunciare il seguente teorema.

59
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

8.1 Teorema di kalman su orizzonte infinito

V = min k f lim E[e T CC T e]


t +

s.a.
x& = Ax + Bu + p (t )
y = Cx + n(t ) 1
AS + SA T + SC T N CS = 0
E[ p (t ) p (t )] = (t )
T
S 0

E[n(t )n (t )] = N (t )
T
k f = SC T N 1
(A k f C)
*
con V s = tr ( SCC T
)
e = x x _( Stato _ stimato)
( AT , C T ) stabilizzabile ( A, C )rivelabile
( AT , 1 / 2 )rivelabile ( A, 1 / 2 ) stabilizzabile

La stessa formulazione pu essere applicata nel caso di orizzonte finito a patto di modificare le
ipotesi e la tesi, andando ad esplicitare la dipendenza temporale della matrice S e delle altre matrici.
Infatti :

k f (t ) = S (t )C T N 1 , S& (t ) = AS (t ) + S (t ) AT + S (t )C T N 1CS (t ); S (t 0 ) = S 0 , S (t ) = E[e(t )e T (t )]

Un principio che permette la risoluzione del problema il PRINCIPIO DI SEPARAZIONE, che


stabilisce che un problema LQG pu essere ridotto alla soluzione di due equazioni di Riccati
disaccopiate, una di un problema determininistico LQ (ARE) , una del problema di Kalman
(FARE).

8.2 Principio di Separazione:

k = R 1 B T P
( A, B) _ stabilizabile AT P + PA + Q PBR 1 B T P = 0
( A, C ) _ rivelabile k f = SC T N 1
u (t ) = kx SAT + AS + SC T N 1CS
V * = Vd + V f = tr ( Pk f k f ) + tr ( SQ)
T

Adesso andiamo a svolgere un esercizio sul filtro di Kalman con lausilio di Matlab.

60
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
8.3 Esercizio:

Dato il seguente modello linearizzato del rotore dellelicottero CH-47 in moto orizzontale alla
velocit di 40 nodi:

0.02 0.005 2.4 32 0.14 0.12


0.14 0.44 1.3 30 0.36 08.6
0 1 0 0
A= B= C=
0 0.018 1.6 1.2 0.35 0.009 0 0 0 57.3

0 0 1 0 0 0

con i seguenti vincoli:


.
x = Ax + Bu + p
y = Cx + n
E[ p(t ) p (t ) T ] = (t ), = BB T
E[n(t )n(t ) T ] = N (t ), N = I 2
E[n(t ) p (t ) T ] = 0
B = G = I 4 , Q = CC T , R = I 2

dove:
y1=velocit verticale (nodi/hr)
y2=angolazione in altezza (radianti)
u1=spinta del rotore
u2=spinta differenziale del rotore

Costruire un legge di controllo ottimo LQG con ingresso costante.

Risoluzione:

Andiamo a fare le computazioni con Matlab

Matrice associate al sistema

A=

-0.0200 0.0050 2.4000 -32.0000


-0.1400 0.4400 -1.3000 -30.0000
0 0.0180 -1.6000 1.2000
0 0 1.0000 0

B=

0.1400 -0.1200
0.3600 -8.6000
0.3500 0.0090
0 0

61
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
C=

0 1.0000 0 0
0 0 0 57.3000

D=

0 0
0 0

gli autovalori della matrice dinamica sono:

Lamda =

-2.2279
0.0652
0.4913 + 0.4151i
0.4913 - 0.4151i

Calcolo della matrice di controllabilit

Mcont =

0.1400 -0.1200 0.8390 -0.0190 -12.5468 -0.7126 21.0332 5.9325


0.3600 -8.6000 -0.3162 -3.7789 -10.0370 -1.7101 12.2559 4.1458
0.3500 0.0090 -0.5535 -0.1692 1.2999 0.2135 -2.9248 -0.5754
0 0 0.3500 0.0090 -0.5535 -0.1692 1.2999 0.2135

Calcolo del rango per la valutazione dello spazio di controllabilit

rc =

Il sistema completamente controllabile


Calcolo della matrice di osservabilit

Moss =

0 1.0000 0 0
0 0 0 57.3000
-0.1400 0.4400 -1.3000 -30.0000
0 0 57.3000 0
-0.0588 0.1695 -28.8280 -10.2800
0 1.0314 -91.6800 68.7600
-0.0226 -0.4446 35.4833 -37.7970
-0.1444 -1.1964 214.1072 -140.9580

62
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Calcolo del rango per la valutazione dello spazio di osservabilit

ro =

Il sistema completamente osservabile


Scelgo Q in modo da ottimizzare i pesi matriciali

Q=

1.0e+003 *

0 0 0 0
0 0.0010 0 0
0 0 0 0
0 0 0 3.2833

Fisso R ed M=0

R=

1 0
0 1

Risolvo il problema deterministico del sistema di partenza in modo separato

k=

-0.0033 0.0472 14.6421 60.8894


0.0171 -1.0515 0.2927 3.2469

P=

1.0e+003 *

0.0000 -0.0000 -0.0000 -0.0001


-0.0000 0.0001 0.0000 -0.0002
-0.0000 0.0000 0.0418 0.1742
-0.0001 -0.0002 0.1742 1.1209

E=

-8.6168
-3.3643 + 2.9742i
-3.3643 - 2.9742i
-0.0196

Risolviamo il problema stocastico associato

63
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
attraverso la risoluzione del problema duale di tipo deterministico.

Xi =

0.0340 1.0824 0.0479 0


1.0824 74.0896 0.0486 0
0.0479 0.0486 0.1226 0
0 0 0 0

Theta =

1 0
0 1

Soluzione della FARE

S=

8.3615 0.0158 0.0187 -0.0042


0.0158 9.0660 0.0091 -0.0031
0.0187 0.0091 0.0250 0.0040
-0.0042 -0.0031 0.0040 0.0016

Guadagno di filtro

kf =

0.0158 -0.2405
9.0660 -0.1761
0.0091 0.2289
-0.0031 0.0893

Matrici W e V di correlazione allargate per risolvere il problema LQG


W=[Q 0;0 R] e V=[Xi 0;0 Theta]
Matrici del filtro di Kalman

Af =

-0.0175 -0.1436 0.3852 -26.3518


0.0084 -17.6863 -4.0536 -13.9065
0.0010 0.0018 -6.7274 -33.2584
0 0.0031 1.0000 -5.1191

Bf =

0.0158 -0.2405
9.0660 -0.1761
0.0091 0.2289
-0.0031 0.0893
Cf =

64
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
-0.0033 0.0472 14.6421 60.8894
0.0171 -1.0515 0.2927 3.2469

Df =

0 0
0 0

Indice di costo deterministico

Vc =

28.3476

Indice di costo del filtro di Kalman

Vf =

14.1851

Indice di costo totale

Vstar =

42.5327

Una volta determinati numericamente i risultati del problema, necessario valutare le prestazioni
del sistema, andando a fare delle simulazioni prima a ciclo aperto, poi a ciclo chiuso attraverso
Simulink di matlab. Nella pagina successiva, verr analizzato lo schema a ciclo aperto.

65
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

8.4 Schema dellelicottero a ciclo aperto.

66
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

8.5 Schema dellelicottero a ciclo chiuso.

67
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

68
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Si puo notare che con il progetto del filtro si sono migliorate di molto le prestazioni che si avevano
a ciclo aperto, oltre ad aver filtrato in maniera ottima i disturbi di misura e di processo.
Qui di seguito viene riportato il codice Matlab usato per la la risoluzione del problema LQG.

8.6 Codice Matlab

%Risoluzione del problema LQG ad orizzonte infinito (Filtro di Kalman)


disp('Matrice associate al sistema')
A=[-0.02 0.005 2.4 -32;-0.14 0.44 -1.3 -30;0 0.018 -1.6 1.2;0 0 1 0]
B=[0.14 0.36 0.35 0;-0.12 -8.6 0.009 0]'
C=[0 1 0 0;0 0 0 57.3]
%Ctilde la matrice C allargata usata per plottare gli stati,le variabili
%di controllo e le uscite.
Ctilde=[-0.02 0.005 2.4 -32;-0.14 0.44 -1.3 -30;0 0.018 -1.6 1.2;0 0 1 0;0.14 0.36 0.35 0;-0.12 -8.6
0.009 0;0 1 0 0;0 0 0 57.3];
D=zeros(2)
disp('gli autovalori della matrice dinamica sono:')
Lamda=eig(A)
disp('Calcolo della matrice di controllabilit')
Mcont=ctrb(A,B)
disp('Calcolo del rango per la valutazione dello spazio di controllabilit')
rc=rank(Mcont)
disp('Il sistema completamente controllabile')
disp('Calcolo della matrice di osservabilit')

69
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Moss=obsv(A,C)
disp('Calcolo del rango per la valutazione dello spazio di osservabilit')
ro=rank(Moss)
disp('Il sistema completamente osservabile ')
%Essendo (A,B) controllabile e (A,C) osservabile esiste P soluzione della
%ARE(Algebric Riccati Equation)
disp('Scelgo Q in modo da ottimizzare i pesi matriciali')
Q=C'*C
disp('Fisso R ed M=0')
R=[1 0;0 1]
disp('Risolvo il problema deterministico del sistema di partenza in modo separato')
%Applico il teorema di separazione.
[k,P,E]=lqr(A,B,Q,R)
disp('Risolviamo il problema stocastico associato')
disp('attraverso la risoluzione del problema duale di tipo deterministico.')
%Poniamo A=A',B=C',Pigreco=Xi=B*B',N=Theta=R
Xi=B*B'
Theta=R
[k1,P1,E1]=lqr(A',C',Xi,Theta);
disp('Soluzione della FARE')
S=P1
disp('Guadagno di filtro')
kf=k1'
disp('Matrici W e V di correlazione allargate per risolvere il problema LQG')
disp('W=[Q 0;0 R] e V=[Xi 0;0 Theta]')
W=[Q,zeros(4,2);zeros(2,4),R];
V=[Xi,zeros(4,2);zeros(2,4),Theta];
disp('Matrici del filtro di Kalman')
[Af,Bf,Cf,Df]=lqg(A,B,C,D,W,V)
disp('Indice di costo deterministico')
Vc=trace(P*kf*kf')
disp('Indice di costo del filtro di Kalman')
Vf=trace(S*Q)
disp('Indice di costo totale')
Vstar=Vc+Vf
sim('Kalman_open_giusto')
figure(1)
plot(tko,xko);
legend('x1','x2','x3','x4',2)
title('Uscita degli stati a ciclo aperto')
grid on
figure(2)
plot(tko,uko)
legend('u1','u2')
title('Uscita delle variabili di controllo a ciclo aperto')
grid on
figure(3)
plot(tko,yko)
legend('y1','y2',2)
title('Uscite del sistema a ciclo aperto')

70
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
grid on
sim('Kalman_giusto')
figure(4)
plot(tk,xk);
legend('x1','x2','x3','x4',2)
title('Uscita degli stati a ciclo chiuso')
grid on
figure(5)
plot(tk,uk)
legend('u1','u2')
title('Uscita delle variabili di controllo a ciclo chiuso')
grid on
figure(6)
plot(tk,yk)
legend('y1','y2',2)
title('Uscite del sistema a ciclo chiuso')
grid on

71
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Parte II : Tecnologia dei sistemi di


controllo

72
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

1) Tecniche di identificazione.
Uno dei problemi fondamentali nella teoria dei controlli automatici quello di regolare il valore di
una determinata quantit fisica di un processo ad un livello di riferimento desiderato.
Per fare ci occorre conoscere le caratteristiche di un processo fisico al fine di individuare:

- Le variabili duscita da controllare


- Le variabili di controllo (in ingresso al processo)
- Le variabili non manipolabili (di disturbo)

Spesse volte per, quando limpianto da controllare di ordine elevato, necessario approssimarlo
con un modello parametrico di basso ordine in modo tale da esemplificare la progettazione della
legge di controllo. A tale scopo vi sono varie strade che possono essere seguite per ricavare il
modello matematico in questione, quella che si utilizzer si basa su un approccio di tipo sperimentale:
verranno applicati dei segnali opportuni in ingresso al processo fisico, e verr misurata luscita.Il
modello da identificare pu avere varie caratteristiche:

- Essere lineare o non lineare (rispettare o meno in principio di sovrapposizione degli effetti)
- Essere stazionario o non stazionario (matrici caratteristiche dipendenti o indipendenti dal
tempo)
- Essere statico o dinamico (legame algebrico o non algebrico tra ingressi e uscite)

I modelli parametrici che si andranno ad esaminare dora in poi saranno lineari, dinamici, stazionari
tempo in varianti (LTI), verranno trattati nel dominio di Laplace o in frequenza nella
rappresentazione ingresso uscita sotto lipotesi di stabilit BIBO .
I passi salienti del processo di identificazione sono:

a) Applicazione un ingresso U 0 (gradino o sinusoide) tale da portare il sistema in un punto di


lavoro desiderato, e tale da ottenere un uscita Y0 che converga a regime.

b) Azione di filtraggio del rumore.

c) Normalizzazione dell uscita ( consigliabile per motivi numerici), tale da portare ad 1 il valore
della Y a regime.

d) Costruzione della struttura parametrica del modello lineare.

e) Identificazione dei parametri di tale struttura.

f) Verifica del modello rispetto alla risposta al gradino (eventualmente ritorno al punto d).

g) Verifica del modello rispetto alle risposte ad altri segnali (eventualmente ritorno al punto d).

Per simulare un sistema fisico sul quale andare a ricavare sperimentalmente la risposta al gradino, si
far uso del simulatore numerico Matlab ed del tool Simunlink, nel quale si introdurr una

73
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
funzione di trasferimento, che si suppone essere quella esatta del processo, e si andr poi a
dimensionare le varie strutture parametriche esaminate durante il corso.

1.1) Modelli a due parametri.


La funzione di trasferimento del primo modello dipende da due parametri k e , secondo la
seguente espressione analitica:

k
W ( s) =
1 + s

k il guadagno statico della funzione parametrica W(s), che pari a quella del sistema fisico G(s) da
identificare , mentre una costante di tempo che prende il nome di tempo medio di convergenza.
Per poter trovare i valori di k e , necessario calcolare la risposta al gradino della G(s) ed adottare il
metodo della tangente o il metodo delle aree.
Per tale modello verr utilizzato il metodo delle aree, secondo il quale si calcola larea sottesa tra la
risposta al gradino della funzione G(s) ed il suo guadagno statico attraverso il seguente integrale:

+
A0 = [s(+) s(t )]dt
0

s (t )
k = s (+)
k
s (t )

A0

A0
E si calcola il tempo medio di convergenza attraverso il seguente rapporto = .
k
Si otterr un modello del primo ordine che approssima bene il sistema di partenza per basse
frequenze (buon comportamento in regime statico).
Un altro modello a due parametri il modello integratore-ritardo che ha la seguente forma:
a
W ( s ) = e sL
sL

con L tempo di ritardo che pari allintersezione della retta di massima tangenza e lasse delle ascisse
ed a intersezione tra la retta suddetta e lasse delle ordinate.

74
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Lidentificazione verr fatta con il metodo della tangente ed il modello ottenuto approssimer bene la
funzione di trasferimento di partenza per alte frequenze (comportamento buono in regime dinamico).

s (t )
k = s (+)
k
s (t )

L t
a

ES 1.1.1
5
Data la funzione di trasferimento G ( s ) = determinare il suo modello approssimato
( s + 5) ( s + 10) 2
2

del primo ordine a due parametri col metodo delle aree .

Svolgimento:

Lesercizio verr svolto con matlab, adottando dapprima il metodo delle aree, in modo da ricavare il
primo modello a due parametri, successivamente col metodo della tangente per ottenere il secondo
modello . Tramite uno schema simulink si valuta qualitativamente larea A0 delimitata tra la funzione
di risposta al gradino e il guadagno statico:

75
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

La valutazione dellintegrale porta a questa risposta:

-3
x 10 Area di k-s(t)
1.4

1.2

0.8

0.6

0.4

0.2

0
0 1 2 3 4 5 6 7 8 9 10

In base a questa analisi qualitativa si passati alla formalizzazione del modello per via numerica:

Sistema da identificare

Funzione di trasferimento del sistema di partenza:


5
--------------------------------------------------------------
s^4 + 30 s^3 + 325 s^2 + 1500 s + 2500

Guadagno statico

k=

0.0020

Uso del metodo delle Aree per identificare due parametri


per sistemi non oscillanti
Identificazione dei parametri caratteristici

76
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
A0 =
0.0012
Taver =

0.6000

Funzione di trasferimento del modello approssimato:

0.002
--------------
0.6 s + 1

Andiamo a confrontare la risposta del modello originale e quella del modello approssimato tramite
flottaggio della risposta a gradino:

-3
x 10 Identificazione a due parametri col metodo delle aree
2

Risposta del sistema


Risposta del modello approssimato

0
0 1 2 3 4 5 6 7 8 9 10

Si evince che il modello a due parametri ottenuto col metodo delle aree approssima bene il modello
originale a regime, mentre in fase di transitorio risulta un certo scostamento.
Tale risultato indice del fatto che un modello di tale tipo approssima bene il sistema di partenza a
basse frequenze, una conferma di ci si pu avere tracciando i diagrammi di Bode.

77
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

1.1.2) Diagrammi di Bode comparativi

Bode Diagram
-50

-100
Magnitude (dB)

-150

-200

-250
0
Risposta in frequenza del sistema
Risposta in frequenza del modello approssimato

-90
Phase (deg)

-180

-270

-360
-1 0 1 2 3
10 10 10 10 10
Frequency (rad/sec)

Adesso andremo a fare delle valutazioni della bont del modello prima visto nel caso in cui si somma
la presenza di un rumore bianco di tipo gaussiano.

78
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Adottando sempre la stessa approssimazione si ottengono le seguenti risposte:

-3
x 10 Metodo delle aree in presenza di rumuore bianco
2.5

1.5

Risposta del sistema senza rumuore


Risposta del sistema con rumuore
Risposta approssimata in presenza di rumuore
1

0.5

-0.5
0 1 2 3 4 5 6 7 8 9 10

Come si vede, la presenza del rumore gaussiano bianco a banda limitata peggiora le prestazioni del
sistema e di conseguenza anche la risposta del modello, in quanto a regime vi sono oscillazioni della
risposta.
Il codice matlab che ha permesso di generare questi risulatati il seguente:

1.1.3) Codice Matlab:

%Modello a due parametri col metodo delle aree


%Scrivo il sistema da identificare
disp('Sistema da identificare')
n=[5] ;
d=conv([1 10 25],[1 20 100]);
g=tf(n,d)
disp('Guadagno statico')
k=dcgain(g)
disp('Uso del metodo delle Aree per identificare due parametri')
disp('per sistemi non oscillanti')
%Da un analisi qualitativa sulla risposta al gradino
disp('Identificazione dei parametri caratteristici')
A0=1.2*10^-3
Taver=A0/k
na=k;

79
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
da=[Taver 1];
ga=tf(na,da)
sim('mod_2_par',10)
figure(1)
plot(t,A)
title('Area di s(t)')
grid on
figure(2)
plot(t,y)
hold on
plot(ta,ya,'--k')
grid on
title('Identificazione a due parametri col metodo delle aree')
legend('Risposta del sistema','Risposta del modello approssimato')
%Modello a due parametri col metodo delle aree in presenza di rumuore bianco gaussiano
nan=na;
dan=da;
sim('mod_2_par_noise',10)
figure(3)
plot(tn,y)
hold on
plot(tn,yn,'r')
plot(tn,yn1,'g')
grid on
title('Metodo delle aree in presenza di rumuore bianco')
legend('Risposta del sistema senza rumuore','Risposta del sistema con rumuore','Risposta
approssimata in presenza di rumuore')
%Diagrammi di Bode
figure(4)
bode(g)
hold on
bode(ga)
legend('Risposta in frequenza del sistema','Risposta in frequenza del modello approssimato')

ES 1.1.4
Data la funzione di trasferimento dell esercizio precedente determinare il suo modello approssimato
a due parametri con integratore e ritardo, mediante il metodo della tangente.

Svolgimento:

Questa volta il comportamento del sistema G(s) viene approssimato mediante una retta con
coefficiente angolare pari alla massima pendenza della risposta al gradino nel transitorio. Questo tipo
di modello segue molto bene landamento della risposta al gradino nel transitorio, ma poi diverge
sensibilmente a regime, andando allinfinito. Ci fa s che il modello integratore pi ritardo venga
usato solo per un certo intervallo di tempo. Per trovare la pendenza della risposta al gradino, si
esegue unoperazione di derivazione in uscita dal sistema e si trova il valore massimo della curva
ottenuta. Questo metodo non pu essere usato in presenza di rumore di processo, poich la
derivazione produrrebbe un amplificazione della risposta.
Lo schema a blocchi utilizzato per calcolare la derivata della risposta al gradino del sistema il
seguente:

80
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

A partire dal vettore di campioni di m risultanti dalla simulazione, si calcolato attraverso matlab il
campione di massimo valore con listruzione max(m), poi con il comando i=find(m=max(m)) si
ricavato lindice associato al campione di massimo valore in modo tale da ottenere le coordinate t0,e
y0 nel punto di massima pendenza.Una volta ottenuti i dati necessari, si scritta lequazione della
retta passante per questi punti e intersecandola prima con lasse x e poi con lasse y, si calcolato L ed
a.

>>
Sistema da identificare

Funzione di trasferimento del sistema da identificare:


5
--------------------------------------
s^4 + 30 s^3 + 325 s^2 + 1500 s + 2500

Guadagno statico

k=

0.0020

Uso del metodo della tangente per identificare il modello due parametri con
esponenziale per sistemi non oscillanti
Ricavo il coefficiente angolare di massima pendenza dalla simulazione
e il valore temporale in corrispondenza della pendenza massima

coeffang =

81
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
0.0029

Istante in cui il coefficiente assume valore massimo

t0 =

0.4613

Determino il valore di y in corrispodenza di t0

y0 =

7.6814e-004

Scrivo l equazione della retta passante per t0,y0 e di coefficiente angolare


coeffang
Calcolo L ed a come intersezione della retta con gli assi coordinati

L=

0.2005

a=

-5.9069e-004

Numeratore e denominatore approssimato in assenza di ritardo

na1 =

5.9069e-004

da1 =

0.2005 0
>>
Adesso simulando la risposta del modello approssimato con il seguente schema di simulazione

82
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

si ottiene una risposta che confrontata con quella del sistema di partenza ha il seguente andamento:

-3
x 10 Identificazione a due parametri col metodo della tangente
6
Sistema di partenza
Modello approssimato

-1
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Adesso confrontiamo le approssimazioni a due parametri ottenute

83
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
-3
x 10 Analisi comparativa delle risposte dei modelli a due parametri
6

Risposta al sistema
Modello del 1 ordine
5 Modello con integratore e ritardo

-1

-2

0.5 1 1.5 2 2.5

Riassumendo si ha che il sistema del primo ordine esibisce un buon comportamento dal punto di
vista della precisione statica, mentre il modello con integratore e ritardo ha un buon comportamento
in fase dinamica, ma poi tende a divergere per istanti di tempo grandi.
Questo vuol dire che un modello va bene per basse frequenze laltro va bene per alte frequenze.
Diagrammi di Bode
-30
Diagramma del sistema
-35 Diagramma del modello
-40

-45

-50

-55

-60

-65
-1 0 1
10 10 10

-50

-100

-150
-1 0 1
10 10 10

1.1.5) Codice Matlab:

%Modello a due parametri con esponenziale


%Scrivo il sistema da identificare
disp('Sistema da identificare')

84
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
n1=[5] ;
d1=conv([1 10 25],[1 20 100]);
g=tf(n1,d1)
disp('Guadagno statico')
k=dcgain(g)
disp('Uso del metodo della tangente per identificare il modello due parametri con')
disp(' esponenziale per sistemi non oscillanti')
disp('Ricavo il coefficiente angolare di massima pendenza dalla simulazione')
disp ('e il valore temporale in corrispondenza della pendenza massima')
sim('mod_2_par_expo',2)
coeffang=max(m)
i=find(m==max(m));
disp('Istante in cui il coefficiente assume valore massimo')
t0=t1(i)
disp('Determino il valore di y in corrispodenza di t0')
y0=y1(i)
disp('Scrivo l equazione della retta passante per t0,y0 e di coefficiente angolare')
disp('coeffang')
tr=linspace(0,2,1000);
yr=y0+coeffang*(tr-t0);
disp('Calcolo L ed a come intersezione della retta con gli assi coordinati')
L=(coeffang*t0-y0)/coeffang
a=y0-coeffang*t0
disp('Numeratore e denominatore approssimato in assenza di ritardo')
na1=-a
da1=[L 0]
sim('mod_2_par_expo1',2)
figure(1)
plot(tr,yr)
hold on
plot(t1,y1,'r')
title('Metodo della tangente')
legend('Retta approssimante di massima pendenza','Risposta del sistema')
grid on
figure(2)
plot(t1,y1)
hold on
plot(ta1,ya1,'--k')
title('Identificazione a due parametri col metodo della tangente')
legend('Sistema di partenza','Modello approssimato')
grid on
%Diagrammi di Bode
hold off
w=0:0.1:7;
ng=5;
dg=(j*w).^4+30*(j*w).^3+325*(j*w).^2+1500*(j*w)+2500;
ne=exp(-j*w*L)
na=na1*ne;
da=j*w*L
modulog=20*log10(abs(ng))-20*log10(abs(dg));
moduloa=20*log10(abs(na))-20*log10(abs(da));

85
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
faseg=angle(ng)*180/pi-angle(dg)*180/pi;
fasea=angle(na)*180/pi-angle(da)*180/pi;
figure(3)
subplot(2,1,1)
semilogx(w,modulog)
axis([10^-1,10,-65,-30])
hold on
grid on
semilogx(w,moduloa,'r')
title('Diagrammi di Bode')
legend('Diagramma del sistema','Diagramma del modello')
subplot(2,1,2)
semilogx(w,faseg)
axis([10^-1,10,-165,0])
hold on
grid on
semilogx(w,fasea,'r')

1.2) Modelli a tre parametri.

Passiamo ora ad esaminare un secondo tipo di modello caratterizzato da tre parametri

k k
W ( s) = e sL oppure W ( s) = e sL
1 + s (1 + s ) 2

Per calcolare i valori dei due parametri L (tempo di ritardo) e k si applica lo stesso procedimento
utilizzato nel modello a due parametri del tipo integratore pi ritardo.

Tav1 = 1 + L Tempo medio 1


Tav2 = 2 + L Tempo medio 2
L Ritardo apparente
Costante di tempo
apparente

Vi possono essere due tipi di


approssimazioni:
1) da L a Tav1 = 1 + L
2) da L a Tav2 = 2 + L

Il metodo di determinazione dei parametri puramente grafico.

ES 1.2.1

86
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Determinare un modello approssimato a tre parametri per il sistema non oscillante
5
G (s) = e discutere le risposte qualitative.
( s + 5) ( s + 10) 2
2

Svolgimento:

Analogamente a quanto fatto per il modello a due parametri con integratore e ritardo anche in questo
caso si vanno a determinare i parametri attraverso delle computazioni in ambiente matlab:
Sistema da identificare

Transfer function:
5
--------------------------------------
s^4 + 30 s^3 + 325 s^2 + 1500 s + 2500

Guadagno statico

k=

0.0020

Ricavo il coefficiente angolare di massima pendenza dalla simulazione


e il valore temporale in corrispondenza della pendenza massima

coeffang =

0.0029

t0 =

0.4615

Determino il valore di y in corrispodenza di t0

y0 =

7.6884e-004

Scrivo l equazione della retta passante per t0,y0 e di coefficiente angolare


coeffang

tr =
0 1.1111 2.2222 3.3333 4.4444 5.5556 6.6667 7.7778 8.8889 10.0000

yr =
-0.0006 0.0027 0.0059 0.0092 0.0125 0.0157 0.0190 0.0222 0.0255 0.0287
Calcolo L ed a come intersezione della retta con gli assi coordinati

87
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

L=

0.1994

Numeratore e denominatore del modello a 3 parametri senza ritardo del 1ordine

n3a =

0.0020

d3a =

0.4615 1.0000

Istante temporale del modello del secondo ordine

tau =

[ .19679333561672414334909562234138]

Numeratore e denominatore del modello a 3 parametri senza ritardo del 2ordine

n3a1 =

0.0020

d3a1 =

0.0387 0.3936 1.0000

Una volta ricavato il valore del numeratore e del denominatore dei modelli si vanno confrontare le
risposte del sistema di partenza attraverso il seguente schema simunink:

La risposta dei modelli a tre parametri risulta essere molto pi vicina alloriginale di quanto non lo era
quella dei modelli a due parametri.

88
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Infatti apprezzabile la bont di approssimazione del modello del primo ordine, nel quale si
evidenziava una buona precisione statica e la precisione dinamica dovuta al termine di ritardo.

-3
x 10 Identificazione a tre parametri col metodo della tangente
2
Risposta del sistema
Risposta del modello a 3par del 1ordine
Risposta del modello a 3par del 2ordine

0
0 1 2 3 4 5 6 7 8 9 10

Diagrammi di Bode
-30
Diagramma del sistema
-35 Diagramma del modello a 3par del 1ordine
Diagramma del modello a 3 par del 2 ordine
-40

-45

-50

-55

-60

-1 0 1
10 10 10

-50

-100

-150
-1 0 1
10 10 10

Lapprossimazione fatta quella in cui il tempo medio stato preso pari al tempo in corrispondenza
del punto di massima tangenza.

89
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Unaltra approssimazione possibile, come stato detto in precedenza, quella in cui il tempo medio
viene preso in corrispondenza allintersezione tra il guadagno in continua e la tangente: in questo caso
aumentandosi il tempo medio si avr una sovrastima del parametro di tempo.
Onde evitare ci si usa il modello a tre parametri del 2 ordine in cui non c il pericolo di una
sovrastima.

1.2.2) Codice Matlab:

%Identificazione a tre parametri


%Scrivo il sistema da identificare
disp('Sistema da identificare')
n1=[5] ;
d1=conv([1 10 25],[1 20 100]);
g=tf(n1,d1)
disp('Guadagno statico')
k=dcgain(g)
sim('mod_2_par_expo')
disp('Ricavo il coefficiente angolare di massima pendenza dalla simulazione')
disp ('e il valore temporale in corrispondenza della pendenza massima')
coeffang=max(m)
i=find(m==max(m));
t0=t1(i)
disp('Determino il valore di y in corrispodenza di t0')
y0=y1(i)
disp('Scrivo l equazione della retta passante per t0,y0 e di coefficiente angolare')
disp('coeffang')
tr=linspace(0,10,10)
yr=y0+coeffang*(tr-t0)
disp('Calcolo L ed a come intersezione della retta con gli assi coordinati')
L=(-y0+coeffang*t0)/coeffang
a=y0-coeffang*t0;
disp('Numeratore e denominatore del modello a 3 parametri senza ritardo del 1ordine')
%Modello a tre parametri del primo ordine
n3a=k
d3a=[t0 1]
%Per evitare la sovrastima di T (tempo di convergenza apparente)
%si usa il modello a tre parametri del secondo ordine
%A partire dai dati precedenti si impone che la risposta del modello del 2
%ordine passi per il punto t0,y0 ricavato precedentemente.
disp('Istante temporale del modello del secondo ordine')
[T]=solve('0.002-0.002*(1+(0.4615-0.1994)/T)*exp(-(0.4615-0.1994)/T)=7.6884e-004');
tau=T(2)
disp('Numeratore e denominatore del modello a 3 parametri senza ritardo del 2ordine')
n3a1=k
d3a1=[0.0387 0.3936 1.0000]
sim('mod_3_par')
plot(t1,y1)
hold on
plot(t3a,y3a,'--k')
grid on
plot(t3a,y3a1,'--r')

90
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
title('Identificazione a tre parametri col metodo della tangente')
legend('Risposta del sistema','Risposta del modello a 3par del 1ordine','Risposta del modello a 3par
del 2ordine')
%Diagrammi di Bode
hold off
w=0:0.1:7;
ng=5;
dg=(j*w).^4+30*(j*w).^3+325*(j*w).^2+1500*(j*w)+2500;
ne=exp(-j*w*L);
na=k*ne;
da=1+j*w*t0;
na1=na;
da1=t0^2*(j*w).^2+2*t0*(j*w)+1;
modulog=20*log10(abs(ng))-20*log10(abs(dg));
moduloa=20*log10(abs(na))-20*log10(abs(da));
moduloa1=20*log10(abs(na1))-20*log10(abs(da1));
faseg=angle(ng)*180/pi-angle(dg)*180/pi;
fasea=angle(na)*180/pi-angle(da)*180/pi;
fasea1=angle(na1)*180/pi-angle(da1)*180/pi;
figure(2)
subplot(2,1,1)
semilogx(w,modulog)
axis([10^-1,10,-64,-30])
hold on
grid on
semilogx(w,moduloa,'--k')
semilogx(w,moduloa1,'--r')
title('Diagrammi di Bode')
legend('Diagramma del sistema','Diagramma del modello a 3par del 1ordine','Diagramma del
modello a 3 par del 2 ordine')
subplot(2,1,2)
semilogx(w,faseg)
axis([10^-1,10,-150,0])
hold on
grid on
semilogx(w,fasea,'--k')
semilogx(w,fasea1,'--r')

91
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
1.3) Modelli a quattro parametri:
Dopo aver esaminato i modelli a due e a tre parametri passiamo ora ad esaminare i modelli a quattro
parametri.
Lespressione analitica del modello nel dominio della frequenza la seguente

k
W ( s) = e sL
(1 + s 1 )(1 + s 2 )

I parametri da calcolare sono k, L, 1 e 2


k il guadagno in continua sistema da approssimare ed ha il stesso valore trovato nei modelli
precedenti.
I parametri L, 1 e 2 si calcolano tipicamente attraverso una ottimizzazione numerica.
Il valore iniziale di L quello trovato nei modelli a tre parametri cos come per 1 e 2 che si
scelgono uguali al tempo trovato in precedenza.
Per lottimizzazione dei valori di 1 , 2 si utilizzata la seguente Funzione Oggetto :

function f=Mod4(x,t,y)
tau1=x(1);
tau2=x(2);
k=0.002;
num=k;
den=conv([tau1 1],[tau2 1]);
yn=step(num,den,t);
f=sum([(y-yn).^2]);
end

Attraverso listruzione fmins ( nelle attuali versioni di matlab si usa lespressione fminsearch) si
ottimizzano i parametri suddetti in modo tale che la risposta sperimentale coincida il pi possibile con
quella di partenza. La sintassi di fmins :

tau=fmins('mod4',x0,[],x,t,y)
dove x0 il vettore iniziale di iteraizione, mentre x,y,t sono le variabili passate alla funzione.

ES 1.3.1

A partire dalla funzione non oscillante degli esercizi precedenti, andare a determinare il modello a
quattro parametri e confrontare la sua risposta con quella del sistema di partenza.

Svolgimento:
Il risultato del processo di calcolo fatto con matlab il seguente:

92
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Definisco il vettore iniziale che ha componenti pari al valore di tau
determinato nel modello a tre parametri

x=

1.2013 1.2013

Parametri ottimizzati

tau =

0.2539 0.2540

Funzione di trasferimento approssimata senza ritardo

n4 =

0.0020

d4 =

0.0645 0.5078 1.0000

Ritardo apparente

L=

0.0774

La risposta della simulazione , usando il seguente schema a blocchi, confrontata con que lla del
sistema di partenza ottimale.

93
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Il modello sperimentale ottenuto molto vicino a quello del sistema di partenza, tanto vero che
anche le risposte in frequenza sono molto vicine come mostrano i diagrammi di Bode .

-3
x 10 Identificazione a quattro parametri con ottimizzazione
2
Risposta del sistema
Modello a 4 parametri

0
0 0.5 1 1.5 2 2.5 3

Diagrammi di Bode
-30
Diagramma del sistema
-35 Diagramma del modello a 4par
-40

-45

-50

-55

-60

-1 0 1
10 10 10

-50

-100

-150
-1 0 1
10 10 10

94
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
1.3.2) Codice Matlab

%Modello a 4 parametri
disp('Definisco il vettore iniziale che ha componenti pari al valore di tau')
disp('determinato nel modello a tre parametri')
x=[1.2013 1.2013]
t=linspace(1,10,10000);
num=[5];
den=conv([1 10 25],[1 20 100]);
%Vettore della risposta sperimentale
y=step(num,den,t);
tau=fmins('Mod4',x,[],x,t,y)
n4=dcgain(num,den)
d4=conv([tau(1) 1],[tau(2) 1])
L=0.0774
sim('mod4par',3)
plot(t4,ys)
hold on
plot(t4,y4,'--r')
title('Identificazione a quattro parametri con ottimizzazione')
legend('Risposta del sistema','Modello a 4 parametri')
grid on
%Diagrammi di Bode
hold off
w=0:0.1:7;
ng=5;
dg=(j*w).^4+30*(j*w).^3+325*(j*w).^2+1500*(j*w)+2500;
ne=exp(-j*w*L);
k=dcgain(num,den);
na=k*ne;
da=(j*w).^2*tau(1)*tau(2)+(j*w)*(tau(1)+tau(2))+1;
modulog=20*log10(abs(ng))-20*log10(abs(dg));
moduloa=20*log10(abs(na))-20*log10(abs(da));
faseg=angle(ng)*180/pi-angle(dg)*180/pi;
fasea=angle(na)*180/pi-angle(da)*180/pi;
figure(2)
subplot(2,1,1)
semilogx(w,modulog)
axis([10^-1,10,-64,-30])
hold on
grid on
semilogx(w,moduloa,'--r')
title('Diagrammi di Bode')
legend('Diagramma del sistema','Diagramma del modello a 4par')
subplot(2,1,2)
semilogx(w,faseg)
axis([10^-1,10,-150,0])
hold on
grid on
semilogx(w,fasea,'--r')

95
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
1.4) Modello per sistemi oscillanti:
I modelli identificati fino a questo momento erano validi per la classe di sistemi non oscillanti, ossia
quei sistemi che non presentavano poli complessi coniugati; adesso verranno illustrate le tecniche
per identificare i sistemi che hanno risposta oscillante al segnale gradino.
Le tecniche principali di identificazione per sistemi oscillanti si basano rispettivamente su unanalisi di
tipo grafico a partire dai parametri caratteristici della risposta al gradino, o un processo di
ottimizzazione numerica.
La forma della funzione di trasferimento del modello oscillante del seguente tipo:

k n2
W ( s) =
s 2 + 2 n + n2

Con k guadagno in continua , costante di smorzamento, n pulsazione naturale.


Per poter identificare il modello precedente necessario conoscere i seguenti parametri:

w1 (t )
Tp
wM 1

a
wM 2
ad
k

wm1

TM 1 tm1 TM 2 t
k Guadagno in continua

wM1 , wM2 Massimi al 1 e al 3 picco

wm1 Minimo al 2 picco

a = wM 1 k = k (1 + e / 1 2
) k = ke / 1 2
Sovraelongazione massima al 1 picco

w k k (1 + e 3 / 1 2
)k
d = M2 = = e 2 / 1 2
Rapporto tra i picchi max consecutivi
ke / 1 2
a

96
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
2
Tp = Tempo che intercorre tra due istanti di max consecutivi (Tp=TM2-TM1)
n 1 2
1
= Costante di smorzamento
1 + (2 / log d ) 2

Tali parametri possono essere ricavati in maniera grafica, analizzando la risposta del sistema
originario, oppure possono essere calcolati per via numerica attraverso l ottimizzazione di una
funzione obbiettivo, nella quale si impone che la distanza tra i punti della risposta del modello
originale e di quello approssimato, siano il pi vicino possibile al variare dei parametri suddetti.
La funzione usata per ottimizzare la risposta la seguente:

function f=modosci(p,t,y)
zita1=p(1);
omegan1=p(2);
n=15;
d=[ 1/(omegan1)^2 2*zita1/omegan1 1];
ys=step(n,d,t);
f=sum([(y-ys).^2]);
goao=tf(n,d)
end

dove p il vettore dei parametri, t il vettore degli istanti temporali, y la risposta al gradino del
sistema di partenza, mentre ys la risposta del modello sperimentale.

ES 1.4.1

Identificare in modo sperimentale, tramite i parametri della risposta a gradino per sistemi oscillanti, e
15
tramite ottimizzazione numerica il sistema con funzione di trasferimento G ( s ) = 2 e
( s + 0.5s + 1) 2
fare un confronto tra i risultati ottenuti.

Svolgimento:

Per determinare i parametri in gioco, si usata listruzione matlab ginput con la quale si stato
possibile ricavare tramite posizionamento del mause nei punti di interesse il loro valore.
Il valore dei parametri fondamentali prima discussi e la conseguente funzione di trasferimento
ottenuta :

>>
Assegno il sistema

no =

15

do =

97
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
1.0000 1.0000 2.2500 1.0000 1.0000

Funzione di trasferimento del sistema da identificare:


15
----------------------------
s^4 + s^3 + 2.25 s^2 + s + 1

Parametri della risposta al gradino per un sistema oscillante

Tp =

6.6244

a=

13.0630

d=

0.4063

Smorzamento

zita =

0.1419

Pulsazione naturale

omegan =

0.9389

Guadagno statico

k=

15

Numeratore e denominatore del modello approssimato graficamente

Funzione di trasferimento del sistema approssimato graficamente:

13.22
-----------------------
s^2 + 0.2664 s + 0.8815

98
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Successivamente si valutato il valore dei parametri non pi in modo qualitativo, ma in modo


numerico, ottimizzando con listruzione Poptims=fmins('modosci',p,[],p,t,y) la funzione obbiettivo
modosci.
Il risultato ottenuto il seguente:

Vettore iniziale di iterazione per calcolare il minimo

p=

0.1000 0.4000

Funzione di trasferimento ottenuta con il metodo di ottimizzazione numerica:


15
------------------------
1.612 s^2 + 0.3928 s + 1

Poptims =

0.1547 0.7876

Dopo aver determinato le due funzioni parametriche approssimate si sono confrontate le risposte
simulando in ambiente simulink il seguente schema a blocchi:

99
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Si ottenuto il seguente risultato:

Identificazione di un modello oscillante


30
Risposta di un sistema oscillante
Modello approssimato graficamente
Modello approssimato con ottimizzazione

25

20

15

10

0
0 5 10 15 20 25 30

Bode Diagram
50

0
Magnitude (dB)

-50
Diagramma di Bode del sistema
Diagramma di Bode del modello grafico
Diagramma di Bode del modello ottimizzato
-100

-150
0

-90
Phase (deg)

-180

-270

-360
-2 -1 0 1 2
10 10 10 10 10
Frequency (rad/sec)

Lapprossimazione ottima in tutte i casi, ovviamente ce da sottolineare il fatto che il metodo di


numerico di ottimizzazione garantisce una migliore approssimazione di quello empirico.
Dai diagrammi di Bode si evince che lapprossimazione va bene per basse frequenze.

100
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
1.4.2) Codice Matlab:

%Identificazione per un modello oscillante


%Identificazione tramite i parametri caratteristici della risposta al
%gradino
disp('Assegno il sistema')
no=15;
do=conv([1 0.5 1],[1 0.5 1]);
go=tf(no,do)
disp('Parametri della risposta al gradino per un sistema oscillante')
%Differenza fra due picchi massimi consecutivi
Tp=6.6244
%distanza tra il valore di regime ed il primo massimo a
a=13.0630
%Distanza tra il secondo valore di massimo ed il valore di regime a*d
d=5.3070/a
disp('Smorzamento')
zita=1/sqrt(1+(2*pi/log(0.4063))^2)
disp('Pulsazione naturale')
omegan=2*pi/Tp*sqrt(1-zita^2)
disp('Guadagno statico')
k=dcgain(no,do)
disp('Numeratore e denominatore del modello approssimato graficamente')
noa=k*omegan^2;
doa=[1 2*zita*omegan omegan^2];
disp('Funzione di trasferimento del sistema approssimato graficamente')
goa=tf(noa,doa)
%Identificazione tramite processo di ottimizzazione
t=linspace(0,30,10000);
y=step(go,t);
disp('Vettore iniziale di iterazione per calcolare il minimo')
p=[0.1 0.4]
Poptims=fmins('modosci',p,[],p,t,y)
noao=k;
doao=[ 1/(Poptims(2))^2 2*Poptims(1)/Poptims(2) 1];
sim('moscil')
plot(to,yo)
hold on
plot(to,yoa,'--k')
plot(to,yoao,'--r')
grid on
title('Identificazione di un modello oscillante')
legend('Risposta di un sistema oscillante','Modello approssimato graficamente','Modello approssimato
con ottimizzazione')
figure(2)
bode(no,do)
hold on
bode(noa,doa)
bode(noao,doao)
legend('Diagramma di Bode del sistema','Diagramma di Bode del modello grafico','Diagramma di
Bode del modello ottimizzato')

101
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
1.5) Identificazione in frequenza:
Dopo aver visto alcune delle tecniche di identificazione dei modelli che si basano sullo studio della
risposta al gradino, andiamo a discutere un altro modo per identificare un modello nel dominio della
frequenza.
Facciamo sempre lipotesi che il modello sia LTI e possibilmente di basso ordine.
Lavorando nel dominio della frequenza, non si identifica direttamente la G(s) ma la G(j), se il
sistema asintoticamente stabile, la G(j) coincide con la G(s) ponendo s=j.
Per il teorema di risposta in frequenza, dato un sistema LTI forzato da un ingresso sinusoidale di
ampiezza A e pulsazione 0 :

u(t) = A sin ( t+ )

la sua uscita, a regime , sar ancora un segnale sinusoidale, amplificato della quantit |G(j 0 )| e
sfasato della G(j 0 ):

y (t) = A | W(j )| sin ( t + + W(j ) )

Sapendo inoltre di non poter tener conto di tutte le dinamiche del processo da approssimare,
scegliamo un range frequenziale, che poniamo essere [0 , ] . Abbiamo posto la frequenza limite
inferiore pari a 0 perch spesso ci interessa conoscere il comportamento in continua del segnale,
mentre la frequenza limite superiore sta ad indicare che non ci interessano le dinamiche che
evolvono in tempi inferiori di un certo tempo t (a ciascuna frequenza infatti corrisponde un tempo
caratteristico).
Una volta scelto il range frequenziale, possiamo effettuare una serie di prove immettendo nel sistema
degli opportuni segnali sinusoidali, con frequenze caratteristiche da =0 a = Studiando
luscita del sistema, misuriamo di quanto viene amplificata e sfasata la sinusoide di uscita, a regime. La
misura che andiamo a fare, in termini di amplificazione, ci restituisce i valori del modulo della W(j)
per la particolare frequenza i , mentre in termini di sfasamento ci d i valori della sua fase.
Otteniamo quindi diversi valori del modulo e della fase della W(j), ciascuno in corrispondenza delle
diverse pulsazioni che stiamo considerando. A questo punto il problema diventa quello di trovare una
W(j) ( o W(s)), la cui funzione di risposta armonica corrispondente interpoli i punti trovati
sperimentalmente in senso di scarto quadratico medio.
Usando questa tecnica per, ci si pu imbattere in un problema: supponiamo di avere un sistema in
cui presente un modo con smorzamento molto basso, nel diagramma dei moduli ci sar un picco di
risonanza in corrispondenza ad una certa frequenza; se non scegliamo opportunamente le frequenze
a cui fare gli esperimenti, rischiamo di perdere le informazioni relative al picco, che sono le pi
importanti ai fini dellidentificazione. Un sistema il cui diagramma di Bode dei moduli non presenta
sovraelongazioni, avr una risposta al gradino senza oscillazioni, mentre la risposta al gradino di un
sistema che presenta un picco nel diagramma dei moduli sar invece di tipo oscillatorio. Perdendo
quindi le informazioni relative al picco, andremo a modellare un sistema che completamente
diverso da quello sperimentale.Per evitare di commettere errori di questo tipo possibile mandare in
ingresso al sistema un rumore a larga banda (o un segnale di tipo impulsivo, che ha anchesso un
largo spettro di frequenze), e studiando luscita del sistema, che sar un segnale a spettro continuo, si
possono vedere gli eventuali picchi presenti.

102
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

ES 1.5.1
2
Identificare in frequenza il sistema con funzione di trasferimento G ( s ) =
s + 12 s + 55s 2 + 150 s + 250
4 3

verificando che il modello sperimentale del sistema sia il pi possibile vicino a quello teorico.

Svolgimento:

Per lidentificazione in frequenza, si suppone che la funzione di trasferimento G(s) sia incognita, e che
venga determinata immettendo in ingresso al seguente schema due segnali sinusoidali: uno a
frequenza variabile ad ogni esperimento , laltro a fase variabile dallutente in modo da ottenere
sulloscilloscopio in modalit xy una retta .

Per il teorema di risposta in frequenza se si immette in ingresso un segnale sinusoidale a fase nulla,
si ottiene un uscita del tipo:

y= A sin(t+)

Si evince che sia A (ampiezza) che (fase) variano in funzione della pulsazione della sinusoide in
ingresso al sistema.
Il valore di entrambi sar determinato ovviamente dalla risposta armonica caratteristica della G(s), che
si andr a determinare sia in modulo (calcolando A al variare di ) sia in fase (attraverso i valori
assunti da ).
Determinare i valori di A in funzione di f alquanto agevole, visto che basta leggere, attraverso
loscilloscopio come varia il valore di picco della sinusoide in uscita dal blocco G(s) al variare di .
Per quanto riguarda invece il calcolo di , ci si serve dei diagrammi di Lissajous, che possono essere
tracciati con uno strumento delle librerie di Matlab chiamato xygraf, che consente di tracciare
landamento di una variabile y in funzione di una seconda variabile x.
Il calcolo di viene eseguito inviando al primo ingresso del blocco xygraf la sinusoide in uscita dal
sistema G(s), mentre al secondo ingresso viene applicata una sinusoide sfasata di un angolo rispetto
a quella con cui si forza il sistema. Se si simula il sistema cos realizzato, si avr che fintanto che ,
si otterr come diagramma di Lissajous un ellisse che diventa una retta nel momento in cui =.

103
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Alla luce di quanto detto finora, per determinare il nostro non dobbiamo fare altro che variare la
fase fino ad ottenere una retta nel diagramma di Lissajous. Nella realt, per modificare il valore di
si utilizza uno sfasatore variabile che interviene direttamente sulla fase delle sinusoidi test. Dato
che il Matlab non mette a disposizione uno strumento simile, si utilizza un secondo generatore
sinusoidale al quale si fa generare un segnale con la stessa ampiezza e la stessa frequenza della
sinusoide test, ma con un valore di fase diverso scelto opportunamente (= ).
Andando a fare i calcoli tramite matlab usando listruzione [B,A]=invfreqs(H,w,nb,na) alle
frequenze e alle fasi ottenute sperimentalmente si ha :
>>
frequenze, moduli, fasi

w=

0.1000 1.0000 5.0000 10.0000 20.0000

modulo =

0.0080 0.0081 0.0022 0.0002 0.0000

fase =

-0.0600 -0.6100 2.1600 1.1400 0.6000

104
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Funzione di trasferimento 1:

-0.001682
----------
s - 0.1687

polo del sistema 1

p1 =

0.1687

Il sistema del 1ordine instabile

Funzione di trasferimento 2:

0.009232
---------------------
s^2 - 0.2979 s + 2.34

poli del sistema 2

p2 =

0.1490 + 1.5224i
0.1490 - 1.5224i

Il sistema del 2ordine instabile

Funzione di trasferimento 3:

0.1033
--------------------------------
s^3 + 1.05 s^2 + 14.56 s + 11.84

poli del sistema 3

p3 =

-0.1130 + 3.7893i
-0.1130 - 3.7893i
-0.8238

Il sistema del 3ordine asintoticamente stabile

Funzione di trasferimento 3:

105
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

1.991
-------------------------------------------
s^4 + 12.15 s^3 + 55.02 s^2 + 153 s + 252.2

poli del sistema 4


p4 =

-6.1837
-3.9759
-0.9932 + 3.0447i
-0.9932 - 3.0447i

Il sistema del 4ordine asintoticamente stabile

Andando a plottare i grafici si evince che il migliore modello, scegliendo 5 frequenze solamente,
sono i filtri del terzo e del quarto ordine.

Identificazione in frequenza
0.03

0.02

0.01

0
Amplitude

-0.01

-0.02 Impianto
Sistema 1 ordine
Sistema 2 ordine
Sistema 3 ordine
-0.03 Sistema 4 ordine

-0.04

-0.05
0 1 2 3 4 5 6 7 8 9 10
Time (sec)

106
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Anche nei diagrammi di Bode si constata che la migliore approssimazione quella del terzo ordine, e
del quarto mentre, gli altri filtri sono instabili e approssimano il sistema di partenza solo per basse
frequenze (frequenze inferiori a quella di attraversamento).

Bode Diagram
0

-50
Magnitude (dB)

-100
Impianto
Sistema 1 ordine
-150 Sistema 2 ordine
Sistema 3 ordine
Sistema 4 ordine
-200

-250
90

0
Phase (deg)

-90

-180

-270

-360
-2 -1 0 1 2 3
10 10 10 10 10 10
Frequency (rad/sec)

107
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
1.5.2) Codice Matlab:

%Approssimazione del sistema su cinque frequenze ed approssimazione con


%l'istruzione invfreqs
n=2;
d1=[1 10 25];
d2=[1 2 10];
d=conv(d1,d2);
sim('ident_freq_schema')
%% si deve aprire a questo punto il file simulink e testare il sistema a diversa frequenza
%% Si ottengono i seguenti valori:
disp('frequenze, moduli, fasi')
w=[.1 1 5 10 20]
modulo=[.008 .0081 .0022 .00017 .000012]
fase=[-.06 -.61 2.16 1.14 .6]
for k=1:5
H(k)=modulo(k).*exp(fase(k)*i);
end
nb=0;
na=[1 2 3 4];
for kk=na
[B,A]=invfreqs(H,w,nb,na(kk));
eval(['B_' num2str(kk) '=B;']);
eval(['A_' num2str(kk) '=A;']);
end
t=0:.1:10;
sys=tf(n,d);
sys_1=tf(B_1,A_1)
p1=roots(A_1)
disp('Il sistema del 1ordine instabile')
sys_2=tf(B_2,A_2)
p2=roots(A_2)
disp('Il sistema del 2ordine instabile')
sys_3=tf(B_3,A_3)
p3=roots(A_3)
disp('Il sistema del 3ordine asintoticamente stabile')
sys_4=tf(B_4,A_4)
p4=roots(A_4)
disp('Il sistema del 4ordine asintoticamente stabile')
step(sys,'r',t)
hold on,step(sys_1,'y--',t),step(sys_2,'g--',t),step(sys_3,'k',t),step(sys_4,'-',t)
title('Identificazione in frequenza')
legend('Impianto','Sistema 1 ordine','Sistema 2 ordine','Sistema 3 ordine','Sistema 4 ordine')
figure(2)
bode(sys,'*')
hold on
bode(sys_1)
bode(sys_2)
bode(sys_3)
bode(sys_4,'y')
legend('Impianto','Sistema 1 ordine','Sistema 2 ordine','Sistema 3 ordine','Sistema 4 ordine')

108
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
2) Controllori PID.

2.1) PID analogici:

I PID sono dei controllori molto usati nella pratica, e si basano su tre tipi di
azione di controllo

Proporzionale controllo proporzionale allerrore.


Integrativa controllo proporzionale allintegrale dellerrore.
Derivativa controllo proporzionale alla derivata dellerrore.

Sommando queste tre azioni e trasformando lespressione cosi ottenuta nel dominio del tempo, si
ottiene la seguente relazione per lazione PID:

Ki
U(s)=( Kp + + Kd s) E(s)
s

Come si vede il controllo di tipo PID dipende dalle tre costanti di proporzionalit Kp, Kd, Ki
relative alle singole azioni di controllo.
I valori di queste tre costanti possono essere legati tra loro in questa maniera attraverso il tempo
integrale Ti ed il tempo derivativo Td al seguente modo:

Kp
Ki= e Kd=Kp Td
Ti

Queste espressioni ci permettono di definire lazione PID in funzione di Kp,Ti,Td secondo la


relazione

1
U(s)=Kp( 1 + + Td s) E(s)
sTi

Lo schema a blocchi relativo ad un controllore PID ideale il seguente:

109
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Kp

+
r (t ) + e(t ) +
u (t ) y (t )
Kp
G ( s)
Ti s

+

Kp Td s

Per evitare leffetto dellazione derivativa, che potrebbe indurre un picco nella variabile di controllo
u(t) (se si ha come riferimento un segnale gradino, la sua derivata in senso distribuzionale un
impulso), si usa lo schema con il filtro derivativo in cui si rende causale la derivata e quindi si ha lo
schema reale Pid:

Kp

+
r (t ) + e(t )
+
u (t ) y (t )
Kp
G ( s)
Ti s

Kp Td s
1 + Td / N s

Per determinare i valori di Kp, Ti e Td si possono scegliere due strade

La Tecnica di taratura di Ziegler-Nichols a ciclo chiuso


La Tecnica di taratura di Ziegler-Nichols a ciclo aperto

In entrambi i casi si usano delle tabelle per tarare i valori di Kp, Ti e Td.

2.2) Metodo di taratura di Ziegler-Nichols a ciclo chiuso

Una delle tecniche utilizzate per tarare un controllore di tipo Pid, il metodo di Ziegler-Nichols ad
anello chiuso, con il quale si retroaziona unitariamente la funzione danello L(s) formata da un blocco
di guadagno e limpianto da controllore, e si determina empiricamente il valore di K=Ku per cui il
sistema al limite della stabilit (margine di guadagno).

110
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

r (t ) + e(t ) u (t ) y (t )
Ku G ( s)

Una volta ricavato K necessario ricavare la la pulsazione critica u = ' in corrispondenza della
quale il ciclo chiuso diventa instabile ( dove K u G ( j' ) = 1 ).
Una volta ricavati i parametri suddetti si pu eseguire la taratura tramite la seguente tabella:

Kp Ti Td
P 0.5Ku
PI 0.45Ku 0.8T
PID 0.6Ku 0.5T 0.125T

ES 2.2.1

Tarare a ciclo chiuso mediante la tecnica di Ziegler-Nichols ad anello chiuso il sistema con
5
funzione di trasferimento G ( s ) = , progettare dei regolatori P, PI,PID secondo gli
( s + 5) ( s + 10) 2
2

schemi prima visti, confrontare i vari risultati ottenuti.

Svolgimento:

Si ricava innanzitutto il valore di K attraverso il criterio di Routh per cui il sistema a catena chiusa
risulta asintoticamente instabile, successivamente si mostra che il sistema al limite della stabilit a
ciclo chiuso attraverso il criterio di Nyquist (simulando il sistema si ottiene in uscita un
oscillazione pronunciata). Svolgendo i calcoli con Matlab si ottiene:

>>

Il sistema asintoticamente instabile

kinst1 =

2250

Il sistema asintoticamente instabile

kinst2 =

111
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

-500

Il sistema al limite della stabilit per kinst1=2250 kinst2=-500

Tracciatura dei diagrammi di Nyquist per la verifica della zone critiche di instabilit per entrambi i
casi suddetti

Caso1 Ku=2250

Nyquist Diagram
4

1
Imaginary Axis

-1

-2

-3

-4
-2 -1 0 1 2 3 4 5
Real Axis

Caso 2 Ku=-500

112
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Nyquist Diagram
1

0.8

0.6

0.4

0.2
Imaginary Axis

-0.2

-0.4

-0.6

-0.8

-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4
Real Axis

Per tarare i controllori PID secondo la tabella, si sceglie il valore positivo del guadagno che porta il
sistema allinstabilit e questo perch altrimenti si violerebbe il criterio di Stabilit di Bode.

Metodo di taratura ad anello chiuso


Controllore di tipo P

kps1 =

1125
Taratura PI

kps2 =

1.0125e+003

T=

0.8886

Ti2 =

113
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
0.7109

Controllore di tipo PI

719.7 s + 1013
--------------
0.7109 s

Funzione di anello PI

3599 s + 5063
----------------------------------------------------
0.7109 s^5 + 21.33 s^4 + 231 s^3 + 1066 s^2 + 1777 s

Controllore di tipo PID

Taratura PID

kps3 =

1350

Ti3 =

0.4443

Td3 =

0.1111

Controllore di tipo PID

106.6 s^2 + 599.8 s + 1350


--------------------------
0.4443 s

funzione di anello PID:

533 s^2 + 2999 s + 6750


-------------------------------------------------------
0.4443 s^5 + 13.33 s^4 + 144.4 s^3 + 666.4 s^2 + 1111 s

Limitazione della azione derivativa

N=

10

114
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Td4N =

0.0111

Controllore con azione derivativa

73.28 s^2 + 614.8 s + 1350


--------------------------
0.004935 s^2 + 0.4443 s

Funzione di anello azione derivativa

366.4 s^2 + 3074 s + 6750


----------------------------------------------------------------------
0.004935 s^6 + 0.5923 s^5 + 14.93 s^4 + 151.8 s^3 + 678.8 s^2 + 1111 s

Ottenuti tali risultati si passata alla simulazione delle risposte nei vari casi.

Controllore di tipo P

Controllore di tipo PI

115
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Controllore di tipo PID ideale

116
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

117
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Controllore di tipo PID con filtro derivativo (PID reale)

Dai precedenti schemi si ottengono le seguenti variabili di controllo e le seguenti variabili controllate,
che sono state messe a confronto fra di loro al variare degli schemi suddetti.
Si constatato che il controllore P, pur essendo il pi semplice tra tutti, genera un controllo che porta
delle oscillazioni in uscita al sistema e rende elevato lerrore a regime (poca precisione statica
nellinseguimento del riferimento), mentre il controllore PI rallenta il sistema, accentua lampiezza
delle oscillazioni, ma in compenso rende accurata la precisione a regime, quindi lerrore a fronte di
un riferimento gradino ( se si inviasse come riferimento una rampa, si otterrebbe un errore non nullo
perch lintegratore (1/s) non riuscirebbe ad inseguire la rampa). Il controllore Pid ideale invece
racchiude tutte le azioni di controllo (proporzionale,integrale derivativa): migliora la risposta

118
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
velocizzando il tempo di convergenza, diminuendo il numero di oscillazioni, per contro, presenta un
picco molto accentuato nella variabile di controllo tale da rompere lattuatore e il sistema stesso.
Per migliorare il comportamento del PID si inserisce lazione derivativa tra lanello di retroazione e
lingresso del sistema, in modo che faccia da filtro ed elimini leffetto picco della variabile di controllo
e di conseguenza leffetto dei disturbi di processo in ingresso al sistema ed in uscita.

Variabili di controllo del sistema

Controllo di tipo P
10000
Controllo di tipo PI
Controllo di tipo PID
Limitazione azione derivativa
8000

6000

4000

2000

-2000

-4000
0 0.5 1 1.5 2 2.5 3

Uscite del sistema


1.4
Controllo di tipo P
Controllo di tipo PI
Controllo di tipo PID
1.2
Limitazione azione derivativa

0.8

0.6

0.4

0.2

-0.2
0 1 2 3 4 5 6

119
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
I risultati delle risposte si possono ritrovare benissimo nel dominio della frequenza

Bode Diagram
Gm = 4.8 dB (at 6.29 rad/sec) , Pm = 31.9 deg (at 4.41 rad/sec)
50

0
Magnitude (dB)

-50

-100

-150

-200
0
Controllo di tipo PI

-90
Phase (deg)

-180

-270

-360
-1 0 1 2 3
10 10 10 10 10
Frequency (rad/sec)

Bode Diagram
Gm = 10.9 dB (at 13.4 rad/sec) , Pm = 52.9 deg (at 5.94 rad/sec)
50

0
Magnitude (dB)

-50

-100

-150
-90
Controllo di tipo PID

-135
Phase (deg)

-180

-225

-270
-1 0 1 2 3
10 10 10 10 10
Frequency (rad/sec)

120
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Bode Diagram
Gm = 8.56 dB (at 10.1 rad/sec) , Pm = 38.2 deg (at 5.46 rad/sec)
50

-50
Magnitude (dB)

-100

-150

-200

-250
-90
Controllo con azione derivativa

-180
Phase (deg)

-270

-360
-1 0 1 2 3 4
10 10 10 10 10 10
Frequency (rad/sec)

2.2.2) Codice Matlab

%Taratura con la tecnica di Ziegler-Nichols ad anello


%chiuso
%Schemi dei PID
disp('Funzione di trasferimento del sistema')
ng=5;
dg=conv([1 10 25],[1 20 100]);
g=tf(ng,dg)
disp('Criterio di Routh per valutare la stabilt a ciclo chiuso')
pause(3)
for kp1=1:2280
[nc1,dc1]=cloop(kp1*ng,dg);
a11=dc1(1);
a12=dc1(3);
a13=dc1(5);
a21=dc1(2);
a22=dc1(4);
a23=0;
A1=[a11 a12;a21 a22];
A2=[a11 a13;a21 a23];
a31=-det(A1)/a21;
a32=-det(A2)/a21;
a33=0;
A3=[a21 a22;a31 a32];
A4=[a21 a23; a31 a33];
a41=-det(A3)/a31;
a42=-det(A4)/a31;
a43=0;

121
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
A5=[a31 a32;a41 a42];
A6=[a31 a33;a41 a43];
a51=-det(A5)/a41;
a52=-det(A6)/a41;
a53=0;
if((a11&a21&a31&a41)>0)
disp('Il sistema asintoicamente stabile')
kstab1=kp1
else
disp('Il sistema asintoticamente instabile')
kinst1=kp1
figure(1)
nyquist(kinst1*ng,dg)
pause(3)
end
end
for kp2=-1:-1:-500
[nc2,dc2]=cloop(kp2*ng,dg);
b11=dc2(1);
b12=dc2(3);
b13=dc2(5);
b21=dc2(2);
b22=dc2(4);
b23=0;
B1=[b11 b12;b21 b22];
B2=[b11 b13;b21 b23];
b31=-det(B1)/b21;
b32=-det(B2)/b21;
b33=0;
B3=[b21 b22;b31 b32];
B4=[b21 b23; b31 b33];
b41=-det(B3)/b31;
b42=-det(B4)/b31;
b43=0;
B5=[b31 b32;b41 b42];
B6=[b31 b33;b41 b43];
b51=-det(B5)/b41;
b52=-det(B6)/b41;
b53=0;
if((b11&b21&b31&b41&b51)>0)
disp('Il sistema asintoticamente stabile')
kstab2=kp2
else
disp('Il sistema asintoticamente instabile')
kinst2=kp2
figure(2)
nyquist(kinst2*ng,dg)
pause(3)
end
end
disp('Il sistema al limite della stabilit per kinst1=2250 kinst2=-500')

122
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
pause(3)
disp('Metodo di taratura ad anello chiuso')

disp('Controllore di tipo P')


%Taratura P
kps1=0.5*kinst1
sim('zn_close_p',6)
disp('Controllore di tipo PI')
[Gm1,Pm1,Wcg1,Wcp1] = margin(kinst1*ng,dg);
disp('Taratura PI')
kps2=0.45*kinst1
T=2*pi/Wcg1
Ti2=0.8*T
disp('Controllore di tipo PI')
npi=[kps2*Ti2 kps2];
dpi=[Ti2 0];
Rpi=tf(npi,dpi)
disp('Funzione di anello PI')
nlpi=conv(npi,ng);
dlpi=conv(dpi,dg);
Lpi=tf(nlpi,dlpi)
sim('zn_close_pi',6)
disp('Controllore di tipo PID')
disp('Taratura PID')
kps3=0.6*kinst1
Ti3=0.5*T
Td3=0.125*T
disp('Controllore di tipo PID')
npid=[kps3*Ti2*Td3 kps3*Ti3 kps3];
dpid=[0 Ti3 0];
Rpid=tf(npid,dpid)
disp('funzione di anello PID')
nlpid=conv(npid,ng);
dlpid=conv(dpid,dg);
Lpid=tf(nlpid,dlpid)
sim('zn_close_pid',6)
disp('Limitazione della azione derivativa')
N=10
Td4N=Td3/N
disp('Controllore con azione derivativa')
npidd=[kps3*11/10*Ti3*Td3 kps3*(Ti3+(Td3/10)) kps3];
dpidd=[Ti3*Td3/10 Ti3 0];
Rpidder=tf(npidd,dpidd)
disp('Funzione di anello azione derivativa')
nlpidd=conv(npidd,ng);
dlpidd=conv(dpidd,dg);
Lpidder=tf(nlpidd,dlpidd)
sim('zn_close_pid_der',6)
figure(3)
plot(tp,yp)
grid on

123
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
hold on
plot(tpi,ypi,'r')
plot(tpid,ypid,'k')
plot(tpidder,ypidder,'m')
title('Uscite del sistema')
legend('Controllo di tipo P','Controllo di tipo PI','Controllo di tipo PID','Limitazione azione
derivativa')
figure(4)
plot(tp,up)
grid on
hold on
plot(tpi,upi,'r')
plot(tpid,upid,'k')
plot(tpidder,upidder,'m')
title('Variabili di controllo del sistema')
legend('Controllo di tipo P','Controllo di tipo PI','Controllo di tipo PID','Limitazione azione
derivativa')
figure(6)
margin(kps1*ng,dg)
legend('Controllo di tipo P')
figure(7)
margin(nlpi,dlpi)
legend('Controllo di tipo PI')
figure(6)
margin(nlpid,dlpid)
legend('Controllo di tipo PID')
figure(8)
margin(nlpidd,dlpidd)
legend('Controllo con azione derivativa')

ES 2.2.3

Verificare leffetto del filtro derivativo in presenza di rumore di processo allingresso del sistema
5
G (s) = .
( s + 5) ( s + 10) 2
2

Svolgimento:

Si verificher adesso che la presenza del filtro derivativo migliora le prestazioni del sistema dal punto
di vista della moderazione della variabile di controllo e della reiezione dei disturbi di processo in
ingresso al sistema.
Si supponga allora di sommare alla variabile di controllo un rumore bianco gaussiano a banda
limitata, che presenti una PSD con ampiezza pari a 500; tale disturbo deve essere filtrato in modo da
non confondere la variabile di controllo col rumore stesso.
Per verificare il risultato, si confrontano le variabili di controllo e le variabili controllate di uno
schema PID ideale e di uno con filtro derivativo.

124
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Schema PID ideale con rumore di processo in ingresso al sistema:

Schema PID reale (filtro derivativo) con rumore di processo in ingresso al sistema:

125
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Risposte dei due sistemi:


Variabili di controllo in presenza di rumuore bianco a banda limitata
2000
Variabile di controllo senza la presenza di filtro derivativo
Variabile di controllo in presenza di filtro derivativo

1500

1000

500

-500

-1000
0 5 10 15 20 25 30

Uscita in presenza di rumuore bianco a banda limitata


2
Uscita senza la presenza di filtro derivativo
Uscita in presenza di filtro derivativo

0
0 5 10 15 20 25 30

126
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

2.2.4) Codice Matlab

%confronto Modello ideale PID e modello PID con azione derivativa in


%presenza di rumuore
disp('Funzione di trasferimento del sistema')
ng=5;
dg=conv([1 10 25],[1 20 100]);
g=tf(ng,dg)
kinst1=2250
[Gm1,Pm1,Wcg1,Wcp1] = margin(kinst1*ng,dg)
%Taratura PID
T=2*pi/Wcp1
kps3=0.6*kinst1
Ti3=0.5*T
Td3=0.125*T
N=10
TdN=Td3/N;
%Controllore di tipo PID
npid=[kps3*Ti3*Td3 kps3*Ti3 kps3]
dpid=[0 Ti3 0]
%funzione d'anello PID
nlpid=conv(npid,ng);
dlpid=conv(dpid,dg);
sim('zn_close_pid_noise')
sim('zn_close_pid_der_noise')
figure(1)
plot(tpid1,upid1)
grid on
hold on
plot(tpidder1,upidder1,'r')
title('Variabili di controllo in presenza di rumuore bianco a banda limitata')
legend('Variabile di controllo senza la presenza di filtro derivativo','Variabile di controllo in
presenza di filtro derivativo')
hold off
figure(2)
plot(tpid1,ypid1)
hold on
plot(tpidder1,ypidder1,'r')
grid on
title('Uscita in presenza di rumuore bianco a banda limitata')
legend('Uscita senza la presenza di filtro derivativo','Uscita in presenza di filtro derivativo')

127
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
2.3) Metodo di taratura ad anello chiuso mediante relay.

Il metodo di taratura prima visto un metodo molto pericoloso, specie se si ha che fare con impianti
che sono molto fragili: infatti limpatto della variabile di controllo nella funzione di trasferimento
dellimpianto, quando si aumenta molto il guadagno danello, pu essere a volte talmente forte che
pu provocare la rottura dello stesso.
Onde evitare questo spiacevole inconveniente, si tara il Pid a ciclo chiuso, sempre mediante la
tecnica di Ziegler-Nichols ad anello chiuso, inserendo al posto del guadagno un relay che ,
aprendosi e chiudendosi, genera un onda quadra e al posto del riferimento gradino, un riferimento
sinusoidale.
Tale onda quadra entrando allinterno del sistema, che tipicante un filtro passa basso, al crescere
della sua ampiezza e al crescere della frequenza del segnale di riferimento, genera in uscita un
segnale sinusoidale sfasato di 180.
Se a lampiezza di oscillazione delluscita e d lampiezza del relay:
1 a 1 4d
G ( j ) = = Ku = =
Ku 4d | G ( j ) | a

128
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

ES 2.3.1

Tarare il sistema dellesercizio precedente con la tecnica del relay a ciclo chiuso.

Svolgimento:

E stato posto come riferimento un segnale sinusoidale di ampiezza 1 e frequenza 2.65rad/sec,


mentre il relay stato settato con i seguenti parametri 0.5 e 0.5 e 1 u 1 .
In base a questi dati si ottenuta un uscita oscillante al limite della stabilit e sfasata di 180:

-3
x 10
2

1.5

0.5

-0.5

-1

-1.5

-2
0 2 4 6 8 10 12 14 16 18 20

Una volta ottenuta la forma donda desiderata si calcolato il valore di Ku tramite la formula
precedente e questo stato ottenuto tramite matlab:

Impianto:
5
--------------------------------------
s^4 + 30 s^3 + 325 s^2 + 1500 s + 2500

Metodo di taratura ad anello chiuso con relay


1/km=|G(j*wpi)|=a/(4*d/pi)

km =

707.3553

Controllore di tipo P

kps1 =

353.6777

Controllore di tipo PI
Taratura PI

kps2 =

129
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
318.3099

T=

2.3710

Ti2 =

1.8968

Controllore di tipo PI

603.8 s + 318.3
---------------
1.897 s

Funzione di anello PI

Transfer function:
3019 s + 1592
----------------------------------------------------
1.897 s^5 + 56.9 s^4 + 616.5 s^3 + 2845 s^2 + 4742 s

Controllore di tipo PID


Taratura PID

kps3 =

424.4132

Ti3 =

1.1855

Td3 =

0.2964

Controllore di PID

238.6 s^2 + 503.1 s + 424.4


---------------------------
1.186 s

funzione di anello PID

1193 s^2 + 2516 s + 2122


-----------------------------------------------------

130
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
1.186 s^5 + 35.57 s^4 + 385.3 s^3 + 1778 s^2 + 2964 s

Limitazione della azione derivativa

N=

15

Td4N =

0.0198

Controllore con azione derivativa

164 s^2 + 515.7 s + 424.4


-------------------------
0.03514 s^2 + 1.186 s

Funzione di anello azione derivativa

820.2 s^2 + 2579 s + 2122


----------------------------------------------------------------
0.03514 s^6 + 2.24 s^5 + 46.98 s^4 + 438 s^3 + 1866 s^2 + 2964 s

>>

Dai risultati ottenuti si sono ottenute le seguenti risposte:

Variabili di controllo del sistema


3500
Controllore di tipo P
Controllore di tipo PI
Controllore di tipo PID
3000 Limitazione azione derivativa

2500

2000

1500

1000

500

0
0 1 2 3 4 5 6 7 8 9 10

131
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Uscite del sistema


1
Controllore di tipo P
Controllore di tipo PI
Controllore di tipo PID
Limitazione azione derivativa

0.5

0
0 2 4 6 8 10 12 14 16 18 20

I diagrammi di Bode sono:

Bode Diagram
Gm = 16.3 dB (at 6.79 rad/sec) , Pm = 114 deg (at 0.429 rad/sec)
50

0
Magnitude (dB)

-50

-100

-150

-200
0
Controllore di tipo PI

-90
Phase (deg)

-180

-270

-360
-2 -1 0 1 2 3
10 10 10 10 10 10
Frequency (rad/sec)

132
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Bode Diagram
Gm = 16.2 dB (at 16.2 rad/sec) , Pm = 118 deg (at 0.792 rad/sec)
50

0
Magnitude (dB)

-50

-100

-150
0
Controllore di tipo PID

-90
Phase (deg)

-180

-270
-1 0 1 2 3
10 10 10 10 10
Frequency (rad/sec)

Bode Diagram
Gm = 14.4 dB (at 12 rad/sec) , Pm = 115 deg (at 0.881 rad/sec)
50

0
Magnitude (dB)

-50

-100

-150

-200
0
Controllore con azione derivativa

-90
Phase (deg)

-180

-270

-360
-1 0 1 2 3
10 10 10 10 10
Frequency (rad/sec)

133
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

2.3.2) Codice Matlab

%Taratura con la tecnica di Ziegler-Nichols ad anello


%chiuso
%Schemi dei PID
disp('Funzione di trasferimento del sistema')
ng=5;
dg=[1 30 325 1500 2500];
g=tf(ng,dg)
disp('Metodo di taratura ad anello chiuso con relay')
%Il margine di guadagno si calcola come rapporto tra l'armonica di
% primo ordine all'uscita dell'impianto,che sfasata rispetto all'ingresso di
% 180 gradi, fratto la prima armonica dello sviluppo in serie di Fourier
% del segnale anda quadra uscente dal relay
sim('close_relay')
disp('1/km=|G(j*wpi)|=a/(4*d/pi)')
km=4/(1.8*10^-3*pi)
disp('Controllore di tipo P')
%Taratura P
kps1=0.5*km
sim('zn_close_p')
disp('Controllore di tipo PI')
disp('Taratura PI')
kps2=0.45*km
%T=2*pi/wpi
T=2*pi/2.65
Ti2=0.8*T
disp('Controllore di tipo PI')
npi=[kps2*Ti2 kps2];
dpi=[Ti2 0];
Rpi=tf(npi,dpi)
disp('Funzione di anello PI')
nlpi=conv(npi,ng);
dlpi=conv(dpi,dg);
Lpi=tf(nlpi,dlpi)
sim('zn_close_pi')
disp('Controllore di tipo PID')
disp('Taratura PID')
kps3=0.6*km
Ti3=0.5*T
Td3=0.125*T
disp('Controllore di PID')
npid=[kps3*Ti2*Td3 kps3*Ti3 kps3];
dpid=[0 Ti3 0];
Rpid=tf(npid,dpid)
disp('funzione di anello PID')
nlpid=conv(npid,ng);
dlpid=conv(dpid,dg);
Lpid=tf(nlpid,dlpid)
sim('zn_close_pid')

134
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
disp('Limitazione della azione derivativa')
N=15
Td4N=Td3/N
disp('Controllore con azione derivativa')
npidd=[kps3*11/10*Ti3*Td3 kps3*(Ti3+(Td3/10)) kps3];
dpidd=[Ti3*Td3/10 Ti3 0];
Rpidder=tf(npidd,dpidd)
disp('Funzione di anello azione derivativa')
nlpidd=conv(npidd,ng)
dlpidd=conv(dpidd,dg)
Lpidder=tf(nlpidd,dlpidd)
sim('zn_close_pid_der')
figure(3)
plot(tp,yp)
grid on
hold on
plot(tpi,ypi,'r')
plot(tpid,ypid,'k')
plot(tpidder,ypidder,'m')
title('Uscite del sistema')
legend('Controllore di tipo P','Controllore di tipo PI','Controllore di tipo PID','Limitazione azione
derivativa')
figure(4)
plot(tp,up)
grid on
hold on
plot(tpi,upi,'r')
plot(tpid,upid,'k')
plot(tpidder,upidder,'m')
title('Variabili di controllo del sistema')
legend('Controllore di tipo P','Controllore di tipo PI','Controllore di tipo PID','Limitazione azione
derivativa')
figure(6)
margin(kps1*ng,dg)
legend('Controllore di tipo P')
figure(7)
margin(nlpi,dlpi)
legend('Controllore di tipo PI')
figure(6)
margin(nlpid,dlpid)
legend('Controllore di tipo PID')
figure(8)
margin(nlpidd,dlpidd)
legend('Controllore con azione derivativa')

135
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

2.4) Metodo di taratura di Ziegler-Nichols ad anello aperto.

Questa tecnica permette di calcolare i valori di Kp,Ti e Td a partire dalla realizzazione di un


modello a tre parametri del sistema G(s) da controllare del tipo:

k
W ( s) = e sL
1 + s

I valori di Kp, Td e Ti si trovano in base alle seguente tabella:

Kp Ti Td
P /kL
PI 0.9 / k L 3L
PID 1.2 / k L 2L 0.5 L

ES 2.4.1

Tarare a ciclo aperto mediante la tecnica di Ziegler-Nichols ad anello aperto il sistema G(s)
dellesercizio precedente.

Svolgimento:

Per tarare a ciclo aperto limpianto G(s) necessario ricavare il modello a tre parametri W(s) e poi
ricavare i valori dalla tabella precedente.
Il modello a tre parametri di G(s) era stato calcolato precedentemente nella fase di identificazione
attraverso il metodo della tangente, e si era ottenuto il seguente modello:

0.002
W ( s) = e0.1994 s
1 + 0.4615s

Una volta ottenuto il modello, si passato alla taratura e alla simulazione del sistema di controllo:

Il sistema in esame :

5
--------------------------------------
s^4 + 30 s^3 + 325 s^2 + 1500 s + 2500

Si costruisce a partire dal sistema il modello approssimato a tre parametri

L=

0.1994

136
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

T=

0.4615

k=

0.0020

Funzione di trasferimento del modello approssimato:

0.002
-------------------*exp(-0.1994s)
0.4615 s + 1

Regolatore P

kp =

1.1572e+003

Regolatore PI

kpi =

1.0415e+003

Ti =

0.5982

Regolatore PID

kpid =

1.3887e+003

Tii =

0.3988

Td =

0.0997

137
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

N=

10

TdN =

0.0100

Sono stati simulati tre sistemi e sono state confrontate le risposte ottenute nei vari casi:

Variabili di controllo del sistema


1600
Controllo di tipo P
Controllo di tipo PI
Controllo di tipo PID
1400
Controllo azione derivativa

1200

1000

800

600

400

200

0
0 0.5 1 1.5 2 2.5 3

Uscite del sistema


1.4
Controllo di tipo P
Controllo di tipo PI
Controllo di tipo PID
1.2 Controllo azione derivativa

0.8

0.6

0.4

0.2

0
0 0.5 1 1.5 2 2.5 3

138
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

2.4.2) Codice Matlab

%Taratura di Ziegler Nichols ad anello aperto


disp('Il sistema in esame :')
ng=5;
dg=conv([1 10 25],[1 20 100]);
g=tf(ng,dg)
disp('Si costruisce a partire dal sistema il modello approssimato a tre parametri')
%I parametri sono stati calcolati nei problema di identificazione
L=0.1994
T=0.4615
k=dcgain(ng,dg)
nga=k;
dga=[T 1];
ga=tf(nga,dga)
disp('Regolatore P')
kp=T/(k*L)
sim('zn_open_p',3)
disp('Regolatore PI')
kpi=0.9*T/(k*L)
Ti=3*L
sim('zn_open_pi',3)
disp('Regolatore PID')
kpid=1.2*T/(k*L)
Tii=2*L
Td=0.5*L
N=10
TdN=Td/N
sim('zn_open_pid',3)
sim('zn_open_pid_der',3)
plot(tp,yp)
hold on
plot(tpi,ypi,'r')
plot(tpid,ypid,'k')
plot(tpidder,ypidder,'m')
grid on
title('Uscite del sistema')
legend('Controllo di tipo P','Controllo di tipo PI','Controllo di tipo PID','Controllo azione derivativa')
figure(2)
plot(tp,up)
hold on
plot(tpi,upi,'r')
plot(tpid,upid,'k')
plot(tpidder,upidder,'m')
grid on
title('Variabili di controllo del sistema')
legend('Controllo di tipo P','Controllo di tipo PI','Controllo di tipo PID','Controllo azione derivativa')

139
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

2.5) Metodo di taratura con ottimizzazione ad anello aperto.

Quest altra tecnica di taratura PID si basa su di un processo di ottimizzazione numerica, ci che si
intende fare e rendere minimo lo scostamento tra la risposta a ciclo aperto di un modello W(s)
identificato a partire dalla risposta a ciclo chiuso del sistema G(s), e la stessa risposta a ciclo chiuso
del sistema. Questo vuol dire che bisogna risolvere un problema di ottimizzazione del tipo:

+
ISE = min e (t )
2
e
0
(Integral square error)

Per fare ci necessario scrivere una funzione oggetto ad hoc e minimizzarla con listruzione fimins,
tenendo conto che i passi dellalgoritmo devono seguire lo schema funzionale qui sotto disegnato:

r (t ) + e1 (t ) u (t )
y d (t )
RPID (kp, Ti, Td ) G (s)

e(t )
+


e 2 (t ) min

W (s)
y s (t )

ES 2.5.1
Tarare il PID analogico che ha funzione di trasferimento G(s) pari a quella degli esercizi precedenti
con il metodo di taratura a ciclo aperto con ottimizzazione.

Svolgimento:

Per tarare ad anello aperto un PID col metodo dellottimizzazione bisogna scrivere una funzione
oggetto che abbia come parametri di ingresso x=[Kp,Ti,Td], la risposta del modello parametrico, un
vettore dei tempi t e minimizzare numericamente con listruzione matlab xp=fmins('function',x0,[],x,y,t) .
Il vettore incognito ovviamente x, deve essere tale che lerrore e sia ottimale.

function f=ottpid(x,y,t)
Kp=x(1);
Ti=x(2);
Td=x(3);
%Numeratore e denomitore del PID
nump=[Kp*Td*Ti Kp*Ti Kp];
denp=[Ti 0];
%Numeratore e denominatore dell'impianto
ng=5;
dg=conv([1 10 25],[1 20 100]);

140
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
%Funzione di trasferimento di anello
numf=conv(nump,ng);
denf=conv(denp,dg);
sysf=tf(numf,denf);
%Retroazione unitaria negativa
sys=feedback(sysf,-1);
%Risposta della funzione di trasferimento con retroazione unitaria
ycl=step(sys,t);
f=sum([(y-ycl).^2]);

Dopo aver scritto la funzione da ottimizzare, si proceduto con la fase di ottimizzazione si


ricavato:

> Ricaviamo la funzione di traferimento del sistema desiderato


Attraverso la identificazione di un modello parametrico oscillante
che approssimi la uscita della funzione di anello del controllo PID a ciclo chiuso

a=

0.4060

d=

0.1133

Tp =

0.9333

zita =

0.3275

omegan =

6.3610

ku =

2250

Gm1 =

1.0000

141
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Pm1 =

4.5513e-006

Wcg1 =

7.0711

Wcp1 =

7.0711

T=

0.8886

kp =

1350

Ti =

0.4443

Td =

0.1111

Valori inizili di Kp,Ti,Td per la ricerca del minimo:

x=

1.0e+003 *

1.3500 0.0004 0.0001

Exiting: Maximum number of function evaluations has been exceeded


- increase MaxFunEvals option.
Current function value: 7.631512

Valori ottimali per la taratura:

xp =

142
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

246.4927 904.2607 0.5338

Le risposte del sistema di controllo a ciclo chiuso con i parametri ottenuti sono:

1.6
PID tarato a ciclo chiuso
Pid tarato con ottimizzazione a ciclo aperto
1.4 Modello paramerico desiderato

1.2

0.8

0.6

0.4

0.2

-0.2
0 2 4 6 8 10 12 14 16 18 20

2.5.2) Codice Matlab

% Metodo dell'ottimizzazione per tarare un pid con risposta oscillante


%ad anello aperto
disp('Ricaviamo la funzione di traferimento del sistema desiderato')
disp('Attraverso la identificazione di un modello parametrico oscillante')
disp('che approssimi la uscita della funzione di anello del controllo PID a ciclo chiuso')
a=0.406
d=0.046/a
Tp=1.6-0.6667
zita=1/sqrt(1+(2*pi/log(d))^2)
omegan=2*pi/Tp*sqrt(1-(zita)^2)
nd=(omegan)^2;
dd=[1 2*zita*omegan (omegan)^2];
t=linspace(0,20,1000);
%Taratura PID a ciclo chiuso per ottimizzazione
ng=5;
dg=conv([1 10 25],[1 20 100]);
t=linspace(0,20,1000);
ku=2250
[Gm1,Pm1,Wcg1,Wcp1] = margin(ku*ng,dg)

143
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
T=2*pi/Wcg1
kp=0.6*ku
Ti=0.5*T
Td=0.125*T
x=[kp Ti Td]
%Risposta a gradino del sistema desiderato
y=step(nd,dd,t);
%Fase di ottimizzazione
xp=fmins('ottpid',x,[],x,y,t)
sim('zn_close_pid1')
sim('zn_close_pid_ott')
sim('mod_pid_ott')
plot(tpid1,ypid1,'r')
hold on
plot(tpiddero,ypiddero)
plot(to,yo,'k--')
grid on
legend('PID tarato a ciclo chiuso','Pid tarato con ottimizzazione a ciclo aperto','Modello paramerico
desiderato')

144
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

2.6) Fenomeno del wind up.

Il fenomeno del Windup dovuto alla saturazione dellattuatore posto tra un controllore PI e
limpianto da controllare.

Come conseguenza di tale fenomeno, lerrore (differenza tra riferimento ed uscita)rimanendo


costante, andr a caricare sempre pi lazione integrale, fino ad andar a causare un ritardo nella
variazione delluscita del processo nel momento in cui si impone un nuovo riferimento minore del
valore di saturazione.
Per ovviare a ci si usa uno schema di desaturazione dellazione integrale o di anti-wind up, che
consente di evitare il sovraccaricamento dellerrore, e che pu essere ottenuto seguendo delle
regole generali per la progettazione:
N (s)
1) R ( s ) = R Forma del regolatore PID
( s )
N (0)
2) ( s ) : R >0
(0)
( s ) DR ( s )
3) ( s ) = sta sullanello di retroazione dellattuatore
( s)
4) DR ( s ) = 0

145
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
5) (0) = 1
Con N R ( s ), DR ( s ) numeratore e denominatore del controllore PID in assenza di schema di anti-
wind up.
Uno schema di desaturazione molto usato il seguente:

ES 2.6.1

Progettare uno schema anti wind-up per il sistema G(s) con funzione di trasferimento pari a quella
degli esercizi precedenti.

Svolgimento:

Per riuscire ad eliminare il wind up si considerato lo schema di desaturazione precedente ottenendo


il seguente risultato dalla simulazione:

146
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Uscite del sistema con schemi per effetto wind up
1.2

0.8

Uscita del sistema con effetto wind up


Uscita del sistema senza effetto wind up
0.6

0.4

0.2

-0.2
0 5 10 15 20 25 30

2.6.2) Codice Matlab

%Schemi di wind up e anti windup


disp('Funzione di trasferimento del sistema')
ng=5;
dg=conv([1 10 25],[1 20 100]);
g=tf(ng,dg)
kinst=2250;
[Gm1,Pm1,Wcg1,Wcp1] = margin(kinst*ng,dg)
disp('Taratura controllore di tipo PI')
%Schema wind up
kpi1=kinst*0.45;
T=2*pi/Wcg1;
Ti1=0.8*T;
ki1=kpi1/Ti1;
%Schema anti wind up')
disp('Taratura controllore di tipo PID')
disp('per schema anti wind_up')
%Schema anti wind up con azione derivativa
kpid2=0.6*kinst
Ti2=0.5*T
Td2=0.125*T
N=20
TdN=Td2/N
sim('wind_up')
sim('anti_wind_up')
plot(twu,ywu)
hold on
plot(tawu,yawu,'r')
grid on

147
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
title('Uscite del sistema con schemi per effetto wind up')
legend('Uscita del sistema con effetto wind up','Uscita del sistema senza effetto wind up')

2.7) Pid digitale.

I PID analogici visti in precedenza vengono usati poco oggigiorno, visto che ormai possibile
realizzarli in poco spazio ed in modo molto semplice grazie alla tecnologia digitale.
Per realizzare un controllore PID digitale, necessario definire un periodo di campionamento in
prossimit del quale si prelevano i valori delluscita del sistema da controllare, per poi venir utilizzati
dal PID digitale per calcolare in modo discreto le varie azioni di regolazione.
La variabile di controllo discreta in uscita dal PID deve poi essere necessariamente interpolata in
modo da ottenere un segnale di controllo continuo dato che, il sistema da controllare tempo-
continuo.
Alla luce di quando detto, si pu rappresentare schematicamente un sistema di controllo digitale in
questa maniera:

r (t ) + e (t ) e * (t ) u * (t ) u (t ) y (t )

Per realizzare il PID digitale necessario dare una rappresentazione nel discreto delle varie azioni di
regolazione:

Azione proporzionale:

P (tk ) = Kp[byref (tk ) y (tk )]

Azione integrale:

KpTc
I (tk +1 ) = I (tk ) + e(tk ) Eulero in avanti
Ti
KpTc
I (tk +1 ) = I (tk ) + e(tk +1 ) Eulero allindietro
Ti
KpTc e(tk +1 ) + e(tk )
I (tk +1 ) = I (tk ) + Tustin
Ti 2

Azione derivativa:

NTc
D(tk +1 ) = 1 D(tk ) KpN ( y (tk +1 ) y (tk ) ) Eulero in avanti
Td

Td KpNTd
D(tk ) = D(tk 1 ) ( y (tk ) y(tk 1 ) ) Eulero allindietro
Td + NTc Td + NTc

148
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

2Td NTc 2 KpNTd


D(tk ) = D(tk 1 ) ( y (tk ) y(tk 1 ) ) Tustin
2Td + NTc 2Td + NTc

Dal punto di vista grafico le varie approssimazioni numeriche hanno le seguente espressione:

m( z )
y (tk )
EA
EI

TU
1 1 e ( z )
t0 tk 1 tk tk +1 tn t

E godono delle propriet di stabilit che possono essere apprezzate qualitativamente attraverso il
grafico qui di sopra: il metodo di Eulero in avanti mappa i poli allinterno della circonferenza e
allesterno, quindi potrebbe essere o anche non essere convergente;il metodo di Eulero allindietro
mappa i poli in un sottoinsieme della circonferenza di raggio unitario (sottoinsieme di stabilit); il
metodo di Tustin garantisce sempre la consistenza e la stabilit e convergenza.

ES 2.7.1

Progettare uno sistema di controllo PID di natura digitale per il sistema G(s) con funzione di
trasferimento pari a quella degli esercizi precedenti.

Svolgimento:

Per progettare un controllore che lavori in modalit digitale, necessario implementare su chip un
algoritmo di controllo che:

Attende Linterrupt del clock


Legge lingresso allistante Tc (tempo di campionamento)
Calcola le varie azioni di controllo
Scrive il valore della variabile di controllo
Aggiorna le variabili

149
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
La cosa fondamentale scegliere un periodo di campionamento, opportuno in modo che sia
soddisfatta la condizione di Nyquist ( f c 2 B ) per evitare fenomeni di sovrapposizione dello spettro
in frequenza (aliasing) in fase di campionamento e scegliere un buon metodo di approssimazione
numerica. Nel caso dellesercizio in questione stato scelto il metodo di Tustin, poich consente di
mappare tutti i poli a parte Re<0 nel continuo, in poli discreti in modulo minore di 1 (poli
asintoticamente stabili).
Lalgoritmo di controllo utilizzato scritto e commentato nella pagina successiva.

function u=Piddig(e)
%Dichiarazione delle variabili globali
global Iold Dold yold y;
%Si verifica che le variabili associate all'azione integrale, proporzionale
%e derivativa si svuotino qualora siano piene
%( Aggiornamento delle variabili vecchie)
if isempty(yold)
yold=0;
end
if isempty(Iold)
Iold=0;
end
if isempty(Dold)
Dold=0;
end
%Si pone in ingresso un riferimento a gradino unitario e si esplicita
%l'uscita in funzione dell'errore
y=1-e;
%Si fissano i valori del PID tarato ad anello chiuso
ku=2250
Kp=ku*0.6;
wpi=7.0711
T=2*pi/wpi
Ti=0.5*T;
Td=0.125*T;
%Si fissa il periodo di campionamento in modo tale che non vi sia Aliasing
T=0.002;
%Valore per il filtro derivativo
N=15;
%Approsimazione alla Tustin
%(Se il processo continuo stabile,lo sar anche quello discreto)
%Coefficiente della parte integrale
bi=(T*Kp)/2*Ti;
%Coefficienti della parte derivativa
ad=(2*Td-N*T)/(2*Td+N*T);
bd=(2*Kp*N*Td)/(2*Td+N*T);
Iold;
yold;
Dold;
%Costruzione dei vari termini del PID
P=Kp*e;
I=Iold+(bi*e);

150
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
D=(ad*Dold)-(bd*(y-yold));
u=P+I+D;
Dold=D;
yold=y;
Iold=I;
return

Lo schema di controllo per il Pid digitale il seguente:

Dalla simulazione di tale schema si evinto che la risposta presenta un peggioramento dal punto di
vista del tempo di assestamento e di sovraelongazione: la presenza della tenuta di ordine zero genera
un ritardo pari a Tc/2 dove Tc il periodo di campionamento.
Infatti la relazione che intercorre tra lerrore e la variabile di controllo in un sistema di controllo
digitale la seguente:

U ( s ) = e sTc / 2 R (e sTc ) E ( s )

180
La presenza dellesponenziale genera un ritardo di fase pari a e sTc / 2 = cTc , ci nonostante a

regime luscita del sistema di controllo digitale inseguir allo stesso modo il segnale riferimento, alla
stregua del sistema di controllo PID analogico.

Risposte del sistema:

151
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

152
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
3) Controllo ON/Off.
Un modo semplice per realizzare il controllo di un processo mediante una controreazione
rappresentato da un controllo di tipo On-Off, che caratterizzato dalla seguente legge di controllo:

umax se e>0
u=
umin se e<0

Questo controllo si basa sullapplicazione del valore umax o umin della variabile u di controllo a
seconda che la differenza tra il riferimento e luscita del sistema da controllare sia positiva o negativa
(infatti e = yref-yo).
Per evitare per molte oscillazioni delluscita attorno al riferimento, che sollecitano eccessivamente
lattuatore, si sceglie un controllo On-Off con isteresi:

u u

umax

e eoff eon e

umin

On/off ideale On/off con isteresi


Risposte On/Off con isteresi

y (t )
yref

u (t ) umax

umin t
e (t ) eon

eon t

153
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
ES 3.1

Progettare una legge di controllo On/Off per il serbatoio di figura che presenta una sezione di A=1m2
una portata in ingresso di Qin=1/20 m3/s, una costante di diffusione pari a kv [0,1/ 5] dipendente da
una valvola controllata azionata da un attuatore elettrico.
Andare a studiare il comportamento dellazione di controllo nei seguenti casi:

1) kvoff = 1/ 22; kvon = 1/ 27 eon = 0.1; eoff = 0.1


2) kvoff = 1/10; kvon = 1/ 30 eon = 0.1; eoff = 0.1
3) kvoff = 1/ 5; kvon = 0 eon = 0.1; eoff = 0.1

Successivamente per:

1) kvoff = 1/10; kvon = 1/ 30 eon = 0.2; eoff = 0.2


2) kvoff = 1/10; kvon = 1/ 30 eon = 0.1; eoff = 0.1
3) kvoff = 1/10; kvon = 1/ 30 eon = 0.01; eoff = 0.01

Confrontare landamento delle varie risposte.

154
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Svolgimento:

Innanzitutto si ricavato un modello I-S-U per il sistema,


Ah& = Qin kv h
successivamente, vista la non linearit del sistema, si usato lo schema simulink del modello non
Q 2in
lineare, che ha punto di equilibrio per heq = 2 .
k

La costante di efflusso kv dipende da una valvola controllata azionata da un attuatore elettrico avente
10
funzione di trasferimento A( s ) = , mentre lo schema di controllo il seguente:
s + 10

155
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Dalla simulazione si sono ottenute le seguenti risposte:

Tramite le simulazioni delle tre risposte precedenti ( risposta in uscita, risposta delle variabili di
controllo, risposta allerrore), si potuto constatare che, mantenendo costante il valore di apertura
e di chiusura del relay e variando solo la costante di efflusso, si sono ottenute delle risposte in cui la
frequenza di oscillazione, rispetto al riferimento, diventata tanto pi piccola quanto pi era piccolo
lintervallo di apertura e chiusura di kv , al contrario nel caso in cui lintervallo di kv era grande.
Una volta verificato il risultato nel caso in cui lerrore rimane costante e lefflusso variabile, si va
simulare il caso in cui lefflusso costante e lerrore viene variato.

156
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

In questo caso invece, pi corto lintervallo di apertura e chiusura del relay, maggiore il numero di
oscillazioni dellerrore e delluscita controllata rispetto al riferimento, questo implica che il sistema di
controllo risulta essere molto sottopressione in termini di frequenza di apertura e chiusura del relay.

157
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
3.2) Codice Matlab

disp('Controllo on off del liquido di un serbatoio')


disp('Dati serbatoio')
%Area serbatoio
A=1;
%Flusso di liquido in ingresso
Qin=1/20;
%Dinamica dell'attuatore
na=10;
da=[1 10];
As=tf(na,da)
disp('Caso 1')
%Valori del Relay
eon=0.1;
eoff=-0.1;
%Caso1
%Valori della costante di efflusso
kvon=1/27;
kvoff=1/22;
sim('serbatoio_on_off')
subplot(3,1,1)
hold on
plot(ton,yon)
grid on
title('Variabili controllate')
legend('Caso1','Caso2','Caso3')
subplot(3,1,2)
hold on
plot(ton,uon)
grid on
title('Variabili di controllo')
subplot(3,1,3)
hold on
plot(ton,e)
grid on
title('Errore')
%Caso2
disp('Caso2')
kvon=1/30
kvoff=1/10
sim('serbatoio_on_off')
subplot(3,1,1)
plot(ton,yon,'r')
grid on
legend('Caso1','Caso2','Caso3')
hold on
subplot(3,1,2)
hold on
plot(ton,uon,'r')
grid on

158
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
subplot(3,1,3)
hold on
plot(ton,e,'r')
grid on
%Caso3
disp('Caso3')
kvon=0
kvoff=1/5
sim('serbatoio_on_off')
subplot(3,1,1)
plot(ton,yon,'g')
grid on
legend('Caso1','Caso2','Caso3')
hold on
subplot(3,1,2)
plot(ton,uon,'g')
grid on
subplot(3,1,3)
hold on
plot(ton,e,'g')
grid on
hold off
%caso4
figure(2)
kvon=1/30;
kvoff=1/10
eon=0.2;
eoff=-0.2;
sim('serbatoio_on_off')
subplot(3,1,1)
hold on
plot(ton,yon)
grid on
title('Variabili controllate')
legend('Caso1','Caso2','Caso3')
subplot(3,1,2)
hold on
plot(ton,uon)
grid on
title('Variabili di controllo')
subplot(3,1,3)
hold on
plot(ton,e)
grid on
title('Errore')
%Caso5
disp('Caso2')
kvon=1/30;
kvoff=1/10;
eon=0.1;
eoff=-0.1;

159
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
sim('serbatoio_on_off')
subplot(3,1,1)
plot(ton,yon,'r')
grid on
legend('Caso1','Caso2','Caso3')
hold on
subplot(3,1,2)
hold on
plot(ton,uon,'r')
grid on
subplot(3,1,3)
hold on
plot(ton,e,'r')
grid on
%Caso6
disp('Caso3')
kvon=1/30;
kvoff=1/10;
eon=0.01;
eoff=-0.01;
sim('serbatoio_on_off')
subplot(3,1,1)
plot(ton,yon,'g')
grid on
legend('Caso1','Caso2','Caso3')
hold on
subplot(3,1,2)
plot(ton,uon,'g')
grid on
subplot(3,1,3)
hold on
plot(ton,e,'g')
grid on

160
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

4) PLC (Programmable Logic Controller).


Un PLC un dispositivo molto usato nellambito dellautomazione industriale, un sistema
elettronico a funzionamento digitale, che utilizza una memoria programmabile per larchiviazione
interna di istruzione orientate allimplementazione di funzioni specifiche per il controllo.
Esso costituito da almeno cinque elementi fondamentali: larmadio, il modulo processore,i moduli
ingresso/uscita, il modulo alimentatore, il terminale di programmazione.

Alimentatore
Moduli I/O
Processore

Armadio

Tramite PLC, una scheda di acquisizione per PC ed un software annesso, possibile programmare in
linguaggio ladder o anche in altri linguaggi, le azioni di controllo digitali o analogiche di uno o pi
controllori. In questa sede si user il plc presente nel laboratorio, per risolvere un problema di
automazione industriale. Tra i vari problemi proposti, quello che stato scelto, riguarda la gestione
di un sistema di nastri trasportatori per la lavorazione di pezzi.

ES 4.1

Specifiche funzionali

Il processo da controllare costituito da una coppia di nastri trasportatori, Nastro1 e Nastro2; su


Nastro 1 sono presenti una stazione di lavorazione, che permette di effettuare due tipi diversi di
lavorazione, ed una stazione di selezione, posta alla divergenza dei due nastri, che permette di
inoltrare dei pezzi da Nastro1 a Nastro2.
In coda al Nastro1 vengono posti due differenti tipi di pezzi: uno di tipo A (rettangolare) a cui
associato il codice 1111. Il codice 0000 corrisponde allassenza di pezzi alla stazione di lavorazione.

Specifiche di dettaglio

Lalgoritmo di controllo deve provvedere a:


fare avanzare Nastro 1 fino a quando non presente un pezzo sotto la stazione di lavorazione e/o
sotto la stazione di selezione;
fare avanzare Nastro2 finch su di esso non vi sono pi pezzi;
effettuare la lavorazione opportuna: se sotto la stazione presente un pezzo di tipo a per 6 secondi; se
il pezzo di tipo b, questo deve subire una lavorazione di tipo b per 4 secondi;
effettuare la selezione del pezzo lavorato: se sotto la stazione di selezione presente un pezzo di tipo
a, questo deve essere posizionato sul Nastro2 agendo sulleccitazione del pistone fino a che non
giunge nella posizione 2; il pezzo di tipo b deve continuare a muoversi sul Nastro1.

161
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
In presenza di una condizione di anomalia (Alarm attivo) bisogna provvedere a sospendere ogni
operazione, disabilitare limmissione di nuovi pezzi su Nastro1 e svuotare entrambi i nastri dei pezzi
gi presenti. Al rientro dellemergenza viene ristabilita la condizione di normale funzionamento.

Lista delle attribuzioni:

Pos_1 Finecorsa posizione di riposo del pistone. Normalmente aperto. I:1/0


Pos_2 Finecorsa posizione di espulsione del pistone. Normalmente aperto. I:1/1
Libero_1 Assenza di pezzi sul nastro 1. Normalmente aperto. I:1/2
Libero_2 Assenza di pezzi su Nastro2. Normalmente aperto. I:1/3
Alarm Insorgenza di un emergenza. Normalmente aperto I:1/4
Scan1_0 Codice pezzo alla stazione di lavorazione codificato I:1/5
su quattro bit (0000 indica assenza di pezzo).
Scan1_3 I:1/8
Scan2_0 Codice pezzo alla stazione di selezione codificato I:1/9
su quattro bit (0000 indica assenza di pezzo).
Scan2_3 I:1/12
Lav_a Comando per la lavorazione di tipo a. Attivo se alto. O:2/0
Lav_b Comando per la lavorazione di tipo b. Attivo se alto. O:2/1
Motore_1 Azionamento motore connesso al nastro 1. Attivo se alto. O:2/2
Motore_2 Azionamento motore connesso al nastro 2. Attivo se alto. O:2/3
Disabilita Disabilitazione immissione pezzi sul nastro1. Attivo se alto. O:2/4
Pistone Comando di avanzamento pistone. Attivo se alto, se basso richiama il pistone. O:2/5

162
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia
Svolgimento:

Per prima cosa necessario esplicitare i passi dellalgoritmo tramite luso del SFC:

SFC1 (Nastro1)

1 Motore_1

(Not Scan1=0000) and Tr2 (Not Scan1=0000)


(Scan1=0000) and
Tr1 (Scan2 =(0000 or 1111)) and (Not Scan2 =1000)
( Scan2 =1000) Tr3

2 3 Pistone
Tr4 Tr5
Scan1=1000 Scan1=1111 Tr6 Pos_2

Lav_B 4 5 Lav_A
6
t/X4/4s t/X5/6s
Tr7 Tr8 Tr9 Pos_1

8 7

Tr12 Tr10
(Scan2=0000) or (Scan2 =1111)) Scan1=0000
=1

Tr11

SFC2 (Nastro2) SFC3 (Gestione allarme)

9 Motore_2 11

Tr15 Alarm
Tr13 X3

SFC1{} Set
10 12 Motore_1 Motore_2
SFC2{} Disabilita

Tr14 Libero_2 Tr16 Libero_1 and Libero_2 and Not Alarm

SFC1{1} Reset
13
SFC2{9} Disabilita
Tr17 =1

163
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

Per rendere limplementazione pi semplice, stato suddiviso il problema in tre sottoproblemi


tramite tre SFC distinti: con lSFC1 stato implementato il controllo del nastro1, usando come
strutture SFC una scelta senza ambiguit, una sincronizzazione e una scelta con ambiguit, mentre
come azioni lazionamento del motore, la lavorazione di tipo a e la lavorazione di tipo b; con
lSFC2 stato implementato il controllo del nastro sotto lazione del motore2; con lSFC3 stato
gestito lallarme dovuto a delle anomalie improvvise. Nella gestione dellallarme si sono usate due
azioni di memorizzazione (set e reset), una sospensione, una forzatura, lavviamento del motore1 e
del motore2.
Quando viene avviato il motore1 sul nastro1 vi sono tre tipi di scelte possibili: sulla stazione di
lavorazione vi deve essere un pezzo di tipo qualsiasi, mentre sulla stazione di selezione deve esserci
un pezzo di tipo b o nessun pezzo; sulla stazione di lavorazione non deve esserci assenza di pezzo e
allo stesso tempo sulla stazione di selezione vi deve essere un pezzo di tipo a; sulla stazione di
lavorazione non ci deve essere nessun pezzo, mentre sulla stazione di selezione ci deve essere un
pezzo di tipo a.
Una volta effettuate le scelte preliminari, bisogna distinguere se il pezzo che si trova sulla stazione
di lavorazione sia un pezzo di tipo a o di tipo b ed effettuare il tipo di lavorazione richiesto, daltro
canto se ce un pezzo di tipo a necessario spingerlo sul nastro2 tramite il pistone che avanza e si
ritrae assumendo la pos_2 e poi la pos_1.
Alluscita della fase 8 e della fase 7 ce una struttura di sincronizzazione, in cui vi sono tre scelte:
sulla stazione di selezione ci deve essere o meno un pezzo di tipo b, transizione sempre superabile
che connette alla fase iniziale 1, assenza di pezzo sulla stazione di lavorazione.
Il motore2 si attiva quando il pistone in pos_2 e pu accettare il flusso di pezzi di tipo a se e
soltanto se il nastro2 libero_2.
Per attivare lallarme, necessario sospendere le attivit di tutte le fasi, disabilitare il motore1 ed il
motore2; per riattivare il funzionamento del processo, necessario verificare che i nastri siano liberi
(libero_2 e libero_1) e che non vi sia allarme.
Una volta esplicitato lalgoritmo necessario tradurlo in linguaggio ladder con lalgoritmo di
evoluzione e poi simularlo in laboratorio tramite il PLC.
Lalgoritmo di evoluzione prevede quattro passi fondamentali:
1) Inizializzazione delle variabili
2) Valutazione delle azioni
3) Valutazione delle transizioni
4) Aggiornamento delle variabili

Andando a simulare in laboratorio il programma di automazione si ottenuto il listato ladder delle


pagine successive.

164
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

165
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

166
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

167
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

168
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

169
Corso di Controllo dei Processi e tecnologia dei sistemi di controllo-Teoria del controllo ottimo
quadratico, ottimizzazione e tecniche di identificazione e controllo industriale
A.A 2003/2004 -Universit Mediterranea di Reggio Calabria- Studente-Massimo Talia

170

Potrebbero piacerti anche