Vorrei proporre un rudimentale programma scritto in Fortran 90 per la risoluzione di una rete magliata di media tensione composta di un numero n di nodi ed n_rami. Supponiamo di avere una rete come quella rappresentata nel disegno sottostante
La rete è composta di 3 nodi più il nodo 0 e 5 rami. Supponiamo, per ragioni di semplicità, che sia utilizzato per tutta la rete aerea MT il conduttore in rame da 70 mm2
Le caratteristiche della rete sono le seguenti:
Tensione nominale Vn_c = 20 kV
Resistenza conduttore Rl= 0.268 ohm/km
Reattanza conduttore Xl= 0.367 ohm/km
Le lunghezze dei rami in km risultano dallo schema così come le potenze in KW erogate nei vari nodi con i rispettivi fattori di potenza.(NB) La numerazione dei vari rami è individuata da un numero cerchiato. La rete si suppone alimentata dal nodo 0 (zero). Dopo aver inserito il numero dei nodi della rete si inserisce la tensione concatenata nominale, si inseriscono le potenze ed i rispettivi fattori di potenza, si inseriscono inoltre la resistenza e la reattanza chilometriche della rete ed il numero di rami della maglia. A questo punto si inseriscono i due nodi tra cui è compreso il ramo in oggetto e la sua lunghezza in km, (i valori vanno inseriti in sequenza utilizzando la barra spaziatrice per separare un valore dall'altro).
Il programma calcola le tensioni concatenate in modulo nei nodi della maglia, calcola inoltre le correnti in forma complessa ed in modulo nei rami della stessa. Il valore in forma complessa delle correnti può essere utile in quanto rappresentativo, se con segno negativo, della inversione del flusso di potenza attiva. Se esaminiamo i risultati dell'esempio riportato, nei rami 3 e 4 si ha il segno negativo in corrispondenza della parte reale della corrente, quindi, nel caso specifico, la potenza attiva fluisce dal nodo 0 verso il nodo 3 e dal nodo 3 verso il nodo 2.
Allego immagine con i risultati del calcolo ed il codice sorgente del programma.
PROGRAM ReteMagliata
! 07/02/2022 - CarloSolo
IMPLICIT NONE
REAL:: Vn_c! Tensione concatenata in kV
REAL,DIMENSION(20)::P ! Potenza in kW assorbita dal carico
REAL,DIMENSION(20)::cos_f ! Fattore di potenza del carico
COMPLEX,DIMENSION(20)::Ic ! Corrente corrispondente al carico
REAL:: Rl ! Resistenza della linea in ohm/km
REAL:: Xl ! Reattanza della linea in ohm/km
COMPLEX::Zl ! Impedenza della linea in forma complessa in ohm/km
COMPLEX,DIMENSION(20)::Zx ! Impedenza dei vari rami in forma complessa
COMPLEX,DIMENSION(20)::Yx ! Ammettenza dei vari rami in forma complessa
INTEGER::n_rami !Numero dei rami del circuito
INTEGER::n ! Numero dei nodi
INTEGER::ni ! Nodo iniziale del ramo
INTEGER::nf ! Nodo finale del ramo
INTEGER,DIMENSION(20)::nix ! Memorizzazione dei nodi iniziali dei rami
INTEGER,DIMENSION(20)::nfx ! Memorizzazione dei nodi finali dei rami
COMPLEX,DIMENSION(20,20)::Y ! Ammettenze della matrice
INTEGER::i,j,nm1,m,mp1,jp1,k ! Variabili di servizio
COMPLEX,DIMENSION(20)::V ! Tensione di fase ai nodi rispetto al nodo zero
COMPLEX,DIMENSION(20)::Vf ! Tensione effettiva di fase in volt nel nodo
REAL,DIMENSION(20)::Vc ! Tensione effettiva concatenata in KV nel nodo
COMPLEX,DIMENSION(20)::Iu ! Corrente corrispondente ai vari rami di linea
COMPLEX::qz ! Rapporto tra due elementi della matrice
REAL,DIMENSION(20)::arc ! Arco in radianti corrispondente al cos_f
REAL,DIMENSION(20)::tng ! Tangente corrispondente al cos_f
REAL,DIMENSION(20)::L ! Lunghezza dei rami di linea
DO i = 1,20
DO j= 1,20
Y(i,j)=0
END DO
END DO
WRITE(*,"( ' Inserire il numero dei nodi')")
READ(*,*) n
WRITE(*,"(' Inserire la tensione concatenata nominale dei carichi in kV')")
READ(*,*) Vn_c
WRITE(*,"(' Inserire le potenze dei carichi ',/)")
DO i= 1,n
WRITE(*,"(' Inserire la potenza in Kw assorbita dal carico P'I2)") i
READ(*,*) P(i)
WRITE(*,"(' Inserire il fattore di potenza del carico P',I2)")i
READ(*,*) cos_f(i)
arc(i) = ACOS(cos_f(i))
tng(i) = TAN(arc(i))
Ic(i)= CMPLX(P(i)/(SQRT(3.)*Vn_c),-P(i)/(SQRT(3.)*Vn_c)*tng(i))
END DO
DO i= 1,n
WRITE(*,"(' Corrente assorbita dal carico Ic',I1,F6.1,F6.1,' amp')")&
& i,Ic(i)
WRITE(*,"(' Corrente in modulo Ic',I1,F6.1,' amp')") i,&
& SQRT(REAL(Ic(i))**2+AIMAG(Ic(i))**2)
END DO
WRITE(*,"(' Inserire la resistenza della linea in ohm/km')")
READ(*,*) Rl
WRITE(*,"(' Inserire la reattanza della linea in ohm/km')")
READ(*,*) Xl
Zl= CMPLX(Rl,Xl)
WRITE(*,"(' Inserire il numero dei rami del circuito')")
READ(*,*) n_rami
DO i= 1,n_rami
WRITE(*,"(' Inserire i due nodi tra cui e'' compreso il ramo',I2,/&
& ' e la sua lunghezza in Km')")i
READ(*,*) ni,nf,L(i)
Zx(i)=Zl*L(i)
Yx(i) = 1./Zx(i)
nix(i)= ni
nfx(i)= nf
IF(ni /= 0) THEN
Y(ni,ni)= Y(ni,ni)+Yx(i)
END IF
IF(nf /= 0)THEN
Y(nf,nf)= Y(nf,nf)+Yx(i)
END IF
IF(ni /= 0 .AND. nf /= 0) THEN
Y(ni,nf)= Y(ni,nf)-Yx(i)
Y(nf,ni)= Y(nf,ni)-Yx(i)
END IF
END DO
nm1= n-1
DO m= 1,nm1
mp1= m+1
DO j= mp1,n
qz= Y(j,m)/Y(m,m)
Ic(j)= Ic(j)-(Ic(m)*qz)
DO k= m,n
Y(j,k)= Y(j,k)-(Y(m,k)*qz)
END DO
END DO
END DO
V(n)= Ic(n)/Y(n,n)
DO m= 1,nm1
j= n-m
jp1= j+1
DO k= jp1,n
Ic(j)= Ic(j)-(Y(j,k)*V(k))
END DO
V(j)= Ic(j)/Y(j,j)
END DO
WRITE(*,"(' Le tensioni concatenate nei nodi sono :')")
DO i= 1,n
Vf(i)= ((Vn_c*1000)/ SQRT(3.))- V(i)
Vc(i)=SQRT(3.0)*(SQRT(REAL(Vf(i))**2+AIMAG(Vf(i))**2))*1E-3
WRITE(*,"(' Vc',I2,F8.2,A)")i,Vc(i),' KV'
END DO
WRITE(*,"(' Le correnti nei rami sono :')")
DO i= 1,n_rami
ni= nix(i)
nf= nfx(i)
Iu(i)=Yx(i)*(V(nf)-V(ni))
WRITE(*,"(' Corrente in forma complessa Iu',I2,2F8.2,' amp')") i,Iu(i)
WRITE(*,"(' In modulo Iu',I2,F8.2,' amp')") i,&
& SQRT(REAL(Iu(i))**2+AIMAG(Iu(i))**2)
END DO
READ(*,*)
END PROGRAM ReteMagliata

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)