WEC-Sim User Manual

Add to my manuals
50 Pages

advertisement

WEC-Sim User Manual | Manualzz
WEC-Sim
User Manual
Version 1.0
June 30, 2014
License
Copyright 2014 the National Renewable Energy Laboratory and Sandia Corporation
Licensed under the Apache License, Version 2.0 (the ”License”); you may not use this file
except in compliance with the License. You may obtain a copy of the License at:
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an ”AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS
OF ANY KIND, either express or implied. See the License for the specific language governing
permissions and limitations under the License.
1
Acknowledgments
WEC-Sim is a multilaboratory project sponsored by the U.S. Department of Energy’s Wind
and Water Power Technologies Office. WEC-Sim code development is a collaboration between the National Renewable Energy Laboratory (NREL)1 and Sandia National Laboratories (SNL)2 .
Principal Developers
Kelley Ruehl (SNL)
Carlos Michelen (SNL)
Michael Lawson (NREL)
Yi-Hsiang Yu (NREL)
Contributors
Nathan Tom (NREL)
Sam Kanner (University of
California at Berkeley)
Adam Nelessen (Georgia Tech)
Chris McComb (Carnegie
Mellon University)
1
The National Renewable Energy Laboratory is a national laboratory of the U.S. Department of Energy,
Office of Energy Efficiency and Renewable Energy, operated by the Alliance for Sustainable Energy, LLC.
under contract No. DE-AC36-08GO28308.
2
Sandia National Laboratories is a multi-program laboratory managed and operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin Corporation, for the U.S. Department of Energys
National Nuclear Security Administration under contract DE-AC04-94AL85000.
2
Contents
1 Introduction
5
2 Theory
2.1 Introduction . . . . . . . . . . . . . . . . . . . . .
2.2 Boundary Element Method . . . . . . . . . . . . .
2.3 Coordinate System in WEC-Sim . . . . . . . . . .
2.4 Time-Domain Numerical Method . . . . . . . . .
2.4.1 Sinusoidal Steady-State Response Scenario
2.4.2 Convolution Integral Formulation . . . . .
2.4.3 Wave Spectrum . . . . . . . . . . . . . . .
2.4.4 Ramp Function . . . . . . . . . . . . . . .
2.5 Power Take-off Forces . . . . . . . . . . . . . . . .
2.6 Mooring Forces . . . . . . . . . . . . . . . . . . .
2.7 Viscous Drag . . . . . . . . . . . . . . . . . . . .
3 Getting Started
3.1 Downloading and Installing WEC-Sim .
3.2 Running WEC-Sim . . . . . . . . . . . .
3.2.1 File Structure Overview . . . . .
3.2.2 Steps To Run WEC-Sim . . . . .
3.2.3 Simulation Outputs . . . . . . . .
3.2.4 Postprocessing using User Defined
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Functions
4 Library Structure
4.1 Library Structure Overview . . . . . . . .
4.2 Body Elements Sublibrary . . . . . . . . .
4.2.1 Rigid Body Block . . . . . . . . .
4.3 Frames Sublibrary . . . . . . . . . . . . .
4.3.1 Global Reference Frame Block .
4.4 Constraints Sublibrary . . . . . . . . . .
4.4.1 Floating Block . . . . . . . . . . .
4.4.2 Heave Block . . . . . . . . . . . . .
4.4.3 Surge Block . . . . . . . . . . . . .
4.4.4 Pitch Block . . . . . . . . . . . . .
4.4.5 Fixed Block . . . . . . . . . . . . .
4.5 PTOs Sublibrary . . . . . . . . . . . . . . .
4.5.1 Translation PTO (Local Z) Block .
4.5.2 Translation PTO (Local X) Block .
4.5.3 Rotational PTO (Local RY) Block
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
(UDFs)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
6
7
7
8
8
9
11
12
13
13
.
.
.
.
.
.
14
14
15
15
16
18
19
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
20
20
20
21
21
21
22
23
23
24
24
24
24
24
25
25
4.6
Other SimMechanics Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
5 Code Structure and Input
Parameters
5.1 Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 WEC-Sim Input File . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1 Specification of Simulation Parameters . . . . . . . . . . .
5.2.2 Specification of Body Parameters . . . . . . . . . . . . . .
5.2.3 Specification of Wave Parameters . . . . . . . . . . . . . .
5.2.4 Specification of Power Take-Off and Constraint Parameters
5.3 WEC-Sim Code . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1 simulationClass . . . . . . . . . . . . . . . . . . . . . . .
5.3.2 bodyClass . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.3 waveClass . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.4 constraintClass . . . . . . . . . . . . . . . . . . . . . . .
5.3.5 ptoClass . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
27
27
27
27
29
29
29
29
30
32
33
34
6 Applications
6.1 Reference Model 3 Two-Body Point Absorber
6.1.1 Geometry Definition . . . . . . . . . .
6.1.2 Modeling RM3 in WEC-Sim . . . . . .
6.2 Oscillating Surge-Pitch Device . . . . . . . . .
6.2.1 Geometry Definition . . . . . . . . . .
6.2.2 Modeling OSWEC in WEC-Sim . . . .
6.3 WEC-Sim Test Cases . . . . . . . . . . . . . .
6.3.1 RM3 Test Case . . . . . . . . . . . . .
6.3.2 OSWEC Test Case . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
35
35
36
40
40
40
45
45
47
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Chapter 1:
Introduction
WEC-Sim (Wave Energy Converter SIMulator) is an open source wave energy converter
(WEC) simulation tool. The code is developed in MATLAB and Simulink using the multibody dynamics solver SimMechanics. WEC-Sim has the ability to model devices that are
comprised of rigid bodies, power-take-off (PTO) systems, and mooring systems. Hydrodynamic forces are modeled using a radiation and diffarction method, and the system dynamics
is performed in the time domain by solving the governing WEC equations of motion in 6
degrees of freedom (DOF).
In this user manual, the theory of WEC-Sim is described in Chapter 2. The installation of
MATLAB and WEC-Sim and how to run WEC-Sim is described in Chapter 3. The predeveloped WEC component library structure is presented in Chapter 4. The code WECSim structure and the input parameters for running WEC-Sim are described in Chapter 5.
Finally, the application of WEC-Sim to model a point absorber and a oscillating surge device
is presented in Chapter 6.
5
Chapter 2:
2.1
Theory
Introduction
Modeling a WEC involves the interaction between the incident waves, device motion, PTO
mechanism, and mooring (Figure 2.1). WEC-Sim uses a radiation and diffraction method
[1, 2] to predict power performance and design optimization. The radiation and diffraction
method generally obtains the hydrodynamic forces from a frequency-domain boundary element method (BEM) solver using linear coefficients to solve the system dynamics in the
time domain.
Figure 2.1: Methodology for WEC-Sim
2.2
Boundary Element Method
A common approach to determining the hydrodynamic forces is to presume that they are
the sum of incident, radiated, and diffracted wave components. These forcing components
are modeled using linear coefficients ideally obtained from a frequency-domain potential flow
BEM solver (e.g., WAMIT [3], AWQA-FER [4], and Nemoh [5]). The BEM solutions are
obtained by solving the Laplace equation for the velocity potential, which assumes the flow
is inviscid, incompressible, and irrotational. More details on the theory for the frequencydomain BEM can be found in [3].
6
2.3
Coordinate System in WEC-Sim
Figure 2.2 illustrates a 3-D floating point absorber subject to incoming waves in water. The
figure also defines the coordinates and the 6 DOF in WEC-Sim. The WEC-Sim coordinate
system assumes that the X axis is in the direction of wave propagation if the wave heading
angle is equal to zero. The Z axis is in the vertical upwards direction, and the Y axis direction
is defined by the right-hand rule.
Heave
Z
Sway
Yaw
Y
Pitch
Incident wave
direction
Roll
Surge
X
Figure 2.2: Sketch defining the coordinate system
2.4
Time-Domain Numerical Method
The dynamic response of the system was calculated by solving the equation of motion for
WEC systems [2, 6]. The equation of motion for a floating body, about its center of gravity,
can be given as:
mẌ = Fext + Frad + FP T O + Fv + FB + Fm ,
(2.1)
where Ẍ is the (translational and rotational) acceleration vector of the device, m is the mass
matrix, Fext is the wave excitation force vector, Frad is the force vector resulting from wave
radiation, FP T O is the PTO force vector, Fv is the viscous damping force vector, FB is the
net buoyancy restoring force vector, and Fm is the force vector resulting from the mooring
connection.
7
Both Fext and Frad are calculated from values provided by the frequency-domain BEM solver.
The radiation term includes an added-mass and wave damping term associated with the acceleration and velocity of the floating body, respectively. The wave excitation term includes
a Froude–Krylov force component generated by the undisturbed incident waves and a diffraction component that results from the presence of the floating body. WEC-Sim can be used for
regular and irregular wave simulations, but note that Fext and Frad are calculated differently
for sinusoidal steady-state response scenarios and random sea simulations. The sinusoidal
steady-state response is often used for simple WEC designs with regular incoming waves.
However, for random sea simulations or any simulations where fluid memory effects of the
system are essential, the convolution integral method is recommended to represent the fluid
memory retardation force on the floating body.
2.4.1
Sinusoidal Steady-State Response Scenario
This approach assumes that the system response is in sinusoidal steady-state form, and is
only valid for regular wave simulations. The radiation term can be calculated using the added
mass and the wave radiation damping term for a given wave frequency, which is obtained
from
Frad = −A(ωr )Ẍ − B(ωr )Ẋ,
(2.2)
where A(ωr ) and B(ωr ) are the added-mass and wave radiation damping matrices, respectively. ωr is the wave frequency (in rad/sec), and Ẋ is the velocity vector of the floating
body.
The free surface profile is based on linear wave theory for a given wave height, wave frequency,
and water depth. The regular wave excitation force is obtained from
H
i(ωr t)
,
(2.3)
Fext = < Rf FX (ωr )e
2
where < denotes the real part of the formula, Rf is the ramp function, H is the wave height,
and FX is the excitation vector, including the magnitude and phase of the force.
2.4.2
Convolution Integral Formulation
To include the fluid memory effect on the system, the convolution integral calculation, which
is based upon the Cummins equation [7], is used The radiation term can be calculated by
Zt
K(t − τ )Ẋ(τ )dτ,
Frad = −A∞ Ẍ −
(2.4)
0
where A∞ is the added mass matrix at infinite frequency and K is the impulse response
function.
8
For regular waves, Eq. 2.3 is used to calculate the wave excitation force. For irregular waves,
the free surface elevation is constructed from a linear superposition of a number of regular
wave components. It is often characterized using a wave spectrum (Figure 2.3) that describes
the wave energy distribution over a range of wave frequencies, characterized by a significant
wave height and peak wave period. The irregular excitation force can be calculated as the
real part of an integral term across all wave frequencies as follows


Z∞ p
2S(ωr )FX (ωr )ei(ωr t+φ) dωr  ,
(2.5)
Fext = < Rf
0
where S is the wave spectrum and φ is a random phase angle.
Figure 2.3: An example of wave spectrum and irregular wave elevation generated by WECSim (Pierson–Moskowitz spectrum)
2.4.3
Wave Spectrum
The ability to generate regular waves provides an opportunity to observe the response of
a model under specific conditions. Sea states with constant wave heights and periods are
rarely found outside wave tank test. Normal sea conditions are more accurately represented
by random-wave time series that model the superposition of various wave forms with different amplitudes and periods. This superposition of waves is characterized by a sea spectrum.
Through statistical analysis, spectra are characterized by specific parameters such as significant wave height, peak period, wind speed, fetch length, and others. The common types of
spectra that are used by the offshore industry are discussed in the following sections. The
general form of the sea spectrums available in WEC-Sim is given by:
S (f ) = Af −5 exp −Bf −4 ,
(2.6)
where f is the wave frequency (in Hertz) and exp stands for the exponential function.
9
Pierson–Moskowitz
One of the simplest spectra was proposed by [8]. It assumed that after the wind blew steadily
for a long time over a large area, the waves would come into equilibrium with the wind. This
is the concept of a fully developed sea, where a ”long time” is roughly 10,000 wave periods,
and a ”large area” is roughly 5,000 wave-lengths on a side. The spectrum is calculated from
4
αP M g 2 −5
,
(2.7)
S (f ) = (2π)4 f exp − 54 ffp
A=
αP M g 2
(2π)4
, B = 54 fp 4 ,
(2.8)
where αP M = 0.0081, g is gravitational acceleration, and fp is the peak frequency of the
spectrum. However, this spectrum representation does not allow the user to define the
significant wave height. To facilitate the creation of a power matrix, in WEC-Sim the αP M
coefficient was calculated such that the desired significant wave height of the sea state was
met. The αP M fit was calculated as follows:
αP M =
S ∗ (f ) =
16
g2
f −5
(2π)4
H2
R ∞ m0
∗
0 S (f )df
exp − 45
,
4 fp
f
(2.9)
.
(2.10)
Note that related to the spectrum is a series of characteristic numbers called the spectral
moments. These numbers, denoted mk , k = 0, 1, 2, ... are defined as
Z ∞
f k S (f ) df .
(2.11)
mk =
0
The spectral moment, m0 is the variance of the free surface, which allows one to define
√
Hm0 = 4 m0 .
(2.12)
Bretschneider Spectrum
This two-parameter spectrum is based on significant wave height and peak wave frequency.
For a given significant wave height, the peak frequency can be varied to cover a range of
conditions including developing and decaying seas. In general, the parameters depend on
wind speed (most important), wind direction, as well as fetch and locations of storm fronts.
The spectrum is given as
4
4 −5
Hm0 2
S (f ) = 4 (1.057fp ) f exp − 45 ffp
,
(2.13)
A=
Hm0 2
4
B=
(1.057fp )4 ≈
5
H 2f 4
16 m0 p
(1.057fp )4 ≈ 45 fp 4 ,
,
(2.14)
(2.15)
where Hm0 is the significant wave height which is generally defined as the mean wave height
of the one third highest waves.
10
JONSWAP (Joint North Sea Wave Project) Spectrum
Spectrum used in WEC-Sim
The spectrum was purposed by Hasselmann et al. [9],and the original formulation was given
as
4
αj g 2 −5
γΓ
S (f ) = (2π)4 f exp − 54 ffp
" (
2 #
f
−1
0.07 f ≤ fp
Γ = exp − f√p 2σ
,σ =
,
(2.16)
0.09 f > fp
A=
αj g 2
(2π)4
, B = 54 fp 4 ,
(2.17)
where αj is a nondimensional variable that is a function of the wind speed and fetch length.
Empirical fits were applied in an attempt to find a mean value that would capture the
spectral shape of most measured sea states. To fit αj to match the desired significant wave
height the following calculation must be performed
αj =
S ∗ (f ) =
H2
R ∞ m0
16 0 S ∗ (f )df
g2
f −5
(2π)4
exp − 54
,
4 fp
f
(2.18)
γΓ .
(2.19)
Spectrum purposed at ITTC
Another form of JONSWAP spectrum was purposed at the 17th International Towing Tank
Conference (ITTC). It was defined as
4
2
Hm0
155
−5
γΓ
S (f ) = (2π)4 (0.834Tp )4 f exp − 54 ffp
4
2 4 −5
310
≈ (2π)4 Hm0 fp f exp − 45 ffp
γΓ ,
(2.20)
(
" 2 #
f
−1
0.07 f ≤ fp
, σ=
,
(2.21)
Γ = exp − f√p 2σ
0.09 f > fp
A=
310
H 2f 4
(2π)4 m0 p
, B = 45 fp 4 .
(2.22)
Figure 2.4 shows the comparison of the JONSWAP spectrum obtained from the αj fit and
the ITTC description . It is clear that the two methods have very good agreement.
2.4.4
Ramp Function
A ramp function (Rf ), necessary to avoid strong transient flows at the earlier time steps of
the simulation, is used to calculate the wave excitation force. The ramp function is given by
(
1
(1 + cos(π + πt
), ttr < 1
tr
Rf = 2
,
(2.23)
t
1,
≥
1
tr
11
Figure 2.4: Comparison of αj fit to the ITTC description of the JONSWAP spectrum with
Hm0 = 2 m and peak period (Tp ) of 8 sec.
where t is the simulation time and tr is the ramp time.
2.5
Power Take-off Forces
The PTO mechanism is represented as a linear spring-damper system, where the reaction
force is given by:
FP T O = −K P T O Xrel − CP T O Ẋrel ,
(2.24)
where KP T O is the stiffness of the PTO, CP T O is the damping of the PTO, and Xrel and
Ẋrel are the relative motion and velocity between two bodies. The power consumed by the
PTO is given by:
2
PP T O = −FP T O Ẋrel = KP T O Xrel Ẋrel + CP T O Ẋrel .
(2.25)
However, the relative motion and velocity between two bodies is out of phase by π/2, resulting
in a time-averaged product of 0. This allows the absorbed power to be written as
2
.
PP T O = CP T O Ẋrel
12
(2.26)
2.6
Mooring Forces
The mooring load is represented using a linear quasi-static mooring stiffness, which can be
calculated by
Fm = −Km X,
(2.27)
where Km is the stiffness matrix for the mooring system, and X is the response of the body.
2.7
Viscous Drag
Generally, the effect of viscosity on the WEC dynamics needs to be considered as neglecting
this effect may lead to an overestimation of the power generation of the system, particularly
when a linear model is applied. A common way of modeling the viscous damping is to add
a (Morison-equation-type) quadratic damping term to the equation of motion;
1
FV = Cd ρAD Ẋ|Ẋ|,
2
(2.28)
where Cd is the viscous drag coefficient, ρ is the fluid density, and AD is the characteristic
area. The viscous drag coefficient for the device must be carefully selected [1, 2]; however,
it is dependent on device geometry, scale, and relative velocity between the body and the
flow around it. The drag coefficient becomes much larger when the Reynolds and the Keulegan–Carpenter number are smaller. Note that empirical data on the drag coefficient can be
found in various literature and standards. The available data may, however, be limited to
existing simple geometries. For practical point absorber geometry, the hydrodynamic forces
may have to be evaluated by conducting wave tank tests or prescribed motion computational
fluid dynamic simulations.
13
Chapter 3:
Getting Started
WEC-Sim is implemented in MATLAB [10] and running the code requires that you install
MATLAB, the MATLAB toolboxes presented in Table 3.1, and the WEC-Sim source code.
WEC-Sim was developed in MATLAB R2014a and we recommend using this MATLAB
version. In this chapter we describe how to download and install WEC-Sim (Section 3.1)
and how to run a WEC-Sim simulation (Section 3.2).
3.1
Downloading and Installing WEC-Sim
Step 1: Install MATLAB
Download and install MATLAB and the MATLAB toolboxes presented in Table 3.1. Ensure
you have the required toolboxes installed by running the ver command from the MATLAB
Command Window (Figure 3.1). Consult the MathWorks website http://www.mathworks.com
for more information on performing this step.
Figure 3.1: Running the ver command from the MATLAB Command Window.
Step 2: Download WEC-Sim
Download WEC-Sim from the OpenEI website http://en.openei.org/wiki/WEC-Sim/.
Table 3.1: Required MATLAB toolboxes
Matlab package
MATLAB Base
Simulink
SimMechanics
Simscape
Required release
R2014a Version 8.3
R2014a Version 8.3
R2014a Version 4.4
R2014a Version 3.11
14
Step 3: Add the WEC-Sim Source Code to the MATLAB Search Path
Open the wecSimStartup.m file that is located in the functions folder within the WEC-Sim
source code directory (referred to as wecSimSource in this document). Copy the code in
the wecSimStartup.m file and paste it into the startup.m file within the MATLAB Startup
Folder. Set the wecSimPath variable to the location of the wecSimSource folder on your computer. Close MATLAB, restart the code, and then run the path command from the MATLAB Command Window to verify that that the directories listed in wecsim-path-setup.m
are in the MATLAB Search Path.
Step 4: Add the WEC-Sim Blocks to the Simulink Library Browser
Open the Simulink Library Browser by typing simulink from the MATLAB Command
Window. Once the Simulink Library Browser opens, select ViewBRefresh Tree View. At
this point, you should be able to expand the WEC-Sim menu in the Libraries pane to
view the WEC-Sim Body, Constraints, PTOs, and Frame blocks. The function of these
blocks will be explained in Chapter 4. From now on, every time you open Simulink in the
WEC-Sim Library Browser, the WEC-Sim Body Elements, Constraints, PTOs, and Frames
blocks will be available. For more help using and modifying library blocks, please refer to
the Simulink Documentation http://www.mathworks.com/help/simulink/.
3.2
Running WEC-Sim
This section gives an overview of the WEC-Sim work flow and how to run WEC-Sim. Here
we describe the file structure of the WEC-Sim runs and the steps for setting up and running a
WEC-Sim simulation. Detailed descriptions and options for input parameters for the input
file are described in Chapter 5. Specific examples of using WEC-Sim to simulate WEC
devices are presented in Chapter 6.
3.2.1
File Structure Overview
Table 3.2 shows the default file structure for WEC-Sim. All the necessary files for running
WEC-Sim are located within a user defined folder, referred to herein as the WEC-Sim case
folder or case directory.
Table 3.2: Default files names and their locations
File name
Location
Input file
wecSimInputFile.m
Case directory
WEC Model WEC Model Name.slx Case directory
WAMIT
WAMIT File Name.out
wamit
Geometry
STL File Name.stl
geometry
15
3.2.2
Steps To Run WEC-Sim
The overview of the WEC-Sim work flow is shown in Figure 3.2. We describe the steps in
setting up and running a WEC-Sim simulations in the following:
Step 1: Pre-Processing
Run WAMIT to generate the hydrodynamic coefficients for each body of the WEC device.
WEC-Sim will read the WAMIT-generated hydrodynamic coefficients from the WAMIT output file (<wamit file name>.out). To ensure that WEC-Sim uses the correct hydrodynamic
coefficients to model the WEC system, the center of gravity for each body MUST be at the
origin of the body coordinate system (XBODY) in WAMIT. Note that the current version
of WEC-Sim does not account for the multidirectional wave heading and WEC-Sim will use
whatever wave heading was modeled in WAMIT. More details on WAMIT setup are given
in the WAMIT User Manual [3].
Next the user must create representations of the WEC bodies in the STL file format. The
STL files are used to visualize the WEC bodies in the WEC-Sim/MATLAB graphical user
interface.
Figure 3.2: Work flow diagram for running WEC-Sim simulations
16
Step 2: Build Device Simulink/SimMechanics Model
Next, the user must build the device model using the Simulink/SimMechanics toolboxes and
the WEC-Sim Library (see Chapter 4). Figure 3.3 shows an example of a a two-body point
absorber modeled in Simulink/SimMechanics.
Figure 3.3: An example of device Simulink/SimMechanics model for a two-body point absorber
Step 3: Create WEC-Sim Input File
A WEC-Sim input file needs to be created in the case directory, and it MUST be named
wecSimInputFile.m. An example of the input file for a two-body point absorber is shown in
Figure 3.4. In the input file, the simulation settings, sea state, body mass properties, PTO,
and constraints are specified. In addition, users MUST specify the Simulink/SimMechanics
model file name in the wecSimInputFile.m, which is
simu.simMechanicsFile=’<WEC Model Name>.slx’.
Step 4: Execute WEC-Sim
Finally, execute the simulation by running the wecSim command from the MATLAB Command Window (Figure 3.4). The wecSim command must be executed in the WEC-Sim case
directory where the wecSimInputFile.m is located.
WEC-Sim simulations should always be executed from the MATLAB Command Window
and not from the Simulink/SimMechanics model. This ensures that the correct variables are
in the MATLAB workspace during simulation.
17
Figure 3.4: An example of running WEC-Sim
3.2.3
Simulation Outputs
All simulation outputs are saved in the output variable within the MATLAB workspace.
Specifically, the output variable contains forces and motions of the WEC bodies, PTSs, and
constraints. The output data file also contains time step information from the simulation.
At the completion of a simulation, WEC-Sim also saves all simulation data in the output
directory within the WEC-Sim case file in three data files:
<case name> simulationLog.txt : This ascii text file contains all information displayed
in the MATLAB command window during a simulation.
<caseName> output.mat : This MATLAB data file contains forces and motions of the WEC
bodies, PTSs, and constraints. The data file also contains time step information from
the simulation.
<caseName> matlabWorkspace : This MATLAB data file contains all workspace variables
from the simulation. Note that this variable also contains the output.mat data in a
variable named output.
18
3.2.4
Postprocessing using User Defined Functions (UDFs)
Just before completion of a simulation, WEC-Sim looks for a MATLAB m-file named
userDefinedFunctions.m within the WEC-Sim case directory. If the file exist, and WECSim executes any commands within this m-file. The user can add code to this m-file to perform common post-processing tasks before the simulation exits. One example would be to
plot the device motions and forces acting on the bodies and joints of a WEC device. The RM3
test case provides an example of how to plot force and response using user defined functions.
Note that the user can perform any calculation desired within the userDefinedFunctions.m,
and the user has access to all data within the MATLAB workspace.
19
Chapter 4:
4.1
Library Structure
Library Structure Overview
The WEC-Sim library is divided into 4 sublibraries. The user should be able to model their
WEC device using the available WEC-Sim blocks, and possibly some SimMechanics blocks.
Table 4.1 lists the WEC-Sim blocks and their organization into sublibraries.
Table 4.1: WEC-Sim library structure
WEC-Sim Library
Sublibrary
Blocks
Body Elements
Rigid Body
Frames
Global Reference Frame
Constraints
Heave
Pitch
Surge
Fixed
Floating
PTOs
Rotational PTO (Local RY)
Translational PTO (Local X)
Translational PTO (Local Z)
In the following sections, we will describe the four sublibraries and their general purpose.
The Body Elements sublibrary contains the Rigid Body block used to simulate the different
bodies. The Frames sublibrary contains the Global Reference Frame block necessary for
every simulation. The Constraints sublibrary contains blocks that are used to constrain
the DOF of the bodies, without including any additional forcing or resistance. The PTOs
sublibrary contains blocks used to both simulate a PTO system and restrict the body motion.
Both constraints and PTOs can be used to restrict the relative motion between multibody
systems.
4.2
Body Elements Sublibrary
The Body Elements sublibrary (Figure 4.1) contains one block, Rigid Body block. It is
used to represent rigid bodies. At least one instance of this block is required in each model.
20
Figure 4.1: Body Elements sublibrary
4.2.1
Rigid Body Block
The Rigid Body block is used to represent a rigid body in the simulation. The user has
to name the blocks ’body(i)’ where i=1,2,. . . . The mass properties, hydrodynamic data,
geometry file, mooring, and other properties are then specified in the input file. Within the
body block the wave radiation, wave excitation, hydrostatic restoring, viscous damping and
mooring forces are calculated.
4.3
Frames Sublibrary
The Frames sublibrary, shown in Figure 4.2, contains one block that is necessary in every
model. The Global Reference Frame block defines global references and can be thought
of as the seabed.
4.3.1
Global Reference Frame Block
The Global Reference Frame block defines the solver configuration, seabed and free surface
description, simulation time, and other global settings. It can be useful to think of the Global
Reference Frame as being the seabed when creating a model. Every model requires one
21
instance of the Global Reference Frame block. The Global Reference Frame block uses
the simulation class variable simu and the wave class variable waves, which must be defined
in the input file.
Figure 4.2: Frames sublibrary
4.4
Constraints Sublibrary
The blocks within the Constraints sublibrary, shown in Figure 4.3, are used to define the
DOF of a specific body. Constraints blocks define only the DOF, but do not otherwise apply
any forcing or resistance to the body motion. Each Constraints block has two connections,
a base (B) and a follower (F). The Constraints block restricts the motion of the block that
is connected to the follower relative to the block that is connected to the base. The base
of these blocks is typically the Global Reference Frame (which can be thought of as the
seabed) and the follower is a Rigid Body.
There are five Constraints blocks, including three that restrict motion to one DOF (Heave,
Surge, Pitch), a free-floating (Floating) block, and a rigid connection (Fixed) block. The
rest of this section will describe each Constraints block in more detail.
22
Figure 4.3: Constraints sublibrary
4.4.1
Floating Block
The Floating block is used to simulate a free-floating body. It constrains the motion of
the follower to be along the XZ plane of the base. That is, it allows translation in the Xand Z-axis, and rotation about the Y-axis. It is usually used with the base connected to the
Global Reference Frame (seabed), in which case the motion of the follower is along the
global XZ plane.
4.4.2
Heave Block
The Heave block constrains the motion of the follower relative to the base to be along
the Z-axis. In the case of the base connected to the Global Reference Frame (seabed),
the body is allowed to move only in the vertical (Z) direction. In the case of the Heave
block connecting two bodies, the relative motion of the two bodies is constrained to be only
along their Z-axes. The Z-axis of the follower and base will always be parallel and their
perpendicular distance will be constant. The actual direction of movement of the follower
depends on the orientation of the base.
23
4.4.3
Surge Block
The Surge block constrains the motion of the follower relative to the base to be along the
X-axis. If the base is connected to the Global Reference Frame (seabed), the body is
allowed to move only in the horizontal (X) direction. If Surge block is connects two bodies,
the relative motion of the two bodies is constrained to be only along their X-axes. The
X-axis of the follower and base will always be parallel and their perpendicular distance will
be constant. The actual direction of movement of the follower depends on the orientation of
the base.
4.4.4
Pitch Block
The Pitch block constrains the relative motion between the follower and the base to be pitch
rotation only (about the Y-axis). The distance from both body-fixed coordinate systems to
the point of rotation stays constant. The orientation of both body-fixed Y-axes also stays
constant. The user MUST enter the point about which the rotation occurs as the constraint’s
location in the input file.
4.4.5
Fixed Block
The Fixed block is a rigid connection that constrains all motion between the base and
follower. It restricts translation in the X- and Z-axis, and rotation about the Y-axis. Its
most common use is for a rigid body fixed to the seabed.
4.5
PTOs Sublibrary
The PTOs sublibrary, shown in Figure 4.4, is used to simulate simple PTO systems and to
restrict relative motion between multiple bodies or between one body and the seabed. The
PTO blocks can simulate simple PTO systems by applying a linear stiffness and damping to
the connection. Similar to the Constraints blocks, the PTO blocks have a base (B) and a
follower (F). Users MUST name each PTO block ’pto(i)’ where i=1,2, . . . , and then define
their properties in the input file.
4.5.1
Translation PTO (Local Z) Block
The Translation PTO (Local Z) is identical to the Heave constraint, but applies a linear
stiffness and damping coefficient to the connection. The user has to name the PTOs as
described earlier. The user then specifies the stiffness coefficient (in N/m), and damping
coefficient (in Ns/m) in the input file.
24
Figure 4.4: PTOs sublibrary
4.5.2
Translation PTO (Local X) Block
The Translation PTO (Local X) is identical to the Surge constraint, but additionally
applies a linear stiffness and damping coefficient to the connection. The user has to name
the PTOs as described earlier. The user then specifies the stiffness coefficient (in N/m), and
damping coefficient (in Ns/m) in the input file.
4.5.3
Rotational PTO (Local RY) Block
The Rotational PTO (Local RY) is identical to the Pitch constraint, but adds a linear
rotational stiffness and damping coefficient to the connection. The user has to name the
PTOs as described earlier. The user then specifies the stiffness coefficient (in Nm/rad) and
damping coefficient (in Nms/rad) in the input file.
25
4.6
Other SimMechanics Blocks
In some situations, users may have to use SimMechanics blocks not included in the WECSim Library to build their WEC model. One commonly used block is the Rigid Transform,
which can be used to rotate the frames on PTOs,cconstraints, and bodies. This is also
explained in the SimMechanics User’s Guide [11].
26
Chapter 5:
Code Structure and Input
Parameters
This section describes the WEC-Sim source code and the code structure. For the purposes of
this document, we define the the source code as the MATLAB m-files that read the user input
data, perform pre-processing calculations that take place before the Simulink/SimMechanics
time-domain simulations are performed.
5.1
Units
All units within WEC-Sim are in the MKS (meters-kilograms-seconds system) and angular
measurements are specified in radians unless otherwise specified.
5.2
WEC-Sim Input File
A WEC-Sim input file is required for each run. It MUST be placed inside the case directory
for the run and MUST be named wecSimInputFile.m. Figure 5.1 shows an example of the
input file for a two-body point absorber. The input file contains information needed to run
WEC-Sim simulations. Specifically, it serves four primary functions, each of which will be
described in the following paragraphs.
5.2.1
Specification of Simulation Parameters
Within the input file, the user specifies simulation parameters, such as simulation duration
and time step. As shown in Figure 5.1, simulation parameters are specified within the simu
variable, which is a member of the simulationClass. Users also specify the name of the
Simulink/SimMechanics WEC model within the simu variable. The simulation parameters
that are available for the user to set within the simulationClass are described in more
detail in Section 5.3.1.
5.2.2
Specification of Body Parameters
WEC-Sim assumes that every WEC devices is composed of rigid bodies that are exposed to
wave forces. For each body, users MUST specify body properties within the body variable
in the input file, including mass, moment of inertia, center of gravity, and the WAMIT files
27
that describe the hydrodynamic properties (see Figure 5.1). The body parameters that are
available for the user to set within the bodyClass are described in more detail in Section 5.3.2.
% Simulation Data
simu.startTime=0;
simu.endTime=400;
simu.dt = 0.1;
simu.simMechanicsFile = 'RM3.slx';
simu.mode='normal';
%
%
%
%
%
Simulation Start Time [s]
Simulation End Time [s]
Simulation Delta Time [s]
Specify Simulink Model File
Specify Simulation Mode
% (normal/accelerator
% /rapid-accelerator)
% Turn SimMechanics Explorer
% (on/off)
simu.explorer='on';
% Wave Information
waves.H = 2.5;
waves.T = 8;
waves.type = 'regular';
% Wave Height [m]
% Wave Period [s]
% Specify Type of Waves
% Body Data
body(1) = bodyClass('Float');
body(1).hydroDataType = 'wamit';
body(1).hydroDataLocation = ...
'./wamit/rm3.out';
body(1).mass = 'wamitDisplacement';
body(1).cg = 'wamit';
body(1).momOfInertia = ...
[20907301 21306090.66 37085481.11];
body(1).geometry = 'geometry/float.stl';
body(2) = bodyClass('Spar Plate');
% Initialize bodyClass for Float
% Specify BEM solver
% Location of WAMIT *.out file
% Mass from WAMIT [kg]
% Cg from WAMIT [m]
% Moment of Inertia [kg-mˆ2]
% Geometry File
% Initialize bodyClass for
% Spar/Plate
% Specify BEM solver
% Location of WAMIT *.out file
body(2).hydroDataType = 'wamit';
body(2).hydroDataLocation = ...
'./wamit/rm3.out';
body(2).mass = 'wamitDisplacement';
body(2).cg = 'wamit';
body(2).momOfInertia = ...
[94419614.57 94407091.24 28542224.82];
body(2).geometry = 'geometry/plate.stl';
% Moment of Inertia [kg-mˆ2]
% Geometry File
% PTO and Constraint Parameters
constraint(1) = ...
constraintClass('Constraint1');
% Initialize Constraint Class
% for Constraint1
pto(1) = ptoClass('PTO1');
pto(1).k=0;
pto(1).c=1200000;
% Initialize ptoClass for PTO1
% PTO Stiffness Coeff [N/m]
% PTO Damping Coeff [Ns/m]
% Mass from WAMIT [kg]
% Cg from WAMIT [m]
Figure 5.1: Example of a WEC-Sim input file (same to Figure 6.5).
28
5.2.3
Specification of Wave Parameters
Within the input file, users MUST provide information on the wave condition for the simulation. The user MUST specify the wave condition within the waves variable. The options
that are available for the user to set within the waveClass are discussed in more detail in
Section 5.3.3.
5.2.4
Specification of Power Take-Off and Constraint Parameters
PTO and constraint blocks connect WEC bodies to each other (and possibly to the seabed).
The properties of the PTO and constraint are defined within pto variable and constraint
variable, respectively. The options that are available for the user to specify are described in
more detail in Sections 5.3.4 and 5.3.5 .
5.3
WEC-Sim Code
All data that are needed for a WEC-Sim simulation are contained within simu, body, waves,
pto and constraint variables that are instances of the simulationClass, bodyClass,
wavesClass, and jointClass objects, respectively. These objects are created in MATLAB classes. The user can interact with these variables within the WEC-Sim input file,
wecSimInputFile.m, (see Figure 5.1). The remainder of this section describes the data
within the WEC-Sim objects and how to interact with the objects to set relevant simulation
input parameters. Examples of using WEC-Sim to simulate WEC devices and input files
are described in Chapter 6.
5.3.1
simulationClass
The simulationClass contains the simulation parameters and solver settings needed to execute WEC-Sim. The user can set the relevant simulation properties in the wecSimInputFile.m.
The user MUST specify the name of the Simulink/SimMechanics WEC model, which can
be set by entering the following command in the input file
simu.simMechanicsFile=’<WEC Model Name>.slx’;
By doing nothing, users have the option of accepting the default values for all the other
simulation parameters. Available simulation properties and the default values for each,
shown in Figure 5.2, can be explored further by typing doc simulationClass from within
the MATLAB Command Window. The users can also specify simulation parameters and
solver settings in the input file to overwrite the default values. For example, the end time of
a simulation can be set by entering the following command
simu.endTime = <user specified end time>
29
Figure 5.2: Data contained within the simulationClass.
5.3.2
bodyClass
The bodyClass object contains the mass and hydrodynamic properties of each body that
comprises the WEC device being simulated. Each body must have a bodyClass initiated in
the input file. we recommend that these body objects be named body(<body number>) as
shown in the input file in Figure 5.1. Each body object MUST be initiated by entering the
command
body(<body number>)=bodyClass(’<body name>’),
30
Users can specify the mass and hydrodynamic properties after the body object is initiated
for each body. Note that the hydroDataType, hydroDataLocation, mass, cg, momOfInertia
and geometry parameters all have to be specified for each body as shown in Figure 5.1.
The users have the option of accepting the default values for the remaining body parameters
by doing nothing or specify their own values. The options available within the bodyClass
are shown in Figure 5.3. For example, the viscous drag can be specified by entering the
viscous drag coefficient (nondimensional) and the projected characteristic area (in m2 ) in
vector format the input file as follows,
body(<body number>).cd= [0 0 1.3 0 0 0],
body(<body number>).characteristicArea= [0 0 100 0 0 0],
Figure 5.3: Data contained within the bodyClass.
31
5.3.3
waveClass
The waveClass contains all the information that defines the wave conditions for the timedomain simulation. Specifically, Table 5.1 lists the types of wave environment that is supported by WEC-Sim.
Table 5.1: List of supported wave environments
Option
Additional required inputs
Description
waves.type
Free decay test with
=’noWave’
waves.noWaveHydrodynamicCoeffT constant hydrodynamic coefficients
waves.type
Free decay test with
=’noWaveCIC’
None
convolution integral
waves.type
waves.H;
Sinusoidal steady-state
=’regular’
waves.T
Reponse Scenario
waves.type
waves.H;
Regular waves with
=’regularCIC’
waves.T
convolution integral
waves.type
waves.H; waves.T;
Irregular waves with
=’irregular’
waves.spectrumType
typical wave spectrum
waves.type
Irregular waves with
=’irregularImport’
waves.spectrumDataFile
user-defined wave spectrum
ˆ No waves (waves.type=’noWave’): It is the wave type for running simulations without waves and using constant added mass and radiation damping coefficients. Accordingly, the user must still run WAMIT before executing WEC-Sim. In addition,
users MUST specify the period from which the hydrodynamic coefficients are selected
by setting the waves.noWaveHydrodynamicCoeffT variable. This option is typically
used for decay tests for comparison with analytical solutions that use given radiation
added-mass and damping coefficients.
ˆ No waves with convolution integral calculation (waves.type=’noWaveCIC’):
The wave type is the same as noWave, except the radiation forces are calculated using
the convolution integral and the infinite frequency added mass .
ˆ Regular waves (waves.type=’regular’): It is the wave type for running simulations
using regular waves with constant added mass and radiation damping coefficients.
Wave period wave.T and wave height wave.H need to be specified in the input file.
Using this option, we assume that the system dynamic response is in sinusoidal steadystate form, where constant added mass and damping coefficients are used and the
convolution integral is NOT used to calculate wave radiation forces.
ˆ Regular waves with convolution integral (waves.type=’regularCIC’): The wave
type is the same as waves.type=’regular’, except the radiation forces are calculated
using the convolution integral and the infinite frequency added mass.
32
ˆ Irregular waves (waves.type=’irregular’): It is the wave type for irregular wave
simulations using given wave spectrum. Significant wave height wave.H, peak period
wave.T and wave spectrum type (waves.spectrumtype) need to be specified in the
input file. The available wave spectrum options are listed in Table 5.2.
Table 5.2: WEC-Sim wave spectrum
Wave Spectrum Type
Pierson–Moskowitz
Bretschneider
JONSWAP
options (with waves.type=’irregular’)
Input File Parameter
waves.spectrumType=’PM’
waves.spectrumType=’BS’
waves.spectrumType=’JS’
ˆ Irregular waves with user-defined spectrum (waves.type=’irregularImport’):
It is the wave type for irregular wave simulations using user-defined wave spectrum.
Users need to specify the wave spectrum file name in input file as follows,
waves.spectrumDataFile=’<wave spectrum file>.txt’,
The user-defined wave spectrum must be defined with the wave frequency (Hz) in
m2
in the second row. An example of
the first row, and the spectral energy density Hz
which is given in the ndbcBuoyData.txt file in the applications folder of the WEC-Sim
download. This format can be copied directly from NDBC buoy data. For more information on NDBC buoy data measurement descriptions, please refer to NDBC website
at http://www.ndbc.noaa.gov/measdes.shtml.
Note that, by default, the random wave phase for irregular waves are generated arbitrarily
(waves.randPreDefined=0). If the user specifies waves.randPreDefined=1 in the input
file, the random phase of the waves will be generated using the rand function in MATLAB
with a seed value of 1. This gives the user an option to generate the same random wave
every time if needed.
Typing doc waveClass from the MATLAB Command Window provides more information
on the class functionality and the available wave properties are shown and described in
Figure 5.4.
5.3.4
constraintClass
The constraint object is used to connect bodies to the Global Reference Frame. The constraint variable should be initiated by entering the following:
constraint(<constraint number>)=constraintClass(’<constraint name>’);
For rotational constraint (i.e., pitch), the user also needs to specify its location of the rotational joint with respect to the global reference frame in the constraint(<constraint
number>).loc variable.
33
Figure 5.4: Data contained within the waveClass.
5.3.5
ptoClass
The pto object extracts power from body motion with respect to a fixed reference frame or
another body. The pto objects can also constrain motion to certain degrees of freedom. The
pto variable should be initiated by entering
pto(<pto number>)=ptoClass(’<pto name>’),
For rotational ptos (Local RY), the user also needs to set its location. The users also
have the option to specify the damping (pto(<pto number>).c) and stiffness (pto(<pto
number>).k) values to represent the PTO system. Both have a default value of 0, and the
users can overwrite the default values in the input file. For example, the users can specify a
damping value by entering the following:
pto(<pto number>).c=<pto damping value>,
.
34
Chapter 6:
Applications
In this section, we describes how to use WEC-Sim to model two different WECs. The first
application models a two-body point absorber WEC and the second application models an
OSWEC.
6.1
6.1.1
Reference Model 3 Two-Body Point Absorber
Geometry Definition
As the first application of the WEC-Sim code, We selected the Reference Model 3 (RM3)
two-body point absorber design. Although the WEC is free to move in all 6DOF in response
to wave motion, power is captured in the relative heave direction. The RM3 device was
selectedonly because the design has already been well characterized both numerically and
experimentally as a result of the DOE-funded Reference Model Project, more information on
this project available at http://energy.sandia.gov/rmp. In addition, the device has relatively
simple operating principles and is representative of what WEC industry is currently pursuing.
RM3 is a simple two-body point absorber, consisting of a float and a reaction plate. The
full-scale dimensions of the RM3 are shown in Figure 6.1, and the mass properties are defined
in Table 6.1.
Figure 6.1: RM3 heaving two-body point absorber full-scale dimensions
35
Table 6.1: RM3 heaving two-body point absorber full-scale mass properties
6.1.2
Modeling RM3 in WEC-Sim
In this section, we provide a step by step tutorial on how to set up and run the RM3
simulation in WEC-Sim. We have also created a supplemental RM3 WEC-Sim Tutorial
Video to demonstrate how to set up and run the RM3 simulation in WEC-Sim. The tutorial
video is included in the WEC-Sim code download package under the documentation folder.
As described in Chapter 3, all WEC-Sim models consist of a input file (wecSimInputFile.m),
and a Simulink model file (RM3.slx). To run the WEC-Sim simulation, the user needs to
provide results from the WAMIT, frequency-domain BEM solver, to populate the WECSim hydrodynamic coefficients. The WAMIT hydrodynamic results were pregenerated. The
WAMIT output file corresponds to the buoywamit.out file, contained in the wamit subfolder.
Note that all the hydrodynamic coefficients MUST be output at the center of gravity. In addition, the user needs to specify the 3-D geometry file in the form of a <STL file name>.stl
file with the origin of the coordinate system at the center of gravity for the WEC-Sim visualizations. For the RM3 run consisting of a buoy and a spar plate, these files correspond to
the float.stl and plate.stl files, respectively, which are located in the geometry subfolder.
RM3 Simulink Model File
The first step to initiate a WEC-Sim simulation is to create the Simulink model file by
dragging and dropping blocks from the WEC-Sim library into the <WEC model name>.slx
file (see Chapter 4 for more details).
Step 1: Place two Rigid Body blocks from the WEC-Sim library in the Simulink model
file, one for each RM3 rigid body, as shown in Figure 6.2.
Step 2: Double click on the Rigid Body block, and rename the instances of the body.
The first body should be titled body(1), and the second body should be titled body(2).
36
Additional properties of these body blocks are defined in the following RM3 MATLAB
Input File section (Section 6.1.2).
Figure 6.2: Adding two Rigid Body blocks to the RM3 WEC-Sim model
Step 3: Place the Global Reference Frame from the WEC-Sim library in the Simulink
model file, as shown in Figure 6.3. The global reference frame acts as the seabed to which
all other bodies are linked through joints or constraints.
Figure 6.3: Adding the Global Reference Frame block to the RM3 WEC-Sim model
37
Step 4: Use the Floating constraint block to connect the plate to the seabed. This is done
because the RM3 is free to move in all 6 DOF relative to the global reference frame. Step 4
and 5 connections are shown in Figure 6.4.
Figure 6.4: Adding the pto and constraint blocks to the RM3 WEC-Sim Simulink model
Step 5: Place a Translational PTO (Local Z) PTO block to connect the float to the spar.
This is necessary because the float is restricted to heave motion relative to the plate. For the
RM3 simulation, the translational PTO block is used to model the WEC’s PTO as a linear
damper. The parameters are defined in the RM3 MATLAB Input File section (Section 6.1.2).
When setting up a WEC-Sim model, it is important to note the base and follower frames.
For example, for the constraint between the plate and the seabed, the seabed should be defined as the base because it is the Global Reference Frame. Similarly, for the PTO between
the float and the plate, the plate should be defined as the base.
RM3 MATLAB Input File
In this section, we define the WEC-Sim MATLAB input file for the RM3 model. Each of the
lines are commented to explain the purpose of the defined parameters. For the RM3 model,
the user must define the simulation parameters, body properties, PTO, and constraint definitions. The specified input parameters for RM3 are shown in Figure 6.5.
38
% Simulation Data
simu.startTime=0;
simu.endTime=400;
simu.dt = 0.1;
simu.simMechanicsFile = 'RM3.slx';
simu.mode='normal';
%
%
%
%
%
Simulation Start Time [s]
Simulation End Time [s]
Simulation Delta Time [s]
Specify Simulink Model File
Specify Simulation Mode
% (normal/accelerator
% /rapid-accelerator)
% Turn SimMechanics Explorer
% (on/off)
simu.explorer='on';
% Wave Information
waves.H = 2.5;
waves.T = 8;
waves.type = 'regular';
% Wave Height [m]
% Wave Period [s]
% Specify Type of Waves
% Body Data
body(1) = bodyClass('Float');
body(1).hydroDataType = 'wamit';
body(1).hydroDataLocation = ...
'./wamit/rm3.out';
body(1).mass = 'wamitDisplacement';
body(1).cg = 'wamit';
body(1).momOfInertia = ...
[20907301 21306090.66 37085481.11];
body(1).geometry = 'geometry/float.stl';
body(2) = bodyClass('Spar Plate');
% Initialize bodyClass for Float
% Specify BEM solver
% Location of WAMIT *.out file
% Mass from WAMIT [kg]
% Cg from WAMIT [m]
% Moment of Inertia [kg-mˆ2]
% Geometry File
% Initialize bodyClass for
% Spar/Plate
% Specify BEM solver
% Location of WAMIT *.out file
body(2).hydroDataType = 'wamit';
body(2).hydroDataLocation = ...
'./wamit/rm3.out';
body(2).mass = 'wamitDisplacement';
body(2).cg = 'wamit';
body(2).momOfInertia = ...
[94419614.57 94407091.24 28542224.82];
body(2).geometry = 'geometry/plate.stl';
% Moment of Inertia [kg-mˆ2]
% Geometry File
% PTO and Constraint Parameters
constraint(1) = ...
constraintClass('Constraint1');
% Initialize Constraint Class
% for Constraint1
pto(1) = ptoClass('PTO1');
pto(1).k=0;
pto(1).c=1200000;
% Initialize ptoClass for PTO1
% PTO Stiffness Coeff [N/m]
% PTO Damping Coeff [Ns/m]
% Mass from WAMIT [kg]
% Cg from WAMIT [m]
Figure 6.5: WEC-Sim input file for the RM3 point absorber).
RM3 WEC-Sim Model
Once the WEC-Sim Simulink model is set up and the RM3 properties are defined in the
MATLAB input file, the user can then run the RM3 model in WEC-Sim. Figure 6.6 shows
39
the final RM3 Simulink model and the WEC-Sim GUI during the simulation. For more
information on using WEC-Sim to model the RM3 device, refer to [12] and [13].
Figure 6.6: RM3 modeled in WEC-Sim (left-hand side) and with the GUI (right hand side)
6.2
6.2.1
Oscillating Surge-Pitch Device
Geometry Definition
As the second application of the WEC-Sim code, the oscillating surge WEC (OSWEC)
device. We selected the OSWEC because its design is fundamentally different from the
RM3. This is critical because WECs span an extensive design space, and it is important to
model devices in WEC-Sim that operate under different principles. The OSWEC is fixed to
the ground and has a flap that is connected through a hinge to the base that restricts the
flap to pitch about the hinge. The full-scale dimensions of the OSWEC are shown in Figure
6.7, and the mass properties are defined in Table 6.2.
6.2.2
Modeling OSWEC in WEC-Sim
In this section, we provide a step by step tutorial on how to set up and run the OSWEC
simulation in WEC-Sim.
As described in Chapter 3, all WEC-Sim models consist of a input file (wecSimInputFile.m),
and a Simulink model file (OSWEC.slx). The WAMIT hydrodynamic results were also pre40
generated. The WAMIT output file corresponds to the oswec.out file, contained in the
wamit subfolder. In addition, the user needs to specify the 3-D geometry file in the form of
a <WEC model name>.stl file about the center of gravity for the WEC-Sim visualizations.
For the OSWEC run consisting of a flap and a base, these files correspond to the flap.stl
and base.stl files, respectively, which are located in the geometry subfolder.
Figure 6.7: OSWEC pitching device full-scale dimensions
Table 6.2: OSWEC pitching device full-scale mass properties
OSWEC Simulink Model File
The first step to set up a WEC-Sim simulation is to populate the Simulink model file by
dragging and dropping blocks from the WEC-Sim library into the <WEC model name>.slx
file, see Chapter 4.
Step 1: Place two Rigid Body blocks from the WEC-Sim library in the Simulink model
file, one for each OSWEC rigid body, as shown in Figure 6.8.
41
Figure 6.8: Adding two Rigid body blocks to the OSWEC WEC-Sim model
Step 2: Double click on the body block, and rename the instances of the body. The first
body should be titled body(1), and the second body should be titled body(2). Additional
properties of these body blocks are defined in the OSWEC MATLAB Input File section
(Section 6.2.2).
Step 3: Place the Global Reference block from the WEC-Sim library in the Simulink
model file, as shown in Figure 6.9. The global reference frame acts as the base to which all
other bodies are linked through joints or constraints.
Figure 6.9: Adding a Global Reference Frame block to the OSWEC WEC-Sim model
42
Step 4: Place a fixed constraint block to connect the base to the seafloor. This is done
because the OSWEC base is fixed relative to the global reference frame. Step 4 and 5
connections are shown in Figure 6.10.
Figure 6.10: Adding pto and constraint blocks to the OSWEC WEC-Sim Simulink model
Step 5: Place a rotational PTO block to connect the base to the flap. This is done because
the flap is restricted to pitch motion relative to the base. For the OSWEC simulation, the
rotational PTO is used to model the WEC’s PTO as a linear rotary damper. The input
parameters are defined in the OSWEC MATLAB Input File section (Section 6.2.2).
When setting up a WEC-Sim model, it is important to note the base and follower frames.
For example, for the constraint between the base and the seabed, the seabed should be defined as the base because it is the Global Reference Frame.
OSWEC MATLAB Input File
In this section, the WEC-Sim MATLAB input file, wecSimInputFile.m, for the OSWEC
model is defined. Each of the lines are commented to explain the purpose of the defined
parameters. For the OSWEC model, the user must define the simulation parameters, body
properties, PTO, and constraint definitions. Each of the specified parameters for OSWEC
are defined below. The specified input parameters for RM3 are shown in Figure 6.11.
43
% Simulation Data
simu.startTime=0;
simu.endTime=400;
simu.dt = 0.1;
simu.simMechanicsFile = 'OSWEC.slx';
simu.mode='normal';
%
%
%
%
%
Simulation Start Time [s]
Simulation End Time [s]
Simulation Delta Time [s]
Specify Simulink Model File
Specify Simulation Mode
% (normal/accelerator
% /rapid-accelerator)
% Turn SimMechanics Explorer
% (on/off)
simu.explorer='on';
% Wave Information
waves.H = 2.5;
waves.T = 8;
waves.type = 'regular';
% Wave Height [m]
% Wave Period [s]
% Specify Type of Waves
% Body Data
body(1) = bodyClass('Flap');
body(1).hydroDataType = 'wamit';
body(1).hydroDataLocation = ...
'wamit/oswec.out';
body(1).mass = 127000;
body(1).cg = 'wamit';
body(1).momOfInertia = ...
[1.85e6 1.85e6 1.85e6];
body(1).geometry = 'geometry/flap.stl';
% Initialize bodyClass for Flap
% Specify BEM solver
% Location of WAMIT *.out file
% User-Defined mass [kg]
% Cg from WAMIT [m]
% Moment of Inertia [kg-mˆ2]
% Geometry File
body(2) = bodyClass('Base');
body(2).hydroDataType = 'wamit';
body(2).hydroDataLocation = ...
'wamit/oswec.out';
body(2).geometry = 'geometry/base.stl';
body(2).fixed = 1;
% Initialize bodyClass for Base
% Specify BEM solver
% Location of WAMIT *.out file
% Geometry File
% Creates Fixed Body
% PTO and Constraint Parameters
constraint(1)=...
constraintClass('Constraint1');
% Initialize ConstraintClass
% for Constraint1
pto(1)=ptoClass('PTO1');
pto(1).k=0;
pto(1).c=0;
pto(1).loc=[0 0 -8.9];
%
%
%
%
Initialize ptoClass for PTO1
PTO Stiffness Coeff [Nm/rad]
PTO Damping Coeff [Nsm/rad]
PTO Global Location [m]
Figure 6.11: WEC-Sim input file for the OSWEC).
OSWEC WEC-Sim Model
Once the WEC-Sim Simulink model is set up and the OSWEC properties are defined in
the MATLAB input file, the user can then run the OSWEC model in WEC-Sim. Figure
6.12 shows the final OSWEC Simulink model and the WEC-Sim GUI showing the OSWEC
during the simulation. For more information on using WEC-Sim to model the OSWEC
44
device, refer to [13] and [14].
Figure 6.12: OSWEC modeled in WEC-Sim (left-hand side) and with the GUI (right-hand
side)
6.3
WEC-Sim Test Cases
Provided within the applications folder in the WEC-Sim directory are the two applications
of the WEC-Sim code. The first application uses the WEC-Sim code to model the the RM3
WEC, and the second application uses the code to model the OSWEC device. Should the
WEC-Sim user make changes to the WEC-Sim code, scripts are provided that compare the
previous version of WEC-Sim to the latest run, for debugging purposes. These test cases
can be used by running the RunTestCase.m script. This script imports the *.mat file that
contains results from the original WEC-Sim run, and then plots a comparison of the original
run to the latest run of WEC-Sim.
6.3.1
RM3 Test Case
For the RM3, the test case is set up for direct comparison using the following model parameters:
Wave Environment
Wave Type = Regular Waves (Sinusoidal Steady-State)
45
Wave Height H (m) = 2.5
Wave Period T (sec) = 8
WEC-Sim Simulation Settings
Time Marching Solver = Fourth-Order Runge-Kutta Formula
Start Time (sec) = 0
End Time (sec) = 400
Time Step Size (sec) = 0.1
Ramp Function Time (sec) = 100
List of PTO(s)
Number of PTOs = 1
PTO Stiffness (N/m) = 0
PTO Damping (Ns/m) = 1.2E+06
Spar/Plate 1DOF 1200PTO
1
0.1
0
-1
-2
Relative Motion 1DOF 1200PTO
2
1
Heave(m)
0.2
Heave(m)
Heave(m)
Float 1DOF 1200PTO
2
0
-0.1
0
200
time(s)
-0.2
400
2
0
-1
0
200
time(s)
-2
400
0.2
0
200
time(s)
400
2
WEC-Sim Org
WEC-Sim New
0
-1
-2
1
Heave(m)
0.1
Heave(m)
Heave(m)
1
0
-0.1
360
380
time(s)
400
-0.2
0
-1
360
380
time(s)
400
-2
360
380
time(s)
400
Figure 6.13: WEC-Sim test plot for RM3: Full simulation (top); last six periods (bottom)
46
6.3.2
OSWEC Test Case
For the OSWEC, the test case is set up for direct comparison using the following model
parameters:
Wave Environment
Wave Type = Regular Waves (Sinusoidal Steady-State)
Wave Height H (m) = 2.5
Wave Period T (sec) = 8
WEC-Sim Simulation Settings
Time Marching Solver = Fourth-Order Runge-Kutta Formula
Start Time (sec) = 0
End Time (sec) = 400
Time Step Size (sec) = 0.1
Ramp Function Time (sec) = 100
List of PTO(s)
Number of PTOs = 1
PTO Stiffness (Nm/rad) = 0
PTO Damping (Nsm/rad) = 0
OSWEC 1DOF Pitch noPTO T=8s H=2.5m
1.5
WEC-Sim Org
WEC-Sim New
1
Pitch(deg)
0.5
0
-0.5
-1
-1.5
0
50
100
150
200
time(s)
250
300
350
400
Figure 6.14: WEC-Sim test plot for OSWEC full simulation
47
Bibliography
[1] Y. Li and Y.-H. Yu, “A Synthesis of Numerical Methods for Modeling Wave Energy
Converter-Point Absorbers,” Renewable and Sustainable Energy Reviews, vol. 16, no. 6,
pp. 4352–4364, 2012.
[2] A. Babarit, J. Hals, M. Muliawan, A. Kurniawan, T. Moan, and J. Krokstad, “Numerical
Benchmarking Study of a Selection of Wave Energy Converters,” Renewable Energy,
vol. 41, pp. 44–63, 2012.
[3] C. Lee and J. Newman, “WAMIT User Manual,” Chestnut Hill, MA, USA, 2006.
[4] “ANSYS Aqwa.” [Online]. Available:
Products/ANSYS+AQWA
http://www.ansys.com/Products/Other+
[5] “Nemoh a Open source BEM.” [Online]. Available: http://openore.org/tag/nemoh/
[6] J. D. Nolte and R. C. Ertekin, “Wave power calculations for a wave energy conversion
device connected to a drogue,” Journal of Renewable and Sustainable Energy, vol. 6,
no. 1, 2014.
[7] W. Cummins, “The Impulse Response Function and Ship Motions,” David Taylor Model
Dasin-DTNSRDC, Tech. Rep., 1962.
[8] W. J. Pierson and L. A. Moskowitz, “Proposed Spectral Form for Fully Developed Wind
Seas Based on the Similarity Theory of S. A. Kitaigorodskii,” Geophysical Research,
vol. 69, pp. 5181–5190, 1964.
[9] K. Hasselman, T.P. Barnett, E. Bouws, H. Carlson, D.E. Cartwright, K. Enke, J.A.
Ewing, H. Gienapp, D.E. Hasselmann, P. Kruseman, A. Meerburg, P. Mller, D.J. Olbers,
K. Richter, W. Sell, and H. Walden, “Measurements of wind-wave growth and swell
decay during the Joint North Sea Wave Project (JONSWAP),” German Hydrographic
Institute, Tech. Rep. 12, 1973.
[10] “MATLAB.” [Online]. Available: http://http://www.mathworks.com/
[11] MATLAB, “SimMechanics Link User s Guide R2014a,” 2014.
[12] Kelley Ruehl, Carlos Michelen, Samuel Kanner, Michael Lawson, and Y. Yu, “Preliminary verfification and validation of WEC-Sim, and open-source wave energy converter
design tool,” in Proceedings of OMAE 2014, San Francisco, CA, 2014.
[13] Y. Yu, Michael Lawson, Kelley Ruehl, and Carlos Michelen, “Development and demonstation of the WEC-SIm wave energy convereter simulation tool,” in Proceedings of the
2nd Marine Energy Technology Symposium, Seattle, WA, USA, 2014.
48
[14] Y. Yu, Ye Li, Kathleen Hallett, and Chad Hotimsky, “Design and analysis for a floating
oscillating surge wave energy converter,” in Proceedings of OMAE 2014, San Francisco,
CA, 2014.
49

advertisement

Was this manual useful for you? Yes No
Thank you for your participation!

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

Related manuals

Download PDF

advertisement