Elektrisk systembeskrivelse av kontaktledningsanlegg ver01 Vedlegg script: Forskjell mellom sideversjoner
Hopp til navigering
Hopp til søk
Linje 41: | Linje 41: | ||
'''Kalles ved:''' Y = admLine(r,x,g,b,l) | '''Kalles ved:''' Y = admLine(r,x,g,b,l) | ||
function Y = admLine(r,x,g,b,l) | function Y=admLine(r,x,g,b,l) | ||
n = size(r,1) | n = size(r,1) | ||
if (~and([size(r),size(x),size(g),size(b)])) then | |||
// Wrong dimensions of input variables | |||
Yl = 0 | |||
return | |||
end | |||
nul = zeros(n,n) | nul = zeros(n,n) | ||
A = [nul , - | z = r + %i*x | ||
[M,fi] = spec(A) | 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 | for i=1:2*n | ||
fi(i,i) = exp(fi(i,i)* | fi(i,i) = exp(fi(i,i)*l) | ||
end | end | ||
fi = M*fi*inv(M) | fi = M*fi*inv(M) | ||
fi11 = fi(1:n,1:n) | fi11 = fi(1:n,1:n) | ||
fi12 = fi(1:n,n+1:2*n) | fi12 = fi(1:n,n+1:2*n) | ||
Linje 56: | Linje 62: | ||
fi22 = fi(n+1:2*n,n+1:2*n) | fi22 = fi(n+1:2*n,n+1:2*n) | ||
fi12inv = inv(fi12) | fi12inv = inv(fi12) | ||
Y = [-fi12inv*fi11 , fi12inv ; (fi22*fi12inv*fi11-fi21) , -fi22*fi12inv] | |||
endfunction | endfunction | ||
{| class="wikitable" | {| class="wikitable" |
Sideversjonen fra 21. jul. 2017 kl. 09: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
Ingen script tilgjengelig
Transmisjonslinje
Enkel linjesløyfe
Funksjon: admLoop Beskrivelse: Beregner admittansmatrisa for ei linjesløyfe Kalles ved: Y = admLoop(rLoop,xLoop,gLoop,bLoop,l)
function Y = admLoop(r,x,g,b,l) z = r + %i * x y = g + %i * b Z0 = sqrt(z/y) gam = sqrt(z*y) Y = (1/(Z0*sinh(gam*l))) * [cosh(gam*l) -1 ; -1 sinh(gam*l)] endfunction
Variabel | Type | Enhet | Type | Beskrivelse |
---|---|---|---|---|
Y | (2x2) kompleks matrise | Ohm | Resultat | Admittansmatrise |
r | reell variabel | Ohm/km | Input | Spesifikk serieresistans |
x | reell variabel | Ohm/km | Input | Spesifikk seriereaktans |
g | reell variabel | S/km | Input | Spesifikk parallell konduktans |
b | reell variabel | S/km | Input | Spesifikk parallell susceptans |
l | reell variabel | km | Input | Linjesløyfas lengde |
Transmisjonslinje med flere parallelle ledere
Funksjon: admLine Beskrivelse: Beregner admittansmatrisa for en transmisjonslinje med n parallelle ledere Kalles ved: Y = admLine(r,x,g,b,l)
function Y=admLine(r,x,g,b,l) n = size(r,1) if (~and([size(r),size(x),size(g),size(b)])) then // Wrong dimensions of input variables Yl = 0 return 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(1:n,1:n) fi12 = fi(1:n,n+1:2*n) fi21 = fi(n+1:2*n,1:n) fi22 = fi(n+1:2*n,n+1:2*n) fi12inv = inv(fi12) Y = [-fi12inv*fi11 , fi12inv ; (fi22*fi12inv*fi11-fi21) , -fi22*fi12inv] endfunction
Variabel | Type | Enhet | Type | Beskrivelse |
---|---|---|---|---|
Y | (2nx2n) kompleks matrise | Ohm | Resultat | Admittansmatrise |
r | (nxn) reell matrise | Ohm/km | Input | Spesifikk serieresistans |
x | (nxn) reell matrise | Ohm/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 |