WISDEM / WEIS

Wind Energy with Integrated Servo-controls Toolset
https://weis.readthedocs.io/en/latest/
Apache License 2.0
53 stars 40 forks source link

Changing hub height generates unexpected error #84

Closed yonghoonlee closed 3 years ago

yonghoonlee commented 3 years ago

Description

For the example included in 06_IEA-15-240-RWT, changing hub height generates unexpected error. When I changed hub height from 150 to 145, or 140, or other value, I see error messages attached below.

Steps to reproduce issue

Please provide a minimum working example (MWE) if possible

  1. change 150 to 145 at this line
  2. run weis driver using python weis_driver.py

Current behavior

Output:

 python weis_driver.py 
ORBIT library intialized at '/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/WISDEM/wisdem/library'
########################################
Objectives
Turbine AEP: 77.8472154096 GWh
Blade Mass:  72992.8524566243 kg
LCOE:        64.8302345413 USD/MWh
Tip Defl.:   23.7981448797 m
########################################
Cp-Ct-Cq surfaces completed at 20 %
Cp-Ct-Cq surfaces completed at 40 %
Cp-Ct-Cq surfaces completed at 60 %
Cp-Ct-Cq surfaces completed at 80 %
Cp-Ct-Cq surfaces completed at 100 %
-----------------------------------------------------------------------------
   Tuning a reference wind turbine controller using NREL's ROSCO toolbox    
-----------------------------------------------------------------------------
EXECUTING TurbSim
Executable:      /Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/local/bin/turbsim
Run directory:   temp/IEA15
Input file:      /Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/examples/06_IEA-15-240-RWT/temp/IEA15/IEA15_IEC_NTM_U5.000000_Seed600.0.in
Exec string:     ['/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/local/bin/turbsim', '/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/examples/06_IEA-15-240-RWT/temp/IEA15/IEA15_IEC_NTM_U5.000000_Seed600.0.in']

 **************************************************************************************************
 TurbSim

 Copyright (C) 2021 National Renewable Energy Laboratory
 Copyright (C) 2021 Envision Energy USA LTD

 This program is licensed under Apache License Version 2.0 and comes with ABSOLUTELY NO WARRANTY.
 See the "LICENSE" file distributed with this software for details.
 **************************************************************************************************

  Running TurbSim a part of OpenFAST - -128-NOTFOUND
  linked with NWTC Subroutine Library

  Reading the input file
  "/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/examples/06_IEA-15-240-RWT/temp/IEA15/IEA15_IEC_NT
  M_U5.000000_Seed600.0.in".
  Calculating the spectral and transfer function matrices:
     u-component matrices (general coherence model)
     v-component matrices (general coherence model)
     w-component matrices (general coherence model)
  Generating time series for all points:
     u-component
     v-component
     w-component
  Computing hub-height statistics
  Writing statistics to summary file
  Generating AeroDyn binary time-series file
  "/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/examples/06_IEA-15-240-RWT/temp/IEA15/IEA15_IEC_NT
  M_U5.000000_Seed600.0.bts"

  Processing complete.  0.24003 CPU seconds used.

  TurbSim terminated normally.

COMPLETE TurbSim
EXECUTING TurbSim
Executable:      /Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/local/bin/turbsim
Run directory:   temp/IEA15
Input file:      /Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/examples/06_IEA-15-240-RWT/temp/IEA15/IEA15_IEC_NTM_U13.000000_Seed601.0.in
Exec string:     ['/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/local/bin/turbsim', '/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/examples/06_IEA-15-240-RWT/temp/IEA15/IEA15_IEC_NTM_U13.000000_Seed601.0.in']

 **************************************************************************************************
 TurbSim

 Copyright (C) 2021 National Renewable Energy Laboratory
 Copyright (C) 2021 Envision Energy USA LTD

 This program is licensed under Apache License Version 2.0 and comes with ABSOLUTELY NO WARRANTY.
 See the "LICENSE" file distributed with this software for details.
 **************************************************************************************************

  Running TurbSim a part of OpenFAST - -128-NOTFOUND
  linked with NWTC Subroutine Library

  Reading the input file
  "/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/examples/06_IEA-15-240-RWT/temp/IEA15/IEA15_IEC_NT
  M_U13.000000_Seed601.0.in".
  Calculating the spectral and transfer function matrices:
     u-component matrices (general coherence model)
     v-component matrices (general coherence model)
     w-component matrices (general coherence model)
  Generating time series for all points:
     u-component
     v-component
     w-component
  Computing hub-height statistics
  Writing statistics to summary file
  Generating AeroDyn binary time-series file
  "/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/examples/06_IEA-15-240-RWT/temp/IEA15/IEA15_IEC_NT
  M_U13.000000_Seed601.0.bts"

  Processing complete.  0.34544 CPU seconds used.

  TurbSim terminated normally.

COMPLETE TurbSim
EXECUTING TurbSim
Executable:      /Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/local/bin/turbsim
Run directory:   temp/IEA15
Input file:      /Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/examples/06_IEA-15-240-RWT/temp/IEA15/IEA15_IEC_NTM_U21.000000_Seed602.0.in
Exec string:     ['/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/local/bin/turbsim', '/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/examples/06_IEA-15-240-RWT/temp/IEA15/IEA15_IEC_NTM_U21.000000_Seed602.0.in']

 **************************************************************************************************
 TurbSim

 Copyright (C) 2021 National Renewable Energy Laboratory
 Copyright (C) 2021 Envision Energy USA LTD

 This program is licensed under Apache License Version 2.0 and comes with ABSOLUTELY NO WARRANTY.
 See the "LICENSE" file distributed with this software for details.
 **************************************************************************************************

  Running TurbSim a part of OpenFAST - -128-NOTFOUND
  linked with NWTC Subroutine Library

  Reading the input file
  "/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/examples/06_IEA-15-240-RWT/temp/IEA15/IEA15_IEC_NT
  M_U21.000000_Seed602.0.in".
  Calculating the spectral and transfer function matrices:
     u-component matrices (general coherence model)
     v-component matrices (general coherence model)
     w-component matrices (general coherence model)
  Generating time series for all points:
     u-component
     v-component
     w-component
  Computing hub-height statistics
  Writing statistics to summary file
  Generating AeroDyn binary time-series file
  "/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/examples/06_IEA-15-240-RWT/temp/IEA15/IEA15_IEC_NT
  M_U21.000000_Seed602.0.bts"

  Processing complete.  0.41912 CPU seconds used.

  TurbSim terminated normally.

COMPLETE TurbSim
Airfoil number 38 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 39 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 40 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 41 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 42 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 43 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 44 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 45 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 46 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 47 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 48 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 49 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 50 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 51 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 52 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 53 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 54 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 55 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 56 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 57 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 58 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Airfoil number 59 tab number 0 has the lift coefficient different between +-180 deg. This is changed to be the same now.
Writing rotor performance text file: temp/IEA15/IEA15_IEC_0_Cp_Ct_Cq.txt
Writing new controller parameter file parameter file: temp/IEA15/IEA15_IEC_0_DISCON.IN.

 **************************************************************************************************
 OpenFAST

 Copyright (C) 2021 National Renewable Energy Laboratory
 Copyright (C) 2021 Envision Energy USA LTD

 This program is licensed under Apache License Version 2.0 and comes with ABSOLUTELY NO WARRANTY.
 See the "LICENSE" file distributed with this software for details.
 **************************************************************************************************

 OpenFAST--128-NOTFOUND
 Compile Info:
  - Compiler: GCC version 9.3.0
  - Architecture: 64 bit
  - Precision: single
  - Date: Feb 12 2021
  - Time: 20:55:27
 Execution Info:
  - Date: 02/12/2021
  - Time: 23:55:34-0600

 OpenFAST input file heading:
     Generated with AeroElasticSE FAST driver

 Running ElastoDyn.
 Nodal outputs section of ElastoDyn input file not found or improperly formatted.
 Running AeroDyn.
 AD15 Nodal Outputs: Nodal output section of AeroDyn input file not found or improperly formatted.
 Skipping nodal outputs.
 Warning: Turning off Unsteady Aerodynamics because C_nalpha is 0. (node 1, blade 1)
 Warning: Turning off Unsteady Aerodynamics because C_nalpha is 0. (node 2, blade 1)
 Warning: Turning off Unsteady Aerodynamics because C_nalpha is 0. (node 1, blade 2)
 Warning: Turning off Unsteady Aerodynamics because C_nalpha is 0. (node 2, blade 2)
 Warning: Turning off Unsteady Aerodynamics because C_nalpha is 0. (node 1, blade 3)
 Warning: Turning off Unsteady Aerodynamics because C_nalpha is 0. (node 2, blade 3)
 Running InflowWind.

    Reading a 25x25 grid (288 m wide, 1 m to 289 m above ground) with a characteristic wind speed
    of 5 m/s. This full-field file was generated by TurbSim on 12-Feb-2021 at 23:55:32.

    Processed 20 time steps of 20-Hz full-field data (period of 1 seconds).
 Running ServoDyn.
 Running ServoDyn Interface for Bladed Controllers (using GNU Fortran for Linux, ).
 Using legacy Bladed DLL interface.
 Running HydroDyn.
  WARNING:   The random number generator in use differs from the original code provided by NREL.
  This pRNG uses 33 seeds instead of the 2 in the input file.
  Generating incident wave kinematics and current time history.
  Calculating second order difference frequency wave kinematics.
  Calculating second order sum frequency wave kinematics.
 Running SubDyn.
    Calculating Internal Modal Eigenvectors
Error 4: b'FAST_InitializeAll:HydroDyn_Init:Waves_Init:VariousWaves_Init: The random number generator in use differs from the original code provided by NREL. This pRNG uses 33 seeds instead of the 2 in the HydroDyn input file.\nFAST_InitializeAll:InitModuleMappings:ED_2_AD_TowerMotion:MeshMapCreate:CreateMotionMap_L2_to_L2:CreateMapping_ProjectToLine2:Node 21 does not project onto any line2 element. Closest distance is 0.5 m.\nInitModuleMappings:ED_2_AD_BladeMotion(1):MeshMapCreate:CreateMotionMap_L2_to_L2:CreateMapping_ProjectToLine2:Found close value for node 60. (1.95274E-05 m)'
Traceback (most recent call last):
  File "/Users/yonghoonlee/opt/anaconda3/envs/weis-env/lib/python3.8/site-packages/openmdao/core/system.py", line 2189, in _call_user_function
    yield
  File "/Users/yonghoonlee/opt/anaconda3/envs/weis-env/lib/python3.8/site-packages/openmdao/core/explicitcomponent.py", line 261, in _solve_nonlinear
    self.compute(self._inputs, self._outputs, self._discrete_inputs,
  File "/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/weis/aeroelasticse/openmdao_openfast.py", line 361, in compute
    summary_stats, extreme_table, DELs, case_list, dlc_list  = self.run_FAST(inputs, discrete_inputs, fst_vt)
  File "/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/weis/aeroelasticse/openmdao_openfast.py", line 991, in run_FAST
    summary_stats, extreme_table, DELs, chan_time = fastBatch.run_serial()
  File "/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/weis/aeroelasticse/runFAST_pywrapper.py", line 259, in run_serial
    _name, _ss, _et, _dl, _ct = evaluate(c)
  File "/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/weis/aeroelasticse/runFAST_pywrapper.py", line 382, in evaluate
    FAST_Output = fast.execute()
  File "/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/weis/aeroelasticse/runFAST_pywrapper.py", line 171, in execute
    output_dict[channel] = openfastlib.output_values[:,i]
TypeError: 'NoneType' object is not subscriptable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "weis_driver.py", line 14, in <module>
    wt_opt, modeling_options, opt_options = run_weis(fname_wt_input, fname_modeling_options, fname_analysis_options)
  File "/Users/yonghoonlee/Dropbox/WorkingFolder/WEIS/weis/glue_code/runWEIS.py", line 172, in run_weis
    wt_opt.run_model()
  File "/Users/yonghoonlee/opt/anaconda3/envs/weis-env/lib/python3.8/site-packages/openmdao/core/problem.py", line 625, in run_model
    self.model.run_solve_nonlinear()
  File "/Users/yonghoonlee/opt/anaconda3/envs/weis-env/lib/python3.8/site-packages/openmdao/core/system.py", line 3785, in run_solve_nonlinear
    self._solve_nonlinear()
  File "/Users/yonghoonlee/opt/anaconda3/envs/weis-env/lib/python3.8/site-packages/openmdao/core/group.py", line 2626, in _solve_nonlinear
    self._nonlinear_solver.solve()
  File "/Users/yonghoonlee/opt/anaconda3/envs/weis-env/lib/python3.8/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py", line 37, in solve
    self._gs_iter()
  File "/Users/yonghoonlee/opt/anaconda3/envs/weis-env/lib/python3.8/site-packages/openmdao/solvers/solver.py", line 750, in _gs_iter
    subsys._solve_nonlinear()
  File "/Users/yonghoonlee/opt/anaconda3/envs/weis-env/lib/python3.8/site-packages/openmdao/core/explicitcomponent.py", line 264, in _solve_nonlinear
    self.compute(self._inputs, self._outputs)
  File "/Users/yonghoonlee/opt/anaconda3/envs/weis-env/lib/python3.8/contextlib.py", line 131, in __exit__
    self.gen.throw(type, value, traceback)
  File "/Users/yonghoonlee/opt/anaconda3/envs/weis-env/lib/python3.8/site-packages/openmdao/core/system.py", line 2195, in _call_user_function
    raise err_type(f"{self.msginfo}: Error calling {fname}(), {err}")
TypeError: 'aeroelastic' <class FASTLoadCases>: Error calling compute(), 'NoneType' object is not subscriptable

Expected behavior

Code versions

List versions only if relevant

gbarter commented 3 years ago

This was a good stress test- thanks. There was a subtle bug on the WISDEM side in rescaling the tower, but this should be fixed now. Do a git pull and give it a try.