Repository navigation
Conversation
* Clean up examples to clarify inputs/outputs * Change default ss_pcgain * Add tuning input to change setpoint separation when tuning * Fix directories in ex 06 * Bug fix: Use LSS speed throughout TRA subroutine * Add setpoint separation to DISCON_dict * Test build on macos-latest and not 13, those runners being depreciated * Clarify DISCON description for SD_TimeActivate * Remove macos-13 from publish CI * Tidy example 02 * Increment version * Update discons * Add script for creating windio input yamls * Create rosco vt from windio and functionize * Add windio schema conversion to own file * Make example self-contained in ROSCO * Update inputs for openfast 4.2.0 (#491) * Update inputs for openfast 4.2.0 * Update openfast versions in environment * Pull windIO yamls from their repos for example * Revert to windIO versions because they have the updated control inputs
* Account for gearbox ratio in windio conversion * Pin openfast_io pip install * Add windio yaml for nrel-5mw * Fix typo while here
* Update RM1 model and control * Update RM1 tuning yaml and SeaState input * Add discon parameter sweep to CaseLibrary * Make shorter MHK example * Update inputs for openfast 4.2.0 * Update openfast versions in environment * Disable cavitcheck, shutdown at 9999 * Tidy MHK example * Increase generator inertia * Set new tuning parameters for RM1 * Update DISCONs * Update input files to openfast v5 * Update environment yaml * Add discon_param sweep to CaseLibrary * Update output file reader so it can grab partial lines without failing * Read elastodyn file more robustly * Skip blade input reading, unused * Increase toml version * Re-generate discons * Add note about getting pre-compiled libraries from conda * Re-generate registry * Update NREL-5MW, RM1 models to OF 5.0 * Update NREL 2.8 MW * Update toml, discons * Update StC_DOF_MODE for OF5, add TEST_MODE * Update FAST.Farm for OF5.0 * Pip install with no-deps * Set default DISCON dict Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Restore explicit GenDOF setting in base_op_case * Use generic DLL_Filename Co-authored-by: Copilot Autofix powered by AI <[email protected]> * Use generic DISCON_LIB_PATH for external users with generic flag * Update StC mode description * Update python versions to >=3.11 * Try manylinux_2_28 * Skip 32-bit linux, not supported with numpy 2.5 * Fix toml format --------- Co-authored-by: dzalkind <[email protected]> Co-authored-by: Copilot Autofix powered by AI <[email protected]> Co-authored-by: copilot-swe-agent[bot] <[email protected]>
* Update yaw/rad errors * remove accidental mispelling --------- Co-authored-by: dzalkind <[email protected]>
* Account for gearbox ratio in windio conversion * Add docs for building the docs * Add more generic param_sweeps * Clean up and sweep all cases in ex 31 * Add a few more checks to FBP modes * Review MHK control docs * Add cavitation check and docs * Align VS_ControlMode with docs * Try mamba install with fewer solves * Re-organize example and docs to follow three main examples * Add soft-start to FBP modes * Update comment, defaults for MHK settings, VS_ControlMode * Add variable-pitch section * Copy-edit the marine_hydro docs * Clarify 2- vs. 3-bladed remarks * Fix and document v_rated change for FBP * Fix Cp_op in below rated FBP * Relocate min rotor speed limits to before they are used in all cases * Fix comment, FULL_TEST * Fix output name * Try skipping the compiler on macoc-14 --------- Co-authored-by: dzalkind <[email protected]>
Controller.__init__ writes per-case OL_* DISCON overrides into the nested open_loop dict, which was shared across sweep cases by the shallow merge, so later cases could inherit an earlier case's open-loop file or indices. Co-Authored-By: Claude Opus 5.5 <[email protected]>
The check needed the steady angle of attack at each blade section to be more than a heuristic, which the toolbox does not have without CCBlade. AeroDyn's CavitCheck does this properly, so drop the toolbox check and keep the cavitation speed limit in the docs as design guidance. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description and Purpose
Release ROSCO v2.10.6 by merging
developintomain. This release adds windIO support, adds OpenFAST v5.0 compatibility, and reworks the fixed-blade-pitch (FBP) MHK control path. The DISCON.IN format has not changed.What's changed
windIO support (#492, #498)
rosco.toolbox.inputs.windiomodule withwindio_to_discon()anddiscon_to_windio(), which convert between thecontrolsection of a windIO turbine file and ROSCO DISCON parameters.Examples/34_discon_windio.pyconverts in both directions and checks that a round trip gives back the original values. It has been added totest_examples.py. windIO turbine yamls for the IEA-15, IEA-22 and NREL-5MW are inExamples/example_inputs/windio/.OpenFAST v5.0 support (#503)
environment.ymlpinsopenfast=5.0/openfast-io=5.0, andpyproject.tomlrequiresopenfast_io~=5.0.Turbine.load_from_fast()no longer reads the ElastoDyn/BeamDyn blade files, and the unusedTurbine.bld_flapwise_dampattribute has been removed.CaseLibrary.sweep_control_paramscan now sweep adiscon_param.Fixed-blade-pitch MHK control (#508, which has the full details, plus follow-up commits)
VS_MaxTqis now de-rated byPRC_R_Torque.PRC_R_Torquedefaults to 1, so existing configurations behave the same.PRC_Mode = 2can now be used withVS_FBP > 0to soft-start the rotor.PRC_Mode = 1is still rejected.VS_ControlModedoes not match the selectedVS_FBP. Fixed the below-ratedCp_opand the order in which minimum-speed limits are applied.PRC_WindSpeeds/PRC_GenSpeedsdefaults now come from the turbine (v_min/v_maxandPC_RefSpd) instead of hard-coded values.VS_ControlModeis now described as the below-rated torque mode in the schema, the DISCON writer, and the example DISCONs.CaseLibrary.sweep_control_paramsaccepts aparam_sweepslist of fullcontroller_paramsoverrides. Each sweep case now gets its own deep copy of the controller parameters, so one case cannot change the next.docs/source/marine_hydro.rstis substantially expanded, andExamples/31_fixed_pitch_mhk.pyis reorganized. The docs give the tip-cavitation speed limit as design guidance. Neither ROSCO nor the toolbox checks it, so use AeroDyn'sCavitCheckto confirm a schedule.Docs and small fixes (#506 and others)
ControllerInterfacedocstrings now say that yaw inputs are in radians, not degrees (Update documentation errors #506). Fixed a docstring typo insim.py.Ind_StructControlerror message now namesStC_Mode(it saidCC_Mode).load_ascii_outputnow pads or truncates rows with the wrong number of columns instead of failing.libdisconfrom the conda-forge package.mamba.Packaging / CI
requires-python >= 3.11: Python 3.9 and 3.10 are no longer supported. The install docs now use Python 3.11.manylinux_i686, and Linux wheels are built onmanylinux_2_28. macOS wheels use Apple clang from the runner instead of Homebrew LLVM.--no-deps.pyproject.tomland the generated registry (ROSCO_Types.f90,ROSCO_IO.f90).Compatibility notes
openfast_io~=5.0).Type of change
What types of change is it?
Select the appropriate type(s) that describe this PR
TODO Items General:
34_discon_windioadded totest_examples.pyCI_rosco-compilepassed at 8294a23 and needs to be re-run after the cavitation-check removalTODO Items API Change:
VS_ControlModedescription onlyGithub issues addressed, if one exists
None. This PR includes #492, #498, #503, #506 and #508, plus two follow-up commits to #508: removing the toolbox cavitation check, and deep-copying controller parameters for each sweep case.
Examples/Testing, if applicable
CI_rosco-compilepassed ondevelopat 8294a23. It will be re-run on the final head ofdevelopbefore this is merged.Examples/34_discon_windio.pyconverts DISCON → windIO → DISCON for the IEA-15 (monopile and semi) and NREL-5MW, and fails if any value differs by more than 1e-3.Examples/31_fixed_pitch_mhk.pytunes and simulates all six FBP configurations. The results are used in the verification section of the MHK docs.🤖 Generated with Claude Code