ENG 98-06 U BEL

T O R S I O N A L V I B R A T I O N

Calculation and measurement of torsionals in large steam turbosets

Calculate the natural torsional frequencies and corresponding mode shapes for a resonance-free design at 1 and 2 times grid frequency.

Simulate extreme electrical disturbances in order to prove the mechanical integrity of the shaft journals.

Some utilities also ask for experimental verification of the natural torsional frequencies of the turbine generator trains in thermal power plants.

Torsional shaft vibration can be excited in large steam turbine generator sets by electrical disturbance torques occurring in the active part of the generator. Due to the low torsional damping of the shaft trains, resonance can cause high torsional vibration amplitudes. Some thermal power plant operators therefore require turbine generator set vendors to provide experimental verification of the natural torsional shaft frequencies. ABB has developed a new measurement technique which allows torsional vibration to be measured in just one selected measurement plane. With today’s highly sensitive sensors and modern measurement data analysis equipment, the excitation due to normal random disturbances in the electrical grid provides sufficiently good results. All natural torsional frequencies in the range of interest are obtained with an accuracy of ± 0.2 Hz and identified using the calculated natural frequencies. The new measurement technique places no restrictions on normal power plant operation.

L

arge steam turbine generator sets rated at 100 MW and higher consist of one or more steam turbines (high-pressure, intermediate-pressure and low-pressure) and a turbogenerator, which are rigidly coupled together as a single shaft train; there is no gearbox. The rated speed is equal to 1 or 0.5 times the grid frequency, being dependent on the frequency of the electrical grid (50 Hz or 60 Hz) and the number of generator poles (2 or 4).

Torsional vibrations can be excited in the shaft trains of large steam turbine generators by electrical disturbance torques occurring in the active part of the generator with 1 and 2 times the grid frequency. The torque amplitudes can be high, eg during short-time faults, or remain low over long operating periods.

Natural torsional frequencies which approach double the grid frequency (resonance) can cause damage to the steam turbine blades [1, 2] due to torsional shaft vibrations being excited by the negativesequence current.

In view of this, it is standard practice at

ABB during the design of turbine generator trains to:

Josef Huster

Dr. Lothar Eckert

ABB Power Generation

Frank Pohle

ABB Turbo Systems

Torsional vibrations in large turbine generator trains

General properties

Consideration has to be given to the following:

Torsional vibrational motion is superposed on the continuous rotation of the rotor train. There is no link between the torsional vibration system and non-rotating parts, such as the casing.

Torsional vibrations in single-shaft power trains are not coupled to lateral shaft vibrations.

Torsional displacement amplitudes are very small (< 0.002 rad, equivalent to

< 0.1 °); dynamic torsional stresses in the shaft journal are therefore low during normal operation.

Torsional damping (due exclusively to material damping of the shaft) is very low. Critical damping ratios of torsional shaft modes are around 0.1 % and lower. Very low damping results in sharp resonance peaks with amplification factors higher than 300, allowing the natural frequencies to be easily identified.

Torsional shaft vibrations can be neither felt nor heard.

Torsional vibrations are practically insensitive to changes in shaft train conditions

(eg, minor unbalance), making torsional monitoring unsuitable for qualified condition control of steam turbine trains.

A B B R e v i e w 6 / 1 9 9 8

31

T O R S I O N A L V I B R A T I O N

HP

38 %

IP

83 %

LP 1

100 %

LP 2

79 %

GEN EXC

25 %

k

stator and rotor turbine blades for one blade stage excludes the possibility of dynamic excitation being caused by the steam flow.

Torsional excitation can be subdivided into strong short-time and low long-time electrical disturbance torques in the active part of the generator.

1.2 % 5.7 % 37.9 % 37.9 % 17.2 % 0.1 % Θ

Simplified torsional model, typical moment of inertia and torsional stiffness distribution for a steam turbine generator train

HP

IP

High-pressure turbine

Intermediate-pressure turbine

LP1, LP2

Low-pressure turbines

GEN

Generator

EXC

Exciter k Stiffness

Θ Mass moment of inertia

1

Dynamic properties

The torsional vibration system is characterized by the distribution of mass moments of inertia Θ, given by Θ = ∫ r 2 dm where r is the radius and m the mass, as well as by its torsional stiffness. The mass moment of inertia and the torsional stiffness vary considerably over the long steam turbine shaft

Knowledge of the distribution of the moment of inertia and the torsional stiffness helps in the interpretation of the torsional mode shapes of a turbine generator train.

This information is also very useful for defining modifications designed to tune a specific natural torsional frequency.

Excitation of torsional vibration

Torsional vibrations are excited in steam turbine generator trains by electromagnetic field disturbances in the air gap of the generator. Selection of the right number of

Strong, short-time electrical disturbance torques

These are caused by:

Short circuits in the electrical grid, transformer or generator stator windings

Synchronization failure

Strong, sudden dynamic excitation acts in just fractions of a second (< 0.3 s). The excitation frequency of the air-gap torque can be either the grid frequency in the case of synchronization failure, or 1 and 2 times the grid frequency in the case of short circuits. Its magnitude in each case depends on the electrical properties of the generator, the transformer and the grid. The maximum torque due to a fault may be as high as eight times the nominal torque of the unit. A line-to-line short circuit at the generator terminals is considered as an extreme electrical disturbance.

ABB experience with torsional tests

1980s 350-MW coal-fired steam turbine set with rated speed of 3,600 rev/min

Excitation: random excitation from electrical grid

Measurement: with toothed wheel

1990 375-MW steam turbine in combined cycle power plant with rated speed of

1,800 rev/min

Excitation: solid line-to-ground fault

Measurement: with four-arm strain gauge bridges and telemetry

1991/92 Two 950-MW nuclear steam turbine sets with rated speed of 1,800 rev/min

Excitation: solid line-to-ground fault and synchronization failure with small phase displacement angle

Measurement: with four-arm strain gauge bridges and telemetry

1995/98 Several ABB LP and generator rotors in spin pit, rated speed of 3,000 and

3,600 rev/min

Excitation: small gear mesh error in gearbox of spin pit drive

Measurement: sensitive four-arm strain gauge bridges, accelerometers and telemetry

1997/98 Three 650/1,000-MW nuclear steam turbine sets with rated speed of

1,800 rev/min

Excitation: random excitation from electrical grid

Measurement: with sensitive four-arm strain gauge bridges and telemetry

Low, long-time electrical disturbance torques

Excitation mechanisms are:

Negative-sequence current, due to unbalanced loading of the three current phases in the power system, causing an alternating air-gap torque to act on the generator with double the grid frequency. The allowed negative-sequence current is limited by international standards [3]. Torsional vibration caused by the allowed negative-sequence current must be low if train designs are to be free of resonance.

Subsynchronous resonance, which can occur if the generator is connected to long transmission lines (eg, 1000 km

32

A B B R e v i e w 6 / 1 9 9 8

T O R S I O N A L V I B R A T I O N long) and may excite the lower torsional modes [4].

The dynamic air-gap excitation torque acts uniformly over the length of the active part of the generator. The effective excitation of a mode shape depends on the mode shape in the region of the active part of the

GEN GEN

Model for calculating torsional vibrations

The mass moment of inertia and torsional stiffness of the turbine generator train are described by means of approximately 200 onedimensional finite elements with linear shape functions

3

. These FE elements have constant properties over their length [5].

The mass moment of inertia and torsional stiffness are described for each element separately in terms of the outer and inner diameters for mass and stiffness.

Young's modulus is applied as a function of the actual element temperature. The turbine rotor blades are modelled as an additional mass moment of inertia.

The accuracy of the results depends largely on the quality of the modelling of the turbine shaft train. Special know-how is needed, for example, to model the active part of the generator with its copper winding and wedges.

a b

Comparison of the effective excitation of different torsional mode shapes

a

Easily excited mode shape

b

Difficult-to-excite mode shape

GEN

Generator

Influence of vibration in long turbine blades on torsional vibrations in shaft trains

The torsional vibrations in the turbine generator train are coupled to the vibration occurring in the long turbine rotor blades. To investigate this phenomena, a coupled shaft-blade model is used in which each blade row is separately modelled by means of a beam model with about 10 elements.

The beam model is linked to the torsional model of the shaft.

The number of degrees of freedom of rows considered.

Torsional model of a low-pressure steam turbine rotor

2

the coupled model is increased by the additional degrees of freedom of the blade

Example

The coupled shaft-blade model of a steam turbine shaft line with four modelled laststage blade rows shows two additional pairs of coupled first blade modes

5

. For one pair of these first blade modes the blade motion is in phase (M1 and M2) with the shaft torsional vibration; for the other pair it is in anti-phase (M3 and M4).

3

Calculation of natural torsional frequencies and mode shapes

The natural torsional frequencies and mode shapes are calculated using the torsional model

3

described above. Damping is not included due to the low damping of the train. The free-free vibration system has a rigid body mode at 0 Hz. For each mode shape of higher natural frequency, the number of vibration nodes is increased.

Typical groups of mode shapes, eg for a

700-MW steam turbine generator, are shown in

4

and in Table 1.

Element no.

Element length

Outside diameter, mass

Inside diameter, mass

Outside diameter, stiffness

Inside diameter, stiffness

Temperature / Y modulus

Additional mass

Diameter of additional mass

304 305 306

157 157 157

400 400 400

400 400 400

60 60 60

320 321

180 164

1705 1705

324 325

184 183

1705 1497

1137 1481 1563 1497

50 50

753 753

2336 2336

87 105

741

2211

A B B R e v i e w 6 / 1 9 9 8

33

T O R S I O N A L V I B R A T I O N

6

5

HP IP LP 1 LP 2 GEN EXC

12

HP IP LP 1 LP 2 GEN EXC

Simulation of electrical faults

To simulate a line-to-line short circuit at the generator terminals, a dynamic disturbance torque is made to act on the active part of the generator rotor during full-load operation. This disturbance torque M(t) is defined as follows [6, 7]:

4

3

2

1

0

Torsional mode shapes (1–12) for a 700-MW steam turbine generator

Notation, see Fig. 1

11

10

9

8

7

4

6

shows the calculated shaft mode shapes in a comparison with the uncoupled shaft train model and the coupled shaft-blade model with the last two blade rows of the low-pressure turbines.

The coupling of the vibrations in the long turbine blades with the torsional vibration of the shaft train can be neglected due to the LP turbines having stiff, drum-type rotors of welded ABB design. Separate vibration designs for the rotor trains and long turbine blades provide the required results.

M(t)

M(t)

= M st for t < 0

= M

S

/x d

" {sin( ω t) – 0.5 sin(2ω t)}

+ M st for t

≥ 0 where

M

st

[Nm] Static torque under full load conditions

M

S

[Nm] Torque based on apparent power P

S

, M

S

= P

S

/ ω

0

ω

0

[rad/s] Angular velocity (2πn/60)

n [rpm] Nominal speed

P

S

[VA] Apparent power P

S

= P

N

/cos ϕ

P

N

[W] Rated power

ω [rad/s] Angular frequency (2πf)

f [1/s] Electrical grid frequency cos ϕ [–] Power factor

x

d

" [–] Subtransient reactance of the generator

t [s] Time

The maximum value for the term in the brackets in the second line ({...}) is 1.3, occurring when ω t = 2π/3.

7

shows, as an example, the calculated time histories of torsional stresses due to a line-to-line short circuit at the generator terminals of a 600-MW steam turbine generator. The maximum dynamic torsional stress occurs in the shaft journal at the driven end of the generator (element no. 503).

Table 1:

Typical groups of torsional mode shapes

Mode shape ID

0

(black curve in Fig. 4)

1 to 3

(green curves in Fig.4)

4 to 6

(red curves in Fig.4)

7 to 12

(blue curves in Fig.4)

Designation

Rigid body mode

Lower modes

<

≈ 30 Hz

Rotor modes

≈ 30 Hz to

≈ 200 Hz

Higher modes

>

≈ 200 Hz

Description of mode shape

No deformation of shaft train.

No torsional displacements visible in stiff rotor bodies. Vibration nodes between rotor bodies.

Torsional deformations visible in individual rotors.

Torsional deformations also occur in stiff rotor bodies.

Torsional vibration measurement

The objective of torsional vibration measurement is to determine the natural frequencies and classify the calculated mode shapes of built steam turbine generator trains for design verification.

Torsional measurement tests carried out on shaft trains in power plants comprise the following:

34

A B B R e v i e w 6 / 1 9 9 8

T O R S I O N A L V I B R A T I O N

Excitation of the torsional vibration of the train

– Synchronization failure with a small phase displacement angle

– Ramp test, solid line-to-ground fault

– Random excitation of the electrical grid

Measurement of the vibration response in measurement planes of the shaft train, using:

– Toothed wheels [8]

– Sensitive strain gauges fitted to the shaft journal

– Accelerometers mounted in the circumferential direction

– Laser technology (for future applications)

Identification of the torsional modes, based on measured and calculated natural torsional frequencies

ABB currently uses either sensitive fourarm strain gauges or accelerometers and telemetric signal transmission. Experience with these methods has been very good.

f

103

%

102

101

100

99

98

97

Uncoupled (100 %) and coupled natural blade frequencies (M1–M4)

f Frequency

The measurement signals from these accelerometers allowed compensation of the lateral shaft vibration components. The

M 4

M 3

M 2

M 1

5

signals were transmitted by means of telemetry to a data acquisition system, where they were stored.

Shaft mode shapes of the uncoupled shaft model (LHS) and coupled shaft-blade model (RHS)

f Frequency f

G

Grid frequency

6

Example of a torsional measurement in the spin pit

The torsional vibrations of a hydrogencooled 500-MVA turbogenerator in the spin pit were measured using accelerometers for the purpose of verifying the calculated natural torsional frequen-

f

The shaft configuration in the spin pit comprised an electrical drive, two-stage gearbox, cardan shaft and the generator rotor.

10

shows the calculated torsional mode shapes and the measurement plane. During the start-up with a low rotational speed gradient, torsional vibrations were excited by means of a mesh and pitch error in the gearbox. Two accelerometers were mounted on the fan hub at 0 ° and 180 ° of the circumference.

1 x

f

G

0 Hz

A B B R e v i e w 6 / 1 9 9 8

35

T O R S I O N A L V I B R A T I O N

M

τ

G

0

0

HP IP

100

LP 1

t

LP 2

200

503

M

G

GEN

300

Simulated dynamic torsional stresses due to a line-to-line short circuit at the generator terminals

t

M

G

τ

Generator torque

Time

Torsional shaft stress

Further notation, see Fig.1

EXC ms

7

The signals, which were measured at different speeds and at short time intervals, were transformed into amplitude spectra for display in a Campbell diagram

11

. These spectra are collected as a function of the speed and are sorted in ascending order in the diagram. Campbell diagrams, in which the rotor speed is shown along the abscissa and the frequency of vibration as the ordinate, are commonly used in analyses of blade dynamics. A small vertical bar gives the amplitude of vibration for a certain speed and vibration frequency. Only amplitudes of high magnitude are plotted, those of very low magnitudes being neglected.

Three natural torsional frequencies of the generator rotor are found in the range up to 250 Hz. The torsional frequencies increase slightly with increasing rotor speed in the lower speed range and remain constant in the upper speed range.

This is due to the ‘stiffening’ of the rotor windings and wedges caused by the centrifugal force acting on them as the speed increases. Agreement between the calculated natural torsional frequencies

500-MVA turbogenerator equipped with two accelerometers at the hub of the axial fan

8

Transmitter casing with integrated accelerometers

9

36

A B B R e v i e w 6 / 1 9 9 8

T O R S I O N A L V I B R A T I O N

3

a

2

f

1

M

Calculated torsional mode shapes (1–3) of a

500-MVA turbogenerator rotor

M

Measurement plane

10

n

Campbell diagram of measured natural torsional frequencies for a 500-MVA turbogenerator rotor

a Vibration amplitudes f Frequency n Rotational speed

11

and the measured values is good, with differences of only about 3 % being obtained.

In the following, a look is taken at measurements carried out on turbine generator trains in thermal power plants under three different kinds of excitation condition.

mitters, since they have to withstand high centrifugal forces

12

.

The measured amplitude spectra clearly show the natural torsional frequencies up to the single grid frequency. No significant resonance peaks are visible in the upper frequency range

13

.

Torsional measurement test with synchronization failure

The unit was synchronized with the electrical grid with a small phase displacement angle of about 5 °. This small electrical disturbance caused the shaft train to be excited with a torsional impulse. The responding torsional vibrations fade away after a fraction of a second (< 0.3 s). Only the lower natural torsional frequencies respond with detectable peaks in the amplitude spectrum.

The machine tested using this procedure was a 900-MW half-speed turbine generator train. The instrumentation was fixed onto the shaft journal in the workshop. Special attention was given to the fitting of the rotating measuring devices, such as the strain gauges, wires and trans-

Four-arm strain gauge bridge on a shaft journal

12

Ramp test, solid line-to-ground fault on HV side

The unit was disconnected from the electrical grid and a solid line-to-ground fault set up on the HV side of the generator

14

. Afterwards, the generator rotor was excited with a low excitation current, and the shaft train was run up slowly with steam. The dynamic torque produced in the generator air gap has a frequency equal to the rotating speed times the pole number of the machine. In this example, the speed of the shaft train (with a four-pole generator) was increased and resonances of the natural torsional frequencies, corresponding to four times the rotational speed, were passed through.

The measured signals were transferred into the frequency domain by FFT and plotted in the Campbell diagram

15

. The sharp resonance peaks at the natural torsional frequencies are clearly visible on the four times speedline.

The natural torsional frequencies were measured at different speeds with different centrifugal force effects. Extrapolations were used to convert the measured natu-

A B B R e v i e w 6 / 1 9 9 8

37

HP

T O R S I O N A L V I B R A T I O N

M 1

LP 1 LP 2

M 2

GEN EXC

a

cy is split into two pairs, which are clearly visible.

This test procedure allows excitation of the specified natural torsional frequencies.

It is important to carefully monitor the temperature of the generator windings during this test.

a

1 x f

G

f

2 x f

G

t

FFT analysis of short-time steps. The test was conducted on a 900-MW half-speed turbine generator train.

a Vibration amplitudes f Frequency f

G

Grid frequency t Time

M1, M2

Measurement planes

Further notation, see Fig.1

ral torsional frequencies to the rated speed.

Curve veering is visible in the zoomed window in the Campbell diagram

15

.

Natural blade frequencies, highly dependent on the speed, cross a natural torsional frequency of the shaft. As has been explained, the first natural blade frequen-

13

Torsional test with random excitation from the electrical grid

During normal operation, minor disturbances of the type commonly found in electrical grids produce continual, random excitation of the natural torsional frequencies of the turbine generator train. The measured signals are sampled over a period of 30 minutes or more. By averaging some hundreds of FFTs, a final vibration spectrum is obtained which contains all the natural torsional frequencies in the frequency range of interest.

This test procedure was demonstrated by performing torsional measurements on a 600-MW half-speed turbine generator train.

G

∼)

)

)

R

S

T

Solid line-to-ground fault on the high-voltage side of the generator

G

Generator stator

R, S, T High-voltage lines

14

f a

Campbell diagram for a 900-MW half-speed steam turbine generator

f a f

R

f

B

n

Vibration amplitudes

Frequency

Natural frequency of train

Blade frequencies

Rotational speed

1–4

Multiples of speed

15

38

A B B R e v i e w 6 / 1 9 9 8

n

1

f

B f

R

4

3

2

T O R S I O N A L V I B R A T I O N

Table 2:

Important aspects of different measurement procedures

Synchronization failure with small displacement angle

Ramp test, solid line-to-ground fault

Measurement Four-arm strain gauge bridges

Telemetry

Four-arm strain gauge bridges

Telemetry Data transfer

Preparation on site

Operating mode

Synchronization failure with small phase displacement angle

Unit ready to start operating

Short circuit on high-voltage side of generator; disconnection of some safety devices on electrical side

Unit disconnected from electrical grid

Duration of measurement

Approx 3 s

Total duration of test

Measured natural frequencies

30 min

Only lower natural frequencies below grid frequency can be detected

Measurement quality

± 0.2 Hz

Necessary work None after test

Disconnected safety devices on electrical side need to be re-activated

Random excitation from electrical grid

Sensitive four-arm strain gauge bridges

Telemetry

None

Normal operation of unit

2 to 5 h; temperatures in generator winding have to be kept below allowed levels

30 min

Unit needed for 2 to 3 days, Unit runs as normal. during which time no electrical Test does not restrict production power is produced of electrical power

Natural frequencies below four times (4-pole generator) maximum rotational speed measured at different speeds, have to be converted to rated speed

± 0. 2 Hz

All natural frequencies measured in normal operation; typical frequency range currently about 150 Hz

(no limitation due to measuring equipment)

± 0.2 Hz

None

The rotating part of the measuring equipment consists of strain gauges and telemetry devices on one measurement plane. A location was selected on the shaft train for the measurement plane that would ensure good signals of all the specified natural torsional frequencies

16a

. The non-rotating part of the telemetry system consists of a receiver and the equipment required to display, store and analyze the data.

The graph in

16b

shows the measured amplitude spectrum. With the help of the calculated natural torsional frequencies and mode shapes it is possible to identify the measured natural frequencies. The difference between the calculated and the measured torsional frequencies was found to be smaller than 3 %.

by ABB and the one currently used during the design of turbine generator trains and for experimental verifications.

Comparison of different test methods

Table 2 compares different aspects of the various torsional measurement procedures used in power plants. The method employing random excitation from the electrical grid has been found to be highly efficient and to yield good measurement results.

For this reason, it is the method preferred

Summary

By designing steam turbine trains with stiff,

ABB drum-type, welded LP rotors it is ensured that coupling of the blade vibrations in large steam turbines to the torsional vibration in the shaft train is negligible. Separate vibration designs for the shaft trains and long blades therefore provide adequate results. The natural torsional frequencies calculated during the design

A B B R e v i e w 6 / 1 9 9 8

39

T O R S I O N A L V I B R A T I O N

M M

1 2 3 4

5

4

3

a

2 a

1

0.5 x f

G

1 x f

G

f

1.5 x f

G

2 x f

G b

f

Calculated torsional mode shapes, 1–5, (a) and the amplitude spectrum measured at the measurement plane M (b)

G

Grid frequency a Vibration amplitudes

1–4

Calculated natural frequencies

16

phase differ from the measured values by less than 3 %.

Generally, the torsional vibrations excited by normal random distrubances in the grid can be measured by means of sufficiently sensitive strain gauges or accelerometers in just one measurement plane between the LP turbine rotor and generator rotor, assuming the availability of appropriate data acquisition systems. This procedure allows high-quality experimental verification of the specified natural torsional frequencies (± 0.2 Hz) during normal operation in thermal power plants.

As measurements in actual thermal power plants have demonstrated, the design methods available today allow the torsional vibrations in large steam turbine generator trains to be kept well under control.

References

[1] K. Steigleder, E. Krämer: Coupled vibration of steam turbine blades and rotors due to torsional excitation by negative sequence currents. American Power Conference, Chicago, April 24–26, 1989.

[2] D. Evans, H. Giesecke; E. Willman; P.

Moffitt: Resolution of torsional vibration issue for large turbine generators. Presented at the Annual Meeting of the American Power Conference, April 19, 1995.

[3] EC 34-1: Rotating Electrical Machines

– Part 1: Rating and Performance, 10th edition, 1996-11.

[4] M. Canay: Subsynchronous resonance – an explanation of the physical relationships. Brown Boveri Rev 68 1981

(8/9) 348–357.

[5] P. Schwibinger: Torsionsschwingungen von Turbogruppen und ihre

Kopplung mit den Biegeschwingungen bei Getriebe-Maschinen. VDI Progress

Reports, Series 11: Schwingungstechnik

No. 90, Düsseldorf 1987.

[6] E. Wiedemann, W. Kellenberger: Konstruktion elektrischer Maschinen. Springer

Verlag, Berlin, Heidelberg, New York,

1967.

[7] M. Canay: Drehmomentgleichungen und deren Gültigkeitsbereiche – Einfluss auf mechanische Drehmomente in der

Welle einer Synchronmaschine. etz Archiv, vol. 8 (1986) no. 9, 325–330.

[8] P. Wutsdorff: Messung und Auswertung von Torsionsschwingungen an grossen Dampfturbogruppen bei transienten Betriebszuständen, VGB Kraftwerkstechnik 64, no. 4, April 1984.

Authors

Josef Huster

Dr. Lothar Eckert

ABB Power Generation Ltd

CH-5401 Baden/Switzerland

Telefax: +41 56 205 5605

E-mail: [email protected]

[email protected]

Frank Pohle

ABB Turbo Systems Ltd

CH-5401 Baden/Switzerland

Telefax: +41 56 205 67 44

E-mail: [email protected]

40

A B B R e v i e w 6 / 1 9 9 8

Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement