Elektrisk systembeskrivelse av kontaktledningsanlegg ver01 Vedlegg script
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 | (nxn) reell matrise | 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 |
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(ulb),real(ulb)) gam = (delta-fiL) theta = atan(imag(zg),real(zg)) zg=abs(zg) func = abs(ulb)*(sin(delta-gam)-cos(delta-gam)*tan(fi)) + iload*zg*(cos(theta)*tan(fi)-sin(theta)) while (abs(func)>10D-9) dfdg = abs(ulb)*(cos(delta-gam)+sin(delta-gam)*tan(fi)) gam = gam + func/dfdg func = abs(ulb)*(sin(delta-gam)-cos(delta-gam)*tan(fi)) + iload*zg*(cos(theta)*tan(fi)-sin(theta)) end iLoad = iLoad*exp(gam*%i) iB = [-iLoad;iLoad] uB = u0 + Z*iB endfunction