Skip to content

Commit

Permalink
Fix Docs and Minimum Rotor/Generator Speed (NREL#83)
Browse files Browse the repository at this point in the history
* Combine ROSCO and the ROSCO_toolbox (NREL#54) (NREL#78)

* Add peak shaving back to UMaine Semi example

* create lin_util

* move helper functions to lin _util

* Revert controller to develop: TSR_at_minspeed

* add survey

* add survey

* typo fix

* Update headers

* fix bullets

* make uppercase

* Update turbine.py (NREL#56)

* Update turbine.py

This add several lines for fixing the problem of repeated maximum values in the performance tables. This will cause the error (' the length of x and y is different.') of 'interpolate.interp1d.'

* Add comments and catch when there are multiple optimal pitch angles

Co-authored-by: dzalkind <dzalkind@nrel.gov>

* increment version

* Update for OpenFAST v3.0.0

* Update for OpenFAST v3.0.0

* Install OF3.0.0 for tests

* update for OF v3.0.0

* add publish to pypi on release

* Update to ROSCO v2.3.0

* Update Testing (NREL#58)

* Update scripts to run on eagle

* Update IEA-15MW semi example: use peak shaving w/ ps_percen=0.8

* Add comparison plots to testing scripts

* Update submit script for testing

* Update for latest eagle runs

* Add future to install dependencies

* add TMax to self, define tmin in print_results

* run tests in CI

* generic ROSCO path

* default to overwrite

* fix path

* import platform

* separate run_testing

* cleanup, specify lite test

* don't run testing in after examples, oops.

Co-authored-by: nikhar-abbas <40865984+nikhar-abbas@users.noreply.github.com>
Co-authored-by: Nikhar Abbas <nikhar.abbas@colorado.edu>

* increment version

* Update for OpenFAST v3.0.0

* Install OF3.0.0 for tests

* update for OF v3.0.0

* add publish to pypi on release

* Update to ROSCO v2.3.0

* Increment Version, OF3.0 (NREL#57)

* increment version

* Update for OpenFAST v3.0.0

* Install OF3.0.0 for tests

* update for OF v3.0.0

* add publish to pypi on release

* Update to ROSCO v2.3.0

* increment version

* Update for OpenFAST v3.0.0

* Install OF3.0.0 for tests

* update for OF v3.0.0

* add publish to pypi on release

* Update to ROSCO v2.3.0

* add ROSCO without submodule

* move ROSCO source to ROSCO folder

* Move cmake-related files to ROSCO

* Add back pesky ErrVar

* Remove parameters_files

* Merge ROSCO and _toolbox gitignore

* Fix .gitignore

* Remove Examples/DISCON.IN from git

* Fix and point example_01 to Tune_Cases/

* Update verbiage around using ofTools vs. weis

* Fix and point example_04 to Tune_Cases/

* Clean up example_06

* Clean up example_07

* Only check FlpCornerFreq if using Flp control, fixes example 05

* Make example_04 consistent with others

* Let example_05 run independently from 04

* Clean up example_05, wind files

* Add schema and update empty tuning yaml inputs, not connected yet

* Integrate schema into turbine, controller, and examples

* Only check Fl filter parameters if Fl_Mode > 0, fix example_05

* bump version to 2.3

* Compile ROSCO from ROSCO dir

* Rename to CI_rosco

* Add omega vs. windspeed functionality

* Fix tests: 5MW U_pc and 06 example dir

* Make _Toolbox vs_minspeed in rotor frame to match ROSCO

* Revert ServoDyn change

* change rotor speed constraint to be epsilon

* rename for clarity

* docs major refresh

* fix FA_AccF units in debug file

* docs that build locally

* Deallocate arrays in ROSCO, check in example_05

* Clean up comments

* remove gitmodules

* furo theme

* furo in requirements

* move readthedocs config file, remove furo import in conf.py

* add docs requirements file

* typo

* move index out of source folder

* trying to get furo to work

* import date

* fix versions and titles, cleanup readthedocs requirements

* typo fix, remove extras

* more cleanup

* bump version

* no furo extension, "hack" to load RT version

* proper toctree paths

* specify method

* add mock modules

* fix typos

* update python install requirements

* running locally

* move index to main docs dir again

* update to build locally

* error during warnings

* automated version

* cleanup

* remove old docs

* re-add docs

* simplify

* fix figure path

* try alabaster

* remove archived docs

* Add omega vs. windspeed functionality

* Fix tests: 5MW U_pc and 06 example dir

* more detailed sp.optimize settings

* run MBC3 in parallel

* restructure driver, run initialization doe for tuning

* Try new dlclose function

* Update example_05 to run simple simulation twice and check result

* Revert deallocation stuff

* Close discon library after every sim run

* Test examples on macOS and windows

* Run examples instead of testing on other platforms

* Skip examples in windows for now

* update paths and yaml load funciton

* Skip mac testing of examples

* provide default U_pc for single omega/zeta case

* allow for float or list-like pc tuning inputs

* Change name in setup.py

* WE_Vw unit fix

* cleeanup for improved stability

* check for doe_logs as string in load_DOE

* major restructure for rsched_driver class

* cleanup verbosity

* run serial by default

* load_parallel as linturb_option

* specific IEA15MW yaml for multi omega

* remove unused module imports

* fix error message types

* lin_file as input

* add comments on inputs to LinearTurbineModel init method

* remove relative file paths

* provide OpenFAST linearizations for IEA15MW UMaineSemi

* put plotting in specific function

* fix WE_lambda units

* add self in on a few necessary variables

* creaete example 12 for robust scheduling

* try a few mbc3 locations for import

* allow list-like or numpy arrays for omega_pc and zeta_pc schedules

* create and use recorder setup function

* Pass Through Kp_float (NREL#57)

* Pass through kp_float, if desired

* Minor fixes: schema error and InputReader defaults

* fix setup_recorder to work for optimization driver too

* cleanup om problems, update om0 calc

* doe levels as input

* negative k_float to account for OF conventions

* cleanup print statements

* variable name cleanup, use calculated k_float

* Add defaults to omega_,zeta_ pc and vs, allow to be numbers

* use standard tuning k_float as IC

* formatting update

* update problem setup methods

* cleanup add_dv, enable adding design variables after problem is setup

* change optimization step size

* more setup restructure

* update verbosity

* use sphinx-rtd-theme

* master doc and sphinx rtd theme

* index back to root folder

* only ignore install folders

* remove hidden toctree

* furo theme

* update paths

* convert rt version to string

* update sphinx settings

* move conf

* furo theme

* Mostly a docs update (NREL#61)

* rename for clarity

* docs major refresh

* fix FA_AccF units in debug file

* docs that build locally

* remove gitmodules

* furo theme

* furo in requirements

* move readthedocs config file, remove furo import in conf.py

* add docs requirements file

* typo

* move index out of source folder

* trying to get furo to work

* import date

* fix versions and titles, cleanup readthedocs requirements

* typo fix, remove extras

* more cleanup

* bump version

* no furo extension, "hack" to load RT version

* proper toctree paths

* specify method

* add mock modules

* fix typos

* update python install requirements

* running locally

* move index to main docs dir again

* update to build locally

* error during warnings

* automated version

* cleanup

* remove old docs

* re-add docs

* simplify

* fix figure path

* try alabaster

* remove archived docs

* use sphinx-rtd-theme

* master doc and sphinx rtd theme

* index back to root folder

* only ignore install folders

* remove hidden toctree

* furo theme

* update paths

* convert rt version to string

* update sphinx settings

* move conf

* furo theme

* Pass through Kp_float = 0 (NREL#59)

* Pass through kp_float, if desired

* Minor fixes: schema error and InputReader defaults

* Allow pass through of Kp_float = 0

* Add flp parameters to schema

* Change Fl_Mode default to 0

* Add defaults to omega_,zeta_ pc and vs, allow to be numbers

* Allow single pitch tuning values in code, default U_pc to 0

* use nac acceleration for floating feedback

* Fix TSR saturation for region 2.5operation

* Modify system for constant power operation

* Only modify pole for constant power above-rated

* Remove GenEff from K calc

* Update tuning, use constant power

* use load_rosco_yaml

* constant power

* Fix broken tests

* Include Fl_Mode=2 for nacelle pitching feedback

* Versioning (NREL#65)

* use sphinx-rtd-theme

* master doc and sphinx rtd theme

* index back to root folder

* only ignore install folders

* remove hidden toctree

* furo theme

* update paths

* convert rt version to string

* update sphinx settings

* move conf

* furo theme

* remove git versioning from cmake

* use hard coded rosco_version

* update intro write method

* set nowrap for intel compilers

* update install instructions

* Catch nans in ROSCO at end of WSE

* fix conda install typo

* cleanup docs

* Rename DEBUG2.dbg to RootName.dbg2

* Fix Fl_Mode == 2

* Fix Fl_Mode == 2 again

* Allow Fl_Mode = 2 in ROSCO

* Set notch and check frequencies when Fl_Mode = 1 (fixes bug)

* Update robust scheduling methods

* Fail fast when not using custom build_extension

* Add a Windows install step with FC var set

* Force using MinGW for Windows build

* Use FC environment variable for all systems

* Portable option for setting the CMake generator

* Remove unused input to setup function

* Fix notch types allowed

* Add VS_ControlMode of 3 to DISCON comment

* Allow PS_Mode of 2 and 3 to work in ROSCO as if PS_Mode = 1

* Format and clean up ROSCO

* cleanup checks for lengths of pitch controller tuning inputs

* restructure for WEIS, cleanup nearest nyquist calculation methods

* update example for restructure

* specify VS_ControlMode=3 option

* Update links, add issues and discussions, cleanup

* Fix plotting typo

* Update and cleanup docs for recent changes

* bump version numbers to 2.4.0

* updates for more consistent convergence to minimum nyquist

* list_check tuning inputs

* change initial condition to om0=0.1

* delete unuses modules

* list_check controller params without return_bool

* More oneROSCO2 updates, primarily housekeeping (NREL#76)

* cleanup checks for lengths of pitch controller tuning inputs

* restructure for WEIS, cleanup nearest nyquist calculation methods

* update example for restructure

* specify VS_ControlMode=3 option

* Update links, add issues and discussions, cleanup

* Fix plotting typo

* Update and cleanup docs for recent changes

* bump version numbers to 2.4.0

* updates for more consistent convergence to minimum nyquist

* list_check tuning inputs

* change initial condition to om0=0.1

* delete unuses modules

* list_check controller params without return_bool

* Align y labels

* indentation fixes

* minor restructure

* change to code-block commands

* add spaces

* remove space

* more spacing fixes

* use code-block command throughout

* add cmake to requirements

* make figure svg instead of png

* Update and cleanup, especially install instructions

* Update titles

* delete old instructions

* change header type

* minor hyperlink update

* include build directories in gitignore

Co-authored-by: Nikhar Abbas <nikhar.abbas@colorado.edu>
Co-authored-by: Xianping Du <38188001+Seager1989@users.noreply.github.com>
Co-authored-by: nikhar-abbas <40865984+nikhar-abbas@users.noreply.github.com>
Co-authored-by: Rafael M Mudafort <rafmudaf@gmail.com>

Co-authored-by: Nikhar Abbas <nikhar.abbas@colorado.edu>
Co-authored-by: Xianping Du <38188001+Seager1989@users.noreply.github.com>
Co-authored-by: nikhar-abbas <40865984+nikhar-abbas@users.noreply.github.com>
Co-authored-by: Rafael M Mudafort <rafmudaf@gmail.com>

* Fix docs link and gearbox issue for minimum rotor/generator speed

* add package data

* setup.py install instead of develop for examples

* cleanup tuning yaml files

Co-authored-by: nikhar-abbas <40865984+nikhar-abbas@users.noreply.github.com>
Co-authored-by: Nikhar Abbas <nikhar.abbas@colorado.edu>
Co-authored-by: Xianping Du <38188001+Seager1989@users.noreply.github.com>
Co-authored-by: Rafael M Mudafort <rafmudaf@gmail.com>
  • Loading branch information
5 people authored Nov 10, 2021
1 parent 6f25429 commit 277b637
Show file tree
Hide file tree
Showing 10 changed files with 33 additions and 96 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/CI_rosco-pytools.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ jobs:
# Install ROSCO toolbox
- name: Install ROSCO toolbox
run: |
python setup.py develop --compile-rosco
python setup.py install --compile-rosco
# Install OpenFAST
- name: Install OpenFAST
Expand Down
4 changes: 2 additions & 2 deletions ROSCO_toolbox/utilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@ def write_DISCON(turbine, controller, param_file='DISCON.IN', txt_filename='Cp_C
file.write('{:<014.5f} ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm]\n'.format(turbine.rated_torque))
file.write('{:<014.5f} ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s].\n'.format(turbine.max_torque_rate))
file.write('{:<014.5f} ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm].\n'.format(turbine.max_torque))
file.write('{:<014.5f} ! VS_MinTq - Minimum generator (HSS side), [Nm].\n'.format(0.0))
file.write('{:<014.5f} ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s]\n'.format(controller.vs_minspd))
file.write('{:<014.5f} ! VS_MinTq - Minimum generator torque (HSS side), [Nm].\n'.format(0.0))
file.write('{:<014.5f} ! VS_MinOMSpd - Minimum generator speed [rad/s]\n'.format(controller.vs_minspd * turbine.Ng))
file.write('{:<014.5f} ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [Nm/(rad/s)^2]\n'.format(controller.vs_rgn2K))
file.write('{:<014.5f} ! VS_RtPwr - Wind turbine rated power [W]\n'.format(turbine.rated_power))
file.write('{:<014.5f} ! VS_RtTq - Rated torque, [Nm].\n'.format(turbine.rated_torque))
Expand Down
20 changes: 2 additions & 18 deletions Tune_Cases/BAR.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,7 @@ turbine_params:
max_torque_rate: 4500000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s}
rated_power: 5000000. # Rated Power [W]
bld_edgewise_freq: 3.27082 # Blade edgewise first natural frequency [rad/s]
bld_flapwise_freq: 2.61601 # Blade flapwise first natural frequency [rad/s]
# Optional
# TSR_operational: # None # Desired below-rated operational tip speed ratio (Cp-maximizing TSR is used if not defined)
# - should be defined if Fl_Mode = 1
twr_freq: 0.0 # Tower natural frequency [rad/s]
ptfm_freq: 0.0 # Platform natural frequency [rad/s]
bld_flapwise_freq: 2.61601 # Blade flapwise first natural frequency [rad/s]
#------------------------------- CONTROLLER PARAMETERS ----------------------------------
controller_params:
# Controller flags
Expand All @@ -49,15 +44,4 @@ controller_params:
omega_vs: 0.1 # Torque controller desired natural frequency [rad/s]
# Only needed if Flp_Mode > 0
zeta_flp: 0.7 # Flap controller desired damping ratio [-]
omega_flp: 2.63 # Flap controller desired natural frequency [rad/s]
# Optional - these can be defined, but do not need to be
# max_pitch: # None # Maximum pitch angle [rad], {default = 90 degrees}
# min_pitch: # None # Minimum pitch angle [rad], {default = 0 degrees}
# vs_minspd: # None # Minimum rotor speed [rad/s], {default = 0 rad/s}
# ss_cornerfreq: # None # First order low-pass filter cornering frequency for setpoint smoother [rad/s]
# ss_vsgain: # None # Torque controller setpoint smoother gain bias percentage [%, <= 1 ], {default = 100%}
# ss_pcgain: # None # Pitch controller setpoint smoother gain bias percentage [%, <= 1 ], {default = 0.1%}
# ps_percent: # None # Percent peak shaving [%, <= 1 ], {default = 80%}
# sd_maxpit: # None # Maximum blade pitch angle to initiate shutdown [rad], {default = bld pitch at v_max}
# sd_cornerfreq: # None # Cutoff Frequency for first order low-pass filter for blade pitch angle [rad/s], {default = 0.41888 ~ time constant of 15s}
# flp_maxpit: # None # Maximum (and minimum) flap pitch angle [rad]
omega_flp: 2.63 # Flap controller desired natural frequency [rad/s]
16 changes: 1 addition & 15 deletions Tune_Cases/DTU10MW.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,6 @@ turbine_params:
bld_flapwise_freq: 0.0 # Blade flapwise first natural frequency [rad/s]
# Optional
# TSR_operational: # None # Desired below-rated operational tip speed ratio (Cp-maximizing TSR is used if not defined)
# - should be defined if Fl_Mode = 1
# twr_freq: # None # Tower natural frequency [rad/s]
# ptfm_freq: # None # Platform natural frequency [rad/s]
#------------------------------- CONTROLLER PARAMETERS ----------------------------------
controller_params:
# Controller flags
Expand All @@ -49,15 +46,4 @@ controller_params:
zeta_pc: [0.8] # Pitch controller desired damping ratio [-]
omega_pc: [0.3] # Pitch controller desired natural frequency [rad/s]
zeta_vs: 0.7 # Torque controller desired damping ratio [-]
omega_vs: 0.2 # Torque controller desired natural frequency [rad/s]
# Optional - these can be defined, but do not need to be
# max_pitch: # None # Maximum pitch angle [rad], {default = 90 degrees}
# min_pitch: # None # Minimum pitch angle [rad], {default = 0 degrees}
# vs_minspd: # None # Minimum rotor speed [rad/s], {default = 0 rad/s}
# ss_cornerfreq: # None # First order low-pass filter cornering frequency for setpoint smoother [rad/s]
# ss_vsgain: # None # Torque controller setpoint smoother gain bias percentage [%, <= 1 ], {default = 100%}
# ss_pcgain: # None # Pitch controller setpoint smoother gain bias percentage [%, <= 1 ], {default = 0.1%}
# ps_percent: # None # Percent peak shaving [%, <= 1 ], {default = 80%}
# sd_maxpit: # None # Maximum blade pitch angle to initiate shutdown [rad], {default = bld pitch at v_max}
# sd_cornerfreq: # None # Cutoff Frequency for first order low-pass filter for blade pitch angle [rad/s], {default = 0.41888 ~ time constant of 15s}
# flp_maxpit: # None # Maximum (and minimum) flap pitch angle [rad]
omega_vs: 0.2 # Torque controller desired natural frequency [rad/s]
21 changes: 7 additions & 14 deletions Tune_Cases/IEA15MW.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,20 +40,13 @@ controller_params:
Flp_Mode: 0 # Flap control mode {0: no flap control, 1: steady state flap angle, 2: Proportional flap control}
# Controller parameters
# U_pc: [14]
zeta_pc: 2.0 # Pitch controller desired damping ratio [-]
omega_pc: 0.3 # Pitch controller desired natural frequency [rad/s]
zeta_vs: 0.85 # Torque controller desired damping ratio [-]
omega_vs: 0.12 # Torque controller desired natural frequency [rad/s]
zeta_pc: 2.0 # Pitch controller desired damping ratio [-]
omega_pc: 0.3 # Pitch controller desired natural frequency [rad/s]
zeta_vs: 0.85 # Torque controller desired damping ratio [-]
omega_vs: 0.12 # Torque controller desired natural frequency [rad/s]
twr_freq: 3.355 # for semi only!
ptfm_freq: 0.213 # for semi only!
# Optional - these can be defined, but do not need to be
# max_pitch: # None # Maximum pitch angle [rad], {default = 90 degrees}
min_pitch: 0.0 # Minimum pitch angle [rad], {default = 0 degrees}
vs_minspd: 0.523598775 # Minimum rotor speed [rad/s], {default = 0 rad/s}
# ss_cornerfreq: # None # First order low-pass filter cornering frequency for setpoint smoother [rad/s]
# ss_vsgain: # None # Torque controller setpoint smoother gain bias percentage [%, <= 1 ], {default = 100%}
# ss_pcgain: # None # Pitch controller setpoint smoother gain bias percentage [%, <= 1 ], {default = 0.1%}
ps_percent: 0.8 # None # Percent peak shaving [%, <= 1 ], {default = 80%}
# sd_maxpit: # None # Maximum blade pitch angle to initiate shutdown [rad], {default = bld pitch at v_max}
# sd_cornerfreq: # None # Cutoff Frequency for first order low-pass filter for blade pitch angle [rad/s], {default = 0.41888 ~ time constant of 15s}
# flp_maxpit: # None # Maximum (and minimum) flap pitch angle [rad]
twr_freq: 3.355 # for semi only!
ptfm_freq: 0.213 # for semi only!
ps_percent: 0.8 # Percent peak shaving [%, <= 1 ], {default = 80%}
19 changes: 6 additions & 13 deletions Tune_Cases/IEA15MW_MultiOmega.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,17 +43,10 @@ controller_params:
zeta_pc: [2.0,1.0] # Pitch controller desired damping ratio [-]
omega_pc: [0.15,0.3] # Pitch controller desired natural frequency [rad/s]
zeta_vs: 0.85 # Torque controller desired damping ratio [-]
omega_vs: 0.12 # Torque controller desired natural frequency [rad/s]
omega_vs: 0.12 # Torque controller desired natural frequency [rad/s]
twr_freq: 3.355 # for semi only!
ptfm_freq: 0.213 # for semi only!
# Optional - these can be defined, but do not need to be
# max_pitch: # None # Maximum pitch angle [rad], {default = 90 degrees}
min_pitch: 0.0 # Minimum pitch angle [rad], {default = 0 degrees}
vs_minspd: 0.523598775 # Minimum rotor speed [rad/s], {default = 0 rad/s}
# ss_cornerfreq: # None # First order low-pass filter cornering frequency for setpoint smoother [rad/s]
# ss_vsgain: # None # Torque controller setpoint smoother gain bias percentage [%, <= 1 ], {default = 100%}
# ss_pcgain: # None # Pitch controller setpoint smoother gain bias percentage [%, <= 1 ], {default = 0.1%}
ps_percent: 0.8 # None # Percent peak shaving [%, <= 1 ], {default = 80%}
# sd_maxpit: # None # Maximum blade pitch angle to initiate shutdown [rad], {default = bld pitch at v_max}
# sd_cornerfreq: # None # Cutoff Frequency for first order low-pass filter for blade pitch angle [rad/s], {default = 0.41888 ~ time constant of 15s}
# flp_maxpit: # None # Maximum (and minimum) flap pitch angle [rad]
twr_freq: 3.355 # for semi only!
ptfm_freq: 0.213 # for semi only!
min_pitch: 0.0 # Minimum pitch angle [rad], {default = 0 degrees}
vs_minspd: 0.523598775 # Minimum rotor speed [rad/s], {default = 0 rad/s}
ps_percent: 0.8 # Percent peak shaving [%, <= 1 ], {default = 80%}
17 changes: 5 additions & 12 deletions Tune_Cases/IEA15MW_robust.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,23 +41,16 @@ controller_params:
# Controller parameters
U_pc: [12,14, 15, 18, 20]
zeta_pc: [1.2] # Pitch controller desired damping ratio [-]
omega_pc: [0.15] # Pitch controller desired natural frequency [rad/s]
omega_pc: [0.15] # Pitch controller desired natural frequency [rad/s]
zeta_vs: 0.85 # Torque controller desired damping ratio [-]
omega_vs: 0.12 # Torque controller desired natural frequency [rad/s]
omega_vs: 0.12 # Torque controller desired natural frequency [rad/s]
twr_freq: 3.355 # for semi only!
ptfm_freq: 0.213 # for semi only!
# Optional - these can be defined, but do not need to be
interp_type: sigma
# max_pitch: # None # Maximum pitch angle [rad], {default = 90 degrees}
min_pitch: 0.0 # Minimum pitch angle [rad], {default = 0 degrees}
vs_minspd: 0.523598775 # Minimum rotor speed [rad/s], {default = 0 rad/s}
# ss_cornerfreq: # None # First order low-pass filter cornering frequency for setpoint smoother [rad/s]
# ss_vsgain: # None # Torque controller setpoint smoother gain bias percentage [%, <= 1 ], {default = 100%}
# ss_pcgain: # None # Pitch controller setpoint smoother gain bias percentage [%, <= 1 ], {default = 0.1%}
ps_percent: 0.8 # None # Percent peak shaving [%, <= 1 ], {default = 80%}
# sd_maxpit: # None # Maximum blade pitch angle to initiate shutdown [rad], {default = bld pitch at v_max}
# sd_cornerfreq: # None # Cutoff Frequency for first order low-pass filter for blade pitch angle [rad/s], {default = 0.41888 ~ time constant of 15s}
# flp_maxpit: # None # Maximum (and minimum) flap pitch angle [rad]
twr_freq: 3.355 # for semi only!
ptfm_freq: 0.213 # for semi only!
ps_percent: 0.8 # Percent peak shaving [%, <= 1 ], {default = 80%}

linmodel_tuning:
type: 'robust' # Type of level 2 based tuning - robust gain scheduling (robust) or simulation based optimization (simulation)
Expand Down
21 changes: 4 additions & 17 deletions Tune_Cases/NREL5MW.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,6 @@ turbine_params:
bld_flapwise_freq: 0.0 # Blade flapwise first natural frequency [rad/s]
# Optional
# TSR_operational: # None # Desired below-rated operational tip speed ratio (Cp-maximizing TSR is used if not defined)
# - should be defined if Fl_Mode = 1
twr_freq: 0.4499 # Tower natural frequency [rad/s]
ptfm_freq: 0.2325 # Platform natural frequency [rad/s]
#------------------------------- CONTROLLER PARAMETERS ----------------------------------
controller_params:
# Controller flags
Expand All @@ -42,22 +39,12 @@ controller_params:
Fl_Mode: 0 # Floating specific feedback mode {0: no nacelle velocity feedback, 1: nacelle velocity feedback}
Flp_Mode: 0 # Flap control mode {0: no flap control, 1: steady state flap angle, 2: Proportional flap control}
# Controller parameters
# U_pc: [12]
zeta_pc: 0.7 # Pitch controller desired damping ratio [-]
omega_pc: 0.6 # Pitch controller desired natural frequency [rad/s]
zeta_vs: 0.7 # Torque controller desired damping ratio [-]
omega_vs: 0.15 # Torque controller desired natural frequency [rad/s]
# Only needed if Flp_Mode > 0
# zeta_flp: # None # Flap controller desired damping ratio [-]
# omega_flp: # None # Flap controller desired natural frequency [rad/s]
# Optional - these can be defined, but do not need to be
# max_pitch: # None # Maximum pitch angle [rad], {default = 90 degrees}
# min_pitch: # None # Minimum pitch angle [rad], {default = 0 degrees}
# vs_minspd: # None # Minimum rotor speed [rad/s], {default = 0 rad/s}
# ss_cornerfreq: # None # First order low-pass filter cornering frequency for setpoint smoother [rad/s]
# ss_vsgain: # None # Torque controller setpoint smoother gain bias percentage [%, <= 1 ], {default = 100%}
# ss_pcgain: # None # Pitch controller setpoint smoother gain bias percentage [%, <= 1 ], {default = 0.1%}
twr_freq: 0.4499 # Tower natural frequency [rad/s]
ptfm_freq: 0.2325 # Platform natural frequency [rad/s] (OC4Hywind Parameters, here)
# Optional
ps_percent: 0.80 # Percent peak shaving [%, <= 1 ], {default = 80%}
sd_maxpit: 0.4363 # Maximum blade pitch angle to initiate shutdown [rad], {default = bld pitch at v_max}
# sd_cornerfreq: # None # Cutoff Frequency for first order low-pass filter for blade pitch angle [rad/s], {default = 0.41888 ~ time constant of 15s}
# flp_maxpit: # None # Maximum (and minimum) flap pitch angle [rad]
sd_maxpit: 0.4363 # Maximum blade pitch angle to initiate shutdown [rad], {default = bld pitch at v_max}
8 changes: 4 additions & 4 deletions docs/source/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Depending on what is needed, a user can choose to use just the ROSCO controller
* - :ref:`rosco_direct_download`
- Best for users who simply want to use a released version of the controller without working through the compilation procedures.
* - :ref:`rosco_anaconda_download`
- Best for users who just want to use the controller but prefer to download using the Anaconda package man age Full ROSCO Installation - Ur.
- Best for users who just want to use the controller but prefer to download using the Anaconda package man age Full ROSCO Installation.
* - :ref:`full_rosco`
- Best for users who wish to both use the controller and leverage the tools in the ROSCO toolbox
* - :ref:`cmake_compile`
Expand Down Expand Up @@ -189,8 +189,8 @@ Please follow the following steps to install the ROSCO tool-chain. You should do

.. code-block:: bash
git clone https://github.com/NREL/ROSCO_toolbox.git
cd ROSCO_toolbox
git clone https://github.com/NREL/ROSCO.git
cd ROSCO
conda install compilers # (Mac/Linux only)
conda install m2w64-toolchain libpython # (Windows only)
python setup.py install --compile-rosco
Expand All @@ -199,7 +199,7 @@ Please follow the following steps to install the ROSCO tool-chain. You should do

.. code-block:: bash
git clone https://github.com/NREL/ROSCO_toolbox.git
git clone https://github.com/NREL/ROSCO.git
cd ROSCO_toolbox
python setup.py install
Expand Down
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ def run(self):
install_requires = REQUIRED,
python_requires = REQUIRES_PYTHON,
packages = find_packages(exclude=["tests", "*.tests", "*.tests.*", "tests.*"]),
package_data = {'': ['*.yaml']},
license = 'Apache License, Version 2.0',
cmdclass = {'build_ext': CMakeBuildExt, 'upload': UploadCommand},
zip_safe = False,
Expand Down

0 comments on commit 277b637

Please sign in to comment.