Q2 40 l/s
L 500 m
D 250 mm
Q3 20 l/s
L 400 m
D 150 mm
H0 40 m
L 200 m
D 100 mm
L 200 m
D 100 mm
L 300 m
D 250 mm
Q5 0 l/s
L 400 m
D 150 mm
Q4 10 l/s
L 600 m
D 200 mm

Q6 40 l/s
1 mm
TRONCHI:
% colonna 1: numero del tronco
% colonna 2: nodo di uscita del tronco
% colonna 3: nodo di ingresso del tronco
% colonna 4: lunghezza in m
% colonna 5: diametro in mm
% colonna 6: coefficiente di scabrezza del tronco in mm
% colonna 7: esponente della portata nella formula che esprime le perdite di carico
1
2
3
4
5
6
7
1
2
3
4
2
5
1
2
3
4
5
5
6
6
500
400
200
400
200
600
300
250
150
100
150
100
200
250
1.
1.
1.
1.
1.
1.
1.
2
2
2
2
2
2
2
NODI
% colonna 1: numero del nodo
% colonna 2: 1 se nodo a carico imposto/noto; 0 altrimenti
% colonna 3: quota in [m] del nodo a carico imposto; 0 altrimenti
% colonna 4: domanda al nodo in l/s
% colonna 5: quota in m del nodo
1
2
3
4
5
6
1
0
0
0
0
0
40
0
0
0
0
0
0
40
20
10
0
40
0
0
0
0
0
0
 A11
A
 12
A12  Q  -A10 H 0 





0  H   q 
Q
H
H0
q
A11
A12
A10
portate incognite nei tronchi
carichi incogniti ai nodi
carichi noti ai nodi
richieste idriche note ai nodi
matrice diagonale che tiene conto delle
perdite distribuite e concentrate
porzione della matrice delle incidenze
relativa ai nodi a carico incognito
porzione della matrice delle incidenze
relativa ai nodi a carico noto
H k+1 =M  A 21Q k -q  -MA 21G -1  A11Q k +A10 H 0 
k+1
k
Q =Q -G
-1
A
dove
G=NA11
M=  A 21G A12 
-1
Q +A10 H 0  -G A12 H
11
1
k
-1
k+1
Matrice topologica AA
TRONCHI
NODI
1
2
3
4
5
6
1
-1
1
0
0
0
0
2
0
-1
1
0
0
0
3
0
0
-1
1
0
0
4
0
0
0
-1
1
0
5
0
-1
0
0
1
0
6
0
0
0
0
-1
1
7
-1
0
0
0
0
1
Matrice A10
Matrice A12
NODI
TRONCHI
% matrice delle incidenze completa AA
AA=zeros(NT,NNtot);
for i=1:NT
nodo_us=Tronchi(i,2);
nodo_in=Tronchi(i,1);
AA(i, nodo_us)=-1;
AA(i, nodo_in)=1;
end
1
2
3
4
5
6
1
-1
1
0
0
0
0
2
0
-1
1
0
0
0
3
0
0
-1
1
0
0
4
0
0
0
-1
1
0
5
0
-1
0
0
1
0
0
0
-1
1
0
0
0
1
TRONCHI:
6
0
0
% colonna 1: numero del tronco
% colonna 2: nodo di uscita del tronco
7
-1
0
% colonna 3: nodo di ingresso del tronco
% colonna 4: lunghezza in m
% colonna 5: diametro in mm
% colonna 6: coefficiente di scabrezza del tronco in mm
% colonna 7: esponente della portata nella formula che esprime le perdite di carico
1
1
2
500
250
1.
2
2
2
3
400
150
1.
2
3
3
4
200
100
1.
2
4
4
5
400
150
1.
2
5
2
5
200
100
1.
2
6
5
6
600
200
1.
2
7
1
6
300
250
1.
2
% matrice delle incidenze completa AA
TRONCHI
AA=zeros(NT,NNtot);
y1=(tronchi(:,2)-1).*NT+tronchi(:,1);
x1=(tronchi(:,3)-1).*NT+tronchi(:,1);
AA(x1)=1;
AA(y1)=-1;
NODI
1
2
3
4
5
6
1
-1
1
0
0
0
0
2
0
-1
1
0
0
0
3
0
0
-1
1
0
0
4
0
0
0
-1
1
0
5
0
-1
0
0
1
0
0
0
-1
1
0
0
0
1
TRONCHI:
6
0
0
% colonna 1: numero del tronco
% colonna 2: nodo di uscita del tronco
7
-1
0
% colonna 3: nodo di ingresso del tronco
% colonna 4: lunghezza in m
% colonna 5: diametro in mm
% colonna 6: coefficiente di scabrezza del tronco in mm
% colonna 7: esponente della portata nella formula che esprime le perdite di carico
1
1
2
500
250
1.
2
2
2
3
400
150
1.
2
3
3
4
200
100
1.
2
4
4
5
400
150
1.
2
5
2
5
200
100
1.
2
6
5
6
600
200
1.
2
7
1
6
300
250
1.
2
% A10 matrice topologica dei nodi a carico noto
A10=AA(:,INS);
% A12 matrice topologica dei nodi a carico incognito
A12=AA(:,IN);
NODI
A21=A12';
1
2
3
4
5
6
1
-1
1
0
0
0
0
% INS vettore degli indici dei
nodi a carico imposto
INS=find(nodi(:,2));
opp
INS=find(nodi(:,2)==1);
2
0
-1
1
0
0
0
3
0
0
-1
1
0
0
4
0
0
0
-1
1
0
5
0
-1
0
0
1
0
6
0
0
0
0
-1
1
7
-1
0
0
0
0
1
TRONCHI
dove
% IN vettore degli indici dei nodi
a carico incognito
IN=find(nodi(:,2)-1);
opp
IN=find(nodi(:,2)==0);
NODI
% colonna 1: numero del nodo
% colonna 2: 1 se nodo a carico imposto/noto; 0 altrimenti
% colonna 3: quota in [m] del nodo a carico imposto; 0 altrimenti
% colonna 4: domanda al nodo in l/s
% colonna 5: quota in m del nodo
Matrice A10
1
2
3
4
5
6
1
0
0
0
0
0
Matrice A12
40
0
0
0
0
0
0
40
20
10
20
40
0
0
0
0
0
0
% inizializzazione
Hk1= ones(NN,1);
Qk1= ones(NT,1);
k=1;
A11=diag(8/9.81/(3.14^2)*lambda.*(abs(Qk1).^(n-1))./D.^5.*L);
G=N*A11;
G1=inv(G);
M=inv(A21*G1*A12);
Hk2=M*(A21*Qk1-q)-(M*A21*G1)*(A11*Qk1+A10*H0);
Qk2=Qk1-G1*(A11*Qk1+A10*H0)-G1*A12*Hk2;
% Procedura iterativa
while max(abs(Hk2-Hk1)) >= errore
Qk1=Qk2;
Hk1=Hk2;
A11=……..
G=……
…
Hk2=…..
Qk2=……
k=k+1;
end
Scarica

Document