Solutions

advertisement
Massachusetts Institute of Technology
Department of Electrical Engineering and Computer Science
6.685 Electric Machines
Problem Set 11 Solutions
December 4, 2005
Problem 1 This is a straightforward linear problem: the current is the sum of ’particular’ and
’homogeneous’ parts:
i(t) = ip (t) + ih (t)
The particular solution is the driven part:
ip (t) = ℜ
V
V jωt
e =√
cos (ωt − φ)
2
Z
R + X2
where X = ωL and φ = tan−1 X/R.
The homogeneous part is the natural response to the undriven system with amplitude such
that the initial current must be zero, so
ih (t) = √
R
V
cos (ωt0 − φ) e− L t
2
+X
R2
where the switch is closed at t = t0
As it turns out, the problem statement has a poor choice of parameters, since if the switch is
closed at time zero there is very little offset, as is shown in Figure 1.
Problem Set 11, Problem 1
200
150
100
Current, A
50
0
−50
−100
−150
−200
0
0.05
0.1
0.15
0.2
0.25
Time, s
Figure 1: Switch closed at t=0
To have a zero offset, ωt0 − φ = π2 (or an integer times π2 . This is shown in Figure 2. If we
use a different delay we can actually see the decaying offset, as in Figure 3.
1
Problem Set 11, Problem 1
200
150
100
Current, A
50
0
−50
−100
−150
−200
0
0.05
0.1
0.15
0.2
0.25
Time, s
Figure 2: Switch Closed at t = .0083 to zero offset
Problem 2: Turbogenerator For reference we leave the original table of parameters here.
Synchronous, d- axis reactance
Synchronous, q- axis reactance
Transient, d- axis reactance
Subtransient, d- axis reactance
Subtransient, q- axis reactance
Transient, open-circuit time constant
Subtransient, open-circuit time constant
Subtransient, open-circuit time constant
Inertial Constant
Armature Time Constant
xd
xq
x′d
xd ”
xq ”
′
Tdo
Tdo ”
Tqo ”
H
Ta
2.2
2.0
0.45
0.22
0.22
5.0
0.2
0.3
4.0
0.1
s
s
s
s
s
1. The equal mutuals parameters are computed by inverting these expressions:
xd = xaℓ + xad
x′d = xaℓ + xad ||xf ℓ
xd ” = xaℓ + xad ||xf ℓ ||xkdℓ
xq = xaℓ + xaq
xq ” = xaℓ + xaq ||xkqℓ
Assuming a given value of xaℓ and with a little manipulation, we find the following:
xad = xd − xaℓ
!
x′d − xaℓ
xf ℓ = xad
xd − x′d
1
xkdℓ =
1
1
xd ”−xaℓ − xad −
2
1
xf ℓ
Problem Set 11, Problem 1
100
50
0
Current, A
−50
−100
−150
−200
−250
−300
−350
0
0.05
0.1
0.15
0.2
0.25
Time, s
Figure 3: Switch Closed at t = .004
xaq = xq − xaℓ
xq ” − xaℓ
xkqℓ = xaq
xq − xq ”
Now, the transient time constant is:
′
Tdo
=
xf ℓ + xad
ω0 rf
and the subtransient time constant is:
Tdo ” =
xkdℓ + xad ||xf ℓ
ω0 rkd
the q-axis is similar, so the resistances are:
rf
=
rkd =
rdq =
xf ℓ + xad
′
ω0 Tdo
xkdℓ + xad ||xf ℓ
ω0 Tdo ”
xkqℓ + xaq
ω0 Tqo ”
These expressions are implemented in two scripts, mi.m and miq.m which are appended
and are exercised by another script called p11.m which is also appended. The results
are, in both per-unit and ohms (referred to the stator: see below):
6.685 Problem Set 11: Basics
Parameter
Per Unit
xad
2.1
Ohms
1.29
3
xaq
xfl
xkdl
xkql
rf
rkd
rkq
1.9
0.42
0.183
0.128
0.00134
0.00706
0.0179
1.17
0.258
0.112
0.0787
0.000822
0.00434
0.011
2. The base impedance is:
ZB =
VB2
262
=
≈ .6145Ω
PB
1100
The parameters in ordinary units (ohms) are simply the per-unit parameters multiplied
by the base.
3. The ’classical’ result for this is:
1 − Tt
e a −
ia =
xd ”
(
1
+
xd
1
1
−
′
xd xd
!
− Tt′
e
d
+
1
1
− ′
xd ” xd
!
− Tt ”
e
d
)
cos ωt
This is plotted on top of the simulation results from the next part.
4. The simulation model is fairly straightforward: Assuming that speed does not change
much during the simulation, the state equations are:
dψd
dt
dψq
dt
dψkd
dt
dψdq
dt
dψf
dt
= ωψq − ω0 ra id
= ωψd − ω0 ra iq
= −ω0 rkd ikd
= −ω0 r k qikq
= vf − ω0 rf if
During the simulation we need currents which are simple combinations of fluxes:
id =
ikd =
if
=
xf xkd − x2ad
xad (xad − xf )
xad (xad − xkd )
ψd +
ψkd +
ψf
D
D
D
xd xf − x2ad
xad (xad − xf )
xad (xad − xd )
ψd +
ψkd +
ψf
D
D
D
xad (xad − xkd )
xad (xad − xd )
xd xkd − x2ad
ψd +
ψkd +
ψf
D
D
D
and of course the determinant, which is the denominator of these expressions is:
D = xd xkd xf + 2x3ad − x2ad (xd + xkd + x + f )
Finally, we need to have initial conditions. If the machine is initially unloaded and has
terminal voltage eaf = 1, the direct- and quadrature- axis fluxes are at the beginning of
4
the fault:
ψd = eaf = 1.0
ψq = 0
ψkd = ψd = 1.0
ψkq = ψq = 0
xf ℓ
ψf = ψd +
xad
This fault is simulated using a script appended. the resulting current, and the current
from the classical method, are both included in Figure 4.
Fault Current: Simulated and Classical
10
8
ia, per unit
6
4
2
0
−2
0
0.05
0.1
0.15
0.2
0.25
Time, s
0.3
0.35
0.4
0.45
0.5
Figure 4: Phase A Fault Current: Simulated and Classical
The difference between the ’simulated’ and ’classical’ calculations are small enough that
it is difficult to see in Figure 4. We can take the difference and plot it and do that in
Figure 5.
5. The quantity ’voltage behind subrtransient reactance’ is, for this fault, in ’classical’
terms:
!
!
xd ” xd ” − Tt′
xd ” − T t ”
xd ”
+
−
e d + 1− ′ e d
eq ” =
xd
x′d
xd
xd
This quantity might also be described, from the simulation model, as:
eq ” = ψd − xd ”id
This is a side effect of the fault transient calculation and the ’classical’ and simulated
versions are shown in Figure 6.
6. The open circuit transient would (if completed) have the final flux equal to
ψdo = eaf = ψd + xd id = 2.234
5
Fault Current: Difference between Simulated and Classical
0.3
0.2
0.1
per−unit
0
−0.1
−0.2
−0.3
−0.4
0
0.05
0.1
0.15
0.2
0.25
Time, s
0.3
0.35
0.4
0.45
0.5
Figure 5: Phase A Fault Current: Difference between Simulated and Classical
and the transient and subtransient flux quantities are:
′
ψdo
= e′q = ψd + x′d id
ψdo ” = eqo ” = ψd + xd ”id
ψqo ” = −edo ” =]psiq + xq ”iq
then:
Values have been computed in the appended script:
Problem 11.6
Torque Angle
=
D axis flux psid =
D axis current Id=
V behind xdp, eqp=
V beh xdpp, eqpp =
ψd =
1.107
0.4472
0.8944
0.8497
0.644
Power Factor Angle =
Q axis flux psiq
=
Q axis current Iq =
V behind sync x eaf=
V behind xqpp edpp =
−T t
′
ψdo ” − ψdo
e
−T t
ψq = ψqo ”e
qo ”
do ”
− T t′
′
+ ψdo
− ψdo e
0
-0.8944
0.4472
2.415
-0.9928
do
+ ψdo
These results are shown in Figure 7
7. The synchronous, transient and ’fictitious transient’ torque angle curves are:
veaf
v2
Tsynchronous = −
sin δ −
xd
2
1
1
−
xq
xd
!
sin 2δ
ve′q
v2
Ttransient = − ′ sin δ −
xd
2
1
1
− ′
xq
xd
!
sin 2δ
ve′q
Tfictitious = − ′ sin δ
x
d
6
Voltage Behind Subtransient Reactance
1
0.9
Per−Unit
0.8
0.7
0.6
0.5
0.4
0.3
0
0.05
0.1
0.15
0.2
0.25
Time, s
0.3
0.35
0.4
0.45
0.5
Figure 6: Voltage Behind Subtransient Reactance: Short
Values for the important parameters were calculated in conjunction with Problem 6.
The results are plotted in Figure 8.
8. The equal area problem is formulated to be:
Z
δf
δ0
Tm dδ +
Z
δf
δc
Te dδ = 0
where δ0 is the original starting angle, δf is the maximum angle to be achieved during
the transient (this is the angle on the unstable side of the torque-angle curve that has
the same torque as the original starting angle) and δc is the ’critical clearing’ angle: the
angle by which the network connection must have been restored. Since we can formulate
torque as:
Te = −T1 sin δ − T2 sin 2δ
, this becomes:
Tm (δf − δ0 ) + T1 (cos δc − cos δf ) + T2 (cos 2δc − cos 2δf ) = 0
I have avoided having to do any real trig here by using MATLAB’s fzero() function to,
first of all, find the initial and final torque angles and then finding the critical clearing
angle. The critical clearing time is then just:
tc =
s
4H (δc − δ0 )
ω0
This is automated in a script attached and the results for the two cases are:
Critical Clearing Time by Equal Area
xd =
2.2
xq =
2
7
Opening: Voltages Behind Subtransient Reactances
2
eqpp, per−unit
1.8
1.6
1.4
1.2
1
0.8
0.6
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
0
0.5
1
1.5
2
2.5
Time, s
3
3.5
4
4.5
5
0
edpp, per−unit
−0.2
−0.4
−0.6
−0.8
−1
Figure 7: Voltage Behind Subtransient Reactance: Open
xdp =
Delt
Delt
Crit
Crit
0.45
H =
4
Salient Model
zero =
1.107
final =
2.855
Angle =
1.966
Time =
0.191
Round Model
0.5581
2.583
1.345
0.1827
Note the initial torque angle for the correct, or salient, case matches the torque angle
computed earlier.
Finally, this problem has been simulated using straightforward but perhaps tedious expressions which are all in the attached scripts. One simulated case, very close to the
critical clearing time, is shown in Figure 9. As it turns out, equal area turns out to be
quite conservative. We find critical clearing time to be about 0.2245 seconds, as opposed
to 0.191 seconds from the ’equal area’ criterion.
8
Torque−Angle Curves
2.5
2
Per−Unit
1.5
1
0.5
0
0
0.5
1
1.5
2
2.5
3
3.5
Radians
Figure 8: Torque-Angle Curves
Tc = 0.2245
2.8
2.6
2.4
Angle, radians
2.2
2
1.8
1.6
1.4
1.2
1
0
1
2
3
4
5
6
Time, seconds
7
8
Figure 9: Near Critical (but stable) Swing
9
9
10
% 6.685 Problem Set 11, Problem 1
% we are using matlab to plot only
V = 170;
R = .01;
L = .00265;
om = 377;
X = om*L;
phi = atan(X/R);
Im = V/sqrt(R^2+X^2);
t = 0:.0001:.25;
t0 = input(’starting time?’)
i = zeros(size(t));
for k = 1:length(t)
if t(k) < t0, i(k) = 0;
else
i(k) = Im * cos(om * t(k) - phi) - Im * cos(om*t0-phi) * exp(-(R/L) * (t(k)- t0) );
end
end
figure(1)
plot(t, i)
title(’Problem Set 11, Problem 1’)
ylabel(’Current, A’)
xlabel(’Time, s’)
10
% 6.685 Problem Set 11, basic calculator
p11params
% this gets the parameters
% the following two calls generate the internal stuff
[xad xkdl xfl rkd rf] = mi(xd, xdp, xdpp, tdop, tdopp, xl, omz);
[xaq xkql rkq] = miq(xq, xqpp, tqopp, xl, omz);
Zb = Vb^2/Pb;
fprintf(’6.685 Problem Set 11: Basics\n’);
fprintf(’Parameter
Per Unit
Ohms\n’);
fprintf(’ xad
%10.3g
%10.3g\n’,xad,xad*Zb);
fprintf(’ xaq
%10.3g
%10.3g\n’,xaq,xaq*Zb);
fprintf(’ xfl
%10.3g
%10.3g\n’,xfl,xfl*Zb);
fprintf(’ xkdl
%10.3g
%10.3g\n’,xkdl,xkdl*Zb);
fprintf(’ xkql
%10.3g
%10.3g\n’,xkql,xkql*Zb);
fprintf(’ rf
%10.3g
%10.3g\n’,rf,rf*Zb);
fprintf(’ rkd
%10.3g
%10.3g\n’,rkd,rkd*Zb);
fprintf(’ rkq
%10.3g
%10.3g\n’,rkq,rkq*Zb);
% Parameters for Problem Set 11:
xd=2.2;
xq=2.0;
xdp = .45;
xdpp = .22;
xqpp = .22;
tdop = 5;
tdopp = .2;
tqopp = .3;
xl = .1;
omz = 60*2*pi;
H = 4;
ta = .1;
psi=0;
Pb = 1.1e9;
Vb = 26e3;
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
synchronous d- axis reactance
synchronous q- axis reactance
transient (d-axis) reactance
subtransient d- axis reactance
subtransient q- axis reactance
transient (open circuit) time constant
subtransient d- axis time constant
subtransient q- axis time constant
armature leakage reactance
base frequency
rotor inertia constant
armature time constant
power factor angle
base power (rating)
base voltage (rating)
11
% model elements from terminal parameters mi.m
function [xad, xkd, xf, rkd, rf] = mi(xd, xdp, xdpp, tdop, tdopp, xl, omz)
xad = xd - xl;
xf = xad * (xdp - xl) / (xad - xdp + xl);
xkd = 1/(1/(xdpp-xl) - 1/xad - 1/xf);
rf = (xf+xad)/(omz * tdop);
rkd = (xkd + xad*xf/(xad+xf))/(omz*tdopp);
% model elements from terminal parameters miq.m
function [xaq, xkq, rkq] = miq(xq, xqpp, tqopp, xl, omz)
xaq = xq - xl;
xkq = xaq*(xqpp - xl)/(xaq-xqpp+xl);
rkq = (xaq+xkq)/(omz*tqopp);
12
% Problem Set 11, Problems 2, parts 3,4,5
global ydd ydk ykd ydf yff yqq yqk ykf ykq rf rkd rkq omz ra vf
p11params
t0 = 0;
tf = .5;
[xad xkdl xfl rkd rf] = mi(xd, xdp, xdpp, tdop, tdopp, xl, omz);
xkd = xad + xkdl;
xf = xad + xfl;
xmd = [xd xad xad; xad xkd xad; xad xad xf];
ymd = inv(xmd);
[xaq xkql rkq] = miq(xq, xqpp, tqopp, xl, omz);
xkq = xaq + xkql;
xmq = [xq xaq; xaq xkq];
ymq = inv(xmq);
ydd = ymd(1,1);
ydk = ymd(1,2);
ykd = ymd(2,2);
ydf = ymd(1,3);
yff = ymd(3,3);
ykf = ymd(2,3);
yqq = ymq(1,1);
yqk = ymq(1,2);
ykq = ymq(2,2);
ra = .5*(xdpp+xqpp)/(omz*ta);
vf = rf/xad;
% flux vector is [psid psiq psikd psikq psif]
psi0 = [1 0 1 0 1+xfl/xad];
dt = (tf-t0)/1024;
time = t0:dt:tf;
[t,psi] = ode23(’sf’,time, psi0);
id = ydd .* psi(:,1) + ydk .* psi(:,3) + ydf .* psi(:,5);
iq = yqq .* psi(:,2) + yqk .* psi(:,4);
a = 2*pi/3;
ia = id .* cos (omz .* t) - iq .* sin (omz .* t);
ib = id .* cos (omz .* t - a) - iq .* sin (omz .* t - a);
ic = id .* cos (omz .* t + a) - iq .* sin (omz .* t + a);
iff = ydf .* psi(:,1) + ykf .* psi(:,3) + yff .* psi(:,5);
ikd = ydk .* psi(:,1) + ykd .* psi(:,2) + ykf .* psi(:,3);
% here is the fault current done by ’classical’ calculation
tdp = tdop*xdp/xd;
tdpp = tdopp*xdpp/xdp;
iac = (1/xdpp).* exp(-t ./ ta) - (1/xd + (1/xdp-1/xd) .* exp(-t ./ tdp) ...
+ (1/xdpp - 1/xdp) .* exp(-t ./ tdpp)) .* cos(omz .* t);
13
figure(1)
clf
plot(t, ia, t, iac)
title(’Fault Current: Simulated and Classical’);
ylabel(’ia, per unit’);
xlabel(’Time, s’);
figure(2)
clf
plot(t, ia-iac)
title(’Fault Current: Difference between Simulated and Classical’)
ylabel(’per-unit’)
xlabel(’Time, s’)
% estimate of "voltage behind subtransient reactance"
eqpp = psi(:,1) - xdpp .* id;
edpp = psi(:,2) + xqpp .* iq;
% and done by ’classical methods’
eqppc = xdpp/xd + (xdpp/xdp - xdpp/xd) .* exp(-t ./ tdp) ...
+ (1 - xdpp/xdp) .* exp(-t ./ tdpp);
figure(3)
clf
plot(t, eqpp, t, eqppc)
title(’Voltage Behind Subtransient Reactance’)
ylabel(’Per-Unit’)
xlabel(’Time, s’)
14
%
%
%
%
Massachusetts Institute of Technology
Department of Electrical Engineering and Computer Science
6.685 Electric Machines
Problem Set 11 Problem 2, part 6: Open Circuit voltage
p11params
% Establish operating point
delt
psid
psiq
id =
iq =
= atan((xq*cos(psi))/(1+sin(psi)));
= cos(delt);
= - sin(delt);
sin(delt+psi);
cos(delt+psi);
eqopp = psid + xdpp * id;
eqop = psid + xdp * id;
edopp = psiq - xqpp * iq;
eaf = psid + xd * id;
t = .01:.01:5;
eqpp = (eqopp-eqop) .* exp(-t ./ tdopp) ...
+ (eqop - eaf) .* exp(-t ./ tdop) + eaf;
edpp = edopp .* exp(-t ./ tqopp);
figure(3)
clf
subplot 211
plot(t,eqpp);
title(’Opening: Voltages Behind Subtransient Reactances’);
ylabel(’eqpp, per-unit’);
subplot 212
plot(t, edpp);
xlabel(’Time, s’);
ylabel(’edpp, per-unit’);
fprintf(’Problem 11.6\n’)
fprintf(’Torque Angle
=
fprintf(’D axis flux psid =
fprintf(’D axis current Id=
fprintf(’V behind xdp, eqp=
fprintf(’V beh xdpp, eqpp =
%10.4g
%10.4g
%10.4g
%10.4g
%10.4g
Power Factor Angle =
Q axis flux psiq
=
Q axis current Iq =
V behind sync x eaf=
V behind xqpp edpp =
15
%10.4g\n’,
%10.4g\n’,
%10.4g\n’,
%10.4g\n’,
%10.4g\n’,
delt, psi)
psid, psiq)
id, iq)
eqop, eaf)
eqopp, edopp)
% Massachusetts Institute of Technology
% Department of Electrical Engineering and Computer Science
% 6.685 Electric Machines
% Problem Set 11, Problem 2 part 9
clear
global ydd ydk ykd ydf yff yqq yqk ykf ykq rf rkd rkq omz vf H Tm yado ydo yfo xkq
% parameters
p11params
t0 = 0;
tf = 10;
% find model parameters
% direct axis
[xad xkdl xfl rkd rf] = mi(xd, xdp, xdpp, tdop, tdopp, xl, omz);
xkd = xad + xkdl;
xf = xad + xfl;
xmd = [xd xad xad; xad xkd xad; xad xad xf];
ymd = inv(xmd);
% quadrature axis
[xaq xkql rkq] = miq(xq, xqpp, tqopp, xl, omz);
xkq = xaq + xkql;
xmq = [xq xaq; xaq xkq];
ymq = inv(xmq);
ydd = ymd(1,1);
ydk = ymd(1,2);
ykd = ymd(2,2);
ydf = ymd(1,3);
yff = ymd(3,3);
ykf = ymd(2,3);
yqq = ymq(1,1);
yqk = ymq(1,2);
ykq = ymq(2,2);
xdo = [xkd xad; xad xf];
ydop = inv(xdo);
ydo = ydop(1,1);
yado = ydop(1,2);
yfo = ydop(2,2);
% Establish operating point to start
delt = atan(xq);
psid = cos(delt);
psiq = - sin(delt);
id = sin(delt);
eaf = psid + xd * id;
ifield = eaf/xad;
vf = rf*ifield;
psikd0 = psid * xad/xd;
psikq0 = psiq * xaq/xq;
psiad0 = psid + xl * id;
psif0 = psiad0 + xfl * ifield;
16
% initial state vector is [psikd psikq psif om delt]
x0 = [psikd0 psikq0 psif0 omz delt];
tc = input(’Clearing Time? ==> ’);
dt = (tf - t0)/2048;
timeo = t0:dt:tc;
[tb,xb] = ode23(’so’, timeo, x0);
% tc is clearing time: needs to re-establish initial conditions
xc = xb(length(tb),:);
times = tc:dt:tf;
[ta, xa] = ode23(’scl’, times, xc);
t = [tb’ ta’];
x = [xb’ xa’];
figure(5)
clf
plot(t, x(5,:));
xlabel(’Time, seconds’);
ylabel(’Angle, radians’);
title(sprintf(’Tc = %g’,tc));
17
function dx = so(t, x);
global ydd ydk ykd ydf yff yqq yqk ykf ykq rf rkd rkq omz vf H Tm yado ydo yfo xkq
psikd = x(1);
psikq = x(2);
psif = x(3);
om = x(4);
delt = x(5);
%psid = cos(delt);
%psiq = -sin(delt);
ikd = ydo * psikd + yado * psif;
iff = yado * psikd + yfo * psif;
ikq = psikq/xkq;
Te = 0;
xdot1
xdot2
xdot3
xdot4
xdot5
=
=
=
=
=
-omz*rkd*ikd;
-omz*rkq*ikq;
omz*vf - omz*rf*iff;
(omz/(2*H)) * (1 + Te);
om - omz;
dx = [xdot1 xdot2 xdot3 xdot4 xdot5]’;
function dx = scl(t, x);
global ydd ydk ykd ydf yff yqq yqk ykf ykq rf rkd rkq omz vf H Tm yado ydo yfo xkq
psikd = x(1);
psikq = x(2);
psif = x(3);
om = x(4);
delt = x(5);
psid = cos(delt);
psiq = -sin(delt);
id = ydd * psid + ydk * psikd + ydf * psif;
ikd = ydk * psid + ykd * psikd + ykf * psif;
iff = ydf * psid + ykf * psikd + yff * psif;
iq = yqq * psiq + yqk * psikq;
ikq = yqk * psiq + ykq * psikq;
18
Te = psid * iq - psiq * id;
xdot1
xdot2
xdot3
xdot4
xdot5
=
=
=
=
=
-omz*rkd*ikd;
-omz*rkq*ikq;
omz*vf - omz*rf*iff;
(omz/(2*H)) * (1 + Te);
om - omz;
dx = [xdot1 xdot2 xdot3 xdot4 xdot5]’;
19
Download