Elektrisk systembeskrivelse av kontaktledningsanlegg ver01 Vedlegg script: Forskjell mellom sideversjoner
Hopp til navigering
Hopp til søk
(15 mellomliggende revisjoner av samme bruker vises ikke) | |||
Linje 4: | Linje 4: | ||
= Lineær modell = | = Lineær modell = | ||
Script er ikke utarbeidet | |||
= Transmisjonslinje = | = Transmisjonslinje = | ||
Linje 116: | Linje 116: | ||
| b || (nxn) reell matrise || S/km || Input || Spesifikk parallell susceptans | | b || (nxn) reell matrise || S/km || Input || Spesifikk parallell susceptans | ||
|- | |- | ||
| l || | | l || reell skalar || km || Input || Linjas lengde | ||
|} | |} | ||
Linje 218: | Linje 218: | ||
INDR = 3 | INDR = 3 | ||
end | end | ||
zk = rk + %i * xk | |||
yk = zk^(-1) | |||
ym = gm + %i * bm | ym = gm + %i * bm | ||
Y = zeros(3,3) | Y = zeros(3,3) | ||
Linje 241: | Linje 242: | ||
| INDR || heltall skalar || - || Input og resultat || Indeks for returkrets (RR) i admittansmatrisa. <br> 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. <br> INDN, INDP og INDR må være unike og i intervallet (1:3). | ||
|- | |- | ||
| rk || reell skalar || Ω || Input || Kortslutningsresistans | | rk || reell skalar || Ω || Input || Kortslutningsresistans - referansespenning 30 kV | ||
|- | |||
| xk || reell skalar || Ω || Input || Kortslutningsreaktans - referansespenning 30 kV | |||
|- | |||
| gm || reell skalar || S || Input || Magnetiseringskonduktans - referansespenning 30 kV | |||
|- | |||
| bm || reell skalar || S || Input || Magnetiseringssusceptans - referansespenning 30 kV | |||
|} | |||
= Jordforbindelse = | |||
Teoretisk beskrivelse: [[Elektrisk_systembeskrivelse_av_kontaktledningsanlegg_ver01#Jordforbindelse|Jordforbindelse]] | |||
Script er ikke utarbeidet | |||
= Kilde og belastning = | |||
== Kilde == | |||
Teoretisk beskrivelse: [[Elektrisk_systembeskrivelse_av_kontaktledningsanlegg_ver01#Kilde|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 | |||
{| class="wikitable" | |||
! 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). <br> INDC og INDR må være ulike og 1 eller 2. | |||
|- | |||
| INDR || heltall skalar || - || Input og resultat || Indeks for returkrets (RR). <br> 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: [[Elektrisk_systembeskrivelse_av_kontaktledningsanlegg_ver01#Belastning|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 | |||
{| class="wikitable" | |||
! 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). <br> INDC og INDR må være ulike og 1 eller 2. | ||
|- | |- | ||
| | | INDR || heltall skalar || - || Input || Indeks for returkrets (RR). <br> INDC og INDR må være ulike og 1 eller 2. | ||
|} | |} |
Siste sideversjon per 21. sep. 2017 kl. 13:54
__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 zk = rk + %i * xk yk = zk^(-1) 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 - referansespenning 30 kV |
xk | reell skalar | Ω | Input | Kortslutningsreaktans - referansespenning 30 kV |
gm | reell skalar | S | Input | Magnetiseringskonduktans - referansespenning 30 kV |
bm | reell skalar | S | Input | Magnetiseringssusceptans - referansespenning 30 kV |
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. |