Warning: This document is for an old version of WecOptTool.

3. API

3.1. WecOptTool

The WecOptTool package provides the main interface for the toolbox.

class WecOptTool.RM3Study

Interface for preparing, executing and inspecting a simulation based on the RM3 device

addControl(controlObj)

Add a controller type to the simulation

Parameters:controlObj (WecOptTool.control.AbsControl) – Controller specification object
addGeometry(geomObj)

Add a design variable type to the simulation

Parameters:geomObj (WecOptTool.control.AbsGeom) – Design variable geometry specification object
addSpectra(spectra)

Add a spectra to the simulation

A single spectrum or weighted multi-spectra sea-states can be simulated.

Parameters:spectra (struct) –

spectrum structure (can be arrary) in WAFO with the fields:

  • S.w: column vector of frequencies in [rad/s]
  • S.S: column vector of spectral density in [m^2 rad/ s]
  • S.mu (optional): weighting for spectrum in multi-spectra sea-states
WecOptTool.plot(study)

Plots frequency vs. power for optimized study

Parameters:study (WecOptTool.RM3Study) – executed RM3Study object
WecOptTool.result(study)

Displays the results from the optimized study

Parameters:study (WecOptTool.RM3Study) – executed RM3Study object
WecOptTool.run(study, optimOptions)

Run a simulation with optional optimiser options

Parameters:
  • study (WecOptTool.RM3Study) – configured RM3Study object
  • optimOptions (optional) – options to fmincon, created with optimoptions

3.1.1. WecOptTool.control

The control subpackage provides options for device control.

class WecOptTool.control.ComplexConjugate

Provides complex congugate control

Seeks optimal power absorption, see Falnes2002 for technical details.

class WecOptTool.control.ProportionalDamping

Provides proportional damping control

Resistive damping (i.e., a proportional feedback on velocity). See Falnes2002 for technical details.

class WecOptTool.control.PseudoSpectral(deltaZmax, deltaFmax)

Provides psuedo spectra control

Seeks optimal power absorption subject to constraints. See Bacelli2014 for technical details.

Parameters:
  • deltaZmax (double, optional) – maximum relative oscillation amplitude [m]
  • deltaFmax (double, optional) – maximum PTO force [N]

Note

deltaZmax and deltaFmax must be provided together.

3.1.2. WecOptTool.geom

The geom subpackage provides options for device geometry variation.

class WecOptTool.geom.Existing(nemohRunDirectory)

Use an existing geometry for control optimisation

Parameters:nemohRunDirectory (str) – path to the directory containing the NEMOH results files
class WecOptTool.geom.Parametric(x0, upperBound, lowerBound)

Vary device geometry parametrically.

For the RM3 study the design variables are

  • r1: the radius of the surface float
  • r2: the radius of the heave plate
  • d1: the draft of the surface float
  • d2: the depth of the heave plate,

The resulting design array is given as x = [r1, r2, d1, d2].

Parameters:
  • x0 (double[4]) – optimisation initial guess
  • upperBound (double[4]) – optimisation upper bound
  • lowerBound (double[4]) – optimisation lower bound
class WecOptTool.geom.Scalar(x0, upperBound, lowerBound)

Vary device geometry by a global scalar value.

The entire RM3 device model is scaled using a multiple of the base RM3 device dimensions.

Parameters:
  • x0 (double) – optimisation initial guess
  • upperBound (double) – optimisation upper bound
  • lowerBound (double) – optimisation lower bound