Elektrisk systembeskrivelse av kontaktledningsanlegg ver01 Vedlegg script

Fra Lærebøker i jernbaneteknikk
Hopp til navigering Hopp til søk

__NUMBEREDHEADINGS__

Generelt

I dette vedlegget presenteres funksjoner srevet i Scilab som gjør de beregningene som er beskrevet i Lenke: Elektrisk systembeskrivelse. Koden er testet med Scilab 6.0.0.

Lineær modell

Script er ikke utarbeidet

Transmisjonslinje

Enkel linjesløyfe

Teoretisk beskrivelse: Linjesløyfe

Funksjon:           admLoop
Beskrivelse:        Beregner admittansmatrisa for ei linjesløyfe
Syntaks:            Y = admLoop(r,x,g,b,l)
Alternativ syntaks: Y = admLoop(r,x,g,b,l,INDR,INDS)
Alternativ syntaks: [Y,INDR,INDS] = admLoop(r,x,g,b,l)
Alternativ syntaks: [Y,INDR,INDS] = admLoop(r,x,g,b,l,INDR,INDS)
function [Y,INDR,INDS] = admLoop(r,x,g,b,l,INDR,INDS)
   if (~and(exists(INDR,INDS,1))) then
       INDR = 1
       INDS = 2
   end
   z = r + %i * x
   y = g + %i * b
   Z0 = sqrt(z/y)
   gam = sqrt(z*y)
   const = (Z0*sinh(gam*l))^(-1)
   Y = zeros(2,2)
   Y(INDR,INDR) = const*cosh(gam*l)
   Y(INDR,INDS) = -const
   Y(INDS,INDR) = -const
   Y(INDS,INDS) = const*sinh(gam*l)
endfunction
Variabel Type Enhet Type Beskrivelse
Y (2x2) kompleks matrise S Resultat Admittansmatrise for linjesløyfe
INDR heltall skalar - Input eller resultat Indeks for node R i admittansmatrisa.
Må være 1 eller 2 og ulik INDS
INDS heltall skalar - Input eller resultat Indeks for node S i admittansmatrisa
Må være 1 eller 2 og ulik INDR
r reell skalar Ω/km Input Spesifikk serieresistans
x reell skalar Ω/km Input Spesifikk seriereaktans
g reell skalar S/km Input Spesifikk parallell konduktans
b reell skalar S/km Input Spesifikk parallell susceptans
l reell skalar km Input Linjesløyfas lengde

Transmisjonslinje med flere parallelle ledere

Teoretisk beskrivelse: Transmisjonslinje

Funksjon:           admLine
Beskrivelse:        Beregner admittansmatrisa for en transmisjonslinje med n parallelle ledere
Syntaks:            Y = admLine(r,x,g,b,l)
Alternativ syntaks: Y = admLine(r,x,g,b,l,INDR,INDS)
Alternativ syntaks: [Y,INDR,INDS] = admLine(r,x,g,b,l)
Alternativ syntaks: [Y,INDR,INDS] = admLine(r,x,g,b,l,INDR,INDS)
function [Y,INDR,INDS]=admLine(r,x,g,b,l,INDR,INDS)
   n = size(r,1)
   if (~and([size(r),size(x),size(g),size(b)]==n)) then
       // Wrong dimensions of input variables
       Y = 0
       return
   end
   if (~and(exists(INDR,INDS,1))) then
       INDR = [1:n]
       INDS = [n+1:2*n]
   elseif (and([size(INDR),size(INDS)] == 1) then
       tmp = (n*(INDR-1))
       INDR = (tmp+1:tmp+n)
       tmp = (n*(INDS-1))
       INDS = (tmp+1:tmp+n)
   end
   nul = zeros(n,n)
   z = r + %i*x
   y = g + %i*b
   A = [nul , -z ; -y , nul]
   [M,fi] = spec(A) // Finds eigenvector matrix (M) and eigenvalue matrix (fi)
   for i=1:2*n
       fi(i,i) = exp(fi(i,i)*l)
   end
   fi = M*fi*inv(M)
   fi11 = fi(INDR,INDR)
   fi12 = fi(INDR,INDS)
   fi21 = fi(INDS,INDR)
   fi22 = fi(INDS,INDS)
   fi12inv = inv(fi12)
   Y = zeros(2*n,2*n)
   Y(INDR,INDR) = -fi12inv*fi11
   Y(INDR,INDS) = fi12inv
   Y(INDS,INDR) = fi22*fi12inv*fi11-fi21
   Y(INDS,INDS) = -fi22*fi12inv
endfunction
Variabel Type Enhet Type Beskrivelse
Y (2nx2n) kompleks matrise S Resultat Admittansmatrise for flerlederlinje
INDR (n) heltall vektor - Input eller resultat Indekser for node R i admittansmatrisa.
Alle elementer i INDR og INDS må være unike og i intervallet (1:2n).
Ved input kan INDR og INDS alternativt settes til 1 eller 2 (skalare verdier)
INDS (n) heltall vektor - Input eller resultat Indekser for node S i admittansmatrisa.
Alle elementer i INDR og INDS må være unike og i intervallet (1:2n).
Ved input kan INDR og INDS alternativt settes til 1 eller 2 (skalare verdier)
r (nxn) reell matrise Ω/km Input Spesifikk serieresistans
x (nxn) reell matrise Ω/km Input Spesifikk seriereaktans
g (nxn) reell matrise S/km Input Spesifikk parallell konduktans
b (nxn) reell matrise S/km Input Spesifikk parallell susceptans
l reell skalar km Input Linjas lengde

Sugetransformator

Teoretisk beskrivelse: Sugetransformator

Funksjon:           admBoosterTransformer
Beskrivelse:        Beregner admittansmatrisa for en sugetransformator
Syntaks:            Y = admBoosterTransformer(rk,xk,gm,bm)
Alternativ syntaks: Y = admBoosterTransformer(rk,xk,gm,bm,INDR,INDS)
Alternativ syntaks: [Y,INDR,INDS] = admBoosterTransformer(rk,xk,gm,bm)
Alternativ syntaks: [Y,INDR,INDS] = admBoosterTransformer(rk,xk,gm,bm,INDR,INDS)
function [Y,INDR,INDS] = admBoosterTransformer(rk,xk,gm,bm,INDR,INDS)
   if (~and(exists(INDR,INDS,1))) then
       INDR = [1:2]
       INDS = [3:4]
   elseif (and([size(INDR),size(INDS)] == 1) then
       tmp = (2*(INDR-1))
       INDR = (tmp+1:tmp+2)
       tmp = (2*(INDS-1))
       INDS = (tmp+1:tmp+2)
   end
   yk = (rk + %i * xk)^(-1)
   ym = gm + %i * bm
   ytmp = [yk+ym,-yk;-yk,yk]
   Y(INDR,INDR) = ytmp
   Y(INDR,INDS) = -ytmp
   Y(INDS,INDR) = -ytmp
   Y(INDS,INDS) = ytmp
endfunction
Variabel Type Enhet Type Beskrivelse
Y (4x4) kompleks matrise S Resultat Admittansmatrise for sugetransformator
INDR (1x2) heltall vektor - Input eller resultat Indekser for node R i admittansmatrisa.
Alle elementer i INDR og INDS må være unike og i intervallet (1:4).
Ved input kan INDR og INDS alternativt settes til 1 eller 2 (skalare verdier)
INDS (1x2) heltall vektor - Input eller resultat Indekser for node S i admittansmatrisa.
Alle elementer i INDR og INDS må være unike og i intervallet (1:4).
Ved input kan INDR og INDS alternativt settes til 1 eller 2 (skalare verdier)
rk reell skalar Ω Input Kortslutningsresistans
xk reell skalar Ω Input Kortslutningsreaktans
gm reell skalar S Input Magnetiseringskonduktans
bm reell skalar S Input Magnetiseringssusceptans

Seksjonering

Teoretisk beskrivelse: Seksjonering

Funksjon:     admSeriesImpedance
Beskrivelse:  Beregner admittansmatrisa for en serieimpedans eller en seksjonering
Syntaks:            Y = admSeriesImpedance(g,b)
Alternativ syntaks: Y = admSeriesImpedance(g,b,INDR,INDS)
Alternativ syntaks: [Y,INDR,INDS] = admSeriesImpedance(g,b)
Alternativ syntaks: [Y,INDR,INDS] = admSeriesImpedance(g,b,INDR,INDS)
function [Y,INDR,INDS] = admSeriesImpedance(g,b,INDR,INDS)
   if (~and(exists(INDR,INDS,1))) then
       INDR = 1
       INDS = 2
   end
   ytmp = g + %i*b
   Y = zeros(2,2)
   Y(INDR,INDR) = ytmp
   Y(INDR,INDS) = -ytmp
   Y(INDS,INDR) = -ytmp
   Y(INDS,INDS) = ytmp
endfunction
Variabel Type Enhet Type Beskrivelse
Y (2x2) kompleks matrise S Resultat Admittansmatrise for serieimpedans eller seksjonering
INDR heltall skalar - Input eller resultat Indeks for node R i admittansmatrisa.
Må være 1 eller 2 og ulik INDS
INDS heltall skalar - Input eller resultat Indeks for node S i admittansmatrisa
Må være 1 eller 2 og ulik INDR
g reell skalar S Input Konduktans
b reell skalar S Input Susceptans
Kommentar: For en ren seksjonering er g og b lik 0 S, og resultatet blir en nullmatrise.

Autotransformator

Teoretisk beskrivelse: Autotransformator

Funksjon:     admAutoTransformer
Beskrivelse:  Beregner admittansmatrisa for en autotransformator
Syntaks:            Y = admAutoTransformer(rk,xk,gm,bm)
Alternativ syntaks: Y = admAutoTransformer(rk,xk,gm,bm,INDN,INDP,INDR)
Alternativ syntaks: [Y,INDN,INDP,INDR] = admAutoTransformer(rk,xk,gm,bm)
Alternativ syntaks: [Y,INDN,INDP,INDR] = admAutoTransformer(rk,xk,gm,bm,INDN,INDP,INDR)
function [Y,INDN,INDP,INDR]=admAutoTransformer(rk,xk,gm,bm,INDN,INDP,INDR)
   if (~and(exists(INDN,INDP,INDR,1))) then
       INDN = 1
       INDP = 2
       INDR = 3
   end
   yk = rk + %i * xk
   ym = gm + %i * bm
   Y = zeros(3,3)
   Y(INDN,INDN) = yk+ym
   Y(INDP,INDP) = yk+ym
   Y(INDN,INDP) = yk-ym
   Y(INDP,INDN) = yk-ym
   Y(INDR,[INDN,INDP]) = -2.0*yk
   Y([INDN,INDP],INDR) = -2.0*yk
   Y(INDR,INDR) = 4.0*yk
endfunction
Variabel Type Enhet Type Beskrivelse
Y (3x3) kompleks matrise S Resultat Admittansmatrise for autotransformator
INDN heltall skalar - Input og resultat Indeks for negativleder (NL) i admittansmatrisa.
INDN, INDP og INDR må være unike og i intervallet (1:3).
INDP heltall skalar - Input og resultat Indeks for positivleder (PL) i admittansmatrisa.
INDN, INDP og INDR må være unike og i intervallet (1:3).
INDR heltall skalar - Input og resultat Indeks for returkrets (RR) i admittansmatrisa.
INDN, INDP og INDR må være unike og i intervallet (1:3).
rk reell skalar Ω Input Kortslutningsresistans
xk reell skalar Ω Input Kortslutningsreaktans
gm reell skalar S Input Magnetiseringskonduktans
bm reell skalar S Input Magnetiseringssusceptans

Jordforbindelse

Teoretisk beskrivelse: Jordforbindelse

Script er ikke utarbeidet

Kilde og belastning

Kilde

Teoretisk beskrivelse: Kilde

Funksjon:           nortonSource
Beskrivelse:        Beregner nortonekvivalenten (admittansmatrise og nortonstrøm) for en kilde
Syntaks:            [Y,i] = nortonSource(r,x,u0)
Alternativ syntaks: [Y,i] = nortonSource(r,x,u0,INDC,INDR)
Alternativ syntaks: [Y,i,INDC,INDR] = nortonSource(r,x,u0)
Alternativ syntaks: [Y,i,INDC,INDR] = nortonSource(r,x,u0,INDC,INDR)
function [Y,i,INDC,INDR] = nortonSource(r,x,u0,INDC,INDR)
   if (~and(exists(INDC,INDR,1))) then
       INDC = 1
       INDR = 2
   end
   y = (r + %i * x)^(-1)
   Y = zeros(2,2)
   Y(INDC,INDC) = y
   Y(INDC,INDR) = -y
   Y(INDR,INDC) = -y
   Y(INDR,INDR) = y
   iN = u0*y
   i = zeros(2,1)
   i(INDC)=iN
   i(INDR)=-iN
endfunction
Variabel Type Enhet Type Beskrivelse
Y (2x2) kompleks matrise S Resultat Admittansmatrise for nortonkilde
i (1x2) kompleks vektor A Resultat Strømvektor for nortonkilde
INDC heltall skalar - Input og resultat Indeks for kontaktledning (kl).
INDC og INDR må være ulike og 1 eller 2.
INDR heltall skalar - Input og resultat Indeks for returkrets (RR).
INDC og INDR må være ulike og 1 eller 2.
r reell skalar Ω Input Kilderesistans (nortonekvivalent)
x reell skalar Ω Input Kildereaktans (nortonekvivalent)
u0 reell skalar V Input Tomgangsspenning ved kilden

Belastning

Teoretisk beskrivelse: Belastning

Funksjon:           currentLoad
Beskrivelse:        Beregner spenning og strøm ved en strømbelastning
Syntaks:            [uL,iL] = currentLoad(iLoad,fiLoad,uB,Z,INDC,INDR)
function [uB,iB] = currentLoad(iLoad,fiLoad,u0,Z,INDC,INDR)
   ul0 = u0(INDC)-u0(INDR)
   zg = Z(INDC,INDC)+Z(INDR,INDR)-Z(INDC,INDR)-Z(INDR,INDC)
   delta = atan(imag(ul0),real(ul0))
   gam = (delta-fiLoad)
   theta = atan(imag(zg),real(zg))
   zg=abs(zg)
   func =  abs(ul0)*(sin(delta-gam)-cos(delta-gam)*tan(fiLoad)) + iLoad*zg*(cos(theta)*tan(fiLoad)-sin(theta))
   while (abs(func)>10D-9)
       dfdg = abs(ul0)*(cos(delta-gam)+sin(delta-gam)*tan(fiLoad))
       gam = gam + func/dfdg
       func =  abs(ul0)*(sin(delta-gam)-cos(delta-gam)*tan(fiLoad)) + iLoad*zg*(cos(theta)*tan(fiLoad)-sin(theta))
   end
   iLoad = iLoad*exp(gam*%i)
   iB = [-iLoad;iLoad]
   uB = u0 + Z*iB
endfunction
Variabel Type Enhet Type Beskrivelse
uL (2x1) kompleks vektor V Resultat Vektor med spenning ved belastningen
iL (2x1) kompleks vektor A Resultat Vektor med strøm ved belastningen
iLoad rell skalar A Input Belastningsstrøm
fiLoad reell skalar radianer fasevinkel ved belastningen
u0 (2x1) kompleks vektor V Tomgangsspenning ved belastningen før belastningen er innkoplet
Z (2x2) kompleks matrise Ω Impedansmatrise for belastningen
INDC heltall skalar - Input Indeks for kontaktledning (kl).
INDC og INDR må være ulike og 1 eller 2.
INDR heltall skalar - Input Indeks for returkrets (RR).
INDC og INDR må være ulike og 1 eller 2.