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.
Files changed (52) hide show
  1. h2lib/HAWC2Lib.dll +0 -0
  2. h2lib/_h2lib.py +2 -2
  3. {h2lib-13.0.408.dist-info → h2lib-13.0.410.dist-info}/METADATA +2 -5
  4. h2lib-13.0.410.dist-info/RECORD +10 -0
  5. h2lib/tests/__init__.py +0 -0
  6. h2lib/tests/dtu10mw.py +0 -102
  7. h2lib/tests/test_calc.py +0 -67
  8. h2lib/tests/test_ellipsys_couplings.py +0 -50
  9. h2lib/tests/test_files/DTU_10_MW/DTU_10MW_RWT_hs2.htc +0 -351
  10. h2lib/tests/test_files/DTU_10_MW/HAWC2License_64.dll +0 -0
  11. h2lib/tests/test_files/DTU_10_MW/control/dtu_we_controller.dll +0 -0
  12. h2lib/tests/test_files/DTU_10_MW/control/dtu_we_controller.so +0 -0
  13. h2lib/tests/test_files/DTU_10_MW/control/dtu_we_controller_64.dll +0 -0
  14. h2lib/tests/test_files/DTU_10_MW/control/generator_servo.dll +0 -0
  15. h2lib/tests/test_files/DTU_10_MW/control/generator_servo.so +0 -0
  16. h2lib/tests/test_files/DTU_10_MW/control/generator_servo_64.dll +0 -0
  17. h2lib/tests/test_files/DTU_10_MW/control/mech_brake.dll +0 -0
  18. h2lib/tests/test_files/DTU_10_MW/control/mech_brake.so +0 -0
  19. h2lib/tests/test_files/DTU_10_MW/control/mech_brake_64.dll +0 -0
  20. h2lib/tests/test_files/DTU_10_MW/control/servo_with_limits.dll +0 -0
  21. h2lib/tests/test_files/DTU_10_MW/control/servo_with_limits.so +0 -0
  22. h2lib/tests/test_files/DTU_10_MW/control/servo_with_limits_64.dll +0 -0
  23. h2lib/tests/test_files/DTU_10_MW/control/towerclearance_mblade.dll +0 -0
  24. h2lib/tests/test_files/DTU_10_MW/control/towerclearance_mblade.so +0 -0
  25. h2lib/tests/test_files/DTU_10_MW/control/towerclearance_mblade_64.dll +0 -0
  26. h2lib/tests/test_files/DTU_10_MW/control/wpdata.100 +0 -9
  27. h2lib/tests/test_files/DTU_10_MW/controller_input_quadratic_example.txt +0 -77
  28. h2lib/tests/test_files/DTU_10_MW/data/DTU_10MW_RWT_Blade_st.dat +0 -109
  29. h2lib/tests/test_files/DTU_10_MW/data/DTU_10MW_RWT_Hub_st.dat +0 -9
  30. h2lib/tests/test_files/DTU_10_MW/data/DTU_10MW_RWT_Shaft_st.dat +0 -10
  31. h2lib/tests/test_files/DTU_10_MW/data/DTU_10MW_RWT_Tower_st.dat +0 -44
  32. h2lib/tests/test_files/DTU_10_MW/data/DTU_10MW_RWT_Towertop_st.dat +0 -9
  33. h2lib/tests/test_files/DTU_10_MW/data/DTU_10MW_RWT_ae.dat +0 -42
  34. h2lib/tests/test_files/DTU_10_MW/data/DTU_10MW_RWT_pc.dat +0 -638
  35. h2lib/tests/test_files/DTU_10_MW/data/operation.dat +0 -22
  36. h2lib/tests/test_files/DTU_10_MW/htc/DTU_10MW_RWT.htc +0 -693
  37. h2lib/tests/test_files/DTU_10_MW/htc/DTU_10MW_RWT_mann_turb.htc +0 -681
  38. h2lib/tests/test_files/DTU_10_MW/log/dtu_10mw_rwt_ver09.log +0 -210
  39. h2lib/tests/test_files/__init__.py +0 -2
  40. h2lib/tests/test_files/minimal/__init__.py +0 -0
  41. h2lib/tests/test_files/minimal/htc/__init__.py +0 -0
  42. h2lib/tests/test_files/minimal/htc/minimal.htc +0 -32
  43. h2lib/tests/test_files/minimal/htc/minimal_mann_turb.htc +0 -41
  44. h2lib/tests/test_files/minimal/res/minimal_mann_turb.hdf5 +0 -0
  45. h2lib/tests/test_files/minimal/turb/hawc2_mann_l33.6_ae0.1000_g3.9_h0_512xd32xd16_2.000x3.00x4.00_s0001_u +0 -0
  46. h2lib/tests/test_files/minimal/turb/hawc2_mann_l33.6_ae0.1000_g3.9_h0_512xd32xd16_2.000x3.00x4.00_s0001_v +0 -0
  47. h2lib/tests/test_files/minimal/turb/hawc2_mann_l33.6_ae0.1000_g3.9_h0_512xd32xd16_2.000x3.00x4.00_s0001_w +0 -0
  48. h2lib/tests/test_h2lib.py +0 -217
  49. h2lib/tests/test_h2rotor.py +0 -162
  50. h2lib-13.0.408.dist-info/RECORD +0 -55
  51. {h2lib-13.0.408.dist-info → h2lib-13.0.410.dist-info}/WHEEL +0 -0
  52. {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 diameter(self, rotor=0):
145
- return H2LibSignatures.diameter(self, rotor + 1, restype=np.float64)[1]
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.408
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: pytest ; extra == 'test'
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;
@@ -1,9 +0,0 @@
1
- 7 Wind speed [m/s] Pitch [deg]
2
- 0.0 2.680706
3
- 4.0 2.680706
4
- 5.0 1.896366
5
- 6.0 0.862669
6
- 7.0 0.000078
7
- 8.0 0.000048
8
- 50.0 0.000048
9
-