OpenFAST / openfast

Main repository for the NREL-supported OpenFAST whole-turbine and FAST.Farm wind farm simulation codes.
http://openfast.readthedocs.io
Apache License 2.0
671 stars 454 forks source link

coupling program for AeroDyn and ServoDyn #1844

Open YangLeiTH opened 10 months ago

YangLeiTH commented 10 months ago

Dear @jjonkman ,

I am writing to inquire about the possibility of coupling AeroDyn and ServoDyn. I am interested in using other time-domain calculation software to calculate hydrodynamics, mooring forces, and structural dynamics, and then simulate the motion sequence of the tower top. I would like to input this motion sequence into a coupling program for AeroDyn and ServoDyn, which will then calculate air dynamics, control blade pitch angle, and torque.

I understand that the individual AeroDyn.exe module can be used to calculate Aerodynamic loads given information such as tower top motion and blade pitch angle. However, I am wondering if it is possible to have ServoDyn provide the blade pitch angle commands so that this can be achieved.

Thank you for your assistance.

Best regards,

Lei Yang

jjonkman commented 10 months ago

Dear @YangLeiTH,

It sounds like you want to couple your own hydro-elastic solver with AeroDyn and ServoDyn. This would generally require developing an interface between your solver and AeroDyn/ServoDyn such that AeroDyn and ServoDyn are called every time step. I'm sure this is possible, with some coding. AeroDyn and ServoDyn both follow the interface requirements of the OpenFAST modularization framework, including *_Init(), *_UpdateStates(), *_CalcOutput(), and *_End() routines.

What programming language is your solver written in?

Best regards,

YangLeiTH commented 10 months ago

Dear @jjonkman

Yes, I want to couple my own hydro-elastic solver with AeroDyn and ServoDyn. My own hydro-elastic solver is written in python.

Best regards,

jjonkman commented 10 months ago

Dear @YangLeiTH,

NREL has already developed a Python wrapper around AeroDyn, InflowWind, and other modules that can be used to interface these modules with other codes written in Python and/or C--e.g., see: https://github.com/OpenFAST/openfast/tree/main/modules/aerodyn/python-lib. However, I'm not aware that a similar Python wrapper has been written around ServoDyn; you'd likely have to develop something similar to the Python wrapper around AeroDyn.

Best regards,

YangLeiTH commented 10 months ago

Okay, I will try implementing it in Python. Thank you!