Il caso classico tratta lo spostamento del centro stella solo nel caso di interruzione del neutro, cioè neutro con impedenza infinita, in realtà passando da neutro con impedenza zero a neutro con impedenza infinita, che rappresenta l'interruzione dello stesso, la tensione V0 tra centro astratto e centro concreto aumenta da zero fino al suo valore massimo se si verifica la condizione di carichi molto differenti sulle tre fasi. Se indichiamo con V1,V2,V3 una terna di tensioni di fase simmetriche in partenza della linea, con I1,I2,I3 le correnti sulle tre fasi assorbite dai carichi e con In la corrente sul neutro si ha:
I1 + I2 + I3 = In
Si puo' quindi scrivere la seguente relazione:
Y1 * (V1 − V0) + Y2 * (V2 − V0) + Y3 * (V3 − V0) = Yn * V0
per cui si ha :
V0 = (Y1 * V1 + Y2 * V2 + Y3 * V3) / (Y1 + Y2 + Y3 + Yn) -Teorema di Millman-
A titolo di esempio ho ipotizzato un caso pratico che è il seguente:
Linea trifase BT in cavo aereo precordato di alluminio 3x70+1x54.6 di lunghezza pari a 0.6 Km che alimenta alla sua estremità tre carichi di valore differente distribuiti ognuno per fase. Le caratteristiche della linea sono riportate di seguito:
Tensione di fase in partenza Vp = 230 volt
Resistenza della fase RL = 0.443 ohm/Km
Reattanza della fase XL = 0.100 ohm/Km
Resistenza del neutro Rn = 0.628 ohm/Km
Reattanza del neutro Xn = 0.170 ohm/Km
Lunghezza linea L = 0.6 Km
I carichi sono i seguenti:
Carico 1 Kw 6.6 cosf 0.90
Carico 2 Kw 0.2 cosf 0.90
Carico 3 Kw 0.1 cosf 0.95
Allo scopo di avere un riscontro pratico con valori numerici, si considerano tre condizioni di funzionamento della linea.
Ipotesi 1 - Neutro interrotto, impedenza infinita
Ipotesi 2 - Neutro con impedenza uguale a zero, (caso teorico)
Ipotesi 3 - Neutro con impedenza di valore finito, caso pratico sopra descritto con valore di impedenza definito.
Ho predisposto un programma in Fortran per poter calcolare agevolmente le tensioni e le correnti che circolano in linea nelle tre condizioni previste, il listato del programma è allegato a questo lavoro .
Nella ipotesi 1 sopra descritta sono impostati nel programma valori di resistenza e reattanza del neutro molto elevati che si avvicinano alla condizione di neutro interrotto, quindi si è posto una resistenza e reattanza del neutro di 1*10^6 ohm/km.
Nella ipotesi 2, neutro con impedenza uguale a zero, allo scopo di evitare l' overflow del calcolo si è impostato nel listato del programma un valore molto basso di resistenza e reattanza del neutro pari a 1*10^-6 ohm/Km.
Nella ipotesi 3 i valori di resistenza e reattanza del neutro sono quelli indicati nell'esempio.
Per ogni carico è stata calcolata la resistenza Rc e la reattanza Xc in base alla potenza e al cosfi dello stesso. Questi valori si suppongono costanti al variare della tensione. Si è quindi calcolata la resistenza Rt per ogni fase data dalla resistenza del carico Rc più la resistenza della fase di linea RL*L, quindi Rt= Rc+RL*L, dove L è la lunghezza di linea in Km, stesso discorso vale per la reattanza quindi Xt= Xc+XL*L. Calcolate quindi le ammettenze delle fasi e del neutro si è calcolata la tensione V0'0 tra il centro concreto ed il centro astratto e quindi anche le tensioni Vt10,Vt20,Vt30 come meglio indicato nello schema elettrico allegato.
Risulta di particolare interesse l'ipotesi 3 ove si nota che le tensioni Vt20 e Vt30 sono aumentate, in particolar modo la tensione sulla fase 3 è aumentata di circa 7 volt in conseguenza dello spostamento del centro stella dovuto al carico elevato sulla fase 1 rispetto ai carichi molto modesti sulle fasi 2 e 3.
Si sono infine calcolate le tensioni di fase sui carichi Vc1'0,Vc2'0,Vc3'0
Il programma salva nella stessa cartella ove è installato il file Risultati.txt che si riferisce alle 3 ipotesi considerate riguardo la condizione del neutro.
Allego i risultati dei calcoli nelle tre ipotesi considerate.
PROGRAM Sp_Centro_Stella ! Calcolo spostamento centro stella IMPLICIT NONE REAL:: Vp ! tensione di fase in partenza in volt REAL:: L ! Lunghezza della linea in km REAL:: Rn ! resistenza del neutro in ohm/km REAL:: Xn ! reattanza del neutro in ohm/km REAL:: RL ! resistenza della fase in ohm/km REAL:: XL ! reattanza della fase in ohm/km COMPLEX:: Yn ! ammettenza del neutro COMPLEX:: V0 ! tensione stellata tra centro astratto e centro concreto COMPLEX:: ZL ! impedenza della fase della linea in forma complessa INTEGER::i REAL,DIMENSION(3)::P !carico relativo alle fasi 1-2-3 in watt REAL,DIMENSION(3)::cosf !fattore di potenza dei carichi fasi 1-2-3 REAL,DIMENSION(3)::arc !arco in rad. corrisp.ai vari cosf REAL,DIMENSION(3)::sinf !seno corrispondente ai cosf REAL,DIMENSION(3)::Ic0 ! correnti nominali dei carichi COMPLEX,DIMENSION(3)::Ic ! correnti dei carichi in forma complessa COMPLEX::I0 ! corrente sul neutro in forma complessa REAL,DIMENSION(3)::Zc ! impedenza nominale dei carichi REAL,DIMENSION(3)::Rc ! resistenza nominale dei carichi REAL,DIMENSION(3)::Xc ! reattanza nominale dei carichi REAL,DIMENSION(3)::Rt !somma tra la resistenza interna del carichi Rc !e la resistenza della linea RL*L REAL,DIMENSION(3)::Xt !somma tra la reattanza interna dei carichi Xc !e la reattanza della linea XL*L COMPLEX,DIMENSION(3):: Yt ! ammettenza totale carichi + linea COMPLEX,DIMENSION(3):: V ! tensioni di fase in partenza della linea ! in forma complessa COMPLEX,DIMENSION(3):: Vt ! tensioni totali su impedenza carico + linea COMPLEX,DIMENSION(3):: Vc ! tensioni sui carichi INTEGER::sel OPEN(UNIT=3,FILE='Risultati.txt',STATUS='REPLACE',ACTION='WRITE') WRITE(*,"(' Inserire la tensione di fase in partenza della linea' & & ' in volt')") READ(*,*) Vp WRITE(*,"(' Inserire la resistenza di fase della linea in ohm/km')") READ(*,*) RL WRITE(*,"(' Inserire la reattanza di fase della linea in ohm/km')") READ(*,*) XL sel= -1 DO WHILE(sel<1 .OR. sel>3) WRITE(*,"(' Selezionare lo stato di funzionamento del neutro',/ & & ' 1) Neutro interrotto',/& & ' 2) Neutro con impedenza uguale a zero',/& & ' 3) Neutro con valori di impedenza definiti dall''utente')") READ(*,*) sel SELECT CASE(sel) CASE(1) Rn=1E6 Xn=1E6 CASE(2) Rn=1E-6 Xn=1E-6 CASE(3) WRITE(*,"(' Inserire la resistenza del neutro della linea in ohm/km')") READ(*,*) Rn WRITE(*,"(' Inserire la reattanza del neutro della linea in ohm/km')") READ(*,*) Xn END SELECT END DO L= -1 DO WHILE(L<=0) WRITE(*,"(' Inserire la lunghezza della linea in km')") READ(*,*) L IF (L<=0)THEN WRITE(*,"(' La lunghezza della linea deve essere maggiore di',/& & ' zero',/)") END IF END DO DO i= 1,3 WRITE(*,"(' Inserire il carico relativo alla fase ',I1,' in KW')")i READ(*,*) P(i) WRITE(*,"(' Inserire il fattore di potenza relativo alla fase ',I1)")i READ(*,*) cosf(i) END DO DO i= 1,3 arc(i)= ACOS (cosf(i)) sinf(i)= SIN(arc(i)) END DO DO i= 1,3 Ic0(i) = (P(i)*1000)/(Vp*cosf(i)) END DO DO i=1,3 Zc(i)=Vp/Ic0(i) Rc(i)=Zc(i)*cosf(i) Xc(i)=Zc(i)*sinf(i) END DO DO i=1,3 Rt(i)= Rc(i)+RL*L Xt(i)= Xc(i)+XL*L Yt(i)= 1/CMPLX(Rt(i),Xt(i)) END DO IF ((Rn == 0.).AND.(Xn == 0.)) THEN WRITE(*,"(' Se Rn=0 e Xn=0 sono uguali a zero',/& & ' viene impostato Rn=1E-6 e Xn=1E-6',/& & ' per non mandare il calcolo in overflow',/)") READ(*,*) Rn=1E-6 Xn=1E-6 END IF Yn= 1/CMPLX(Rn*L,Xn*L) WRITE(*,"(////////)") IF (sel==1) THEN WRITE(3,"(' CALCOLO ESEGUITO CON NEUTRO INTERROTTO',/,& & ' IPOTESI 1',/)") WRITE(3,"(' Resistenza di linea RL= ',F4.2,A)")RL,' ohm/Km' WRITE(3,"(' Reattanza di linea XL= ',F4.2,A)")XL,' ohm/Km' WRITE(3,"(' Lunghezza linea L= ',F4.2,A)")L,' Km' ELSE IF (sel==2) THEN WRITE(3,"(' CALCOLO ESEGUITO CON NEUTRO AD IMPEDENZA ZERO',/,& & ' IPOTESI 2',/)") WRITE(3,"(' Resistenza di linea RL= ',F4.2,A)")RL,' ohm/Km' WRITE(3,"(' Reattanza di linea XL= ',F4.2,A)")XL,' ohm/Km' WRITE(3,"(' Lunghezza linea L= ',F4.2,A)")L,' Km' ELSE IF (sel==3) THEN WRITE(3,"(' CALCOLO ESEGUITO CON NEUTRO LA CUI IMPEDENZA ',/,& & ' E'' DEFINITA DALL'' UTENTE - IPOTESI 3',/)") WRITE(3,"(' Resistenza di linea RL= ',F4.2,A)")RL,' ohm/Km' WRITE(3,"(' Reattanza di linea XL= ',F4.2,A)")XL,' ohm/Km' WRITE(3,"(' Resistenza del neutro Rn= ',F4.2,A)")Rn,' ohm/Km' WRITE(3,"(' Reattanza del neutro Xn= ',F4.2,A)")Xn,' ohm/Km' WRITE(3,"(' Lunghezza linea L= ',F4.2,A)")L,' Km' END IF WRITE(3,"(' Tensione di fase in partenza della linea',/, & & ' Vp =',F8.2,A,/)")Vp,'volt' DO i= 1,3 WRITE(3,"(' Carico su fase '& & ,I1,F8.1,' KW',' cosf ',F4.2 )")i,P(i),cosf(i) END DO ! Tensioni di fase in partenza della linea in forma complessa V(1)= CMPLX (Vp,0.) V(2)= CMPLX (-Vp * 0.5 ,-Vp * SQRT(3.)/2) V(3)= CMPLX (-Vp * 0.5 , Vp * SQRT(3.)/2) V0= (V(1)*Yt(1)+V(2)*Yt(2)+V(3)*Yt(3))/(Yt(1)+Yt(2)+Yt(3)+Yn) WRITE(3,"(/' Tensione V0''0 tra centro reale e centro astratto ',/,& & ' V0''0 =',2F8.2,A)")V0,' volt' WRITE(3,"(' Tensione V0''0 in modulo'/,& & ' V0''0 =',F8.2,A,/)") SQRT(REAL(V0)**2+AIMAG(V0)**2),' volt' WRITE(3,"(' Tensioni Vt in forma complessa')") DO i= 1,3 Vt(i)= V(i)-V0 WRITE(3,"(' Vt',I1,'0 =',2F8.2,A)")& & i,Vt(i),' volt' END DO WRITE(3,"(/,' Tensioni Vt in modulo')") DO i= 1,3 WRITE(3,"(' Vt',I1,'0 =',F8.2,A)") & & i, SQRT(REAL(Vt(i))**2+AIMAG(Vt(i))**2),' volt' END DO I0 = Yn*V0 WRITE(3,"(/,' Corrente sul neutro I0',2F8.2,A)")I0,' amp' WRITE(3,"(' Modulo corrente sul neutro I0 ',F8.2,A,/)")& & SQRT(REAL(I0)**2+AIMAG(I0)**2),' amp' ZL=CMPLX(RL*L,XL*L) WRITE(3,"(' Correnti Ic dei carichi in forma complessa')") DO i = 1,3 Ic(i) = Yt(i)*Vt(i) WRITE(3,"(' Ic',I1,' =',2F8.2,A)")i,Ic(i),' amp' END DO WRITE(3,"(/,' Correnti dei carichi Ic in modulo')") DO i = 1,3 WRITE(3,"(' Ic',I1,' =',F8.2,A)")& & i,SQRT(REAL (Ic(i))**2+AIMAG(Ic(i))**2),' amp' END DO WRITE(3,"(/,' Tensioni Vc sui carichi in forma complessa')") DO i= 1,3 Vc(i)= Vt(i)-(ZL*Ic(i)) WRITE(3,"(' Vc',I1,'''0 =',2F8.2)")i,Vc(i) END DO WRITE(3,"(/,' Tensioni Vc sui carichi in modulo')") DO i= 1,3 WRITE(3,"(' Vc',I1,'''0 =',F8.2,A)") & & i,SQRT(REAL(Vc(i))**2+AIMAG(Vc(i))**2),' volt' END DO CLOSE(3) WRITE(*,"(' Per visualizzare i risultati del calcolo apri il file',/& & ' Risultati.txt, premi invio per continuare')") READ(*,*) STOP END PROGRAM Sp_Centro_Stella