Esempio: rete elettrica
Si consideri la seguente rete elettrica:
V
uC
1C
2L
R
1R
2V
yI =0
uV
1V
2I
Ldove C
1= C
2= 0.1, R
1= R
2= 10 e L = 0.2. La funzione di trasferimento G (s) che lega l’ingresso V
uall’uscita V
y`e la seguente:
G (s) = V
y(s) V
u(s) =
1
1
R1+ 1
R2+ 1 C2s
1
C1s
+
1 1 R1+ 1R2+ 1 C2s
+
L s·
R2R2+ 1 C2s
=
1+(C C1C2R1R2s21R1+C2R1+C2R2)s+C1(L+C2R1R2)s2+C1C2L(R1+R2)s3
Per ottenere questa funzione `e stato utilizzato il concetto di partitore di ten- sione con impedenze complesse.
Le equazioni differenziali che caratterizzano il sistema sono le seguenti:
C
1V ˙
1= I
LL ˙ I
L= V
u− V
1− R
1I
LRR21+R2
+
R V21+R2
C
2V ˙
2= I
L−
I
LRR21+R2
+
R V21+R2
| {z }
IR1
dove V
1e V
2sono le tensioni ai capi dei condensatori, I
L`e la corrente che
circola nell’induttore e I
R1`e la corrente che scorre nella resistenza R
1. Una
descrizione dello sistema nello spazio degli stati si ottiene facilmente utilizzando
il vettore di stato x =
V
1I
LV
2 T.
C
10 0 0 L 0 0 0 C
2
V ˙
1˙I
LV ˙
2
=
0 1 0
− 1
(R−R1+R1R22) (R−1+RR12)0
(RR11+R2)
−1 (R1+R2)
V
1I
LV
2
+
0 1 0
V
uV
y=
0
RR1R21+R2
−R2
R1+R2
x La matrice di raggiungibilit` a del sistema `e
R
+=
0
C11L
−R1R2
C1L2(R1+R2) 1
L
−R1R2
L2(R1+R2)
−
(
C2L(R1+R2)2)
+C1R12(
−L+C2R22)
C1C2L3(R1+R2)2
0
C2L(RR11+R2)−
R1(L+C2R1R2)C22
L2(R1+R2)2
Il determinante della matrice R
+`e sempre diverso da zero
det R
+= R
1C
1C
22L
3(R
1+ R
2)
2per cui il sistema `e completamente raggiungibile. Il sistema non `e raggiungibile solo se R
1= 0.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% Rete_Elettrica_2006.m %
% Controllo di una rete elettrica con 2 condensatori ed un induttore %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all close all clc
echo on
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Si utilizzano le unit di misura del Sistema Internazionale SI %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A=1; ohm=1; V=1; H=1; F=1; rad=1; sec=1;
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Parametri fisici del sistema %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
R1 = 10*ohm; % Resistenza R1
R2 = 10*ohm; % Resistenza R2
C1 = 0.1*F; % Capacita’ C1
C2 = 0.3*F; % Capacita’ C2
L = 0.2*H; % Induttanza L
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Condizioni iniziali del sistema %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
V10=10*V; % Tensione iniziale ai capi del condensatore C1 IL0= 0*A; % Corrente iniziale che scorre nell’induttore L V20=10*V; % Tensione iniziale ai capi del condensatore C2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Condizioni finali %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
V1f= 0*V; % Tensione finale ai capi del condensatore C1 ILf=10*A; % Corrente finale che scorre nell’induttore L V2f= 0*V; % Tensione finale ai capi del condensatore C2
%
echo on
pause; % Premi un tasto per continuare clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Definizione delle matrici di sistema nello spazio degli stati %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Am=[ 0 1/C1 0 ;
-1/L -R1*R2/(L*(R1+R2)) -R1/(L*(R1+R2));
0 R1/(C2*(R1+R2)) -1/(C2*(R1+R2)) ; ];
Bm=[ 0;
1/L;
0];
Cm=[ 0 R1*R2/(R1+R2) -R2/(R1+R2) ];
%
SYS=ss(Am,Bm,Cm,0)
%
pause; % Premi un tasto per continuare clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Funzione di trasferimento del sistema %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GS=tf(SYS)
Transfer function:
25 s^2 + 3.855e-015 s
--- s^3 + 25.17 s^2 + 58.33 s + 8.333
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Poli del sistema %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
pole(SYS) ans =
-2.4117 -22.6021 -0.1529
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Zeri di trasmissione del sistema %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
zero(SYS)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Posizione dei poli e degli zeri nel piano %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(1) pzmap(SYS)
%
pause; % Premi un tasto per continuare clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Forma canomica di controllo %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SYSC=canon(SYS) % Canonical form
%
pause; % Premi un tasto per continuare clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Matrice di controllabilit %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ctrb(SYS) ans =
1.0e+003 *
0 0.0500 -1.2500 0.0050 -0.1250 2.8542 0 0.0083 -0.2097
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Determinante della matrice di controllabilit %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
det(ctrb(SYS)) ans =
347.2222
%
pause; % Premi un tasto per continuare clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Evoluzione libera del sistema %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[Y,T,X] = initial(SYS,[V10 IL0 V20]);
%
figure(2) subplot(311) plot(T,X(:,1))
title(’Tensione V1’) ylabel(’V1 [V]’)
%
subplot(312) plot(T,X(:,2))
title(’Corrente IL’) ylabel(’IL [A]’)
%
subplot(313) plot(T,X(:,3))
title(’Tensione V2’) ylabel(’V2 [V]’) xlabel(’Tempo [s]’)
%
pause; % Premi un tasto per continuare clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Discretizzazione del sistema tempo continuo %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
Tsamp=0.5; % Periodo di campionamento
SYSD = C2D(SYS,Tsamp,’zoh’); % Discretizzazione del sistema [AD,BD,CD,DD] = SSDATA(SYSD) % Sistema discreto
%
pause; % Premi un tasto per continuare clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Calcolo del controllo a norma minima e simulazione %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
X0=[V10; IL0; V20]; % Stato iniziale
Xf=[V1f; ILf; V2f]; % Stato finale
u=Controllo_P2P(AD,BD,X0,Xf,3); % Calcolo del controllo a norma minima [YS,TS,XS] = LSIM(SYSD,u,[],X0) % Similazione con l’ingresso calcolato
% pause
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Graficazione dei dati %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(3) clf
subplot(311)
plot(TS,XS(:,1),’*’); hold on stairs(TS,XS(:,1))
title(’Tensione V1’) ylabel(’V1 [V]’)
%
subplot(312)
plot(TS,XS(:,2),’*’); hold on stairs(TS,XS(:,2))
title(’Corrente IL’) ylabel(’IL [A]’)
%
subplot(313)
plot(TS,XS(:,3),’*’); hold on stairs(TS,XS(:,3))
title(’Tensione V2’) ylabel(’V2 [V]’) xlabel(’Tempo [s]’)
pause; % Premi un tasto per continuare clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Calcolo delle traiettorie al variare del periodo di controllo %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
figure(4) clf
for k=[3:8]
u=Controllo_P2P(AD,BD,X0,Xf,k); % Calcolo del controllo a norma minima [YS,TS,XS] = LSIM(SYSD,u,[],X0); % Similazione con l’ingresso calcolato
%
plot3(XS(:,1),XS(:,2),XS(:,3)); hold on plot3(XS(:,1),XS(:,2),XS(:,3),’*’);
title(’Traiettorie nello spazio degli stati’) xlabel(’Tensione V1 [V]’)
ylabel(’Corrente IL [A]’) zlabel(’Tensione V2 [V]’) echo off
end echo on
% end
plot3(X0(1),X0(2),X0(3),’*r’);
plot3(Xf(1),Xf(2),Xf(3),’*r’);
grid on return
La funzione Controllo P2P(AD,BD,X0,Xf,np):
% Fornisce in uscita l’azione di controllo a norma minima che porta il sistema
% dallo stato iniziale X0 allo stato finale Xf, in "np" passi. Si suppone che
% il discreto caratterizzato dalle matrici A e B sia discreto e raggingibile
%
function u=Controllo_P2P(AD,BD,X0,Xf,np)
%
Rpiu=MatRagK(AD,BD,np); % Matrice di raggiungibilia’
u=Rpiu’*inv(Rpiu*Rpiu’)*(Xf-(AD^np)*X0); % Calcolo dell’ingresso di controllo u=[fliplr(u’) 0]; % Ordinamento di u al crescere del tempo return
La funzione MatRagK(AD,BD,np):
% Rp=MatRagK(A,B,k)
%
% Calcola la matrice di raggiungibilit a k passi del sistema linare (A,B):
%
% Rp = [B A*B A*A*B ... A^(k-1)*B]
%
function Rp=MatRagK(A,B,k)
[nra,nca]=size(A); % Calcola il numero di righe e di colonne [nrb,ncb]=size(B); % delle matrici A e B
if (nra==nca)&(nca==nrb) Rp=B;
for n=[1:k-1]
Rp=[Rp (A^n)*B];
end else
help MatRagK
disp(’Errore: la matrice A non quadrata oppure non compatibile con B’) end return
La funzione MatRag(A,B):
% Rp=MatRag(A,B)
%
% Calcola la matrice di raggiungibilit del sistema linare (A,B):
%
% Rp = [B A*B A*A*B ... A^(n-1)*B]
%
function Rp=MatRag(A,B)
[nra,nca]=size(A); % Calcola il numero di righe e di colonne if (nra==nca)
Rp=MatRagK(A,B,nra);
else
help MatRag
disp(’Errore: la matrice A non quadrata’) end
return
• Evoluzione libera:
0 2 4 6 8 10 12 14 16 18 20
−5 0 5 10
Tensione V1
V1 [V]
0 2 4 6 8 10 12 14 16 18 20
−3
−2
−1 0 1
Corrente IL
IL [A]
0 2 4 6 8 10 12 14 16 18 20
0 5 10
Tensione V2
V2 [V]
Tempo [s]
• Traiettorie nello spazio degli stati:
−200 0
200
400
600
800
−100
−50 0
50 100
−20 0 20 40 60 80 100 120
Tensione V1 [V]
Traiettorie nello spazio degli stati
Corrente IL [A]
Tensione V2 [V]