Skip to content

ROSCO v2.10.6: windIO and OpenFAST v5.0 support

Latest

Choose a tag to compare

@dzalkind dzalkind released this 29 Sep 19:31
9d6c0a7

ROSCO v2.10.6 adds windIO support and OpenFAST v5.0 compatibility, and improves fixed-blade-pitch (FBP) control for marine hydrokinetic (MHK) turbines. The DISCON.IN format has not changed, so existing DISCON files work as they are.

Compatibility

  • The toolbox now requires Python 3.11 or newer. Python 3.9 and 3.10 are no longer supported.
  • Tuning now requires OpenFAST v5.0 input files (openfast_io~=5.0). If you need to tune from OpenFAST v4.2 inputs, use v2.10.5.
  • Turbine no longer reads the ElastoDyn/BeamDyn blade files, and the Turbine.bld_flapwise_damp attribute has been removed.

What's new

windIO support

  • Convert between the control section of a windIO turbine file and ROSCO DISCON parameters with windio_to_discon() and discon_to_windio() in rosco.toolbox.inputs.windio. Rotor speeds in windIO are converted to generator speeds in ROSCO using the gearbox ratio.
  • Examples/34_discon_windio.py shows the conversion in both directions. windIO turbine files for the IEA-15, IEA-22 and NREL-5MW are in Examples/example_inputs/windio/.

OpenFAST v5.0

  • The toolbox reads OpenFAST v5.0 input files, and the example models in Examples/Test_Cases/ have been updated to v5.0.

Fixed-blade-pitch control for MHK turbines

  • You can now soft-start an FBP rotor with PRC_Mode = 2 by ramping PRC_R_Torque, which now de-rates VS_MaxTq in FBP mode. Existing configurations behave the same, because PRC_R_Torque defaults to 1.
  • The toolbox now rejects FBP settings that ROSCO would reject at runtime, and warns when VS_ControlMode doesn't match VS_FBP.
  • Fixed the below-rated operating schedule and the minimum rotor speed limits that the toolbox generates for FBP.
  • The MHK documentation has been substantially expanded. It now covers variable-pitch control, alternate Region 3 schedules, and rotor speed limits and cavitation. Examples/31_fixed_pitch_mhk.py now walks through three verified case studies.

Other changes

  • CaseLibrary.sweep_control_params can now sweep a DISCON parameter (discon_param) or a list of full controller configurations (param_sweeps). Each case gets its own copy of the parameters.
  • The default PRC_WindSpeeds and PRC_GenSpeeds are now based on the turbine instead of hard-coded values.
  • VS_ControlMode is now correctly described as the below-rated torque mode.
  • The ControllerInterface docstrings now say that yaw inputs are in radians.
  • load_ascii_output no longer fails on rows with the wrong number of columns.
  • The README explains how to get a precompiled libdiscon from the conda-forge package, so you don't have to compile ROSCO.
  • Linux wheels are built on manylinux_2_28, and 32-bit Linux (i686) wheels are no longer built.

Pull requests

New Contributors

Full Changelog: v2.10.5...v2.10.6