Finding positive-, negative- and zero-sequence components in Matlab
22 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ygor Marca
el 7 de Sept. de 2023
Editada: Ygor Marca
el 11 de Sept. de 2023
Why the positive and negative sequence values are the same? What is wrong with the fortescue calculation and how to correct it? Up and Un should not be equal.
Code and plot:
f1=50; %Hz
w1 = 2*pi*f1;
hatUa = 25000*sqrt(2)/sqrt(3);
t = linspace(0,1,100000);
a = cos(2*pi/3) + 1i*sin(2*pi/3);
Ua = (hatUa.*(exp(1i.*w1.*t)+exp(-1i.*w1.*t))./2);
Ub = (hatUa.*(exp(1i.*w1.*t + 1i.*2*pi/3)+exp(-1i.*w1.*t - 1i.*2*pi/3))./2);
Uc = (0.5.*hatUa.*(exp(1i.*w1.*t - 1i.*2*pi/3)+exp(-1i.*w1.*t + 1i.*2*pi/3))./2);
Up = real(Ua + (a*Ub) + (a.*a*Uc))./3;
Un = real(Ua + (a.*a.*Ub) + (a.*Uc))./3;
U0 = real(Ua + Ub + Uc)./3;
subplot(2,1,1),plot(t,Ua,'LineWidth',2)
xlim([0 0.1])
xlabel ('Time [s]')
ylim([-hatUa*1.1 hatUa*1.1])
ylabel ('Three-phase Voltage (V)')
hold on
subplot(2,1,1),plot(t,Ub,'LineWidth',2)
hold on
subplot(2,1,1),plot(t,Uc,'LineWidth',2)
legend( 'Ua', 'Ub', 'Uc')
hold on
subplot(2,1,2),plot(t,Up,'LineWidth',2)
xlim([0 0.1])
xlabel ('Time [s]')
ylim([-hatUa*1.1 hatUa*1.1])
ylabel ('P, N and 0 Voltages (V)')
hold on
subplot(2,1,2),plot(t,Un,'LineWidth',2)
hold on
subplot(2,1,2),plot(t,U0,'LineWidth',2)
legend( 'Up', 'Un', 'U0')
5 comentarios
dpb
el 7 de Sept. de 2023
w1=pi;
t = linspace(0,1,100)';
a = cos(2*pi/3) + 1i*sin(2*pi/3);
Ua = ((exp(1i.*w1.*t)+exp(-1i.*w1.*t))./2);
Ub = ((exp(1i.*w1.*t + 1i.*2*pi/3)+exp(-1i.*w1.*t - 1i.*2*pi/3))./2);
Uc = (0.5.*(exp(1i.*w1.*t - 1i.*2*pi/3)+exp(-1i.*w1.*t + 1i.*2*pi/3))./2);
Up = real(Ua + (a*Ub) + (a.*a*Uc))./3;
Un = real(Ua + (a.*a.*Ub) + (a.*Uc))./3;
subplot(2,1,1)
plot(t,[real([a*Ub a.*a*Uc]) imag([a*Ub a.*a*Uc])])
legend('R(a.*Ub)','R(a.*a*Uc)','I(a.*Ub)','I(a.*a*Uc)','location','eastoutside')
ylim([-1 1])
subplot(2,1,2)
plot(t,[real([a.*a.*Ub a.*Uc]) imag([a.*a.*Ub a.*Uc])])
ylim([-1 1])
legend('(R(a.*a*Ub)','R(a.*Uc)','(I(a.*a*Ub)','I(a.*Uc)','location','eastoutside')
Shows they're all mirror images of each other...
Respuesta aceptada
David Goodmanson
el 8 de Sept. de 2023
Editada: David Goodmanson
el 10 de Sept. de 2023
Hi Ygor,
I believe the problem is that you are going too soon to real values for Ua,Ub,Uc. In
Ua = ((exp(1i.*w1.*t)+exp(-1i.*w1.*t))./2)
if you ignore the second term (which makes Ua real) and the factor of 1/2 that goes along with it, and also temporarily drop the factor of exp(1i.*w1.*t) in the first term, which is the time dependent part common to all the phases, you are left with Ua = 1. Similarly Ub has a factor of exp(1i.*2*pi/3) = a, and Uc has a factor of a^(-1) = a^2 [which is true since a^3 = 1]. So in terms of column vectors
[Ua; Ub; Uc] = [1; a; a^2/2]
i.e. a complex quanitity.
( I forgot to mention that hatUa has been temporarily dropped. Since it's a common factor, it can be multiplied into all the resulting coefficients U0,U+,U- at the end ).
Now the positive sequence is [1; a^2; a] , the negative sequence is [1; a; a^2] so
[Ua = [1 1 1 [U0
Ub 1 a^2 a * U+
Uc] 1 a a^2] U-]
The matrix is proportional to a unitary matrix so
[U0 = [1 1 1 [Ua
U+ (1/3) * 1 a a^2 * Ub
U-] 1 a^2 a] Uc]
and if you code this up you get
U0plusminus =
0.0833 + 0.1443i % U0
0.0833 - 0.1443i % U+
0.8333 + 0.0000i % U-
A = % amplitudes, same order
0.1667
0.1667
0.8333
theta = % phases, same order
1.0472 % 60 degrees
-1.0472
0.0000
With the final result
U0plusminus = hatUa*U0plusminus
A = hatUa*A
1 comentario
Ygor Marca
el 11 de Sept. de 2023
Editada: Ygor Marca
el 11 de Sept. de 2023
Más respuestas (0)
Comunidades de usuarios
Más respuestas en Power Electronics Control
Ver también
Categorías
Más información sobre Axis Labels en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!