Coder Social home page Coder Social logo

tudelft-datadrivencontrol / drc_fortran Goto Github PK

View Code? Open in Web Editor NEW
25.0 10.0 17.0 2.13 MB

Delft Research Controller (DRC), Bladed-style DISCON baseline wind turbine controller

License: MIT License

Batchfile 0.44% Fortran 95.63% Shell 0.45% Makefile 3.49%

drc_fortran's Introduction

DRC_Fortran wind turbine baseline controller

Delft Research Controller (DRC) baseline wind turbine controller, using the Bladed-style DISCON interface used by, e.g., OpenFAST, Bladed (versions 4.5 or earlier) and HAWC2.

Introduction

The Delft Research Controller (DRC) provides an open, modular and fully adaptable baseline wind turbine controller to the scientific community. New control implementations can be added to the existing baseline controller, and in this way, convenient assessments of the proposed algorithms is possible. Because of the open character and modular set-up, scientists are able to collaborate and contribute in making continuous improvements to the code. The DRC is being developed in Fortran and uses the Bladed-style DISCON controller interface. The compiled controller is configured by a single control settings parameter file, and can work with any wind turbine model and simulation software using the DISCON interface. Baseline parameter files are supplied for the NREL 5-MW and DTU 10-MW reference wind turbines.

Using the DRC for Bladed

If you want to use the controller with DNV GL Bladed v4.5 or earlier (which still has support for the DISCON external controller interface), do the following:

  1. Be sure to use and place the 32-bit DLL in the same folder as where you put your project .$PJ-file
  2. Copy in that same folder the DISCON.IN controller configuration file
  3. Set-up the 32-bit DLL as an external controller (Control -> Discrete External Controller -> Define...)
  4. Open the DISCON.IN file with a text editor and copy its entire contents in the "External controller data:" section (Control -> Discrete External Controller -> Define...)
  5. Run a "Power Production" simulation

Referencing

When you use the DRC in any publication, please cite the following paper:

  • Mulders, S.P. and van Wingerden, J.W. "Delft Research Controller: an open-source and community-driven wind turbine baseline controller." Journal of Physics: Conference Series. Vol. 1037. No. 3. IOP Publishing, 2018. Link to the paper

drc_fortran's People

Contributors

nikhar-abbas avatar spmulders avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

drc_fortran's Issues

About validation of Yaw-rate control in DRC

Hi all, I meet some problem when I trying to validate the Yaw-rate control by using OpenFAST.
At the first, I want to reproduce the bandwidth test in deliverable report No.D2.1 from CL-Windcon(shows blow).
Ref: http://www.clwindcon.eu/wp-content/uploads/2017/03/CL-Windcon-D2.1-Wind-turbine-controllers.pdf
Screenshot 2020-11-03 003818
In the calculation, I use compiled DLL of DRC and input the defult DISCON.IN parameter file of NREL5MW wind turbine to DRC controller.
As the result, I obatained a very stranger time series of yaw angel shows blow. (Yaw-rate control been activeted in DISCON.IN, and IPC has been turned off)
Screenshot 2020-11-03 005946
As you see, the yaw angel smoothly change to about -4 deg while wind direction stayed 0 deg. And I get the same result when I turned yaw control off in DISCON.IN.

I checked all setting in DISCON.IN and OpenFAST but still have no idea about this problem.
So, I come here to ask if you know how to solve it or maybe I did something wrong when use DRC.

I attached the DISCON.IN file and ServoDyn file that I used in my calculation here.

Thanks in advance and Best Regards,
SONG

DISCON_IN & ServoDyn file.zip

IPC issue

Hi all,

I suspect there is an issue with the IPC trigo projection here :

axTOut = 2.0/3.0 * (cos(nHarmonic*(aziAngle)*rootMOOP(1)) + cos(nHarmonic*(aziAngle+phi2)*rootMOOP(2)) + cos(nHarmonic*(aziAngle+phi3))*rootMOOP(3))
axYOut = 2.0/3.0 * (sin(nHarmonic*(aziAngle)*rootMOOP(1)) + sin(nHarmonic*(aziAngle+phi2)*rootMOOP(2)) + sin(nHarmonic*(aziAngle+phi3))*rootMOOP(3))

I reckon rootMOOP should be outside of sin/cos parenthesis and is inside for the two first blades, but is indeed outside for third blade.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.