Elektrisk systembeskrivelse av kontaktledningsanlegg ver01 Vedlegg script: Forskjell mellom sideversjoner
Hopp til navigering
Hopp til søk
m (→Seksjonering) |
|||
Linje 17: | Linje 17: | ||
function [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 | z = r + %i * x | ||
y = g + %i * b | y = g + %i * b | ||
Linje 22: | Linje 26: | ||
gam = sqrt(z*y) | gam = sqrt(z*y) | ||
const = (Z0*sinh(gam*l))^(-1) | const = (Z0*sinh(gam*l))^(-1) | ||
Y = zeros(2,2) | Y = zeros(2,2) | ||
Y(INDR,INDR) = const*cosh(gam*l) | Y(INDR,INDR) = const*cosh(gam*l) |
Sideversjonen fra 21. jul. 2017 kl. 13:36
__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
Ingen script tilgjengelig
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) yk = (rk + %i * xk)^(-1) ym = gm + %i * bm 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 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 Kalles ved: Y = admSeriesImpedance(g,b)
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 |
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 Kalles ved: Y = admAutoTransformer(rk,xk,gm,bm)
function Y=admAutoTransformer(rk,xk,gm,bm) yk = rk + %i * xk ym = gm + %i * bm Yat = zeros(3,3) Yat(1,1) = yk+ym Yat(2,2) = yk+ym Yat(1,2) = yk-ym Yat(2,1) = yk-ym Yat(3,[1:2]) = -2.0*yk Yat([1:2],3) = -2.0*yk Yat(3,3) = 4.0*yk endfunction
Variabel | Type | Enhet | Type | Beskrivelse |
---|---|---|---|---|
Y | (4x4) kompleks matrise | S | Resultat | Admittansmatrise for autotransformator |
rk | reell skalar | Ω | Input | Kortslutningsresistans |
xk | reell skalar | Ω | Input | Kortslutningsreaktans |
gm | reell skalar | S | Input | Magnetiseringskonduktans |
bm | reell skalar | S | Input | Magnetiseringssusceptans |