Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
40 views79 pages

The Investigation of Appropriate Control Algorithms For The Speed Control of Wind Turbine Hydrostatic Systems

The document presents a new pipe flow model for simulating the flow behavior in long pipes, as part of investigating control algorithms for wind turbine speed control using hydrostatic transmission systems. The model accounts for frequency-dependent friction by solving the Navier-Stokes and continuity equations to find pressure distributions and velocity profiles throughout the pipe over time. Simulation results are presented for a case using the new model. Additionally, a SIMULINK model is developed to simulate a hydrostatic transmission system connecting a wind turbine to a generator, using a PID controller to regulate motor speed based on pressure feedback.

Uploaded by

Harika Raavi
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views79 pages

The Investigation of Appropriate Control Algorithms For The Speed Control of Wind Turbine Hydrostatic Systems

The document presents a new pipe flow model for simulating the flow behavior in long pipes, as part of investigating control algorithms for wind turbine speed control using hydrostatic transmission systems. The model accounts for frequency-dependent friction by solving the Navier-Stokes and continuity equations to find pressure distributions and velocity profiles throughout the pipe over time. Simulation results are presented for a case using the new model. Additionally, a SIMULINK model is developed to simulate a hydrostatic transmission system connecting a wind turbine to a generator, using a PID controller to regulate motor speed based on pressure feedback.

Uploaded by

Harika Raavi
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 79

THE INVESTIGATION OF APPROPRIATE

CONTROL ALGORITHMS FOR THE


SPEED CONTROL OF WIND TURBINE
HYDROSTATIC SYSTEMS
Magnus Johan Gulstad
Norges teknisk-naturvitenskapelige universitet
Institutt for matematiske fag
Master i fysikk og matematikk
Oppgaven levert:
Hovedveileder:
Biveileder(e):
Juni 2007
Brynjulf Owren, MATH
Peter Chapple, Vannkraftlabratoriet, NTNU
Oppgavetekst
As part of the ongoing programme of work on the application of hydrostatic transmissions to wind
power turbines the project was concerned with the simulation of the flow process in long pipes.
The proposed diploma work is concerned with further establishing the flow behaviour in long pipes
and evaluating suitable control algorithms for the control of either the speed of the turbine or
hydrostatic motor. It is intended to base the work on the turbine application at Kvalsundet which
has a pipe length connecting the turbine pump and hydrostatic motor that is in the order of 800m.
The control problem for this application with the generator running at synchronous speed can
often be resolved by the use of hydraulic pressure feedback. However where the volume of
hydraulic fluid is large or where the pipe lengths are such that the pipe line dynamics are
significant then alternative algorithms are required.
The following questions should be considered in the project work:
1. To continue the flow modelling into frequency dependent friction.
2. The use of a simulation of the hydraulic system where pressure feedback provides a
satisfactory technique evaluate the relative benefits of using various compensation algorithms
which could include:
Proportional, Integral and derivative systems
Phase advance or lead-lag type systems
3. To investigate the limits of these techniques when used with pipe lengths that make
normal proportional control ineffective.
4. To carry out a literature survey for alternative control techniques that can provide a
successful solution to the control problem.
Oppgaven gitt: 17. januar 2007
Hovedveileder: Brynjulf Owren, MATH
THE INVESTIGATION OF APPROPRIATE
CONTROL ALGORITHMS FOR THE SPEED
CONTROL OF WIND TURBINE HYDROSTATIC
SYSTEMS
Magnus Gulstad
Stud.techn.
Norwegian University of Science and Technology
June 28, 2007
0.1 Abstract
This report consists of two chapters. The rst is concerned with a new approach to pipe ow
modelling and the second has to do with the simulation of the hydrostatic system which will
be applied to a wind turbine.
For the pipe ow model, the main focus has been to create a ow model which accounts for
the frequency dependent friction, i.e. the uid friction which occurs at non-steady conditions.
The author is convinced that the solution to this problem lies in the velocity prole, as the
friction is a direct result of the shear stresses in the pipe. At the same time, it is possible to
keep track of the velocity prole in the pipe as the pressure evolves in time and space.
The new model utilizes the continuity equation for pipe ow and the equation of motion
for axisymmetrical ow of a Newtonian uid to nd both a pressure distribution in the pipe
and velocity proles throughout the pipe. There are uncertainties whether the approach to
nd these velocity proles done in the new model is correct.
The modelling of the hydrostatic transmission to a wind power turbine is done using
SIMULINK software. The design of the system and basics of the modelling are described in
the second chapter. The motor speed is regulated using a PID-controller and the generator
torque is varied based on the pressure drop over the hydraulic motor. The PID-controller
for motor speed seems be of good-enough quality and speed deviations are within acceptable
limits.
Simulation results are given for one certain case with an initial rotor torque of 20kNm
and an additional step torque of 20kNm.
i
0.2 Acknowledgments
This diploma work has been a co-operation between the Department of Mathematical Sci-
ences (http://www.math.ntnu.no/english) and the Water Power Laboratory (http://
www.ivt.ntnu.no/ept/vk/) at the Norwegian University of Science and Technolog (http:
//www.ntnu.no/english).
Academic supervisors have been Torbjrn Nielsen, Brynjulf Owren and Peter Chapple.
ii
List of Mathematical Symbols and
their Units
Dierence operator [dimensionless]
Spesic weight of hydraulic oil [kg/m
2
s
2
]
Dynamic viscosity [kg/ms]
Kinematic viscosity [m
2
/s]
Approximately equal to 3.14159 [dimensionless]
Density of hydraulic oil [kg/m
3
]

Dimensionless time= t/R


2
[dimensionless]

Dimensionless time= ta/L [dimensionless]


Shear stress [kg/ms
2
]

0
Shear stress at pipe wall [kg/ms
2
]
A Area of the cross section of the pipe [m
2
]
a Sonic velocity in uid [m/s]
D Inner diameter of pipeline [m]
F Force [kg/ms
2
]
g Acceleration of gravity [m/s
2
]
H Head [m]
h
fl
Friction headloss in laminar ow [dimensionless]
h
ft
Friction headloss in turbulent ow [dimensionless]
iii
h
f
Friction headloss [dimensionless]
i Counter in axial direction [dimensionless]
j Counter in time [dimensionless]
k Counter in radrial direction [dimensionless]
L Length of pipe [m]
L

Characteristic length of pipe [m]


m
i
Mass of plug i [kg]
NR Number of steps in radial direction [dimensionless]
NT Number of time steps [dimensionless]
NX Number of steps in axial direction [dimensionless]
p Pressure [kg/ms
2
]
R Pipe radius [m]
r Distance from pipe axis [m]
Re Reynolds number [dimensionless]
t Time [s]
V Average velocity in a cross section of the pipe [m/s]
v Velocity as a function of x, r and t [m/s]
x Distance along the x-axis [m]
A Area of the cross section of the pipe [m
2
]
D
gain
Derivative gain [m/s]
I
gain
Integral gain [m]
P
gain
Propotional gain [ms]
C
m
Motor friction coecient [(kg/s)]
Cd
m
Motor discharge coecient [m
3
/s/(N/m
2
)]
Cl
m
Motor leakage coecient [m
3
/s/(N/m
2
)]
iv
D
m

max
Maximum motor displacement [m
3
/rad]
D
m

min
Minimum motor displacement [m
3
/rad]
Omega
m

set
Set motor speed [rad/s]
Omega
m

start
Initial motor speed [rad/s]
Rotary
Inertia

m
Motor rotary inertia [kgm
2
]
Cd
p
Pump discharge coecient [m
3
/s/(N/m
2
)]
Cf
p
Pump friction coecient [kg/s]
Cl
p
Pump leakage coecient [m
3
/s/(N/m
2
)]
D
p
Pump displacement [m
3
/rad]
Inertia
rt
Rotor rotary inertia [kgm
2
]
Omega
p

max
Maximum pump speed [rad/s]
Omega
p

min
Minimum pump speed [rad/s]
Omega
p

start
Initial pump speed [rad/s]
Step

time Step time [s]


Step
torque

rt
Step torque [Nm]
Torque
rt

max
Maximum rotor torque [Nm]
Torque
rt

min
Minimum rotor torque [Nm]
Torque
rt
Rotor torque [Nm]
v
Contents
0.1 Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
0.2 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii
1 Pipe ow model 1
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Earlier Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.1 Steady state friction . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2 Zielkes friction term . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.3 Bratlands cylinder shell model . . . . . . . . . . . . . . . . . . . . . 5
1.4 New model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.1 Solving the Navier Stokes equation . . . . . . . . . . . . . . . . . . . 7
1.4.2 Solving the continuity equation . . . . . . . . . . . . . . . . . . . . . 9
1.4.3 Combining the two governing equations . . . . . . . . . . . . . . . . . 9
1.4.4 Initial values and boundary conditions . . . . . . . . . . . . . . . . . 11
1.5 Results of Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2 Wind turbine hydrostatic gear system 23
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2 Hydraulic design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3 SIMULINK model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.1 Governing dynamic properties of the transmission . . . . . . . . . . . 26
2.3.2 PID-Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.3 Generator torque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4 Results of Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
A Flow Model 40
A.1 Matlab Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
A.1.1 parameters.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
A.1.2 initial.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
A.1.3 main.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
A.1.4 main2.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
vi
A.1.5 sd.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
A.1.6 ssd.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
A.1.7 LaxWendro.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
A.1.8 shear.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
A.1.9 average.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
B Simulink Model 52
B.1 paramters.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
B.2 Kvalsund.mdl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
vii
Chapter 1
Pipe ow model
1.1 Introduction
Pipe ow with unsteady boundary conditions occurs in hydraulic systems such as water power
plants and hydostatic transmissions. For these applications, the frequence dependency of the
friction might be of importance to the dynamic behaviour of the systems, and accurate ow
models must to be applied when modelling the systems.
One of the main focuses of this report is to develop an appropriate algorithm for the
pipe ow which accounts for the frecuency dependent friction in non-steady pipe ow. The
fundamentals of transmission line dynamics are given to some extent, and introduced to an
appropriate mathematical ow model.
The friction coecient normally used when modelling pipe ow is quasi steady, i.e. it is
only dependent of the rate of uid ow, and not of how the uid ow changes with time. It is
important to understand that the energy dissipation essentially is not dependent on the rate
of ow, rather the shape of the velocity prole, which again is dependent of the history of
the pressure gradient. This is because the uid friction is a result of shear stresses between
uid layers. The application of the steady state friction term to non-steady ow, results in
poor approximation to experimental results and the actual pressure decay and energy loss
in the pipe are under-estimated.
The starting point of this work has been the modelling done in my student project in
the fall semester 2006. The project work describes some of the background theory in detail
1
and computer implementations of the method of characteristics were developped using both
steady state and Zielkes friction term. An attempt was done to combine Bratlands [1]
1
ow
model with a solution of the governing equations (1.1) and (1.2) by means of the method of
characteristics.
The main idea behind this thesis, is to compute the velocity prole in the pipe sections
and to let the friction term depend on these velocity proles. Solution methods to the Navier
Stokes (1.11) and the continuity equation (1.2) have been developped and this has been the
basis of the further analysis.
1.2 Background
The fundamental equations for transient pipe ow are the equation of continuity and the
momentum equation. The 1D equations for motion and continuity are written in terms of
V and H, the average uid velocity and head
2
in the crossection of the pipe and yield
g
H
x
+ V
V
x
+
V
t
+ gh
f
= 0 (1.1)
and
a
2
g
V
x
+ V
H
x
+
H
t
= 0 (1.2)
respectively. x and t are independent variables in axial direction and time. h
f
designate a
friction loss due to wall shear. Both equations are derived in reference [4]. These equations
were solved by means of the method of characteristics, also discribed in [4], in my student
project, fall 2006. This was done with both steady state friction and Zielkes friction term
included.
1
Numers in brackets designate bibliography references
2
Meter water column, mWC
2
(a) Motion (b) Continuity
Figure 1.1: Control volumes for the governing equations.
For steady state conditions, the headloss term is generally taken to be
h
fl
=
32
gD
2
V (1.3)
and
h
ft
=
f
2gD
|V |V (1.4)
for laminar and turbulent ow respectively [6]. However, for oscillatory ow where the
Renolds number changes with time, equations (1.3) and (1.4) do not give satisfactory pre-
diction of the actual headloss. This has to do with the velocity prole in the pipe, which
constantly changes with pressure tansients.
Figure 1.2: Velocity proles in a cross section of a circular pipe. U1 is a fully developped
Hagen-Poiseuille ow, while U2 is some ow prole resulting from variable pressure gradients.
3
Various approaches have been made to introduce the eect of frequency dependent friction
to the ow model. Among others, Zielke [6] bases the friction term on past velocity changes.
Bratland [1] divides the pipe into cylindrical shells and sets up a momentum equation for
each shell. The headloss is then found based on the velocity dierences between the shells
[see gure 1.6 for illustration].
1.3 Earlier Models
1.3.1 Steady state friction
In its most basic form, the analysis of transient pipe ow problems is solved using the
equation of motion (1.1) and continuity (1.2). A friction term can be included to the equation
of motion. The steady state headloss (1.3) has proved not to give adecuate prediction of the
actual energy dissipation for ocillatory ow conditions. The solution to the water hammer
problem with steady state friction was implemented using the method of characteristics in
my student project fall 2006. The result is given in the gure below.
0 5 10 15
!1
!0.8
!0.6
!0.4
!0.2
0
0.2
0.4
0.6
0.8
1
Steady State Headloss
Dimensionless time, ta/l
H
g
/
a
v


Pressure at valve
Figure 1.3: Pressure uctuations after instantaneous valve closure using the steady state
friction term. The dimensionless time is

= ta/L
4
1.3.2 Zielkes friction term
Zielke was the rst who succeeded at including the eect of frequency dependent friction to
a ow model. His model assumes constant pressure throughout the pipe and solves
g
H
x
+ V
V
x
+
V
t
+ gh
fz
= 0 (1.5)
and
a
2
g
V
x
+ V
H
x
+
H
t
= 0, (1.6)
also by means of the method of characteristics. Zielkes friction term, h
fz
, is dependent on
the history of the velocity at a cross section [6]. Zielke nds the wall shear stress given by

0
(t) =
4
R
V (t) +
2
R
_
t
0
V
t
W(t u)u, (1.7)
where W(t) is a weighing function. The equation shows that the wall shear stress is given by
the instantainious shear plus a term in which weights are given to the past velocity changes.
Now the headloss can be found by
h
fz
=
4
0
D
(1.8)
1.3.3 Bratlands cylinder shell model
In stead of solving the governing equations (1.1) and (1.2), Bratland devides the pipe into
plugs and sylindrical shells as in gure 1.6. The plugs represent the uid and the interveaning
spaces represent the pressure acting on the uid. For this discretization the equation of forces
yields
dv
i
dt
=
1
m
i
_
d
2
4
(p
i1
p
i
) F
Ri
_
, (1.9)
where i is the counter in axial direction. The plugs are devided into cylindrical shells which
5
0 5 10 15
!1
!0.5
0
0.5
1
1.5
Dimensionless time, ta/l
Zielkes friction
H
g
/
a
v


Pressure at valve
Figure 1.4: Pressure uctuations after instantaneous valve closure using Zielkes friction
term. The dimensionless time is

= ta/L
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04
0
2
4
6
8
10
12
Zielkes weighting function
W
Dimensionless time
Figure 1.5: Zielkes weighting function as a function of the dimensionless time

= t/R
2
.
6
Figure 1.6: Bratlands plugs divided into cylindrical shells.
can move independently of each other, only eected by the uicd friction which occurs
between them. The friction force between two shells is found by
F
i,k
= 2r
k
x
v
i,k+1
v
i,k
r
, (1.10)
where r
k
is the distance between shell number k and k + 1.
1.4 New model
1.4.1 Solving the Navier Stokes equation
In the matlab code used, the Navier Stokes equation
v
t
=
1

p
x
+
1
r
v
r
+

2
v
r
2
(1.11)
is solved by means of a semi-discretization in sd.m, Appendix A.1.5. The function is called by
v and H, where v designates the velocity prole in the cross section of the pipe and H is
the pressure dierence over the plug we are looking at. The nite-dierence approximations
to the space derivatives are
1
r
v
r

j
k

u
j
k+1
+ u
j
k1
2r(k 1)r
(1.12)
and

2
v
r
2

j
k

u
j
k+1
2u
j
k
+ u
j
k1
r
2
(1.13)
7
for the convective term and the laplacian respectively. k denotes the counter in radial
direction and j is the current time step.
The matlab ode45 solver, which handles ordinary dierential equations is then applied
to solve this system up until time t
j+1
= t
j
+ t.
Figure 1.7 goes to show how this semi-discretization works in time and space.
0
R/2
R
0
0.5
1
0
0.1
0.2
0.3
0.4
0 R/2 R
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
V
e
l
o
c
i
t
y

v

[
m
/
s
]


Time=0s
Time=1s
Figure 1.7: Solving the Navier Stokes equation in time and space.
8
1.4.2 Solving the continuity equation
The continuity equation is solved using the 1D Lax-Wendro scheme [3]. Also here a semi-
discretization has been tried, but as the result turned out to be quite oscillatory more
solution methods have been tried. The Lax-Wendro gave exactly the same answer as a
semi-discretization. Various ordinary dierential equation solvers have been applied to see if
a semi-discretization could give acceptable results, without success. For the further analysis
the Lax-Wendro scheme has been used.
The equation to be solved is
H
t
=
a
2
g
V
x
V
H
x
. (1.14)
Applying the Lax Wendro scheme, the discretization yields
H
j+1
i
= H
j
i

V
j
i
t
2x
_
H
j
i+1
H
j
i1
_
+
_
V
j
i
_
2
t
2
2x
2
_
H
j
i+1
H
j
i
+ H
j
i1
_
a
2
g
_

t
2x
_
V
j
i+1
V
j
i1
_
+
t
2
2x
2
_
V
j
i+1
V
j
i
+ V
j
i1
_
_
.
(1.15)
The Lax-Wendro scheme is implemented in LaxWendroff.m, Appendix A.1.7.
1.4.3 Combining the two governing equations
Due to the fact that the Navier Stokes equation (1.11) is two-dimensional and the continuity
equation (1.14) is one-dimensional, some manipulations to the variables need to be done. v
and h are variables in radial and axial direction while H and V are constant throughout the
cross section and has x and t as independent variables.
To make the jump between these two, the average velocity of the cross section is found for
use in the continuity equation. This manipulation is quite drastic, and it is hard to predict
the result and whether it will be acceptable or not.
The matlab function average.m in Appendix A.1.9 takes on the velocity prole and
9
returns the average velocity:
V =
NR

i=1
v
i
A
i
A
=
NR

i=1
v
i
2irr
(NRr)
2
= 2
NR

i=1
v
i
i
(NR)
2
.
(1.16)
The matlab scripts main.m and main2.m, Appendices A.1.3 and A.1.4, solves a transient
ow problem and a water hammer problem respectively. They both initialize the same
velocity prole and pressure throughout the pipe. main.m predicts the ow and pressure
response to a sinusoidal pressure at the pipe outlet. main2.m calculates the response to a
water hammer. In the same fashon, initial values for pressure and ow are intialized, only
with 0 velocity at the valve.
v
r
Shear in a pipe
P
o
s
i
t
i
o
n
Velocity
Shear stress
gradient, dv/dr
Figure 1.8: Shear stress for uid ow in a pipe.
10
For each time step, the actual pressure drop is computed for all the plugs throughout the
pipe using the matlab function shear.m given in Appendix A.1.8. A graphical illustration
of how shear stresses result from the velocity prole is given in gure 1.8
The shear stress
=
v(k + 1) v(k)
r
(1.17)
results in a force
f
k
=
v(k + 1) v(k)
r
2krx (1.18)
which acts on the respective interveaning space between the plugs and sum up to yeld a total
force of
F =
NR1

k=1
v(k + 1) v(k)
r
2krx
2krr
R
2
(1.19)
hence a pressure drop given by
P =
F
R
2
= 4
r
2
x
R
4
NR1

k=1
k
2
[v(k + 1) v(k)]. (1.20)
1.4.4 Initial values and boundary conditions
I have assumed laminar ow and no-slip condition at the pipe walls for the ow model.
Values for velocity are initialized for steady state conditions. For these assumptions, the
Hagen-Poiseuille relation [5] yields:
v(r) =
_
p
L
_
1
4
(R
2
r
2
), (1.21)
11
where p is the pressure drop over the length of the entire pipe L. The maximum velocity
is found in the centerline at r = 0:
v
max
=
_
p
L
_
1
4
R
2
. (1.22)
The average velocity is then foud to be
V
0
=
1
R
2
_
R
0
2rv(r)dr
=
1
R
2
_
R
0
2r
_
p
L
_
1
4
(R
2
r
2
)dr
=
p
R
2
2L
_
R
2
2
r
2

1
4
r
4
_
R
0
=
_
p
L
_
1
8
R
2
=
1
2
v
max
.
(1.23)
We can now initialize the velocity proles by means of the average velocity V
0
. This is done
in the matlab script initial.m in Appendix A.1.2.
For both main.m and main2.m in Appendicies A.1.3 and A.1.4, the head at the reservoir
is set to 70meters. Using the same matlab functions, sd.m and LaxWendroff.m, main.m and
main2.m solves the pipe ow problem for variable head at the outlet and a water hammer
respectively.
1.5 Results of Simulation
The calculation of the velocity prole is working quite well. Fluctuant pressures have been
forced upon parabolic velocity proles and the results show that the pressure gradient, which
is the driving force of the uid, aects the ow in the inner region of the pipe and the
boundary layer close to the wall dierently. The viscous eects are concentrated in a layer
close to the pipe wall. At the same time, the inertial forces here are small so that the velocity
12
0 R/2 R
0
0.05
0.1
0.15
0.2
0.25
Figure 1.9: Initialized velocity prole for steady-state laminar ow.
is in phase with the pressure gradient. This means that the boundary layer close to the wall
is rst eected by the pressure gradient. For the inner layer which is not so much eected by
wall shear, but mostly dominated by inertial forces, the acceleration of the ow is in phase
with the pressure gradient.
The results tor the pipe ow where variable pressure at the pipe outlet was enforced,
has been reasonable, see gures 1.10, 1.11, 1.12 and 1.13. The pressure waves propagate
through the pipe with the right speed and amplitude. The acceleration of the main velocity
changes in phase with the pressure gradient. However, it is hard to tell whether the results
are reliable without any experimental verications. The simulation run with = 0.00396
shows a much higher damping and that the boundary layer for shear forces in the cross
section of the pipe is much thicker than for a lower viscosity. This is in accordance with the
theory[5].
Various solution methods have been tried to solve the equation of continuity (1.2) for
the water hammer problem. Both the solution from applying the Lax Wendro scheme and
13
0 L/2 L
60
65
70
75
80
85
90
95


Time=0.013629
Time=0.027257
Time=0.040886
Time=0.054514
0 L/2 L
0
0.05
0.1
0.15
0.2
0.25
0.3


Time=0.013629
Time=0.027257
Time=0.040886
Time=0.054514
Figure 1.10: Velocity and pressure distribution throughout the pipe with variable pressure
at pipe outlet.
14
0 R/2 R
!0.1
!0.05
0
0.05
0.1
0.15
0.2
0.25
0.3
Velocity prole at x = 27.0662 as it evolves in time
Radial position r [m]
V
e
l
o
c
i
t
y
v
[
m
/
s
]


Time=0.013629s
Time=0.027257s
Time=0.040886s
Time=0.054514s
Figure 1.11: Velocity prole as it evolves due to variable pressure at pipe outlet.
15
0 L/2 L
55
60
65
70
75
80
85
90
95


Time=0.013629s
Time=0.027257s
Time=0.040886s
Time=0.054514s
0 L/2 L
0
0.05
0.1
0.15
0.2
0.25
0.3


Time=0.013629s
Time=0.027257s
Time=0.040886s
Time=0.054514s
Figure 1.12: Velocity and pressure distribution throughout the pipe with variable pressure
at pipe outlet. is here 0.00396.
16
0 R/2 R
!0.1
!0.05
0
0.05
0.1
0.15
0.2
0.25
0.3


Time=0.013629s
Time=0.027257s
Time=0.040886s
Time=0.054514s
Figure 1.13: Velocity prole as it evolves due to variable pressure at pipe outlet. is here
0.00396.
17
a semi-descretizaion are given in gure 1.14. Numerous solution methods could be tried,
but I do not think that the oscillations are a solution method problem as such, rather that
the discretization of the physical system cause the oscillations. At the same time, it is hard
to tell whether the equations solved, the Navier Stokes (1.11) and the continuity equation
(1.2), would give a correct answer - regardless of solution method. The pressure process at
the valve does show the right shape, but overestimates the pressure slightly. The oscillations
botch up the results, so it is hard to tell whether the matlab scripts handle the frequency
dependent friction correctly.
1.6 Conclusion
It is an exciting thought to be able to predict the velocity prole in the pipe and to see
how it evolves in time for dierent ow conditions. The velocity prole gives information in
regards to shear stresses and energy dissipation in the pipe. Besides, the radial variation of
kinetic energy can be of importance in some applications. Braltand [1] showed that much
kinetic energy was still in the pipe after immediate closure of a valve, such that not all of
the uids kinetic energy was obsorbed.
Jumping between the one dimensional continuity equation (1.2) and two dimensional
Navier Stokes equation (1.11) seems not have been such a great idea. The one dimensional
equations of momenutm (1.1) and continuity (1.2) both shear the same assumptions regard-
ing equally distributed uid velocity and pressure throughout the cross section of the pipe.
And therefore the control volumes 1.1 satisfy the princilpes of momentum and continuity.
Violations to this has been done in this work.
One other violation that can be mentioned is the pressure losses which are a result of
shear stress. Pressure losses due to shear forces are, really, for specic cylinder shells, and
should not be averaged out over the cross section.
The solution method to nd the velocity proles seems to be working very well. However,
also here some violations are done. The velocity in the outer shell (closest to the pipe wall)
is constantly held to zero. I am uncertain whether this is the actual case or not, but the
18
0 0.04 0.08
30
40
50
60
70
80
90
100
110


LaxWendroff
Semi Discretization
(a) Lax Wendro scheme and semi-discretization
0 0.27257 0.54514
30
40
50
60
70
80
90
100
110
(b) Lax Wendro
Figure 1.14: Pressure at valve after immediate closure.
19
0 R/2 R
!0.3
!0.25
!0.2
!0.15
!0.1
!0.05
0
0.05
0.1
0.15


Time=0.020443s
Time=0.040886s
Time=0.061328s
Time=0.081771s
Figure 1.15: Velocity prole in a cross section of the pipe after immediate closure of valve.
20
0 0.04 0.08
30
40
50
60
70
80
90
100
110
(a) Steady state friction
0 0.04 0.08
30
40
50
60
70
80
90
100
110
(b) Zielkes friction term
Figure 1.16: Pressure at valve after immediate closure using the method of characteristics
and (1.1) and (1.2) as governing equations.
21
non-slip condition is a normal assumption to make.
22
Chapter 2
Wind turbine hydrostatic gear system
2.1 Introduction
The main reason why it is interesting to introduce a hydrostatic transmission to wind turbines
is the oshore installations which are being planned. First of all, a reduction of the weight at
the nacelle is an absolute necessity and the hydrostatic pump and motor gives the possiblility
to place the heavy power geneartor at ground/water level. Besides, there will no longer be
use for the the mechanical gear which has been the weak link in chain so far.
The dynamic characteristics of a closed loop hydraulic system connecting a pump and
a motor, is a complicated area of research. This report aims at describing and evaluating
some of the dynamic properties of a system wich will be applied in a wind power turbine.
The dynamics of the hydrostatic transmission in a wind power tubine is related to the
wind speed which can vary much. With variable wind speeds the rotor torque changes and
therefor also the pump speed will vary. The speed of the hydraulic motor is controlled to
be constant so that the generator runs at syncronous speed. The motor displacement is
regulated by means of a PID
1
-controlling system which assures constant motor speed. The
generator torque is adjusted according to the pressure drop over the hydraulic motor in order
to take out as much electric power as possible.
1
Proportional-Integral-Derivative control
23
I assume that the reader has some basic knowledge about control theory, and will therefore
not go into detail on the PID-controlling system. The whole SIMULINK model is given in
appendix B.
2.2 Hydraulic design
The hydraulic system which will be applied is sketched in gure 2.1. The hydraulic pump
is a xed displacement unit with displacement D
p
= 1.800679 10
3
m
3
/rad. The pump
is connected directly to the rotor rod. The motor has variable displacement rating from
D
m

min
= 2.0 10
5
m
3
/rad to D
m

max
= 8.0 10
5
m
3
/rad.
A boost pump is included in the hydraulic circuit to assure that the pressure from the
pump, P1, does not drop below 80 10
5
Pascal, and that the pressure in the pipe from the
motor back to the pump, P2, is always more than 40 10
5
Pascal.
To make sure that the pressure dierences over the motor and pump does not exceed
310 10
5
Pascal, a pressure relief valve connects the hydraulic transmission lines. Based on
Wind Turbine
Power Generator
Figure 2.1: Design of the hydraulic gear to the wind turbine.
the pressures given above, the vind turbine should be able to operate at wind conditions
24
resulting in rotor torques from about
Torque
rt

min
= P
min
D
p
= 7.2 10
3
Nm (2.1)
to
Torque
rt

max
= P
max
D
p
= 55.8 10
3
Nm, (2.2)
where P
min
= 40 10
5
Pascal and P
max
= 310 10
5
Pascal.
The hydraulic motor is connected to the power generator which is runned at syncrounous
speed around 157rad/s. Without taking the eects of friction and leakage into account, the
pressure drops over the hydraulic motor and its displacement range, result in a motor power
rating from
Power
min
= P
min
D
m

min
Omega
m

set
= 12.56kW (2.3)
to
Power
max
= P
max
D
m

max
Omega
m

set
= 389.36kW. (2.4)
2.3 SIMULINK model
The hydraulic system has been implemented in SIMULINK. The model is limited to rotor,
hydraulic gear which includes the pump and motor and the torque of the power generator.
All parameters and simulation block diagrams are given in Appendix B. Only in the extent
necessary, block diagrams are included in this chapter.
The reader should not be confused by the use of P1/Q1 and P1
f
/Q2
f
and also P2/Q2
25
and P2
f
/Q2
f
. The P1s and P2s and Q1s and Q2s are essensially the same
2
.
Since the driving force to this system is the rotor torque, the authour has found it
natural to base the analysis of this hydraulic system on sudden changes in rotor torque. The
SIMULINK system takes on rotor torque plus some additional step torque and predicts the
systems dynamic responce. A PID-controller regulates the motor displacement in order to
maintain constant motor speed and the generator torque is varied according to the motor
torque. This assures that as much electric power as possible is extracted from the system,
without stalling the wind turbine that is.
A list of hydrualic system coecients is given in table 2.1
Abbrevation Value Description Unit
L 30.0 Pipe length [m]
A 0.05 Cross section of the pipe [m
2
]
B 1.5 10
9
Fluid bulk modulus [kg/ms
2
]
Cl
p
7.5 10
12
Pump leakage coecient [(m
3
/s)/(N/m
2
)]
Cf
p
0.01 Pump friction coecient [(kg/s)]
Cd
p
7.5 10
12
Pump discharge coecient [(m
3
/s)/(N/m
2
)]
Cl
m
7.5 10
12
Motor leakage coecient [(m
3
/s)/(N/m
2
)]
Cd
m
7.5 10
12
Motor discharge coecient [(m
3
/s)/(N/m
2
)]
C
m
0.005 Motor friction coecient [(kg/s)]
Table 2.1: Constants used in the SIMULINK model.
2.3.1 Governing dynamic properties of the transmission
I have summarized the equations for the pump parameters below. The same principles apply
also for the motor, and the motor equations are therefore not stated in this chapter. However,
they can easily be derived from the block diagrams in Appendix B. The driving force to this
system is the rotor torque wich varies with the wind speed. When the rotor torque changes,
2
The f-variables were ment for a pipe ow model that could be introduced with an embedded matlab
function.
26
4
Torque_m
3
Power_m
2
Power_p
1
Torque_p
Torque_and_Power
P2_f
P1
Omega_p
Torque_p
Power_p
Pump_Torque_
and_Power
P2_f
V
Q2_f
P1
Omega_p
Q1
Pump
D_m V
Pressurised_Volume
Pressures
Q2
P2
Q2_f
P2_f
Pipe_Flow_Model_return
P1
Q1
P1_f
Q1_f
Pipe_Flow_Model
V
Natural_Frequency_
and_Damping
P1_f
D_m
P2
Omega_m
Torque_m
Power_m
Motor_Torque_
and_Power
P1_f
Q1_f
V
D_m
P2
Omega_m
Q2
Motor

printed 24!Jun!2007 17:49 page 1/14
Kvalsund
/Users/magnusgulstad/Desktop/Skole/Diplom/Simulink/pidcontrolled/Kvalsund.mdl
Figure 2.2: Overview of the hydraulic system simultaion block diagram.
the pump either accelerates or slows down according to
(Omega
p
)
t
=
(P2 P1) D
p
Omega
p
Cf
p
+ Torque
rt
Inertia
rt
. (2.5)
Simulink integrates this term over the last time step and computes the new pump velocity.
The integral is given a start value equal to Omega
p

start
and maximum and minimum values
of the integral are Omega
p

max
and Omega
p

min
, respectively. Omega
p
Cf
p
is a mechanical
loss due to friction.
The change of pressure from the pump is given by
(P1)
t
=
B
V
[Omega
p
D
p
(P1 P2) Cl
p
(P1 + P2) Cd
p
Q2] , (2.6)
where Omega
p
D
p
is the ow from the pump, (P1 P2) Cl
p
is a loss due to leakage
and (P1 + P2) Cd
p
is the discharge. Q2 is the ow into the pump and B/V is the bulk
modulus divided by the pressurised volume. In the same fashon as for the pump speed, also
27
this integral is given a start value and maximum and minimum values. The maximum and
minimum values are according to P1
max
and P1
min
.
The ow from the pump is given by the equation
Q1 = Omega
p
D
p
(P1 P2) Cl
p
, (2.7)
which can be understood quite easily. (P1P2) Cl
p
is a loss due to leakage. The increased
pump ow needs to be compensated for by regulating the motor displacement and/or in-
creasing the generator torque at the same time.
Pump torque and power are well known to engineers as
Torque
p
= (P1 P2) D
p
(2.8)
and
Power
p
= Torque
p
Omega
p
. (2.9)
2.3.2 PID-Controller
To assure that the generator runs at syncronous speed, the motor displacement is varied
according to deviations from the set motor speed. The PID-controller in gure 2.3 takes on
the dierence between actual motor speed and set speed. Proportional, integral and deriva-
tive gains are found using the build-in SIMULINK parameter estimator Ziegler-Nichols.
It is worth mentioning that both integral and derivative terms are based on the most recent
time-step only.
The saturation block keeps the output of the PID-controller within the values of D
m

min
and D
m

max
.
28
1
D_m
Saturation
P_gain
Omega_m_set
1
s
Integrator3
I_gain
D_gain du/dt
Derivative
Delta_
Omega_m
1
Omega_m

printed 24!Jun!2007 17:49 page 3/14
Kvalsund/Motor/DisplacementControl
/Users/magnusgulstad/Desktop/Skole/Diplom/Simulink/pidcontrolled/Kvalsund.mdl
Figure 2.3: PID-control applied to regulate the motor displacement.
2.3.3 Generator torque
To assure maximum eect from the power generator, its torque is adjusted based on the
pressure drop over the hydraulic motor and the motor displacement, i.e. the motor torque.
The relationship between the generator torque and motor torque can not be linear due to
the losses from friction and leakage. The gains found are based on experimental using the
SIMULINK model. As it turned out, the system stalled fast if the gains were set to high.
2.4 Results of Simulation
Dierent combinations of initial torque and step torque have been applied to see the sys-
tems reaction. For the simulations run, pipe pressures, pump and motor speed and motor
displacement were initialized in the same manner. For the results given in this report, the
pump starts o with an initial rotor torque of 20kNm. After 500 seconds an additional step
torque hits in and the pump is run by a total torque of 40kNm. The adjustment of the
generator torque seems to work quite well in this model, without stalling the pump.
The problem we are left with, is that the pump speed goes up to its maximum value.
There after the speed adjustment of the motor is fairly simple as the ow remains constant.
29
5000 30000 55000
0.8
1
1.2
1.4
1.6
1.8
2
2.2
2.4
2.6
2.8
Figure 2.4: Generator gains.
2.5 Conclusion
The gains of the PID controllers are working quite well for this SIMULINK model. However,
the friction, leakage and discharge coecients are not measured and they are of importance
for the dynamic response of the system, and therfore the PID gains need to be adjusted on
site.
As it turns out, this model might be a bit to limited to actually simulate the characteristics
of the rotor and pump. As it appears from the results, the pump will, under the given
conditions, accelerate up till the maximum pump speed. However, the rotor torque is very
much speed-dependent and the torque should decrease with increasing rotor speed. Hence,
another which also could be added to the motor torque is the pump speed. If the pump
speed goes up towards its upper limit, the generator torque should be increased - and vice
versa in the case where the pump speed approaches its minimum.
To be better able to measure the strength of this PID-controller, a step input to the pump
30
0 100 200 300 400 500 600 700 800 900 1000
0
500
000
500
2000
2500
Motor Torque
500
000
500
2000
2500
Generator Torque
Time offset: 0
Figure 2.5: Generator and motor torque.
31
0 100 200 300 400 500 600 700 800 900 1000
2
4
6
8
10
12
14
x 10
!3
Q_2
3
4
5
6
7
8
9
10
x 10
6
P_2
155
156
157
158
159
Omega_m
2
3
4
5
6
7
8
x 10
!5
D_m
Time offset: 0
Figure 2.6: Motor variables.
32
0 100 200 300 400 500 600 700 800 900 1000
!1
!0.5
0
0.5
1
1.5
2
2.5
Omega_m ! Omega_m_set
!1
!0.5
0
0.5
1
1.5
2
2.5
Omega_m!Omega_set
Time offset: 0
Figure 2.7: Deviation between actual motor speed and set speed.
0 100 200 300 400 500 600 700 800 900 1000
1
1.5
2
2.5
3
x 10
7
P2!Pump_out
0
5
10
15
x 10
6
P2_f!Pump!in
Time offset: 0
Figure 2.8: Pressures at pump inlet and pipe outlet.
33
0 100 200 300 400 500 600 700 800 900 1000
0
.005
0.01
.015
Q1
0.5
1
1.5
2
2.5
3
3.5
x 10
7
P1
0
1
2
3
4
5
6
7
Omega_p
0
1
2
3
4
5
x 10
4
Rotor_torque
Time offset: 0
Figure 2.9: Pump parameters.
34
0 100 200 300 400 500 600 700 800 900 1000
0
0.5
1
1.5
2
2.5
3
x 10
5
Power_m
0
500
1000
1500
2000
Torque_m
0
0.5
1
1.5
2
2.5
3
x 10
5
Power_p
0
1
2
3
4
5
x 10
4
Torque_p
Time offset: 0
Figure 2.10: Pump and motor torque and power.
35
speed might be used in stead. Not too many re-arrangements in the SIMULINK model are
necessary to do this.
The leakage terms used in the SIMULINK model are only dependent of pressure dier-
ences over the motor and pump. However, the viscosity of the hydraulic oil varies with the
temperature and this might also play an important role. The same argumentation yields for
the friction coecients.
36
Bibliography
[1] O. Bratland. Frequency-dependent Friction and Radial Kinetic Energy Variation in
Transient Pipe Flow. 5th International Conference on Pressure Surges, Hannover, F.R.
Germany, September 1986.
[2] L.F. Shampine. Solving Hyperbolic PDEs in MATLAB. Mathematics Department, South-
ern Methodist University, 2005.
[3] V. Streeter and E. B. Wylie. Fluid Transients. McGraw-Hill, 1978.
[4] F. M. White. Fluid Mechanics. McGraw-Hill, 2003.
[5] W. Zielke. Frequency Dependent Friction in Transient Pipe Flow. PhD thesis, The Uni-
versity of Michigan, University of Michigan, Department of Civil Engineering, December
1966.
37
List of Figures
1.1 Control volumes for the governing equations. . . . . . . . . . . . . . . . . . . 3
1.2 Velocity proles in a cross section of a circular pipe. U1 is a fully developped
Hagen-Poiseuille ow, while U2 is some ow prole resulting from variable
pressure gradients. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Pressure uctuations after instantaneous valve closure using the steady state
friction term. The dimensionless time is

= ta/L . . . . . . . . . . . . . . 4
1.4 Pressure uctuations after instantaneous valve closure using Zielkes friction
term. The dimensionless time is

= ta/L . . . . . . . . . . . . . . . . . . . 6
1.5 Zielkes weighting function as a function of the dimensionless time

= t/R
2
. 6
1.6 Bratlands plugs divided into cylindrical shells. . . . . . . . . . . . . . . . . . 7
1.7 Solving the Navier Stokes equation in time and space. . . . . . . . . . . . . . 8
1.8 Shear stress for uid ow in a pipe. . . . . . . . . . . . . . . . . . . . . . . . 10
1.9 Initialized velocity prole for steady-state laminar ow. . . . . . . . . . . . . 13
1.10 Velocity and pressure distribution throughout the pipe with variable pressure
at pipe outlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.11 Velocity prole as it evolves due to variable pressure at pipe outlet. . . . . . 15
1.12 Velocity and pressure distribution throughout the pipe with variable pressure
at pipe outlet. is here 0.00396. . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.13 Velocity prole as it evolves due to variable pressure at pipe outlet. is here
0.00396. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.14 Pressure at valve after immediate closure. . . . . . . . . . . . . . . . . . . . 19
1.15 Velocity prole in a cross section of the pipe after immediate closure of valve. 20
1.16 Pressure at valve after immediate closure using the method of characteristics
and (1.1) and (1.2) as governing equations. . . . . . . . . . . . . . . . . . . . 21
2.1 Design of the hydraulic gear to the wind turbine. . . . . . . . . . . . . . . . 24
2.2 Overview of the hydraulic system simultaion block diagram. . . . . . . . . . 27
2.3 PID-control applied to regulate the motor displacement. . . . . . . . . . . . 29
2.4 Generator gains. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.5 Generator and motor torque. . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.6 Motor variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.7 Deviation between actual motor speed and set speed. . . . . . . . . . . . . . 33
2.8 Pressures at pump inlet and pipe outlet. . . . . . . . . . . . . . . . . . . . . 33
38
2.9 Pump parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.10 Pump and motor torque and power. . . . . . . . . . . . . . . . . . . . . . . . 35
39
Appendix A
Flow Model
A.1 Matlab Code
A.1.1 parameters.m
1 rho = 950;
2 g = 9.81;
3 nu = 0.00003967;
4 a = 1324;
5 L = 36.08832;
6 NX = 50;
7 dt = (L/(NX
*
a));
8 T = 0.08385;
9 NT = round(T/dt);
10 NR = 50;
11 dx=L/NX;
12 D = 0.254;
13 R = D/2;
14 A = pi
*
R2;
15 dr = R/NR;
16 t = linspace(0,T,NT);
17 r = dr:dr:R;
18 x = linspace(0,L,NX);
19 V0 = 0.128;
20 H0 = 70;
21 HL = H0(32
*
nu/(D2
*
g))
*
V0
*
L;
A.1.2 initial.m
1 function vstart=initialflow
2
40
3 % The function "initialflow" computes the initial HagenPoiseuille flow
4 % profile (from r=0 to R) in the pipe assuming a noslip condition at the
5 % wall and axisymmetric flow steady state flow.
6
7 parameters;
8
9 for k = 1:NR
10 vstart(k) = (2
*
V0/R2)
*
(r(k))2+2
*
V0; % +0.1
*
rand(1);
11 end
12 vstart(NR)=0;
13
14 %
15
16 % figure1 = figure('PaperSize',[20.98 29.68]);
17 % axes('Parent',figure1,'XTickLabel',{'0 ','R/2','R'},...
18 % 'XTick',[0 0.0635 0.127]);
19 % box('on');
20 % hold('all');
21 % plot(r,vstart)
22 % title('Initial velocity profile','Interpreter','latex','FontSize',12);
23 % xlabel('Axial position r [m]','Interpreter','latex','FontSize',11);
24 % ylabel('u(r,0) [m/s]','Interpreter','latex','FontSize',11);
A.1.3 main.m
1 function H=main
2
3 % "main.m" simulates a pressure flow process where the pressure at the
4 % outlet varies with time. H, V and v are initialized for steady state
5 % conditions and the function "sd.m" is used to find velocity profiles
6 % according to the pressure distribution found by means of "ssd.m". The
7 % result of "average.m" is V. To save storage and computational time, the
8 % variable v should be cleared for long simulations. Figure 2 must in so
9 % case be commented out.
10
11 parameters;
12
13 H(1:NX,1) = linspace(H0,HL,NX)
14 V(1:NX,1) = 0.1280;
15 % V(NX,1) = 0;
16 for i=1:NX
17 v(i,:,1)=initialflow;
18 end
19
20
21 for j=2:NT
22
23 j
41
24 % H(:,j) = ssd(H(:,j1)',V(:,j1)');
25 H(:,j) = LaxWendroff(H(:,j1)',V(:,j1)');
26 H(NX,j)=70+10
*
sin(0.09
*
j);
27 H(1,j)=H0;
28 v(1,:,j) = sd(H(2,j)H(1,j),v(1,:,j1));
29 V(1,j) = average(v(1,:,j));
30
31 for i=2:NX1
32 H(i,j)=H(i,j)+shear(v(i,:,j));
33 v(i,:,j) = sd((H(i+1,j)H(i1,j))/2,v(i,:,j1));
34 V(i,j) = average(v(i,:,j));
35 end
36 v(NX,:,j) = sd((H(NX,j)H(NX1,j)),v(NX,:,j1));
37 V(NX,j)=average(v(NX,:,j));
38 % clear v(:,:,j1)
39 end
40
41 %
42
43 figure1 = figure('PaperType','a4letter','PaperSize',[20.98 29.68]);
44 subplot1 = subplot(2,1,1,'Parent',figure1,'XTickLabel',{'0','L/2','L'},...
45 'XTick',[0 18 36.1]);
46 box('on')
47 hold('all')
48 plot1 = plot(x,H(:,round(NT/4)),x,H(:,round(NT/2)),...
49 x,H(:,round(3
*
NT/4)),x,H(:,round(NT)));
50 title('Pressure','Interpreter','latex','FontSize',12);
51 xlabel('Axial position x [m]','Interpreter','latex',...
52 'HorizontalAlignment','center','FontSize',11);
53 ylabel('Head H [m]','Interpreter','latex','HorizontalAlignment',...
54 'center','FontSize',11);
55 set(plot1(1),'DisplayName',['Time=',num2str(dt
*
NT/4),'s']);
56 set(plot1(2),'DisplayName',['Time=',num2str(dt
*
NT/2),'s']);
57 set(plot1(3),'DisplayName',['Time=',num2str(dt
*
3
*
NT/4),'s']);
58 set(plot1(4),'DisplayName',['Time=',num2str(dt
*
NT),'s']);
59 legend(subplot1,'show');
60
61 subplot2 = subplot(2,1,2,'Parent',figure1,'XTickLabel',{'0','L/2','L'},...
62 'XTick',[0 18 36.1]);
63 box('on')
64 hold('all')
65 plot2 = plot(x,V(:,round(NT/4)),x,V(:,round(NT/2)),...
66 x,V(:,round(3
*
NT/4)),x,V(:,round(NT)));
67 set(plot2(1),'DisplayName',['Time=',num2str(dt
*
NT/4),'s']);
68 set(plot2(2),'DisplayName',['Time=',num2str(dt
*
NT/2),'s']);
69 set(plot2(3),'DisplayName',['Time=',num2str(dt
*
3
*
NT/4),'s']);
70 set(plot2(4),'DisplayName',['Time=',num2str(dt
*
NT),'s']);
71 title('Velocity','Interpreter','latex','FontSize',12);
72 xlabel('Axial position x [m]','Interpreter','latex','FontSize',11);
73 ylabel('Velocity V [m/s]','Interpreter','latex','HorizontalAlignment',...
74 'center','FontSize',11);
42
75 legend(subplot2,'show');
76
77 figure2 = figure('PaperType','a4letter','PaperSize',[20.98 29.68]);
78 axes3 = axes('Parent',figure2,'XTickLabel',{'0','R/2','R'},...
79 'XTick',[0 0.0635 0.127]);
80 box('on');
81 hold('all');
82 plot3 = plot(r,v(round(3
*
NX/4),:,round(NT/4)),...
83 r,v(round(3
*
NX/4),:,round(NT/2)),...
84 r,v(round(3
*
NX/4),:,round(3
*
NT/4)),...
85 r,v(round(3
*
NX/4),:,round(NT)));
86 title(['Velocity profile at x = ',num2str(3
*
L/4),...
87 ' as it evolves in time'],'Interpreter','latex',...
88 'FontSize',12);
89 xlabel('Radial position r [m]','Interpreter','latex',...
90 'HorizontalAlignment','center','FontSize',11);
91 ylabel('Velocity v [m/s]','Interpreter','latex',...
92 'HorizontalAlignment','center','FontSize',11);
93 set(plot3(1),'DisplayName',['Time=',num2str(dt
*
NT/4),'s']);
94 set(plot3(2),'DisplayName',['Time=',num2str(dt
*
NT/2),'s']);
95 set(plot3(3),'DisplayName',['Time=',num2str(dt
*
3
*
NT/4),'s']);
96 set(plot3(4),'DisplayName',['Time=',num2str(dt
*
NT),'s']);
97 legend(axes3,'show');
A.1.4 main2.m
1 function H = main2
2
3 % "main2.m" simulates a pressure flow process where a valve at the pipe
4 % outlet is shout immediately. H, V and v are initialized for steady state
5 % conditions and the function "sd.m" is used to find velocity profiles
6 % according to the pressure distribution found by means of "ssd.m". The
7 % result of "average.m" is V. To save storage and computational time, the
8 % variable v should be cleared for long simulations. Figure 2 must in so
9 % case be commented out.
10
11 parameters;
12
13 H(1:NX,1) = linspace(H0,HL,NX)
14 V(1:NX,1) = 0.1280;
15 V(NX,1) = 0;
16 for i=1:NX1
17 v(i,:,1)=initialflow;
18 end
19 v(NX,:,1)=0
*
initialflow;
20
21 for j=2:NT
22
43
23 j
24 % H(:,j) = ssd(H(:,j1)',V(:,j1)');
25 H(:,j) = LaxWendroff(H(:,j1)',V(:,j1)');
26 H(1,j)=H0;
27 v(1,:,j) = sd(H(2,j)H(1,j),v(1,:,j1));
28 V(1,j) = average(v(1,:,j));
29 for i =1:NX
30 H(i,j)=H(i,j)+shear(v(i,:,j));
31 end
32
33 for i=2:NX1
34 % v(i,:,j) = sd((H(i+1,j)H(i1,j))/2,v(i,:,j1));
35 v(i,:,j) = sd((H(i+1,j)H(i1,j))/2,v(i,:,j1));
36
37 V(i,j) = average(v(i,:,j));
38 end
39 v(NX,:,j) = 0
*
initialflow;
40 V(NX,j)=0;
41 % H(NX,j) = ssd(H(:,j1),V(:,j1))
42 end
43
44 %
45
46 figure1 = figure('PaperType','a4letter','PaperSize',[20.98 29.68]);
47 subplot1 = subplot(2,1,1,'Parent',figure1,'XTickLabel',{'0','L/2','L'},...
48 'XTick',[0 18 36.1]);
49 box('on')
50 hold('all')
51 plot1 = plot(x,H(:,round(NT/4)),x,H(:,round(NT/2)),...
52 x,H(:,round(3
*
NT/4)),x,H(:,round(NT)));
53 title('Pressure','Interpreter','latex','FontSize',12);
54 xlabel('Axial position x [m]','Interpreter','latex',...
55 'HorizontalAlignment','center','FontSize',11);
56 ylabel('Head H [m]','Interpreter','latex',...
57 'HorizontalAlignment','center','FontSize',11);
58 set(plot1(1),'DisplayName',['Time=',num2str(dt
*
NT/4),'s']);
59 set(plot1(2),'DisplayName',['Time=',num2str(dt
*
NT/2),'s']);
60 set(plot1(3),'DisplayName',['Time=',num2str(dt
*
3
*
NT/4),'s']);
61 set(plot1(4),'DisplayName',['Time=',num2str(dt
*
NT),'s']);
62 legend(subplot1,'show');
63
64 subplot2 = subplot(2,1,2,'Parent',figure1,'XTickLabel',{'0','L/2','L'},...
65 'XTick',[0 18 36.1]);
66 box('on')
67 hold('all')
68 plot2 = plot(x,V(:,round(NT/4)),x,V(:,round(NT/2)),...
69 x,V(:,round(3
*
NT/4)),x,V(:,round(NT)));
70 set(plot2(1),'DisplayName',['Time=',num2str(dt
*
NT/4),'s']);
71 set(plot2(2),'DisplayName',['Time=',num2str(dt
*
NT/2),'s']);
72 set(plot2(3),'DisplayName',['Time=',num2str(dt
*
3
*
NT/4),'s']);
73 set(plot2(4),'DisplayName',['Time=',num2str(dt
*
NT),'s']);
44
74 title('Velocity','Interpreter','latex','FontSize',12);
75 xlabel('Axial position x [m]','Interpreter','latex','FontSize',11);
76 ylabel('Velocity V [m/s]','Interpreter','latex','HorizontalAlignment',...
77 'center','FontSize',11);
78 legend(subplot2,'show');
79
80 figure2 = figure('PaperType','a4letter','PaperSize',[20.98 29.68]);
81 axes3 = axes('Parent',figure2,'XTickLabel',{'0','R/2','R'},...
82 'XTick',[0 0.0635 0.127]);
83 box('on');
84 hold('all');
85 plot3 = plot(r,v(round(3
*
NX/4),:,round(NT/4)),...
86 r,v(round(3
*
NX/4),:,round(NT/2)),...
87 r,v(round(3
*
NX/4),:,round(3
*
NT/4)),...
88 r,v(round(3
*
NX/4),:,round(NT)));
89 title(['Velocity profile at x = ',num2str(3
*
L/4),...
90 ' as it evolves in time'],'Interpreter','latex','FontSize',12);
91 xlabel('Radial position r [m]','Interpreter','latex',...
92 'HorizontalAlignment','center','FontSize',11);
93 ylabel('Velocity v [m/s]','Interpreter','latex',...
94 'HorizontalAlignment','center','FontSize',11);
95 set(plot3(1),'DisplayName',['Time=',num2str(dt
*
NT/4),'s']);
96 set(plot3(2),'DisplayName',['Time=',num2str(dt
*
NT/2),'s']);
97 set(plot3(3),'DisplayName',['Time=',num2str(dt
*
3
*
NT/4),'s']);
98 set(plot3(4),'DisplayName',['Time=',num2str(dt
*
NT),'s']);
99 legend(axes3,'show');
100
101 figure3 = figure('PaperType','a4letter','PaperSize',[20.98 29.68]);
102 axes4 = axes('Parent',figure3,'XTickLabel',...
103 {num2str(0
*
dt
*
NT),num2str(dt
*
NT/2),num2str(dt
*
NT)},...
104 'XTick',[0 NT/2 NT]);
105 box('on');
106 hold('all');
107 plot4 = plot(1:NT,H(NX,:));
108 title('Head at valve as it evolves in time','Interpreter','latex',...
109 'FontSize',12);
110 xlabel('Time t [s]','Interpreter','latex','HorizontalAlignment','center',...
111 'FontSize',11);
112 ylabel('Head H [m]','Interpreter','latex','HorizontalAlignment','center',...
113 'FontSize',11);
A.1.5 sd.m
1 function Vdt=sd(H,u)
2
3 % The function "sd(H,u)" takes on a pressure drop and a velocity
4 % profile. It solves the equation of motion for parallel
5 % axisymmetric flow for an incompressible fluidfor this velocity
45
6 % profile and the associated pressure drop axisymmetric flow for
7 % an incompressible fluid. The convective term is found using
8 % "conv(u)" and the laplacian is found using "lap(u)". The dynamic
9 % system is then solved using ode45 from time 0 to time dt.
10
11 %
12
13 global dr
14 global nu
15 global rho
16 global NX
17 global dx
18 global px
19
20 parameters;
21
22 px = H
*
rho
*
g;
23
24 [t,Vt] = ode45(@mfun,[0 dt],u);
25
26 n = length(Vt(:,1));
27 Vt(:,end)=0;
28 Vdt = Vt(end,:);
29 Vdt(end)=0;
30
31 %
32
33 figure1 = figure('PaperType','a4letter','PaperSize',[20.98 29.68]);
34
35 subplot1 = subplot(2,1,1,'Parent',figure1,'XTickLabel',...
36 {'0 ','R/2','R'},'XTick',[0 0.0635 0.127]);
37 view([160.5 42]);
38 grid('on');
39 hold('all');
40
41 surf(r,t,Vt,'Parent',subplot1,'EdgeColor','none');
42
43 title('Velocity profile as it evolves in time','Interpreter','latex',...
44 'FontSize',12);
45 xlabel('Radial position r [m]','Interpreter','latex',...
46 'HorizontalAlignment','right','FontSize',11);
47 ylabel('Time t [s]','Interpreter','latex',...
48 'HorizontalAlignment','right','FontSize',11);
49 zlabel('Velocity v [m/s]','Interpreter','latex',...
50 'HorizontalAlignment','right','FontSize',11);
51
52 subplot2 = subplot(2,1,2,'Parent',figure1,'XTickLabel',...
53 {'0 ','R/2','R'},'XTick',[0 0.0635 0.127]);
54 box('on');
55 hold('all');
56
46
57 plot1 = plot(r,u,r,Vdt);
58
59 set(plot1(1),'DisplayName',['Time=',num2str(dt
*
0),'s']);
60 set(plot1(2),'DisplayName',['Time=',num2str(dt
*
1),'s']);
61
62 title('Velocity profile','Interpreter','latex','FontSize',11);
63 xlabel('Radial position r [m]','Interpreter','latex','FontSize',11);
64 ylabel('Velocity v [m/s]');
65 legend(subplot2,'show');
66
67 %
68
69 function fv = mfun(t,u)
70 global nu
71 global rho
72 global NX
73 global px
74
75 fv = u
*
0;
76 fv = px/rho+nu
*
conv(u)+nu
*
lap(u);
77
78 %
79
80 function Cv = conv(u);
81 global dr
82 n=length(u);
83
84 Cv = u
*
0;
85 for i = 2:n1
86 Cv(i) = (u(i+1)u(i1))/(2
*
dr
*
(i1)
*
dr);
87 end
88 Cv(n) = (u(n1))/(2
*
dr
*
(n1)
*
dr);
89
90 %
91
92 function Av = lap(u)
93 global dr
94 n = length(u);
95
96
97 Av = u
*
0;
98 Av(1) = 2
*
(u(2)u(1))/dr2;
99 for i = 2:n1
100 Av(i) = (u(i1)2
*
u(i)+u(i+1))/dr2;
101 end
102 Av(n) = 2
*
(u(n1))/dr2;
A.1.6 ssd.m
47
1 function hdt=sdd(h,v)
2
3 % The function "sdd(h,v)" takes on the pressure and flow distribution
4 % in the axial direction of the pipe and solves the equation of
5 % continuity by means of ode24. The spacial derivatives are found
6 % using the function "der(u)".
7 global NX
8 global dx
9 global u
10 global dvdx
11 global x
12 u=v;
13 parameters;
14 dvdx=(a2/g)
*
(deru(u));
15
16
17 [t,ht] = ode45(@mfun,[0 dt],h);
18
19 hdt = (ht(end,:))';
20 hdt(1)=H0;
21 % hdt(end)=h(end);
22
23 function fv = mfun(t,h)
24 parameters;
25 global u
26 global dvdx
27 fv = h
*
0;
28 fv= uderh(h,u)dvdx';
29
30 %
31
32 function Cv = deru(u);
33 parameters;
34 n=length(u);
35
36 Cv = u
*
0;
37 Cv(1) = (u(2)u(1))/dx;
38 for i = 2:n1
39 Cv(i) = (u(i+1)u(i1))/(2
*
dx);
40 end
41 Cv(n) = (u(n)u(n1))/(dx);
42
43 %
44
45 function vh = uderh(h,u);
46 parameters;
47 n=length(u);
48
49 vh = h
*
0;
50 vh(1) = u(1)
*
(h(2)h(1))/(dx);
51 for i = 2:n1
48
52 vh(i) = u(i)
*
(h(i+1)h(i1))/(2
*
dx);
53 end
54 vh(n) = u(n)
*
(h(n)h(n1))/(dx);
55
56 %
A.1.7 LaxWendro.m
1 function Hdt = LaxWendroff(h,u)
2
3 parameters;
4
5 Hdt = hderh(h,u)+flux(h,u)+(a2/g)
*
(derua(u)+derub(u));
6
7
8
9
10 %
11
12 function dua = derua(u);
13 parameters;
14 n=length(u);
15
16 dua = u
*
0;
17 dua(1) = (dt/(dx))
*
(u(2)u(1));
18 for i = 2:n1
19 dua(i) = (dt/(2
*
dx))
*
(u(i+1)u(i1));
20 end
21 dua(n) = (dt/(dx))
*
(u(n)u(n1));
22
23 %
24
25 function dub = derub(u);
26 parameters;
27 n=length(u);
28
29 dub = u
*
0;
30 dub(1) = (dt2/(dx2))
*
(u(2)u(1));
31 for i = 2:n1
32 dub(i) = (dt2/(2
*
dx2))
*
(u(i+1)2
*
u(i)+u(i1));
33 end
34 dub(n) = (dt2/(dx2))
*
(u(n)u(n1));
35
36 %
37
38 function fl = flux(h,u);
39 parameters;
40 n=length(u);
49
41
42 fl = h
*
0;
43 fl(1) = ((u(1)2
*
dt2)/(2
*
dx2))
*
2
*
(h(2)h(1));
44 for i = 2:n1
45 fl(i) = u(i)2
*
dt2/(2
*
dx2)
*
(h(i+1)2
*
h(i)+h(i1));
46 end
47 fl(n) = (u(n)2
*
dt2/(2
*
dx2))
*
(h(n)h(n1));
48
49 %
50
51 function udh = derh(h,u);
52 parameters;
53 n=length(u);
54
55 udh = h
*
0;
56 udh(1) = (u(1)
*
dt/dx)
*
(h(2)h(1));
57 for i = 2:n1
58 udh(i) = ((u(i)
*
dt)/(2
*
dx))
*
(h(i+1)h(i1));
59 end
60 udh(n) = (u(n)
*
dt/dx)
*
(h(n)h(n1));
A.1.8 shear.m
1 function h = shear(u)
2
3 % The function "shear(u)" takes on a velocity profile and
4 % computes the pressure drop over each sylinder shell by means
5 % of the shear stress between the shells. The average pressure
6 % drop/headloss for the whole crossection of the pipe is found
7 % after computing the contribution from each sylinder shell.
8
9 parameters;
10
11 n = length(u);
12
13 p=0;
14 for k=1:NR1
15 p=p+4
*
nu
*
rho
*
(dr2
*
dx/R4)
*
k2
*
(u(k+1)u(k));
16 end
17
18 h=p/(rho
*
g);
A.1.9 average.m
1 function AvVdt = average(Vdt)
50
2
3 parameters;
4
5 n = length(Vdt);
6
7 AvVdt=0;
8 for k = 1:n
9 AvVdt=AvVdt+2
*
(k/n2)
*
Vdt(k);
10 end
51
Appendix B
Simulink Model
B.1 paramters.m
1 % Pipe
2
3 L = 30;
4 A = 0.05;
5 B = 1.5e9;
6
7
8 % Rotor
9
10 Inertia rt = 100000;
11
12 Torque rt max=310e5
*
1.800679e3;
13 Torque rt min=40e5
*
1.800679e3;
14
15 Torque rt = 20000;
16 Step torque rt = 20000;
17 Step time=500;
18
19
20 % Pump
21
22 Omega p min = 1.7438;
23 Omega p max = 5.7596;
24 Omega p start = 4.1888;
25 D p = 1.800679e3;
26 Cl p = 7.5e12;
27 Cf p = 0.01;
28 Cd p = 7.5e12;
29
30
31 % Motor
52
32
33 Omega m start = 159;
34 Omega m set = 157;
35 Rotary Inertia m = 1500;
36
37 D m min = 2.0e5;
38 D m max = 8.0e5;
39
40 Cl m = 7.5e12;
41 Cd m = 7.5e12;
42 C m = .005;
43
44
45 % Generator
46 Torque vector = 1e3
*
[5 10 15 20 25 30 35 40 45 50 55];
47 Gain vector = [2.7 2.2 1.9 1.7 1.5 1.30 1.25 1.15 1.05 .95 .87];
48
49
50 % PID control 40.000
51 P gain = 9.7286e006;
52 I gain = 2.5e007;
53 D gain = 4.9985e5;
54
55
56 figure1 = figure('PaperSize',[20.98 29.68]);
57
58 axes('Parent',figure1,'XTickLabel',{'5000','30000','55000'},...
59 'XTick',[5000 3e+004 5.5e+004]);
60 box('on');
61 hold('all');
62
63 plot(Torque vector,Gain vector);
64 xlabel('Rotor torque','Interpreter','latex','FontSize',11);
65 ylabel('Gain','Interpreter','latex','FontSize',11);
66 title('Generator gains','Interpreter','latex','FontSize',12);
B.2 Kvalsund.mdl
53
4
T
o
r
q
u
e
_
m
3
P
o
w
e
r
_
m
2
P
o
w
e
r
_
p
1
T
o
r
q
u
e
_
p
T
o
r
q
u
e
_
a
n
d
_
P
o
w
e
r
P
2
_
f
P
1
O
m
e
g
a
_
p
T
o
r
q
u
e
_
p
P
o
w
e
r
_
p
P
u
m
p
_
T
o
r
q
u
e
_
a
n
d
_
P
o
w
e
r
P
2
_
f
V Q
2
_
f
P
1
O
m
e
g
a
_
p
Q
1
P
u
m
p
D
_
m
V
P
r
e
s
s
u
r
i
s
e
d
_
V
o
l
u
m
e
P
r
e
s
s
u
r
e
s
Q
2
P
2
Q
2
_
f
P
2
_
f
P
i
p
e
_
F
l
o
w
_
M
o
d
e
l
_
r
e
t
u
r
n
P
1
Q
1
P
1
_
f
Q
1
_
f
P
i
p
e
_
F
l
o
w
_
M
o
d
e
l
V N
a
t
u
r
a
l
_
F
r
e
q
u
e
n
c
y
_
a
n
d
_
D
a
m
p
i
n
g
P
1
_
f
D
_
m
P
2
O
m
e
g
a
_
m
T
o
r
q
u
e
_
m
P
o
w
e
r
_
m
M
o
t
o
r
_
T
o
r
q
u
e
_
a
n
d
_
P
o
w
e
r
P
1
_
f
Q
1
_
f
V
D
_
m
P
2
O
m
e
g
a
_
m
Q
2
M
o
t
o
r

p
r
i
n
t
e
d


2
4
!
J
u
n
!
2
0
0
7


1
7
:
4
9
p
a
g
e

1
/
1
4
K
v
a
l
s
u
n
d
/
U
s
e
r
s
/
m
a
g
n
u
s
g
u
l
s
t
a
d
/
D
e
s
k
t
o
p
/
S
k
o
l
e
/
D
i
p
l
o
m
/
S
i
m
u
l
i
n
k
/
p
i
d
c
o
n
t
r
o
l
l
e
d
/
K
v
a
l
s
u
n
d
.
m
d
l
54
4
Q
2
3
O
m
e
g
a
_
m
2
P
2
1
D
_
m
D
_
m
P
1
_
f
P
2
O
m
e
g
a
_
m
S
p
e
e
d
M
o
t
o
r

V
a
r
i
a
b
l
e
s
D
_
m
P
1
_
f
V Q
1
_
f
O
m
e
g
a
_
m
P
2
Q
2
F
l
o
w
O
m
e
g
a
_
m
D
_
m
D
i
s
p
l
a
c
e
m
e
n
t
C
o
n
t
r
o
l
3 V 2
Q
1
_
f
1
P
1
_
f

p
r
i
n
t
e
d


2
4
!
J
u
n
!
2
0
0
7


1
7
:
4
9
p
a
g
e

2
/
1
4
K
v
a
l
s
u
n
d
/
M
o
t
o
r
/
U
s
e
r
s
/
m
a
g
n
u
s
g
u
l
s
t
a
d
/
D
e
s
k
t
o
p
/
S
k
o
l
e
/
D
i
p
l
o
m
/
S
i
m
u
l
i
n
k
/
p
i
d
c
o
n
t
r
o
l
l
e
d
/
K
v
a
l
s
u
n
d
.
m
d
l
55
1
D
_
m
S
a
t
u
r
a
t
i
o
n
P
_
g
a
i
n
O
m
e
g
a
_
m
_
s
e
t
1 s
I
n
t
e
g
r
a
t
o
r
3
I
_
g
a
i
n
D
_
g
a
i
n
d
u
/
d
t
D
e
r
i
v
a
t
i
v
e
D
e
l
t
a
_
O
m
e
g
a
_
m
1
O
m
e
g
a
_
m

p
r
i
n
t
e
d


2
4
!
J
u
n
!
2
0
0
7


1
7
:
4
9
p
a
g
e

3
/
1
4
K
v
a
l
s
u
n
d
/
M
o
t
o
r
/
D
i
s
p
l
a
c
e
m
e
n
t
C
o
n
t
r
o
l
/
U
s
e
r
s
/
m
a
g
n
u
s
g
u
l
s
t
a
d
/
D
e
s
k
t
o
p
/
S
k
o
l
e
/
D
i
p
l
o
m
/
S
i
m
u
l
i
n
k
/
p
i
d
c
o
n
t
r
o
l
l
e
d
/
K
v
a
l
s
u
n
d
.
m
d
l
56
2
Q
2
1
P
2
1 s
I
n
t
e
g
r
a
t
o
r
C
d
_
m
C
l
_
m
B
5
O
m
e
g
a
_
m
4
Q
1
_
f
3 V 2
P
1
_
f
1
D
_
m

p
r
i
n
t
e
d


2
4
!
J
u
n
!
2
0
0
7


1
7
:
4
9
p
a
g
e

4
/
1
4
K
v
a
l
s
u
n
d
/
M
o
t
o
r
/
F
l
o
w
/
U
s
e
r
s
/
m
a
g
n
u
s
g
u
l
s
t
a
d
/
D
e
s
k
t
o
p
/
S
k
o
l
e
/
D
i
p
l
o
m
/
S
i
m
u
l
i
n
k
/
p
i
d
c
o
n
t
r
o
l
l
e
d
/
K
v
a
l
s
u
n
d
.
m
d
l
57
1
O
m
e
g
a
_
m
T
o
r
q
u
e
_
r
t
T
o
r
q
u
e
_
r
t
T
o
r
q
u
e
_
g
e
n
1
T
o
r
q
u
e
_
g
e
n
S
w
i
t
c
h
S
t
e
p
2
S
t
e
p
1
=
=
R
e
l
a
t
i
o
n
a
l
O
p
e
r
a
t
o
r
L
o
o
k
u
p

T
a
b
l
e
1 s
G
e
n
e
r
a
t
o
r
_
g
a
i
n
s
G
e
n
e
r
a
t
o
r
_
a
n
d
_
M
o
t
o
r
_
T
o
r
q
u
e
C
_
m
R
o
t
a
r
y
_
I
n
e
r
t
i
a
_
m
3
P
2
2
P
1
_
f
1
D
_
m

p
r
i
n
t
e
d


2
4
!
J
u
n
!
2
0
0
7


1
7
:
4
9
p
a
g
e

5
/
1
4
K
v
a
l
s
u
n
d
/
M
o
t
o
r
/
S
p
e
e
d
/
U
s
e
r
s
/
m
a
g
n
u
s
g
u
l
s
t
a
d
/
D
e
s
k
t
o
p
/
S
k
o
l
e
/
D
i
p
l
o
m
/
S
i
m
u
l
i
n
k
/
p
i
d
c
o
n
t
r
o
l
l
e
d
/
K
v
a
l
s
u
n
d
.
m
d
l
58
2
P
o
w
e
r
_
m
1
T
o
r
q
u
e
_
m
M
o
t
o
r

T
o
r
q
u
e
a
n
d

P
o
w
e
r
4
O
m
e
g
a
_
m
3
P
2
2
D
_
m
1
P
1
_
f

p
r
i
n
t
e
d


2
4
!
J
u
n
!
2
0
0
7


1
7
:
4
9
p
a
g
e

6
/
1
4
K
v
a
l
s
u
n
d
/
M
o
t
o
r
_
T
o
r
q
u
e
_

a
n
d
_
P
o
w
e
r
/
U
s
e
r
s
/
m
a
g
n
u
s
g
u
l
s
t
a
d
/
D
e
s
k
t
o
p
/
S
k
o
l
e
/
D
i
p
l
o
m
/
S
i
m
u
l
i
n
k
/
p
i
d
c
o
n
t
r
o
l
l
e
d
/
K
v
a
l
s
u
n
d
.
m
d
l
59
N
a
t
u
r
a
l

F
r
e
q
u
e
n
c
y
a
n
d

d
a
m
p
i
n
g
u
2
u
2
s
q
r
t
C
f
_
p
D
_
p
I
n
e
r
t
i
a
_
r
t
C
l
_
p
1
/
2
B
I
n
e
r
t
i
a
_
r
t
D
_
p
1 V

p
r
i
n
t
e
d


2
4
!
J
u
n
!
2
0
0
7


1
7
:
4
9
p
a
g
e

7
/
1
4
K
v
a
l
s
u
n
d
/
N
a
t
u
r
a
l
_
F
r
e
q
u
e
n
c
y
_

a
n
d
_
D
a
m
p
i
n
g
/
U
s
e
r
s
/
m
a
g
n
u
s
g
u
l
s
t
a
d
/
D
e
s
k
t
o
p
/
S
k
o
l
e
/
D
i
p
l
o
m
/
S
i
m
u
l
i
n
k
/
p
i
d
c
o
n
t
r
o
l
l
e
d
/
K
v
a
l
s
u
n
d
.
m
d
l
60
2
Q
1
_
f
1
P
1
_
f
2
Q
1
1
P
1

p
r
i
n
t
e
d


2
4
!
J
u
n
!
2
0
0
7


1
7
:
4
9
p
a
g
e

8
/
1
4
K
v
a
l
s
u
n
d
/
P
i
p
e
_
F
l
o
w
_
M
o
d
e
l
/
U
s
e
r
s
/
m
a
g
n
u
s
g
u
l
s
t
a
d
/
D
e
s
k
t
o
p
/
S
k
o
l
e
/
D
i
p
l
o
m
/
S
i
m
u
l
i
n
k
/
p
i
d
c
o
n
t
r
o
l
l
e
d
/
K
v
a
l
s
u
n
d
.
m
d
l
61
2
P
2
_
f
1
Q
2
_
f
2
P
2
1
Q
2

p
r
i
n
t
e
d


2
4
!
J
u
n
!
2
0
0
7


1
7
:
4
9
p
a
g
e

9
/
1
4
K
v
a
l
s
u
n
d
/
P
i
p
e
_
F
l
o
w
_
M
o
d
e
l
_
r
e
t
u
r
n
/
U
s
e
r
s
/
m
a
g
n
u
s
g
u
l
s
t
a
d
/
D
e
s
k
t
o
p
/
S
k
o
l
e
/
D
i
p
l
o
m
/
S
i
m
u
l
i
n
k
/
p
i
d
c
o
n
t
r
o
l
l
e
d
/
K
v
a
l
s
u
n
d
.
m
d
l
62
1 V
L
L
e
n
g
t
h
A
C
r
o
s
s
e
c
t
i
o
n
1
/
2
D
_
p
1
D
_
m

p
r
i
n
t
e
d


2
4
!
J
u
n
!
2
0
0
7


1
7
:
4
9
p
a
g
e

1
0
/
1
4
K
v
a
l
s
u
n
d
/
P
r
e
s
s
u
r
i
s
e
d
_
V
o
l
u
m
e
/
U
s
e
r
s
/
m
a
g
n
u
s
g
u
l
s
t
a
d
/
D
e
s
k
t
o
p
/
S
k
o
l
e
/
D
i
p
l
o
m
/
S
i
m
u
l
i
n
k
/
p
i
d
c
o
n
t
r
o
l
l
e
d
/
K
v
a
l
s
u
n
d
.
m
d
l
63
3
Q
1
2
O
m
e
g
a
_
p
1
P
1
P
2
_
f
P
1
R
o
t
o
r
_
t
o
r
q
u
e
O
m
e
g
a
_
p
S
p
e
e
d
P
u
m
p

P
a
r
a
m
e
t
e
r
s
O
m
e
g
a
_
p
P
2
_
f
V Q
2
_
f
P
1
Q
1
F
l
o
w
3
Q
2
_
f
2 V 1
P
2
_
f

p
r
i
n
t
e
d


2
4
!
J
u
n
!
2
0
0
7


1
7
:
4
9
p
a
g
e

1
1
/
1
4
K
v
a
l
s
u
n
d
/
P
u
m
p
/
U
s
e
r
s
/
m
a
g
n
u
s
g
u
l
s
t
a
d
/
D
e
s
k
t
o
p
/
S
k
o
l
e
/
D
i
p
l
o
m
/
S
i
m
u
l
i
n
k
/
p
i
d
c
o
n
t
r
o
l
l
e
d
/
K
v
a
l
s
u
n
d
.
m
d
l
64
2
Q
1
1
P
1
1 s
I
n
t
e
g
r
a
t
o
r
D
_
p
C
d
_
p
C
l
_
p
B
4
Q
2
_
f
3 V 2
P
2
_
f
1
O
m
e
g
a
_
p

p
r
i
n
t
e
d


2
4
!
J
u
n
!
2
0
0
7


1
7
:
4
9
p
a
g
e

1
2
/
1
4
K
v
a
l
s
u
n
d
/
P
u
m
p
/
F
l
o
w
/
U
s
e
r
s
/
m
a
g
n
u
s
g
u
l
s
t
a
d
/
D
e
s
k
t
o
p
/
S
k
o
l
e
/
D
i
p
l
o
m
/
S
i
m
u
l
i
n
k
/
p
i
d
c
o
n
t
r
o
l
l
e
d
/
K
v
a
l
s
u
n
d
.
m
d
l
65
2
O
m
e
g
a
_
p
1
R
o
t
o
r
_
t
o
r
q
u
e
T
o
r
q
u
e
_
r
t
T
o
r
q
u
e
_
r
t
S
t
e
p
1 s
I
n
t
e
g
r
a
t
o
r
C
f
_
p
I
n
e
r
t
i
a
_
r
t
D
_
p
A
d
d
2
2
P
1
1
P
2
_
f

p
r
i
n
t
e
d


2
4
!
J
u
n
!
2
0
0
7


1
7
:
4
9
p
a
g
e

1
3
/
1
4
K
v
a
l
s
u
n
d
/
P
u
m
p
/
S
p
e
e
d
/
U
s
e
r
s
/
m
a
g
n
u
s
g
u
l
s
t
a
d
/
D
e
s
k
t
o
p
/
S
k
o
l
e
/
D
i
p
l
o
m
/
S
i
m
u
l
i
n
k
/
p
i
d
c
o
n
t
r
o
l
l
e
d
/
K
v
a
l
s
u
n
d
.
m
d
l
66
2
P
o
w
e
r
_
p
1
T
o
r
q
u
e
_
p
P
u
m
p

T
o
r
q
u
e
a
n
d

P
o
w
e
r
D
_
p
3
O
m
e
g
a
_
p
2
P
1
1
P
2
_
f

p
r
i
n
t
e
d


2
4
!
J
u
n
!
2
0
0
7


1
7
:
4
9
p
a
g
e

1
4
/
1
4
K
v
a
l
s
u
n
d
/
P
u
m
p
_
T
o
r
q
u
e
_

a
n
d
_
P
o
w
e
r
/
U
s
e
r
s
/
m
a
g
n
u
s
g
u
l
s
t
a
d
/
D
e
s
k
t
o
p
/
S
k
o
l
e
/
D
i
p
l
o
m
/
S
i
m
u
l
i
n
k
/
p
i
d
c
o
n
t
r
o
l
l
e
d
/
K
v
a
l
s
u
n
d
.
m
d
l
67

You might also like