Comments (8)
I'm not sure what you mean by a beamdyn only model. ROSCO is looking for some data from ElastoDyn, but not much:
ROSCO/rosco/toolbox/turbine.py
Line 203 in 3ebe819
from rosco.
Apologies, I was too fast hitting submit :). It seems to me that the analogous of the following is missing from turbine.py for reading beamdyn blade properties:
# file ed_file = os.path.join(fast.FAST_directory, fast.fst_vt['Fst']['EDFile']) fast.read_ElastoDyn(ed_file) ed_blade_file = os.path.join(os.path.dirname(ed_file), fast.fst_vt['ElastoDyn']['BldFile1']) fast.read_ElastoDynBlade(ed_blade_file)
I think a check on whether a ED blade file is used vs. BD blade file is used should be done and then select the correct blade file, or am i wrong?
from rosco.
Yeah, that's a reasonable suggestion. The only thing that ROSCO wants from an ED blade is the damping, which is only used to tune the trailing edge flap control.
If you have an example and a fix, I'd be happy to help merge it in. Otherwise, I'll leave this open until we get to it.
from rosco.
Hi Dan, sorry for the delay, I have modified it like this, but I am still testing it out, as I am getting some issues with the read of AD data now, but I will let you know how it goes.
` if fast.fst_vt['Fst']['CompElast'] ==1:
ed_file = os.path.join(fast.FAST_directory, fast.fst_vt['Fst']['EDFile'])
fast.read_ElastoDyn(ed_file)
ed_blade_file = os.path.join(os.path.dirname(ed_file), fast.fst_vt['ElastoDyn']['BldFile1'])
fast.read_ElastoDynBlade(ed_blade_file)
elif fast.fst_vt['Fst']['CompElast'] ==2:
bd_file = os.path.join(fast.FAST_directory, fast.fst_vt['Fst']['BDBldFile(1)'])
fast.read_BeamDyn(bd_file)
bd_blade_file = os.path.join(os.path.dirname(bd_file), fast.fst_vt['BeamDyn']['BldFile'])
fast.read_BeamDynBlade(bd_blade_file)
else:
Warning('No ElastoDyn or BeamDyn files were provided')`
from rosco.
ok
this is the approximation I am using :
line 172
# RRD changed the following to include ED vs. BD
if fast.fst_vt['Fst']['CompElast'] >=1:
ed_file = os.path.join(fast.FAST_directory, fast.fst_vt['Fst']['EDFile'])
fast.read_ElastoDyn(ed_file)
if fast.fst_vt['Fst']['CompElast'] ==1:
ed_blade_file = os.path.join(os.path.dirname(ed_file), fast.fst_vt['ElastoDyn']['BldFile1'])
fast.read_ElastoDynBlade(ed_blade_file)
elif fast.fst_vt['Fst']['CompElast'] ==2:
bd_file = os.path.join(fast.FAST_directory, fast.fst_vt['Fst']['BDBldFile(1)'])
fast.read_BeamDyn(bd_file)
bd_blade_file = os.path.join(os.path.dirname(bd_file), fast.fst_vt['BeamDyn']['BldFile'])
fast.read_BeamDynBlade(bd_blade_file)
else:
Warning('No ElastoDyn or BeamDyn blade files were provided')
line 600
self.bld_flapwise_damp = 0.
if self.fast.fst_vt['Fst']['CompElast'] ==1:
self.bld_flapwise_damp = self.fast.fst_vt['ElastoDynBlade']['BldFlDmp1']/100
elif self.fast.fst_vt['BeamDynBlade']['damp_type']:
self.bld_flapwise_damp = self.fast.fst_vt['BeamDynBlade']['mu5']*0.5*self.bld_flapwise_freq
Hope this helps develop something for BD-blade cases.
from rosco.
This is helpful...thanks!
from rosco.
A couple of other questions (for fixed pitch cases); it seems as if ROSCO wants to change pitch even if IPC_ControlMode=PC_ControlMode=0
; I resorted to setting min_pitch= max_pitch=0
, however there are two issues with that:
- controller.py checks
if not isinstance(self.min_pitch, float)
and would not take the set values if they are not specified as0.
in the yaml, which is a bit annoying - ROSCO checks min '>=' max and bombs, i think this could work with '>' which is what I did for my version, but perhaps there are other reason why you want the check to be more stringent
from rosco.
Issue with reading beamdyn resolved in #349. I'll create another issue for the question with fixed pitch case after some testing.
from rosco.
Related Issues (20)
- Inconsistent behaviour of the yaw module HOT 2
- pip install -e . not working as intended on Windows HOT 2
- Output timestep in wfc_controller HOT 3
- K omega**2 control, definition of K HOT 1
- Additional Measurement Outputs from OpenFAST via zeromq HOT 1
- Invalid tag on 2.9.1? HOT 2
- The acquisition of PI parameters in torque control HOT 2
- Missing 32-bit Windows Libraries
- Is ROSCO safe for multiprocessing? HOT 2
- add wintypes to the ctypes import HOT 2
- Feature: expand wfc_zmq_server to allow wind farm controllers to access past measurements and measurements from other turbines
- Generator model
- WE_Mode setting 2 HOT 1
- `interp2d` has been removed in SciPy 1.14.0 HOT 1
- Max torque rate for the 5 MW HOT 3
- Check for prior initialization
- An issue with loading the simulator and controller interface in ROSCO HOT 8
- cannot find the ROSCO input file for IEA-15-240-RWT HOT 3
- Rosco v2.7 requirements HOT 1
- Error in running 02_ccblade.py HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rosco.