Finding positive-, negative- and zero-sequence components in Matlab
24 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Ygor Marca
am 7 Sep. 2023
Bearbeitet: Ygor Marca
am 11 Sep. 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 Kommentare
dpb
am 7 Sep. 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...
Akzeptierte Antwort
David Goodmanson
am 8 Sep. 2023
Bearbeitet: David Goodmanson
am 10 Sep. 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 Kommentar
Weitere Antworten (0)
Communitys
Weitere Antworten in Power Electronics Control
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!