starting with wisdem™ · dynamic simulation. turbine dynamics. plant dynamics. machine...

Post on 08-Aug-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Starting with WISDEM™The Short Course

Garrett Barter5th Wind Energy Systems Engineering Workshop (WESE 2019) Pamplona, Spain, October 2-4, 2019

NREL | 2

NREL has both turbine- and plant/system-focused research programs

OpenFASTComputer engineering tool for simulating the coupled dynamic response of wind turbines

Flagship software product

Turbine Focused

WISDEM™Wind-plant Integrated System Design and Engineering Model

FOCUS

System Focused

FLORISA controls-oriented engineering wake modelFAST.FarmWindSENALUFOCUS

Farm Focused

NREL | 3

• (Brief) Introduction to WISDEM and OpenMDAO

• WISDEM installation (essentials only)

• Tutorial 1: Run a simple WISDEM calculation with Jupyter Notebooks

• Some more detail on OpenMDAO

• Tutorial 2: Finding the Betz Limit through OpenMDAO optimization

• Tutorial 3: Sellar problem for putting multiple models together

• Tutorial 4: Modeling a whole turbine and plant LCOE

Agenda

NREL | 4

(Brief) Introduction to WISDEM and OpenMDAO

• (Brief) Introduction to WISDEM and OpenMDAO

• WISDEM installation (essentials only)

• Tutorial 1: Run a simple WISDEM calculation with Jupyter Notebooks

• Some more detail on OpenMDAO

• Tutorial 2: Finding the Betz Limit through OpenMDAOoptimization

• Tutorial 4: Modeling a whole turbine and plant

NREL | 5

WISDEM: Creates a virtual, vertically integrated wind plant from components to operations

Turbine Capital Costs

Component Cost Models

Plant Cost Modeling Onshore Balance

of Station

Onshore Operational System Cost

Analysis

Financing

Annual Energy ProductionPlant Layout and

Energy Production

Dynamic SimulationTurbine

Dynamics

Plant Dynamics

Machine AeroelasticProperties & Controls

Turbine Loads & Energy Performance

Layout Design

Energy ProductionPlant CostsTurbine Costs

Power, Thrust, Noise Curves

Specific Flow Plant Energy Output

Component Mass Properties, Materials & Geometry / Dimensions

Offshore Balance of Station

Offshore Operational

Turbine Design

Tower Rotor Substructure

Rotor Aerodynamics

GeneratorDrivetrain

Turbine Structure Turbine Performance

Substructure

Floating Substructure

Onshore foundation

Offshore Jacket

WISDEM: Wind-Plant Integrated System Design & Engineering Model• Integrated turbine design (e.g. rotor aero-structure, full turbine optimization)• Integrated plant design and operations (e.g. wind plant controls and layout optimization)• Integrated turbine and plant optimization (e.g. site-specific turbine design)

Modular design allows “plug-and-play” with external (3rd party) component modules

NREL | 6

• Most WISDEM modules are developed in Python using the OpenMDAO library– Underlying analysis may be in C,

C++ or Fortran

OpenMDAO (openmdao.org)• Open-source, python-based

platform for systems analysis and multidisciplinary optimization

• Provides ”glue code” and “drivers/wrappers”

• Enables– Model decomposition– Ease of development and

maintenance– Tightly coupled solutions and

parallel methods

Software platform is built with Python using the OpenMDAO library

Phython

NREL | 7

WISDEM installation (essentials only)

• (Brief) Introduction to WISDEM and OpenMDAO

• WISDEM installation (essentials only)

• Tutorial 1: Run a simple WISDEM calculation with Jupyter Notebooks

• Some more detail on OpenMDAO

• Tutorial 2: Finding the Betz Limit through OpenMDAOoptimization

• Tutorial 4: Modeling a whole turbine and plant

NREL | 8

• Key steps1. Download and install Anaconda3 64-bit from https://www.anaconda.com/distribution2. Setup new “conda environment” (provides digital sandbox to explore WISDEM without impacting any

other part of your system) 3. Install WISDEM and its dependencies4. Download WISDEM source code from GitHub

• We want to install the code like a simple user but take a peek at the files like a developer• Open the Anaconda Power Shell (Windows) or Terminal App (Mac) and do:

conda config --add channels conda-forgeconda create -y --name wisdem-env python=3.7conda activate wisdem-envconda install –y wisdem git jupytergit clone https://github.com/WISDEM/WISDEM.git

WISDEM install (essentials only): For full instructions see nwtc.nrel.gov/wisdem

NREL | 9

Tutorial 1: Run a simple WISDEM calculation with Jupyter Notebooks

• (Brief) Introduction to WISDEM and OpenMDAO

• WISDEM installation (essentials only)

• Tutorial 1: Run a simple WISDEM calculation with Jupyter Notebooks

• Some more detail on OpenMDAO

• Tutorial 2: Deriving the Betz Limit through OpenMDAOoptimization

• Tutorial 4: Modeling a whole turbine and plant

NREL | 10

• WISDEM has multiple levels of fidelity, we will operate at the simplest level: “spreadsheet”-type calculation of component masses and cost

• We will: Populate inputs, execute model, list all the model inputs and outputs– Will reveal some of the backend layers of OpenMDAO building blocks– Will ignore OpenMDAO syntax for now

Use WISDEM as a calculator to estimate component masses and costs from simple scaling relationships

WISDEM Cost and Scaling Model

(regression based)

Turbine classMachine ratingRotor diameter

Hub heightNumber of blades

Max tip speedDrivetrain efficiency

Number of main bearings

User overrides of scaling coefficients

Component massesComponent costsSummary massesSummary costs

NREL | 11

There are many ways to run WISDEM (and python) beyond Jupyter Notebooks

Command line from Anaconda Prompt or Terminal App

Spyder for a Matlab-style Desktop PyCharm or other IDE

NREL | 12

• Jupyter Notebook is a web application that connects with your local python shell

• Allows for creating and sharing documents with– Live code– Equations– Visualizations– Narrative text

• To get started with the WISDEM Jupyter Notebook tutorials we have to navigate to the right directory and start Jupyter

• Open the Anaconda Prompt (Windows) or Terminal App (Mac) and do:

cd WISDEM/tutorial-notebooksjupyter notebook

Jupyter Notebook: Interacting with the Python “shell” through a browser in a live code “diary”

NREL | 13

NREL | 14

NREL | 15

Use Shift+Enterto evaluate each block

NREL | 16

NREL | 17

NREL | 18

NREL | 19

Some more detail on OpenMDAO

• (Brief) Introduction to WISDEM and OpenMDAO

• WISDEM installation (essentials only)

• Tutorial 1: Run a simple WISDEM calculation with Jupyter Notebooks

• Some more detail on OpenMDAO

• Tutorial 2: Deriving the Betz Limit through OpenMDAOoptimization

• Tutorial 4: Modeling a whole turbine and plant

NREL | 20

Problem

Model = Top Level Group

OpenMDAO building blocks and concepts

Driver (optimization or analysis)•Design variables •Objective(s) •Constraints

Recorder

ComponentInputs

Outputs

ComponentInputs

Outputs

Group

ComponentInputs

Outputs

ComponentInputs

Outputs

IndepVar

Outputs

Connection: Explicit or same-name “promotes”

Subsystem, ‘B’

Subsystem, ‘C’

Subsystem, ‘A’

NREL | 21

Tutorial 2: Finding the Betz Limit through OpenMDAOoptimization

• (Brief) Introduction to WISDEM and OpenMDAO

• WISDEM installation (essentials only)

• Tutorial 1: Run a simple WISDEM calculation with Jupyter Notebooks

• Some more detail on OpenMDAO

• Tutorial 2: Finding the Betz Limit through OpenMDAOoptimization

• Tutorial 4: Modeling a whole turbine and plant

NREL | 22

OpenMDAO model building steps applied to the Betz Problem

Component Steps• Create an OpenMDAO Component• Add the actuator disk inputs and

outputs• Use declare_partials() to declare

derivatives– Finite difference or exact analytic

options are available• Create a compute() method to

compute outputs from inputs• Create a compute_partials()

method for the derivatives

Group and Problem Steps• Create an OpenMDAO Group.

– Add a subsystem of independent variables

– Add the disk Component as a subsystem

– Connect variables through connect() statements or same name promotion

• Create an OpenMDAO Problem– Set the model = Group instance– Add optimization Driver– Add design variables– Add the objective

• Setup and run problem driver

NREL | 23

NREL | 24

NREL | 25

NREL | 26

NREL | 27

NREL | 28

NREL | 29

NREL | 30

NREL | 31

Tutorial 4: Modeling a whole turbine and plant

• (Brief) Introduction to WISDEM and OpenMDAO

• WISDEM installation (essentials only)

• Tutorial 1: Run a simple WISDEM calculation with Jupyter Notebooks

• Some more detail on OpenMDAO

• Tutorial 2: Finding the Betz Limit through OpenMDAOoptimization

• Tutorial 4: Modeling a whole turbine and plant

NREL | 32

NREL | 33

www.nrel.gov

This work was authored by the National Renewable Energy Laboratory, operated by Alliance for Sustainable Energy, LLC, for the U.S. Department of Energy (DOE) under Contract No. DE-AC36-08GO28308. Funding provided by U.S. Department of Energy Office of Energy Efficiency and Renewable Energy Wind Energy Technologies Office. The views expressed in the article do not necessarily represent the views of the DOE or the U.S. Government. The U.S. Government retains and the publisher, by accepting the article for publication, acknowledges that the U.S. Government retains a nonexclusive, paid-up, irrevocable, worldwide license to publish or reproduce the published form of this work, or allow others to do so, for U.S. Government purposes.

Thank you

NREL/PR-5000-75659

top related