Skip to content

Commit

Permalink
Merge branch 'weis' of https://github.com/NREL/ROSCO_toolbox into weis
Browse files Browse the repository at this point in the history
  • Loading branch information
nikhar-abbas committed Jan 26, 2021
2 parents 3afe143 + 096f1e9 commit 38e956e
Show file tree
Hide file tree
Showing 127 changed files with 40,420 additions and 1,533 deletions.
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "ROSCO"]
path = ROSCO
url = https://github.com/NREL/ROSCO.git
url = https://github.com/NREL/ROSCO
226 changes: 77 additions & 149 deletions Examples/Cp_Ct_Cq.Ex03.txt

Large diffs are not rendered by default.

34 changes: 17 additions & 17 deletions Examples/DISCON.IN
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
! Controller parameter input file for the NREL-5MW wind turbine
! - File written using ROSCO Controller tuning logic on 09/28/20
! - File written using ROSCO Controller tuning logic on 12/17/20

!------- DEBUG ------------------------------------------------------------
1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file}
Expand Down Expand Up @@ -28,12 +28,12 @@
0.00000 1.00000 ! F_FlpCornerFreq - Corner frequency and damping in the second order low pass filter of the blade root bending moment for flap control [rad/s, -].

!------- BLADE PITCH CONTROL ----------------------------------------------
27 ! PC_GS_n - Amount of gain-scheduling table entries
0.059999 0.087088 0.108614 0.127859 0.144840 0.161163 0.175942 0.190159 0.204314 0.216979 0.229469 0.242120 0.254317 0.265260 0.276444 0.287914 0.299653 0.309477 0.319290 0.329399 0.339820 0.350541 0.361041 0.369471 0.378187 0.387196 0.396499 ! PC_GS_angles - Gain-schedule table: pitch angles
-0.014412 -0.012578 -0.011083 -0.009842 -0.008794 -0.007898 -0.007123 -0.006446 -0.005850 -0.005320 -0.004847 -0.004422 -0.004037 -0.003688 -0.003370 -0.003078 -0.002810 -0.002562 -0.002333 -0.002120 -0.001923 -0.001738 -0.001565 -0.001404 -0.001252 -0.001109 -0.000974 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains
-0.005329 -0.004786 -0.004343 -0.003975 -0.003665 -0.003400 -0.003170 -0.002970 -0.002793 -0.002636 -0.002496 -0.002370 -0.002256 -0.002153 -0.002058 -0.001972 -0.001892 -0.001819 -0.001751 -0.001688 -0.001630 -0.001575 -0.001524 -0.001476 -0.001431 -0.001389 -0.001349 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter)
28 ! PC_GS_n - Amount of gain-scheduling table entries
0.000000 0.055534 0.083631 0.106008 0.125390 0.142939 0.159177 0.174442 0.188870 0.202686 0.215959 0.228773 0.241173 0.253254 0.264982 0.276438 0.287644 0.298587 0.309327 0.319883 0.330260 0.340461 0.350473 0.360332 0.370046 0.379623 0.389066 0.398385 ! PC_GS_angles - Gain-schedule table: pitch angles
-0.019261 -0.016189 -0.013852 -0.012014 -0.010531 -0.009308 -0.008284 -0.007413 -0.006663 -0.006010 -0.005437 -0.004931 -0.004479 -0.004074 -0.003709 -0.003378 -0.003077 -0.002801 -0.002549 -0.002316 -0.002100 -0.001901 -0.001715 -0.001542 -0.001381 -0.001230 -0.001088 -0.000954 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains
-0.006968 -0.006022 -0.005302 -0.004736 -0.004279 -0.003903 -0.003587 -0.003319 -0.003088 -0.002887 -0.002710 -0.002554 -0.002415 -0.002290 -0.002178 -0.002076 -0.001983 -0.001898 -0.001820 -0.001749 -0.001682 -0.001621 -0.001564 -0.001510 -0.001461 -0.001414 -0.001370 -0.001329 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter)
1.570800000000 ! PC_MaxPit - Maximum physical pitch limit, [rad].
-0.00873000000 ! PC_MinPit - Minimum physical pitch limit, [rad].
0.174500000000 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s].
Expand All @@ -43,9 +43,9 @@
0.017450000000 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad]

!------- INDIVIDUAL PITCH CONTROL -----------------------------------------
0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad]
0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-]
0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad].
0.1 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad]
0.0e+00 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-]
0.0e+00 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad].
0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s]

!------- VS TORQUE CONTROL ------------------------------------------------
Expand All @@ -60,7 +60,7 @@
43093.51876000 ! VS_RtTq - Rated torque, [Nm].
122.9096700000 ! VS_RefSpd - Rated generator speed [rad/s]
1 ! VS_n - Number of generator PI torque controller gains
-999.026780000 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2)
-998.986000000 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2)
-185.790360000 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2)
7.51 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad].

Expand All @@ -78,9 +78,9 @@
1.225 ! WE_RhoAir - Air density, [kg m^-3]
"Cp_Ct_Cq.NREL5MW.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq)
52 24 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios
44 ! WE_FOPoles_N - Number of first-order system poles used in EKF
3.00 3.50 4.00 4.50 5.00 5.50 6.00 6.50 7.00 7.50 8.00 8.50 9.00 9.50 10.00 10.50 11.00 11.90 12.40 12.90 13.40 13.90 14.40 14.90 15.40 15.90 16.40 16.90 17.40 17.90 18.40 18.90 19.40 19.90 20.40 20.90 21.40 21.90 22.40 22.90 23.40 23.90 24.40 24.90 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s]
-0.01770358 -0.02065417 -0.02360477 -0.02655536 -0.02950596 -0.03245656 -0.03540715 -0.03835775 -0.04130834 -0.04425894 -0.04720953 -0.05016013 -0.05311073 -0.05606132 -0.05901192 -0.06196251 -0.06491311 -0.05663600 -0.06760328 -0.07958282 -0.09338576 -0.10660375 -0.12219164 -0.13633634 -0.15187319 -0.16971407 -0.18449677 -0.20097910 -0.21989102 -0.23853320 -0.25398015 -0.27191112 -0.29238174 -0.31524365 -0.33079361 -0.34730696 -0.36620087 -0.38763778 -0.41161251 -0.43863651 -0.46960731 -0.50322805 -0.53955583 -0.57860701 ! WE_FOPoles - First order system poles
45 ! WE_FOPoles_N - Number of first-order system poles used in EKF
3.00 3.50 4.00 4.50 5.00 5.50 6.00 6.50 7.00 7.50 8.00 8.50 9.00 9.50 10.00 10.50 11.00 11.40 11.90 12.40 12.90 13.40 13.90 14.40 14.90 15.40 15.90 16.40 16.90 17.40 17.90 18.40 18.90 19.40 19.90 20.40 20.90 21.40 21.90 22.40 22.90 23.40 23.90 24.40 24.90 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s]
-0.01770597 -0.02065697 -0.02360796 -0.02655896 -0.02950995 -0.03246095 -0.03541194 -0.03836294 -0.04131393 -0.04426493 -0.04721592 -0.05016692 -0.05311791 -0.05606891 -0.05901990 -0.06197090 -0.06492189 -0.05552595 -0.05550495 -0.06612150 -0.07823391 -0.09181547 -0.10541082 -0.12063288 -0.13526687 -0.15098364 -0.16805193 -0.18381181 -0.20083198 -0.21911394 -0.23737327 -0.25461250 -0.27320900 -0.29297106 -0.31361831 -0.33167820 -0.35038172 -0.37015848 -0.39096899 -0.41270837 -0.43763254 -0.47283160 -0.50939485 -0.54727356 -0.58644343 ! WE_FOPoles - First order system poles

!------- YAW CONTROL ------------------------------------------------------
0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s]
Expand All @@ -101,9 +101,9 @@
0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad]

!------- MINIMUM PITCH SATURATION -------------------------------------------
44 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin)
3.00 3.50 4.00 4.50 5.00 5.50 6.00 6.50 7.00 7.50 8.00 8.50 9.00 9.50 10.00 10.50 11.00 11.90 12.40 12.90 13.40 13.90 14.40 14.90 15.40 15.90 16.40 16.90 17.40 17.90 18.40 18.90 19.40 19.90 20.40 20.90 21.40 21.90 22.40 22.90 23.40 23.90 24.40 24.90 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s]
-0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 ! PS_BldPitchMin - Minimum blade pitch angles [rad]
45 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin)
3.00 3.50 4.00 4.50 5.00 5.50 6.00 6.50 7.00 7.50 8.00 8.50 9.00 9.50 10.00 10.50 11.00 11.40 11.90 12.40 12.90 13.40 13.90 14.40 14.90 15.40 15.90 16.40 16.90 17.40 17.90 18.40 18.90 19.40 19.90 20.40 20.90 21.40 21.90 22.40 22.90 23.40 23.90 24.40 24.90 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s]
-0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 -0.00872665 ! PS_BldPitchMin - Minimum blade pitch angles [rad]

!------- SHUTDOWN -----------------------------------------------------------
0.436300000000 ! SD_MaxPit - Maximum blade pitch angle to initiate shutdown, [rad]
Expand Down
3 changes: 2 additions & 1 deletion Examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,5 @@ Examples:
7. Load saved turbine, tune controller, plot minimum pitch schedule.
8. Plot some OpenFAST output data.
9. Run turbsim to compile binary.
10. Tune a controller for distributed aerodynamic control.
10. Tune a controller for distributed aerodynamic control.
11. Generate simplified linear models, save the parameters to a file.
94 changes: 42 additions & 52 deletions Examples/ROSCO_walkthrough.ipynb

Large diffs are not rendered by default.

14 changes: 10 additions & 4 deletions Examples/example_01.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,28 @@
'''

# Python Modules
import yaml
import yaml, os
# ROSCO Modules
from ROSCO_toolbox import turbine as ROSCO_turbine

# Load yaml file
parameter_filename = 'NREL5MW_example.yaml'
parameter_filename = os.path.join(os.path.dirname(__file__),'NREL5MW_example.yaml')
inps = yaml.safe_load(open(parameter_filename))
path_params = inps['path_params']
turbine_params = inps['turbine_params']

# Load turbine data from openfast model
turbine = ROSCO_turbine.Turbine(turbine_params)
turbine.load_from_fast(path_params['FAST_InputFile'],path_params['FAST_directory'],dev_branch=True,rot_source='txt',txt_filename=path_params['rotor_performance_filename'])

turbine.load_from_fast(
path_params['FAST_InputFile'],
os.path.join(os.path.dirname(__file__),path_params['FAST_directory']),
dev_branch=True,
rot_source='txt',txt_filename=os.path.join(os.path.dirname(__file__),path_params['rotor_performance_filename'])
)

# Print some basic turbine info
print(turbine)

# Save the turbine model
turbine.save('NREL5MW_saved.p')
turbine.save(os.path.join(os.path.dirname(__file__),'NREL5MW_saved.p'))
3 changes: 2 additions & 1 deletion Examples/example_02.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
'''

# Python modules
import os
import matplotlib.pyplot as plt
# ROSCO toolbox modules
from ROSCO_toolbox import turbine as ROSCO_turbine
Expand All @@ -18,7 +19,7 @@
turbine = ROSCO_turbine.Turbine

# Load quick from python pickle
turbine = turbine.load('NREL5MW_saved.p')
turbine = turbine.load(os.path.join(os.path.dirname(__file__),'NREL5MW_saved.p'))

# plot rotor performance
print('Plotting Cp data')
Expand Down
18 changes: 11 additions & 7 deletions Examples/example_03.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,30 @@
- Write a text file with rotor performance properties
'''
# Python modules
import yaml
import yaml, os
# ROSCO toolbox modules
from ROSCO_toolbox import turbine as ROSCO_turbine
from ROSCO_toolbox import utilities as ROSCO_utilities
from ROSCO_toolbox.utilities import write_rotor_performance
# Initialize parameter dictionaries
turbine_params = {}
control_params = {}

# Load yaml file
parameter_filename = '../Tune_Cases/NREL5MW.yaml'
parameter_filename = os.path.join(os.path.dirname(__file__),'NREL5MW_example.yaml')
inps = yaml.safe_load(open(parameter_filename))
path_params = inps['path_params']
turbine_params = inps['turbine_params']
controller_params = inps['controller_params']

# Load turbine data from openfast model
turbine = ROSCO_turbine.Turbine(turbine_params)
turbine.load_from_fast(path_params['FAST_InputFile'],path_params['FAST_directory'],dev_branch=True,rot_source='cc-blade',txt_filename=None)
turbine.load_from_fast(
path_params['FAST_InputFile'],
os.path.join(os.path.dirname(__file__),path_params['FAST_directory']),
dev_branch=True,
rot_source='cc-blade',
txt_filename=None)

# Write rotor performance text file
txt_filename = 'Cp_Ct_Cq.Ex03.txt'
file_processing = ROSCO_utilities.FileProcessing()
file_processing.write_rotor_performance(turbine,txt_filename=txt_filename)
txt_filename = os.path.join(os.path.dirname(__file__),'Cp_Ct_Cq.Ex03.txt')
write_rotor_performance(turbine,txt_filename=txt_filename)
16 changes: 10 additions & 6 deletions Examples/example_04.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@
'''
# Python modules
import matplotlib.pyplot as plt
import yaml
import yaml, os
# ROSCO toolbox modules
from ROSCO_toolbox import controller as ROSCO_controller
from ROSCO_toolbox import turbine as ROSCO_turbine
from ROSCO_toolbox import sim as ROSCO_sim
from ROSCO_toolbox import utilities as ROSCO_utilities
from ROSCO_toolbox.utilities import write_DISCON

# Load yaml file
parameter_filename = 'NREL5MW_example.yaml'
parameter_filename = os.path.join(os.path.dirname(__file__),'NREL5MW_example.yaml')
inps = yaml.safe_load(open(parameter_filename))
path_params = inps['path_params']
turbine_params = inps['turbine_params']
Expand All @@ -29,17 +29,21 @@
# Instantiate turbine, controller, and file processing classes
turbine = ROSCO_turbine.Turbine(turbine_params)
controller = ROSCO_controller.Controller(controller_params)
file_processing = ROSCO_utilities.FileProcessing()

# Load turbine data from OpenFAST and rotor performance text file
turbine.load_from_fast(path_params['FAST_InputFile'],path_params['FAST_directory'],dev_branch=True,rot_source='txt',txt_filename=path_params['rotor_performance_filename'])
turbine.load_from_fast(
path_params['FAST_InputFile'],
os.path.join(os.path.dirname(__file__),path_params['FAST_directory']),
dev_branch=True,
rot_source='txt',txt_filename=os.path.join(os.path.dirname(__file__),path_params['rotor_performance_filename'])
)

# Tune controller
controller.tune_controller(turbine)

# Write parameter input file
param_file = 'DISCON.IN'
file_processing.write_DISCON(turbine,controller,param_file=param_file, txt_filename=path_params['rotor_performance_filename'])
write_DISCON(turbine,controller,param_file=param_file, txt_filename=path_params['rotor_performance_filename'])

# Plot gain schedule
fig, ax = plt.subplots(1,2,constrained_layout=True)
Expand Down
10 changes: 5 additions & 5 deletions Examples/example_05.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,21 @@
# Python modules
import matplotlib.pyplot as plt
import numpy as np
import yaml
import yaml, os
# ROSCO toolbox modules
from ROSCO_toolbox import controller as ROSCO_controller
from ROSCO_toolbox import turbine as ROSCO_turbine
from ROSCO_toolbox import sim as ROSCO_sim
from ROSCO_toolbox import utilities as ROSCO_utilities
from ROSCO_toolbox import control_interface as ROSCO_ci

# Specify controller dynamic library path and name
lib_name = '../ROSCO/build/libdiscon.dylib'
param_filename = 'DISCON.IN'
this_dir = os.path.dirname(__file__)
lib_name = os.path.join(this_dir,'../ROSCO/build/libdiscon.dylib')
param_filename = os.path.join(this_dir,'DISCON.IN')

# Load turbine model from saved pickle
turbine = ROSCO_turbine.Turbine
turbine = turbine.load('NREL5MW_saved.p')
turbine = turbine.load(os.path.join(this_dir,'NREL5MW_saved.p'))

# Load controller library
controller_int = ROSCO_ci.ControllerInterface(lib_name,param_filename=param_filename)
Expand Down
15 changes: 8 additions & 7 deletions Examples/example_06.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,17 @@
'''
# Python Modules
import yaml
import os
# ROSCO toolbox modules
from ROSCO_toolbox import controller as ROSCO_controller
from ROSCO_toolbox import turbine as ROSCO_turbine
from ROSCO_toolbox.utilities import write_DISCON, run_openfast
from ROSCO_toolbox import sim as ROSCO_sim
from ROSCO_toolbox import utilities as ROSCO_utilities

this_dir = os.path.dirname(__file__)

# Load yaml file
parameter_filename = 'NREL5MW_example.yaml'
parameter_filename = os.path.join(this_dir,'NREL5MW_example.yaml')
inps = yaml.safe_load(open(parameter_filename))
path_params = inps['path_params']
turbine_params = inps['turbine_params']
Expand All @@ -28,8 +31,6 @@
# Instantiate turbine, controller, and file processing classes
turbine = ROSCO_turbine.Turbine(turbine_params)
controller = ROSCO_controller.Controller(controller_params)
file_processing = ROSCO_utilities.FileProcessing()
fast_io = ROSCO_utilities.FAST_IO()

# Load turbine data from OpenFAST and rotor performance text file
turbine.load_from_fast(path_params['FAST_InputFile'],path_params['FAST_directory'],dev_branch=True,rot_source='txt',txt_filename=path_params['rotor_performance_filename'])
Expand All @@ -38,12 +39,12 @@
controller.tune_controller(turbine)

# Write parameter input file
param_file = 'DISCON.IN' # This must be named DISCON.IN to be seen by the compiled controller binary.
file_processing.write_DISCON(turbine,controller,param_file=param_file, txt_filename=path_params['rotor_performance_filename'])
param_file = os.path.join(this_dir,'DISCON.IN') # This must be named DISCON.IN to be seen by the compiled controller binary.
write_DISCON(turbine,controller,param_file=param_file, txt_filename=path_params['rotor_performance_filename'])

# Run OpenFAST
# --- May need to change fastcall if you use a non-standard command to call openfast
fast_io.run_openfast(path_params['FAST_directory'], fastcall='openfast', fastfile=path_params['FAST_InputFile'],chdir=True)
run_openfast(path_params['FAST_directory'], fastcall='openfast_sdev', fastfile=path_params['FAST_InputFile'], chdir=True)



Expand Down
Loading

0 comments on commit 38e956e

Please sign in to comment.