h2lib 13.0.408__cp38-cp38-win_amd64.whl → 13.0.410__cp38-cp38-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- h2lib/HAWC2Lib.dll +0 -0
- h2lib/_h2lib.py +2 -2
- {h2lib-13.0.408.dist-info → h2lib-13.0.410.dist-info}/METADATA +2 -5
- h2lib-13.0.410.dist-info/RECORD +10 -0
- h2lib/tests/__init__.py +0 -0
- h2lib/tests/dtu10mw.py +0 -102
- h2lib/tests/test_calc.py +0 -67
- h2lib/tests/test_ellipsys_couplings.py +0 -50
- h2lib/tests/test_files/DTU_10_MW/DTU_10MW_RWT_hs2.htc +0 -351
- h2lib/tests/test_files/DTU_10_MW/HAWC2License_64.dll +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/dtu_we_controller.dll +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/dtu_we_controller.so +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/dtu_we_controller_64.dll +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/generator_servo.dll +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/generator_servo.so +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/generator_servo_64.dll +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/mech_brake.dll +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/mech_brake.so +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/mech_brake_64.dll +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/servo_with_limits.dll +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/servo_with_limits.so +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/servo_with_limits_64.dll +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/towerclearance_mblade.dll +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/towerclearance_mblade.so +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/towerclearance_mblade_64.dll +0 -0
- h2lib/tests/test_files/DTU_10_MW/control/wpdata.100 +0 -9
- h2lib/tests/test_files/DTU_10_MW/controller_input_quadratic_example.txt +0 -77
- h2lib/tests/test_files/DTU_10_MW/data/DTU_10MW_RWT_Blade_st.dat +0 -109
- h2lib/tests/test_files/DTU_10_MW/data/DTU_10MW_RWT_Hub_st.dat +0 -9
- h2lib/tests/test_files/DTU_10_MW/data/DTU_10MW_RWT_Shaft_st.dat +0 -10
- h2lib/tests/test_files/DTU_10_MW/data/DTU_10MW_RWT_Tower_st.dat +0 -44
- h2lib/tests/test_files/DTU_10_MW/data/DTU_10MW_RWT_Towertop_st.dat +0 -9
- h2lib/tests/test_files/DTU_10_MW/data/DTU_10MW_RWT_ae.dat +0 -42
- h2lib/tests/test_files/DTU_10_MW/data/DTU_10MW_RWT_pc.dat +0 -638
- h2lib/tests/test_files/DTU_10_MW/data/operation.dat +0 -22
- h2lib/tests/test_files/DTU_10_MW/htc/DTU_10MW_RWT.htc +0 -693
- h2lib/tests/test_files/DTU_10_MW/htc/DTU_10MW_RWT_mann_turb.htc +0 -681
- h2lib/tests/test_files/DTU_10_MW/log/dtu_10mw_rwt_ver09.log +0 -210
- h2lib/tests/test_files/__init__.py +0 -2
- h2lib/tests/test_files/minimal/__init__.py +0 -0
- h2lib/tests/test_files/minimal/htc/__init__.py +0 -0
- h2lib/tests/test_files/minimal/htc/minimal.htc +0 -32
- h2lib/tests/test_files/minimal/htc/minimal_mann_turb.htc +0 -41
- h2lib/tests/test_files/minimal/res/minimal_mann_turb.hdf5 +0 -0
- h2lib/tests/test_files/minimal/turb/hawc2_mann_l33.6_ae0.1000_g3.9_h0_512xd32xd16_2.000x3.00x4.00_s0001_u +0 -0
- h2lib/tests/test_files/minimal/turb/hawc2_mann_l33.6_ae0.1000_g3.9_h0_512xd32xd16_2.000x3.00x4.00_s0001_v +0 -0
- h2lib/tests/test_files/minimal/turb/hawc2_mann_l33.6_ae0.1000_g3.9_h0_512xd32xd16_2.000x3.00x4.00_s0001_w +0 -0
- h2lib/tests/test_h2lib.py +0 -217
- h2lib/tests/test_h2rotor.py +0 -162
- h2lib-13.0.408.dist-info/RECORD +0 -55
- {h2lib-13.0.408.dist-info → h2lib-13.0.410.dist-info}/WHEEL +0 -0
- {h2lib-13.0.408.dist-info → h2lib-13.0.410.dist-info}/top_level.txt +0 -0
h2lib/HAWC2Lib.dll
CHANGED
Binary file
|
h2lib/_h2lib.py
CHANGED
@@ -141,8 +141,8 @@ class H2Lib(H2LibSignatures, DLLWrapper):
|
|
141
141
|
def get_nSections(self, rotor=0, blade=0):
|
142
142
|
return H2LibSignatures.get_nSections(self, rotor + 1, blade + 1, restype=np.int64)[1]
|
143
143
|
|
144
|
-
def
|
145
|
-
return H2LibSignatures.
|
144
|
+
def get_diameter(self, rotor=0):
|
145
|
+
return H2LibSignatures.get_diameter(self, rotor + 1, restype=np.float64)[1]
|
146
146
|
|
147
147
|
def aero_sections_data_shape(self, rotor):
|
148
148
|
if not rotor in self._aero_sections_data_shape:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: h2lib
|
3
|
-
Version: 13.0.
|
3
|
+
Version: 13.0.410
|
4
4
|
Summary: Python interface to HAWC2 (13.0.4+17-g58229ac)
|
5
5
|
Download-URL:
|
6
6
|
Author: S.G.Horcas and N.G.Ramos
|
@@ -11,8 +11,5 @@ Requires-Dist: numpy
|
|
11
11
|
Requires-Dist: intel-fortran-rt ==2021.3.0
|
12
12
|
Requires-Dist: mkl ==2021.3.0
|
13
13
|
Provides-Extra: test
|
14
|
-
Requires-Dist:
|
15
|
-
Requires-Dist: pytest-cov ; extra == 'test'
|
16
|
-
Requires-Dist: hipersim ; extra == 'test'
|
17
|
-
Requires-Dist: wetb ; extra == 'test'
|
14
|
+
Requires-Dist: h2lib-tests ; extra == 'test'
|
18
15
|
|
@@ -0,0 +1,10 @@
|
|
1
|
+
h2lib/HAWC2Lib.dll,sha256=xMykcPC5qGVqdZiU-e80f0s53wkoXs6Q0FlyHpTOXYw,29155840
|
2
|
+
h2lib/__init__.py,sha256=v4RtCtR7Cfv-LSx-9tnLK0WSefKVjIKrGjfBVBhONzI,27
|
3
|
+
h2lib/_h2lib.py,sha256=u6V-J_B-SBfBCgTkRu0AphywTikQSfQGAfBwvJYISxI,9060
|
4
|
+
h2lib/dll_wrapper.py,sha256=jFCcT1gnjIl6k_I5nvzeLgG75I0D5VTiWwwWKV7M77w,11962
|
5
|
+
h2lib/h2lib_signatures.py,sha256=zhANdNacmPZ_9mMvSEiLK_09PSkwZ0lXHLWKDxmEAEQ,25371
|
6
|
+
h2lib/utils.py,sha256=Et7LTR1jlKDcMfkwlUpdIaZcy9qRr46p0WP-U0JNK7k,4722
|
7
|
+
h2lib-13.0.410.dist-info/METADATA,sha256=Zjjj9YTOZFr73rgAoexQwIW5SYjlr-x4KCtUCKNvVko,379
|
8
|
+
h2lib-13.0.410.dist-info/WHEEL,sha256=KplWMgwSZbeAOumvxNxIrVbNPnn_LVzfBH7l38jDCVM,100
|
9
|
+
h2lib-13.0.410.dist-info/top_level.txt,sha256=y_a-tUqphEZQ_0nsWSMaSb21P8Lsd8hUxUdE9g2Dcbk,6
|
10
|
+
h2lib-13.0.410.dist-info/RECORD,,
|
h2lib/tests/__init__.py
DELETED
File without changes
|
h2lib/tests/dtu10mw.py
DELETED
@@ -1,102 +0,0 @@
|
|
1
|
-
from wetb.hawc2.htc_file import HTCFile
|
2
|
-
from h2lib.tests.test_files import tfp
|
3
|
-
|
4
|
-
|
5
|
-
class DTU10MW(HTCFile):
|
6
|
-
def __init__(self, init_rotor_speed=.2, nbodies=10):
|
7
|
-
super().__init__(tfp + "DTU_10_MW/htc/DTU_10MW_RWT.htc")
|
8
|
-
o = self.new_htc_structure.orientation.get_subsection_by_name('towertop', 'body1')
|
9
|
-
o.mbdy2_ini_rotvec_d1 = 0, 0, -1, init_rotor_speed
|
10
|
-
|
11
|
-
blade = self.new_htc_structure.get_subsection_by_name('blade1')
|
12
|
-
blade.nbodies = nbodies
|
13
|
-
|
14
|
-
def set_tilt_cone_yaw(self, tilt, cone, yaw=0):
|
15
|
-
r = self.new_htc_structure.orientation.get_subsection_by_name('towertop', 'body1')
|
16
|
-
r.body2_eulerang__2 = [tilt, 0, 0]
|
17
|
-
r.body2_eulerang__2.comments = "%d deg tilt angle" % tilt
|
18
|
-
for i in [1, 2, 3]:
|
19
|
-
r = self.new_htc_structure.orientation.get_subsection_by_name('hub%d' % i, 'body2')
|
20
|
-
r.body2_eulerang__3 = [cone, 0, 0]
|
21
|
-
r.body2_eulerang__3.comments = "%d deg cone angle" % cone
|
22
|
-
r = self.new_htc_structure.orientation.get_subsection_by_name('tower', 'body1')
|
23
|
-
r.body2_eulerang = [0, 0, yaw]
|
24
|
-
|
25
|
-
def set_straight(self):
|
26
|
-
blade = self.new_htc_structure.get_subsection_by_name('blade1')
|
27
|
-
blade.timoschenko_input.set = 1, 3
|
28
|
-
for i in range(1, 28):
|
29
|
-
sec = getattr(blade.c2_def, 'sec__%d' % i)
|
30
|
-
i, x, y, z, t = sec.values
|
31
|
-
sec.values = [i, 0, 0, z, 0]
|
32
|
-
|
33
|
-
def set_aero(self, aero_calc=1, induction=1, tiploss=1, dynstall=2):
|
34
|
-
self.aero.aerocalc_method = aero_calc
|
35
|
-
self.aero.induction_method = induction
|
36
|
-
self.aero.tiploss_method = tiploss
|
37
|
-
self.aero.dynstall_method = dynstall
|
38
|
-
|
39
|
-
def set_fixed_pitch(self, pitch):
|
40
|
-
pitch_servo = self.dll.get_subsection_by_name('servo_with_limits')
|
41
|
-
pitch_servo.init.constant__6[1] = pitch
|
42
|
-
pitch_servo.init.constant__7[1] = pitch
|
43
|
-
|
44
|
-
def set_stiff(self, bodies=['tower', 'shaft', 'blade1']):
|
45
|
-
for b in bodies:
|
46
|
-
self.new_htc_structure.get_subsection_by_name(b).timoschenko_input.set = 1, 2
|
47
|
-
|
48
|
-
def set_gravity(self, gravity):
|
49
|
-
for mb in [s for s in self.new_htc_structure if s.name_ == 'main_body']:
|
50
|
-
mb.gravity = gravity
|
51
|
-
|
52
|
-
def set_wind(self, wsp, tint, turb_format, shear=(1, 0)):
|
53
|
-
self.wind.wsp = wsp
|
54
|
-
self.wind.tint = tint
|
55
|
-
self.wind.turb_format = turb_format
|
56
|
-
self.wind.shear_format = shear
|
57
|
-
|
58
|
-
|
59
|
-
class DTU10MWSimple(DTU10MW):
|
60
|
-
def __init__(self, rotor_speed, pitch, nbodies=10):
|
61
|
-
super().__init__(rotor_speed, nbodies=nbodies)
|
62
|
-
self.dll.delete()
|
63
|
-
|
64
|
-
for s in [s for s in self.output.sensors if s.type == 'constraint']:
|
65
|
-
s.delete()
|
66
|
-
shaft_rot = self.new_htc_structure.constraint.get_subsection_by_name('shaft_rot')
|
67
|
-
shaft_rot.name_ = 'bearing3'
|
68
|
-
shaft_rot.omegas = rotor_speed
|
69
|
-
for i in [1, 2, 3]:
|
70
|
-
r = self.new_htc_structure.orientation.get_subsection_by_name('hub%d' % i, 'body1')
|
71
|
-
r.body2_eulerang = [0, 0, -pitch]
|
72
|
-
c = self.new_htc_structure.constraint.get_subsection_by_name('pitch%d' % i)
|
73
|
-
c.name_ = 'fix1'
|
74
|
-
c.name.delete()
|
75
|
-
c.bearing_vector.delete()
|
76
|
-
|
77
|
-
|
78
|
-
class DTU10MWRotor(HTCFile):
|
79
|
-
def __init__(self, rotor_speed, pitch, tilt=5, cone=2.5, blade_bodies=10, straight=False):
|
80
|
-
super().__init__(tfp + "DTU10MW/htc/DTU_10MW_RWT_Rotor.htc")
|
81
|
-
blade = self.new_htc_structure.get_subsection_by_name('blade1')
|
82
|
-
blade.nbodies = blade_bodies
|
83
|
-
tt_s = self.new_htc_structure.orientation.get_subsection_by_name('shaft', 'body2')
|
84
|
-
tt_s.body2_eulerang__2 = tilt, 0, 0
|
85
|
-
|
86
|
-
shaft_rot = self.new_htc_structure.constraint.get_subsection_by_name('shaft_rot')
|
87
|
-
shaft_rot.omegas = rotor_speed
|
88
|
-
for i in [1, 2, 3]:
|
89
|
-
r = self.new_htc_structure.orientation.get_subsection_by_name('blade%d' % i, 'body2')
|
90
|
-
r.body2_eulerang__3 = [cone, 0, -pitch]
|
91
|
-
|
92
|
-
if straight:
|
93
|
-
blade.timoschenko_input.set = 1, 3
|
94
|
-
for i in range(1, 28):
|
95
|
-
sec = getattr(blade.c2_def, 'sec__%d' % i)
|
96
|
-
i, x, y, z, t = sec.values
|
97
|
-
sec.values = [i, 0, 0, z, 0]
|
98
|
-
|
99
|
-
|
100
|
-
if __name__ == '__main__':
|
101
|
-
dtu = DTU10MWSimple(1, 2)
|
102
|
-
print(dtu)
|
h2lib/tests/test_calc.py
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
import numpy as np
|
2
|
-
from h2lib._h2lib import H2Lib
|
3
|
-
import sys
|
4
|
-
import pytest
|
5
|
-
import os
|
6
|
-
import h2lib
|
7
|
-
from h2lib.utils import ProcessClass
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
@pytest.fixture(scope='module')
|
12
|
-
def h2():
|
13
|
-
h2 = H2Lib()
|
14
|
-
yield h2
|
15
|
-
h2.close()
|
16
|
-
|
17
|
-
|
18
|
-
def test_sqr(h2):
|
19
|
-
ret_args, res = h2.sqr2(3)
|
20
|
-
assert ret_args[0] == 9
|
21
|
-
|
22
|
-
|
23
|
-
def test_square(h2):
|
24
|
-
ret_args, res = h2.getSquare(3., restype=np.float64)
|
25
|
-
assert res == 9
|
26
|
-
|
27
|
-
|
28
|
-
def test_version(h2):
|
29
|
-
print(h2.version())
|
30
|
-
|
31
|
-
|
32
|
-
def test_hdf5(h2):
|
33
|
-
h2.test_hdf5()
|
34
|
-
|
35
|
-
|
36
|
-
def test_mkl(h2):
|
37
|
-
h2.test_mkl()
|
38
|
-
|
39
|
-
|
40
|
-
def test_state(h2):
|
41
|
-
with pytest.raises(Exception, match='already in use in current process'):
|
42
|
-
h2_2 = H2Lib()
|
43
|
-
h2_2 = ProcessClass(H2Lib)()
|
44
|
-
h2.setState(5)
|
45
|
-
assert h2.getState() == 5
|
46
|
-
h2_2.setState(6)
|
47
|
-
assert h2_2.getState() == 6
|
48
|
-
assert h2.getState() == 5
|
49
|
-
|
50
|
-
|
51
|
-
def test_hidden_function(h2):
|
52
|
-
with pytest.raises(AttributeError, match="Attribute 'hidden_function' not found in dll"):
|
53
|
-
h2.hidden_function()
|
54
|
-
|
55
|
-
|
56
|
-
def test_hidden_c_function(h2):
|
57
|
-
if os.name == 'posix':
|
58
|
-
# functino is not accessible because it is not in export.txt
|
59
|
-
with pytest.raises(AttributeError, match="Attribute 'hidden_c_function' not found in dll"):
|
60
|
-
h2.hidden_c_function()
|
61
|
-
|
62
|
-
|
63
|
-
def test_hidden_functions_is_hidden():
|
64
|
-
if os.name == 'posix':
|
65
|
-
# cannot hide function names
|
66
|
-
assert 'hidden_c_function' in os.popen(f"nm {os.path.dirname(h2lib.__file__)}/HAWC2Lib.so").read()
|
67
|
-
assert 'hidden_function' in os.popen(f"nm {os.path.dirname(h2lib.__file__)}/HAWC2Lib.so").read()
|
@@ -1,50 +0,0 @@
|
|
1
|
-
from h2lib._h2lib import MultiH2Lib
|
2
|
-
import numpy as np
|
3
|
-
from wetb.hawc2.htc_file import HTCFile
|
4
|
-
from numpy import newaxis as na
|
5
|
-
from h2lib.tests.test_files import tfp
|
6
|
-
|
7
|
-
|
8
|
-
class Ellipsys():
|
9
|
-
def __init__(self):
|
10
|
-
self.time = 0
|
11
|
-
|
12
|
-
def get_uvw(self, pos_xyz_lst):
|
13
|
-
uvw = np.array(pos_xyz_lst) * 0
|
14
|
-
uvw[:, :, 0] = 6
|
15
|
-
return uvw.tolist()
|
16
|
-
|
17
|
-
def step(self):
|
18
|
-
self.time += .2
|
19
|
-
return self.time
|
20
|
-
|
21
|
-
def set_fxyz(self, pos_xyz, fxyz):
|
22
|
-
pass
|
23
|
-
|
24
|
-
|
25
|
-
def test_ellipsys_dummy_workflow():
|
26
|
-
|
27
|
-
N = 4
|
28
|
-
with MultiH2Lib(N) as h2:
|
29
|
-
el = Ellipsys()
|
30
|
-
htc = HTCFile(tfp + 'DTU_10_MW/htc/DTU_10MW_RWT.htc')
|
31
|
-
for i in range(N):
|
32
|
-
htc.set_name(f'wt{i}')
|
33
|
-
htc.save()
|
34
|
-
|
35
|
-
h2.read_input(htc_path=[f'htc/wt{i}.htc' for i in range(N)],
|
36
|
-
model_path=tfp + 'DTU_10_MW')
|
37
|
-
wt_pos = np.array([[0, 0, 0], [0, 500, 0], [0, 1000, 0], [0, 1500, 0]])
|
38
|
-
|
39
|
-
h2.init()
|
40
|
-
|
41
|
-
while True:
|
42
|
-
t = el.step()
|
43
|
-
h2.run(t)
|
44
|
-
pos_gl_xyz = np.array(h2.get_aerosections_position()) + wt_pos[:, na, na, :]
|
45
|
-
uvw = el.get_uvw(pos_gl_xyz)
|
46
|
-
h2.set_aerosections_windspeed(uvw)
|
47
|
-
frc_gl_xyz, mom_xyz = zip(*h2.get_aerosections_load())
|
48
|
-
el.set_fxyz(pos_gl_xyz, frc_gl_xyz)
|
49
|
-
if t == 1:
|
50
|
-
break
|
@@ -1,351 +0,0 @@
|
|
1
|
-
begin new_htc_structure;
|
2
|
-
;-------------------------------------------------------------------------------------------------------------------------------
|
3
|
-
begin main_body; tower 115m
|
4
|
-
name tower ;
|
5
|
-
type timoschenko ;
|
6
|
-
nbodies 1 ;
|
7
|
-
node_distribution c2_def ;
|
8
|
-
damping_posdef 0.0 0.0 0.0 4.12E-03 4.12E-03 4.5E-04 ; Mx My Mz Kx Ky Kz , M�s raises overall level, K�s raises high freguency level "tuned by Larh"
|
9
|
-
begin timoschenko_input;
|
10
|
-
filename ./data/DTU_10MW_RWT_Tower_st.dat;
|
11
|
-
set 1 1 ;
|
12
|
-
end timoschenko_input;
|
13
|
-
begin c2_def; Definition of centerline (main_body coordinates)
|
14
|
-
nsec 11;
|
15
|
-
sec 1 0 0 0.00 0 ; x,y,z,twist
|
16
|
-
sec 2 0 0 -11.50 0 ;
|
17
|
-
sec 3 0 0 -23.00 0 ;
|
18
|
-
sec 4 0 0 -34.50 0 ;
|
19
|
-
sec 5 0 0 -46.00 0 ;
|
20
|
-
sec 6 0 0 -57.50 0 ;
|
21
|
-
sec 7 0 0 -69.00 0 ;
|
22
|
-
sec 8 0 0 -80.50 0 ;
|
23
|
-
sec 9 0 0 -92.00 0 ;
|
24
|
-
sec 10 0 0 -103.50 0 ;
|
25
|
-
sec 11 0 0 -115.63 0 ;
|
26
|
-
end c2_def ;
|
27
|
-
end main_body;
|
28
|
-
;
|
29
|
-
begin main_body;
|
30
|
-
name towertop ;
|
31
|
-
type timoschenko ;
|
32
|
-
nbodies 1 ;
|
33
|
-
node_distribution c2_def ;
|
34
|
-
damping_posdef 0.0 0.0 0.0 7.00E-03 7.00E-03 7.00E-03 ; "changed by Larh"
|
35
|
-
concentrated_mass 2.0 0.0 2.6870E+00 3.0061E-01 4.4604E+05 4.1060E+06 4.1060E+05 4.1060E+06 ; Nacelle mass and inertia "corrected by Anyd 25/4/13"
|
36
|
-
begin timoschenko_input;
|
37
|
-
filename ./data/DTU_10MW_RWT_Towertop_st.dat ;
|
38
|
-
set 1 2 ;
|
39
|
-
end timoschenko_input;
|
40
|
-
begin c2_def; Definition of centerline (main_body coordinates)
|
41
|
-
nsec 2;
|
42
|
-
sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist
|
43
|
-
sec 2 0.0 0.0 -2.75 0.0 ;
|
44
|
-
end c2_def ;
|
45
|
-
end main_body;
|
46
|
-
;
|
47
|
-
begin main_body;
|
48
|
-
name shaft ;
|
49
|
-
type timoschenko ;
|
50
|
-
nbodies 1 ;
|
51
|
-
node_distribution c2_def ;
|
52
|
-
damping_posdef 0.0 0.0 0.0 4.65E-04 4.65E-04 3.983E-03 ; "tuned by Anyd 23/5/13 to 31.45 log decr. damping for free free with stiff rotor and tower"
|
53
|
-
concentrated_mass 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.751E+06 ; generator equivalent slow shaft "re_tuned by Anyd 20/2/13"
|
54
|
-
concentrated_mass 5.0 0.0 0.0 0.0 1.0552E+05 0.0 0.0 3.257E+05 ; hub mass and inertia; "re_tuned by Anyd 20/2/13"
|
55
|
-
begin timoschenko_input;
|
56
|
-
filename ./data/DTU_10MW_RWT_Shaft_st.dat ;
|
57
|
-
set 1 1 ;
|
58
|
-
end timoschenko_input;
|
59
|
-
begin c2_def; Definition of centerline (main_body coordinates)
|
60
|
-
nsec 5;
|
61
|
-
sec 1 0.0 0.0 0.0 0.0 ; Tower top x,y,z,twist
|
62
|
-
sec 2 0.0 0.0 1.5 0.0 ;
|
63
|
-
sec 3 0.0 0.0 3.0 0.0 ;
|
64
|
-
sec 4 0.0 0.0 4.4 0.0 ; Main bearing
|
65
|
-
sec 5 0.0 0.0 7.1 0.0 ; Rotor centre
|
66
|
-
end c2_def ;
|
67
|
-
end main_body;
|
68
|
-
;
|
69
|
-
begin main_body;
|
70
|
-
name hub1 ;
|
71
|
-
type timoschenko ;
|
72
|
-
nbodies 1 ;
|
73
|
-
node_distribution c2_def ;
|
74
|
-
damping_posdef 0.0 0.0 0.0 3.00E-06 3.00E-06 2.00E-05; "changed by Larh"
|
75
|
-
begin timoschenko_input;
|
76
|
-
filename ./data/DTU_10MW_RWT_Hub_st.dat ;
|
77
|
-
set 1 2 ;
|
78
|
-
end timoschenko_input;
|
79
|
-
begin c2_def; Definition of centerline (main_body coordinates)
|
80
|
-
nsec 2;
|
81
|
-
sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist
|
82
|
-
sec 2 0.0 0.0 2.8 0.0 ;
|
83
|
-
end c2_def ;
|
84
|
-
end main_body;
|
85
|
-
;
|
86
|
-
begin main_body;
|
87
|
-
name hub2 ;
|
88
|
-
copy_main_body hub1;
|
89
|
-
end main_body;
|
90
|
-
;
|
91
|
-
begin main_body;
|
92
|
-
name hub3 ;
|
93
|
-
copy_main_body hub1 ;
|
94
|
-
end main_body;
|
95
|
-
;
|
96
|
-
begin main_body;
|
97
|
-
name blade1 ;
|
98
|
-
type timoschenko ;
|
99
|
-
nbodies 10 ;
|
100
|
-
node_distribution c2_def;
|
101
|
-
damping_posdef 0.0 0.0 0.0 1.53e-3 2.55e-3 3.3e-4 ; " 3% damping tuned by tkim 23/03/13 unable to fit 3rd and higher mode"
|
102
|
-
begin timoschenko_input ;
|
103
|
-
filename ./data/DTU_10MW_RWT_Blade_st.dat;
|
104
|
-
set 1 1 ; set subset
|
105
|
-
end timoschenko_input;
|
106
|
-
begin c2_def; Definition of centerline (main_body coordinates)
|
107
|
-
nsec 27 ;
|
108
|
-
sec 1 0.00000E+00 7.00600E-05 4.44089E-16 -1.45000E+01 ;
|
109
|
-
sec 2 -2.06477E-05 -1.22119E-02 3.00000E+00 -1.45000E+01 ;
|
110
|
-
sec 3 -7.28810E-03 -2.49251E-02 6.00000E+00 -1.44851E+01 ;
|
111
|
-
sec 4 -1.89235E-02 -2.73351E-02 7.00004E+00 -1.44610E+01 ;
|
112
|
-
sec 5 -5.41282E-02 -2.82163E-02 8.70051E+00 -1.43388E+01 ;
|
113
|
-
sec 6 -1.26633E-01 -2.13210E-02 1.04020E+01 -1.40201E+01 ;
|
114
|
-
sec 7 -2.25666E-01 -1.28378E-02 1.22046E+01 -1.33904E+01 ;
|
115
|
-
sec 8 -2.88563E-01 -7.70659E-03 1.32065E+01 -1.29371E+01 ;
|
116
|
-
sec 9 -3.99194E-01 -4.88317E-03 1.50100E+01 -1.19445E+01 ;
|
117
|
-
sec 10 -5.76634E-01 -1.80296E-02 1.82151E+01 -9.98243E+00 ;
|
118
|
-
sec 11 -7.07136E-01 -5.01772E-02 2.14178E+01 -8.45147E+00 ;
|
119
|
-
sec 12 -7.91081E-01 -9.41228E-02 2.46189E+01 -7.46417E+00 ;
|
120
|
-
sec 13 -8.37195E-01 -1.48880E-01 2.78193E+01 -6.72916E+00 ;
|
121
|
-
sec 14 -8.53948E-01 -2.14514E-01 3.10194E+01 -6.08842E+00 ;
|
122
|
-
sec 15 -8.49367E-01 -2.90618E-01 3.42197E+01 -5.49322E+00 ;
|
123
|
-
sec 16 -7.93920E-01 -4.62574E-01 4.02204E+01 -4.39222E+00 ;
|
124
|
-
sec 17 -7.16284E-01 -6.88437E-01 4.66217E+01 -3.09315E+00 ;
|
125
|
-
sec 18 -6.34358E-01 -9.60017E-01 5.30232E+01 -1.75629E+00 ;
|
126
|
-
sec 19 -5.53179E-01 -1.28424E+00 5.94245E+01 -5.00650E-01 ;
|
127
|
-
sec 20 -4.75422E-01 -1.66402E+00 6.58255E+01 6.01964E-01 ;
|
128
|
-
sec 21 -4.03180E-01 -2.10743E+00 7.22261E+01 1.55560E+00 ;
|
129
|
-
sec 22 -3.30085E-01 -2.65630E+00 7.90266E+01 2.51935E+00 ;
|
130
|
-
sec 23 -3.10140E-01 -2.78882E+00 8.05267E+01 2.72950E+00 ;
|
131
|
-
sec 24 -2.86719E-01 -2.92517E+00 8.20271E+01 2.93201E+00 ;
|
132
|
-
sec 25 -2.55823E-01 -3.06577E+00 8.35274E+01 3.11874E+00 ;
|
133
|
-
sec 26 -2.07891E-01 -3.20952E+00 8.50277E+01 3.28847E+00 ;
|
134
|
-
sec 27 -8.98940E-02 -3.33685E+00 8.63655E+01 3.42796E+00 ;
|
135
|
-
end c2_def ;
|
136
|
-
end main_body;
|
137
|
-
;
|
138
|
-
begin main_body;
|
139
|
-
name blade2 ;
|
140
|
-
copy_main_body blade1;
|
141
|
-
end main_body;
|
142
|
-
;
|
143
|
-
begin main_body;
|
144
|
-
name blade3 ;
|
145
|
-
copy_main_body blade1 ;
|
146
|
-
end main_body;
|
147
|
-
;-------------------------------------------------------------------------------------------------------------------------------
|
148
|
-
;
|
149
|
-
begin orientation;
|
150
|
-
begin base;
|
151
|
-
body tower;
|
152
|
-
inipos 0.0 0.0 0.0 ; initial position of node 1
|
153
|
-
body_eulerang 0.0 0.0 0.0;
|
154
|
-
end base;
|
155
|
-
;
|
156
|
-
begin relative;
|
157
|
-
body1 tower last;
|
158
|
-
body2 towertop 1;
|
159
|
-
body2_eulerang 0.0 0.0 0.0;
|
160
|
-
end relative;
|
161
|
-
;
|
162
|
-
begin relative;
|
163
|
-
body1 towertop last;
|
164
|
-
body2 shaft 1;
|
165
|
-
body2_eulerang 90.0 0.0 0.0;
|
166
|
-
body2_eulerang 5.0 0.0 0.0; 5 deg tilt angle
|
167
|
-
body2_ini_rotvec_d1 0.0 0.0 -1.0 0.2 ;
|
168
|
-
end relative;
|
169
|
-
;
|
170
|
-
begin relative;
|
171
|
-
body1 shaft last;
|
172
|
-
body2 hub1 1;
|
173
|
-
body2_eulerang -90.0 0.0 0.0;
|
174
|
-
body2_eulerang 0.0 180.0 0.0;
|
175
|
-
body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle
|
176
|
-
end relative;
|
177
|
-
;
|
178
|
-
begin relative;
|
179
|
-
body1 shaft last;
|
180
|
-
body2 hub2 1;
|
181
|
-
body2_eulerang -90.0 0.0 0.0;
|
182
|
-
body2_eulerang 0.0 60.0 0.0;
|
183
|
-
body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle
|
184
|
-
end relative;
|
185
|
-
;
|
186
|
-
begin relative;
|
187
|
-
body1 shaft last;
|
188
|
-
body2 hub3 1;
|
189
|
-
body2_eulerang -90.0 0.0 0.0;
|
190
|
-
body2_eulerang 0.0 -60.0 0.0;
|
191
|
-
body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle
|
192
|
-
end relative;
|
193
|
-
;
|
194
|
-
begin relative;
|
195
|
-
body1 hub1 last;
|
196
|
-
body2 blade1 1;
|
197
|
-
body2_eulerang 0.0 0.0 0;
|
198
|
-
end relative;
|
199
|
-
;
|
200
|
-
begin relative;
|
201
|
-
body1 hub2 last;
|
202
|
-
body2 blade2 1;
|
203
|
-
body2_eulerang 0.0 0.0 0.0;
|
204
|
-
end relative;
|
205
|
-
;
|
206
|
-
begin relative;
|
207
|
-
body1 hub3 last;
|
208
|
-
body2 blade3 1;
|
209
|
-
body2_eulerang 0.0 0.0 0.0;
|
210
|
-
end relative;
|
211
|
-
;
|
212
|
-
end orientation;
|
213
|
-
;-------------------------------------------------------------------------------------------------------------------------------
|
214
|
-
begin constraint;
|
215
|
-
;
|
216
|
-
begin fix0; fixed to ground in translation and rotation of node 1
|
217
|
-
body tower;
|
218
|
-
end fix0;
|
219
|
-
;
|
220
|
-
begin fix1;
|
221
|
-
body1 tower last ;
|
222
|
-
body2 towertop 1;
|
223
|
-
end fix1;
|
224
|
-
;
|
225
|
-
begin bearing1; free bearing
|
226
|
-
name shaft_rot;
|
227
|
-
body1 towertop last;
|
228
|
-
body2 shaft 1;
|
229
|
-
bearing_vector 2 0.0 0.0 -1.0; x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present
|
230
|
-
end bearing1;
|
231
|
-
;
|
232
|
-
begin fix1;
|
233
|
-
body1 shaft last ;
|
234
|
-
body2 hub1 1;
|
235
|
-
end fix1;
|
236
|
-
;
|
237
|
-
begin fix1;
|
238
|
-
body1 shaft last ;
|
239
|
-
body2 hub2 1;
|
240
|
-
end fix1;
|
241
|
-
;
|
242
|
-
begin fix1;
|
243
|
-
body1 shaft last ;
|
244
|
-
body2 hub3 1;
|
245
|
-
end fix1;
|
246
|
-
;
|
247
|
-
begin bearing2;
|
248
|
-
name pitch1;
|
249
|
-
body1 hub1 last;
|
250
|
-
body2 blade1 1;
|
251
|
-
bearing_vector 2 0.0 0.0 -1.0;
|
252
|
-
end bearing2;
|
253
|
-
;
|
254
|
-
begin bearing2;
|
255
|
-
name pitch2;
|
256
|
-
body1 hub2 last;
|
257
|
-
body2 blade2 1;
|
258
|
-
bearing_vector 2 0.0 0.0 -1.0;
|
259
|
-
end bearing2;
|
260
|
-
;
|
261
|
-
begin bearing2;
|
262
|
-
name pitch3;
|
263
|
-
body1 hub3 last;
|
264
|
-
body2 blade3 1;
|
265
|
-
bearing_vector 2 0.0 0.0 -1.0;
|
266
|
-
end bearing2;
|
267
|
-
end constraint;
|
268
|
-
;
|
269
|
-
end new_htc_structure;
|
270
|
-
;----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
271
|
-
begin wind ;
|
272
|
-
density 1.225 ;
|
273
|
-
wsp 8 ;
|
274
|
-
tint 0.0 ;
|
275
|
-
horizontal_input 1 ; 0=false, 1=true
|
276
|
-
windfield_rotations 0 0.0 0.0 ; yaw, tilt, rotation
|
277
|
-
center_pos0 0.0 0.0 -119 ; hub heigth
|
278
|
-
shear_format 1 0.14 ;0=none,1=constant,2=log,3=power,4=linear
|
279
|
-
turb_format 0 ; 0=none, 1=mann,2=flex
|
280
|
-
tower_shadow_method 0 ; 0=none, 1=potential flow, 2=jet
|
281
|
-
end wind;
|
282
|
-
;
|
283
|
-
begin aero ;
|
284
|
-
nblades 3;
|
285
|
-
hub_vec shaft -3 ; rotor rotation vector (normally shaft composant directed from pressure to sustion side)
|
286
|
-
link 1 mbdy_c2_def blade1;
|
287
|
-
link 2 mbdy_c2_def blade2;
|
288
|
-
link 3 mbdy_c2_def blade3;
|
289
|
-
ae_filename ./data/DTU_10MW_RWT_ae.dat ;
|
290
|
-
pc_filename ./data/DTU_10MW_RWT_pc.dat ;
|
291
|
-
induction_method 1 ; 0=none, 1=normal
|
292
|
-
aerocalc_method 1 ; 0=ingen aerodynamic, 1=med aerodynamic
|
293
|
-
aerosections 50 ; def. 50
|
294
|
-
ae_sets 1 1 1;
|
295
|
-
tiploss_method 1 ; 0=none, 1=prandtl
|
296
|
-
dynstall_method 2 ; 0=none, 1=stig �ye method,2=mhh method
|
297
|
-
;
|
298
|
-
end aero ;
|
299
|
-
;----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
300
|
-
begin hawcstab2 ;
|
301
|
-
begin ground_fixed_substructure ;
|
302
|
-
main_body tower ;
|
303
|
-
main_body towertop ;
|
304
|
-
end ground_fixed_substructure ;
|
305
|
-
begin rotating_axissym_substructure ;
|
306
|
-
main_body shaft ;
|
307
|
-
end rotating_axissym_substructure ;
|
308
|
-
begin rotating_threebladed_substructure ;
|
309
|
-
main_body hub1 ;
|
310
|
-
main_body blade1 ;
|
311
|
-
second_order_actuator pitch1 1 0.7 ;
|
312
|
-
end rotating_threebladed_substructure ;
|
313
|
-
operational_data_filename ./data/operation.dat ;
|
314
|
-
verbose ;
|
315
|
-
begin operational_data ;
|
316
|
-
windspeed 4.0 25.0 22 ; cut-in [m/s], cut-out [m/s], points [-]
|
317
|
-
genspeed 299.85 479.56567 ; [rpm]
|
318
|
-
gearratio 50.0 ; [-]
|
319
|
-
minpitch 0.0 ; [deg.]
|
320
|
-
opt_lambda 7.5 ; [-]
|
321
|
-
maxpow 10641.618 ; [kW]
|
322
|
-
prvs_turbine 1 ; [-]
|
323
|
-
include_torsiondeform 1 ; [-];
|
324
|
-
end operational_data ;
|
325
|
-
; Basic full load PI pitch controller
|
326
|
-
; 1 2 3 4 5 6 7 8 9 10;
|
327
|
-
; P_rated Omega_rated Kp_full Ki_full K1_theta K2_theta omega_filt csi_filt type K0_omega;
|
328
|
-
; pi_pitch_controller 10641.618 1.005 0.118697E+01 0.364908E+00 102.68665 754.18745 0.4 0.7 0;
|
329
|
-
; simplified linearization of the Basic DTU Wind Energy controller (https://github.com/DTUWindEnergy/BasicDTUController)
|
330
|
-
; 1 2 3 4 5 6 7 8 9 10 11;
|
331
|
-
; Kp_partial Ki_partial Kopt_partial Kp_full Ki_full K1_theta K2_theta omega_filt csi_filt DT_freq type;
|
332
|
-
basic_dtu_we_controller 0.708402E+08 0.158965E+08 0.117967E+08 0.118697E+01 0.364908E+00 10.12612 435.19980 0.4 0.7 1.92 0;
|
333
|
-
begin controller_tuning ;
|
334
|
-
partial_load 0.05 0.7; fn [hz], zeta [-]
|
335
|
-
full_load 0.06 0.7 ; fn [hz], zeta [-]
|
336
|
-
gain_scheduling 2 ; 1 linear, 2 quadratic
|
337
|
-
constant_power 0; 0 constant torque, 1 constant power at full load
|
338
|
-
end controller_tuning ;
|
339
|
-
begin controller ;
|
340
|
-
begin input ;
|
341
|
-
constraint bearing1 shaft_rot ;
|
342
|
-
constraint bearing2 pitch1 collective ;
|
343
|
-
end input ;
|
344
|
-
begin output ;
|
345
|
-
; - Rotor speed and pitch angle
|
346
|
-
constraint bearing1 shaft_rot 1 only 2 ; [1]
|
347
|
-
constraint bearing2 pitch1 1 only 1 collective ; [2]
|
348
|
-
end output ;
|
349
|
-
end controller ;
|
350
|
-
end hawcstab2 ;
|
351
|
-
exit;
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|