Skip to content
forked from PStanfel/floris

A controls-oriented engineering wake model. Documentation at

License

Notifications You must be signed in to change notification settings

vijay092/floris

 
 

Repository files navigation

Instructions for use:

This code builds on NREL's FLORIS package which this repo is forked from. To use:

Create a virtual environment

Clone into a directory.

pip install -e floris

cd floris

pip install gym

`pip install -e marl_env'

Data is created in the data_generation folder. Run generate_data.py to generate a variety of files relating to state, reward, etc. Some sample files are provided in the data folder. Running generate_flow_field will create a flow field image using the assembled data. To run the algorithm, run neurips_demo.m in the code_neurips folder. Sample state trajectories are also provided in the data folder which must be extracted first (this was done to reduce the upload time to GitHub). New csv data can be transferred from the data_generation folder to the code_neurips/data folder if desired. The code_neurips folder is taken from code published at http://www1.se.cuhk.edu.hk/~htwai/pub.html in the paper Multi-Agent Reinforcement Learning via Double Averaging Primal-Dual Optimization. Below is the original README file associated with FLORIS. Other folders in the code package came with the FLORIS distribution and were left unaltered, with the exception of the examples folder which was modified to remove extraneous example scripts that were not used.

FLORIS Wake Modeling Utility

Further documentation is available at http://floris.readthedocs.io/.

For technical questions regarding FLORIS usage please first search for or post your questions to stackoverflow using the floris tag. Alternatively, please contact Jen King, Paul Fleming, Chris Bay, and Rafael Mudafort.

Background and Objectives

This FLORIS framework is designed to provide a computationally inexpensive, controls-oriented modeling tool of the steady-state wake characteristics in a wind farm. The wake models implemented in this version of FLORIS are:

  • Jensen model for velocity deficit
  • Jimenez model for wake deflection
  • Gauss model for wake deflection and velocity deficit
  • Multi zone model for wake deflection and velocity deficit
  • Curl model for wake deflection and velocity deficit

More information on all of these models can be found in the theory section of the online documentation.

A couple of publications with practical information on using floris as a modeling and simulation tool for controls research are

  1. Annoni, J., Fleming, P., Scholbrock, A., Roadman, J., Dana, S., Adcock, C., Porté-Agel, F, Raach, S., Haizmann, F., and Schlipf, D.: Analysis of control-oriented wake modeling tools using lidar field results, in: Wind Energy Science, vol. 3, pp. 819-831, Copernicus Publications, 2018.
  2. Bay, C.J., King, J., Fleming, P., Mudafort, R., and Martínez-Tossas, L.A.: Unlocking the Full Potential of Wake Steering: Implementation and Assessment of a Controls-Oriented Model, submitted to Wind Energy Science Discussions, Copernicus Publications, 2019.

Citation

If FLORIS played a role in your research, please cite it. This software can be cited as:

FLORIS. Version 1.0.0 (2019). Available at https://github.com/nrel/floris.

For LaTeX users:

@misc{FLORIS_2019,
author = {NREL},
title = {{FLORIS. Version 1.0.0}},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
url = {https://github.com/NREL/floris}
}

Installation

Using pip, FLORIS can be installed in two ways

  • local editable install
  • using a tagged release version from the pip repo

For consistency between all developers, it is recommended to use Python virtual environments; this link provides a great introduction. Using virtual environments in a Jupyter Notebook is described here.

Local Editable Installation

The local editable installation allows developers to maintain an importable instance of FLORIS while continuing to extend it. The alternative is to constantly update python paths within the package to match the local environment.

Before doing the local install, the source code repository must be cloned directly from GitHub:

git clone https://github.com/nrel/floris

Then, using the local editable installation is as simple as running the following command from the parent directory of the cloned repository:

pip install -e floris

Finally, test the installation by starting a python terminal and importing FLORIS:

import floris

pip Repo Installation

The FLORIS version available through the pip repository is typically the latest tagged and released major version. This version represents the most recent stable, tested, and validated code.

In this case, there is no need to download the source code directly. FLORIS and its dependencies can be installed with:

pip install floris

Dependencies

FLORIS has dependencies on various math, statistics, and plotting libraries in addition to other general purpose packages. For the simulation and tool modules, the dependencies are listed in floris/requirements.txt. The documentation has additional requirements listed in floris/docs/requirements.txt.

The requirements files can be used to install everything with:

pip install -r requirements.txt

License

Copyright 2019 NREL

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.

About

A controls-oriented engineering wake model. Documentation at

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 89.1%
  • HTML 7.4%
  • MATLAB 1.8%
  • JavaScript 1.4%
  • CSS 0.3%