From d646b313e4204b84e60fed717cafa68e2b942728 Mon Sep 17 00:00:00 2001 From: dave <dave@dtu.dk> Date: Tue, 5 Apr 2016 18:43:39 +0200 Subject: [PATCH] first test for prepost.Simulations: generating input files, including data --- .../demo_dlc/ref/data/minimal_demo_file.txt | 1 + .../data/demo_dlc/ref/demo_dlc_remote.zip | Bin 0 -> 9358 bytes .../demo_dlc/ref/htc/DLCs/dlc01_demos.xlsx | Bin 0 -> 6554 bytes .../ref/htc/_master/demo_dlc_master_A0001.htc | 850 ++++++++++++++++++ .../dlc01_demos/dlc01_steady_wsp10_noturb.htc | 850 ++++++++++++++++++ .../dlc01_demos/dlc01_steady_wsp8_noturb.htc | 850 ++++++++++++++++++ .../dlc01_demos/dlc01_steady_wsp9_noturb.htc | 850 ++++++++++++++++++ .../dlc01_demos/dlc01_steady_wsp10_noturb.p | 55 ++ .../dlc01_demos/dlc01_steady_wsp8_noturb.p | 55 ++ .../dlc01_demos/dlc01_steady_wsp9_noturb.p | 55 ++ .../tests/data/demo_dlc/ref/prepost/A0001.pkl | Bin 0 -> 4418 bytes .../data/demo_dlc/ref/prepost/A0001_tags.txt | 178 ++++ .../source/data/minimal_demo_file.txt | 1 + .../data/demo_dlc/source/demo_dlc_remote.zip | Bin 0 -> 9358 bytes .../demo_dlc/source/htc/DLCs/dlc01_demos.xlsx | Bin 0 -> 6554 bytes .../htc/_master/demo_dlc_master_A0001.htc | 850 ++++++++++++++++++ wetb/prepost/tests/test_Simulations.py | 55 ++ 17 files changed, 4650 insertions(+) create mode 100644 wetb/prepost/tests/data/demo_dlc/ref/data/minimal_demo_file.txt create mode 100644 wetb/prepost/tests/data/demo_dlc/ref/demo_dlc_remote.zip create mode 100755 wetb/prepost/tests/data/demo_dlc/ref/htc/DLCs/dlc01_demos.xlsx create mode 100755 wetb/prepost/tests/data/demo_dlc/ref/htc/_master/demo_dlc_master_A0001.htc create mode 100644 wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp10_noturb.htc create mode 100644 wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp8_noturb.htc create mode 100644 wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp9_noturb.htc create mode 100644 wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp10_noturb.p create mode 100644 wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp8_noturb.p create mode 100644 wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp9_noturb.p create mode 100755 wetb/prepost/tests/data/demo_dlc/ref/prepost/A0001.pkl create mode 100755 wetb/prepost/tests/data/demo_dlc/ref/prepost/A0001_tags.txt create mode 100644 wetb/prepost/tests/data/demo_dlc/source/data/minimal_demo_file.txt create mode 100644 wetb/prepost/tests/data/demo_dlc/source/demo_dlc_remote.zip create mode 100755 wetb/prepost/tests/data/demo_dlc/source/htc/DLCs/dlc01_demos.xlsx create mode 100755 wetb/prepost/tests/data/demo_dlc/source/htc/_master/demo_dlc_master_A0001.htc create mode 100644 wetb/prepost/tests/test_Simulations.py diff --git a/wetb/prepost/tests/data/demo_dlc/ref/data/minimal_demo_file.txt b/wetb/prepost/tests/data/demo_dlc/ref/data/minimal_demo_file.txt new file mode 100644 index 00000000..8db26215 --- /dev/null +++ b/wetb/prepost/tests/data/demo_dlc/ref/data/minimal_demo_file.txt @@ -0,0 +1 @@ +just one demo line diff --git a/wetb/prepost/tests/data/demo_dlc/ref/demo_dlc_remote.zip b/wetb/prepost/tests/data/demo_dlc/ref/demo_dlc_remote.zip new file mode 100644 index 0000000000000000000000000000000000000000..60fe434ad3dc15cf5e1dd1977c630107c611ac55 GIT binary patch literal 9358 zcma)?WmFySm!)wh$i>|ucyM=jcXuxC?%W{3?P9^h#ogV5yN2Kp+=2$3{JMLlXJ+-k zXHKnm)vh{wpIYm!Z&i<)A}kyZ6ciK^)UpRi?yvY?h4fchx;T5fyEw9`{Yw}8Uze4+ zr}_WG;_2mX@!wd`{!X#;v}7}NGWYPbcK_d;#y-I^$bL{qJCsmR*ojb3wEvgW%G$}r z)XLHFKa!^6?Ck8HSpUvC54ucU=V{nJ%<6?{F7GBijJJb%p=1>3W&G~lP|l}cd;ahu z&aLi7V>e{0u$YqeJ=H&CHK;e_tb>>WIi;W^xp8cB>0`Y#){#u{+{O_C(N&WXJ^VAx z4b@o7nFy<%Q3KVwT+2j?)0p#~1gn0_>u2G29I%_n;e{&sFBj3STJuM4kHKW(__mO# zJQwl|aO-c@wFauSvxT-u#s$TZaVzRW>8x{tK%2)eJGI2jObs|m=@^2@*15{{<4Zc5 zF1s�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 YTToMkNBGB!@b_?ohJr$*{^#m{06WKVl>h($ literal 0 HcmV?d00001 diff --git a/wetb/prepost/tests/data/demo_dlc/ref/htc/DLCs/dlc01_demos.xlsx b/wetb/prepost/tests/data/demo_dlc/ref/htc/DLCs/dlc01_demos.xlsx new file mode 100755 index 0000000000000000000000000000000000000000..1f4c2311367ccea9d06f57db32793e8948f0e959 GIT binary patch literal 6554 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 literal 0 HcmV?d00001 diff --git a/wetb/prepost/tests/data/demo_dlc/ref/htc/_master/demo_dlc_master_A0001.htc b/wetb/prepost/tests/data/demo_dlc/ref/htc/_master/demo_dlc_master_A0001.htc new file mode 100755 index 00000000..6e956f80 --- /dev/null +++ b/wetb/prepost/tests/data/demo_dlc/ref/htc/_master/demo_dlc_master_A0001.htc @@ -0,0 +1,850 @@ +;this version was at some point based on: Avatar_10MW_RWT version 1, 06-08-14, Anyd +begin simulation; + time_stop [time stop]; + solvertype 1 ; (newmark) + on_no_convergence continue ; +; convergence_limits 1E3 1.0 1E-7 ; + logfile ./logfiles/[Case folder]/[Case id.].log ; + begin newmark; + deltat 0.02; + end newmark; +end simulation; +; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +begin new_htc_structure; +;-------------------------------------------------------------------------------------------------- +[staircase] beam_output_file_name ./res_eigen/[Case folder]/[Case id.]/[Case id.]_beam.dat; +[staircase] body_output_file_name ./res_eigen/[Case folder]/[Case id.]/[Case id.]_body.dat; +[staircase] struct_inertia_output_file_name ./res_eigen/[Case folder]/[Case id.]/[Case id.]_struct.dat; +[staircase] body_eigenanalysis_file_name ./res_eigen/[Case folder]/[Case id.]/[Case id.]_body_eigen.dat; +[staircase] structure_eigenanalysis_file_name ./res_eigen/[Case folder]/[Case id.]/[Case id.]_strc_eigen.dat; +;--------------------------------------------------------------------------------------------------- + begin main_body; tower 123.6m + name tower ; + type timoschenko ; + nbodies 3 ; + node_distribution c2_def ; + damping_posdef 0 0 0 4.7E-03 4.7E-03 4.3E-04 ; tuned by Anyd 12/8/14 + begin timoschenko_input; + filename ./data/AVATAR_10MW_RWT_tower_st.dat; + set 1 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 20; + sec 1 0 0 0.000 0 ; x,y,z,twist + sec 2 0 0 -12.293 0 ; + sec 3 0 0 -12.294 0 ; + sec 4 0 0 -24.585 0 ; + sec 5 0 0 -24.586 0 ; + sec 6 0 0 -36.878 0 ; + sec 7 0 0 -36.879 0 ; + sec 8 0 0 -49.171 0 ; + sec 9 0 0 -49.172 0 ; + sec 10 0 0 -61.463 0 ; + sec 11 0 0 -61.464 0 ; + sec 12 0 0 -73.756 0 ; + sec 13 0 0 -73.757 0 ; + sec 14 0 0 -86.049 0 ; + sec 15 0 0 -86.050 0 ; + sec 16 0 0 -98.341 0 ; + sec 17 0 0 -98.342 0 ; + sec 18 0 0 -110.634 0 ; + sec 19 0 0 -110.635 0 ; + sec 20 0 0 -123.600 0 ; + end c2_def ; + end main_body; +; + begin main_body; + name towertop ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 7.50E-03 7.40E-03 7.00E-03 7.00E-03 7.00E-03 7.00E-03 ; "changed by Anyd + concentrated_mass 2.0 0.0 2.6870E+00 3.0061E-01 4.4604E+05 4.1060E+06 4.1060E+05 4.1060E+06 ; Nacel + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Towertop_st.dat ; + set 1 2 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 -2.75 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name shaft ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; +; damping_posdef 8.00E-3 8.00E-03 8.00E-02 4.65E-04 4.65E-04 2.38E-02 ; "tuned by Anyd 22/2/13 + damping_posdef 0.0 0.0 3.983E-03 4.65E-04 4.65E-04 3.983E-03 ; "tuned by Anyd 23/5/13 to 31.45 l + concentrated_mass 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.751E+06 ; generator equivalent slow shaft "re_tu + 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 + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Shaft_st.dat ; + set 1 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 5; + sec 1 0.0 0.0 0.0 0.0 ; Tower top x,y,z,twist + sec 2 0.0 0.0 1.5 0.0 ; + sec 3 0.0 0.0 3.0 0.0 ; + sec 4 0.0 0.0 4.4 0.0 ; Main bearing + sec 5 0.0 0.0 7.1 0.0 ; Rotor centre + end c2_def ; + end main_body; +; + begin main_body; + name shaft_nonrotate ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.00E+00 0.00E+00 0.00E+00 1.0E-01 1.0E-01 1.0E-01 ; + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Shaft_st.dat ; + set 1 3; dummy light and stiff structure + end timoschenko_input; + begin c2_def; + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; + sec 2 0.0 0.0 0.1 0.0 ; + end c2_def; + end main_body; +; + begin main_body; + name hub1 ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 2.00E-05 2.00E-05 2.00E-04 3.00E-06 3.00E-06 2.00E-05; + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Hub_st.dat ; + set 1 2 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 2.8 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name hub2 ; + copy_main_body hub1; + end main_body; +; + begin main_body; + name hub3 ; + copy_main_body hub1 ; + end main_body; +; + begin main_body; + name blade1 ; + type timoschenko ; + nbodies 10 ; + node_distribution c2_def; +; damping_posdef 0.0 0.0 0.0 2.5e-3 8.9e-4 3.2e-4 ; "Tuned by Anyd" +; damping_posdef 0.0 0.0 0.0 1.5e-3 2.45e-3 3.2e-4 ; " 3% damping tuned by Anyd 20/02/12 unable to +; damping_posdef 0.0 0.0 0.0 2.1e-3 1.9e-3 1.3e-4 ; " 3% damping tuned by Anyd 15/08/14 rev2 + damping_posdef 0.0 0.0 0.0 1.68e-3 2.25e-3 1.0e-4 ; " 3% damping tuned by Anyd 16/12/14 + begin timoschenko_input ; + filename ./data/AVATAR_10MW_RWT_Blade_st.dat ; + set 1 9 ; + end timoschenko_input; + begin c2_def; + nsec 27 ; + sec 1 -0.001 -0.001 0.000 -17.280 ; + sec 2 -0.005 -0.001 2.220 -17.280 ; + sec 3 -0.006 -0.000 4.440 -17.280 ; + sec 4 -0.086 0.022 6.660 -17.280 ; + sec 5 -0.231 0.069 11.039 -17.273 ; + sec 6 -0.447 0.121 15.418 -16.441 ; + sec 7 -0.690 0.161 19.797 -14.613 ; + sec 8 -0.812 0.162 24.176 -12.578 ; + sec 9 -0.891 0.158 28.555 -10.588 ; + sec 10 -0.865 0.124 32.934 -9.070 ; + sec 11 -0.833 0.112 37.313 -8.224 ; + sec 12 -0.797 0.102 41.692 -7.688 ; + sec 13 -0.760 0.093 46.071 -7.205 ; + sec 14 -0.721 0.083 50.450 -6.749 ; + sec 15 -0.683 0.075 54.829 -6.288 ; + sec 16 -0.644 0.066 59.208 -5.838 ; + sec 17 -0.606 0.058 63.587 -5.401 ; + sec 18 -0.567 0.050 67.966 -4.982 ; + sec 19 -0.529 0.044 72.345 -4.640 ; + sec 20 -0.492 0.037 76.724 -4.380 ; + sec 21 -0.456 0.032 81.103 -4.144 ; + sec 22 -0.422 0.026 85.482 -3.914 ; + sec 23 -0.392 0.021 89.861 -3.685 ; + sec 24 -0.346 0.014 94.240 -3.460 ; + sec 25 -0.307 0.010 96.190 -3.350 ; + sec 26 -0.249 0.005 98.130 -3.250 ; + sec 27 -0.089 0.006 100.080 -3.140 ; + end c2_def ; + end main_body; +; + begin main_body; + name blade2 ; + copy_main_body blade1; + end main_body; +; + begin main_body; + name blade3 ; + copy_main_body blade1 ; + end main_body; +;------------------------------------------------------------------------------------------------------------------------------- +; + begin orientation; + begin base; + body tower; + inipos 0.0 0.0 0.0 ; initial position of node 1 + body_eulerang 0.0 0.0 0.0; + end base; +; + begin relative; + body1 tower last; + body2 towertop 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + begin relative; + body1 towertop last; + body2 shaft 1; + body2_eulerang 90.0 0.0 0.0; + body2_eulerang 5.0 0.0 0.0; 5 deg tilt angle + body2_eulerang 0.0 0.0 [Rotor azimuth]; +[Free shaft rot] mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 [init_wr] ; mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 [init_wr]; + end relative; +; + begin relative; dummy non rotating hub coordinates + body1 towertop last; + body2 shaft_nonrotate 1; + body2_eulerang 90.0 0.0 0.0; + body2_eulerang 5.0 0.0 0.0; same 5 deg tilt angle as real shaft + end relative; +; + begin relative; + body1 shaft last; + body2 hub1 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 180.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub2 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub3 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 -60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 hub1 last; + body2 blade1 1; + body2_eulerang 0.0 0.0 0; + end relative; +; + begin relative; + body1 hub2 last; + body2 blade2 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + begin relative; + body1 hub3 last; + body2 blade3 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + end orientation; +;------------------------------------------------------------------------------------------------------------------------------- +begin constraint; +; + begin fix0; fixed to ground in translation and rotation of node 1 + body tower; + end fix0; +; + begin fix1; + body1 tower last ; + body2 towertop 1; + end fix1; +; +[Free shaft rot] begin bearing1; free bearing +[Free shaft rot] name shaft_rot; +[Free shaft rot] body1 towertop last; +[Free shaft rot] body2 shaft 1; +[Free shaft rot] 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 +[Free shaft rot] end bearing1; +; +[Rotor locked] begin bearing3; free bearing +[Rotor locked] name shaft_rot; +[Rotor locked] body1 towertop last; +[Rotor locked] body2 shaft 1; +[Rotor locked] 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 +[Rotor locked] omegas 0.0 ; +[Rotor locked] end bearing3; +; + begin fix1; + body1 tower last ; + body2 shaft_nonrotate 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub1 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub2 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub3 1; + end fix1; +; + begin bearing2; + name pitch1; + body1 hub1 last; + body2 blade1 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch2; + body1 hub2 last; + body2 blade2 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch3; + body1 hub3 last; + body2 blade3 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +end constraint; +; +end new_htc_structure; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +begin wind ; + density 1.225 ; + wsp [Windspeed] ; + tint [TI] ; + horizontal_input 1 ; + windfield_rotations [wdir] 8.0 0.0 ; yaw, tilt (positive=upflow=wind coming from below), rotation + center_pos0 0.0 0.0 -127 ; hub heigth + shear_format 3 [shear_exp] ; + turb_format [tu_model] ; 0=none, 1=mann,2=flex + tower_shadow_method 3 ; 0=none, 1=potential flow, 2=jet + scale_time_start [t0] ; + wind_ramp_factor 0.0 [t0] [wsp factor] 1.0 ; + [gust] iec_gust [gust_type] [G_A] [G_phi0] [G_t0] [G_T] ; +; +[staircase] wind_ramp_abs 400.0 401.0 0.0 1.0 ; wsp. after the step: 5.0 +[staircase] wind_ramp_abs 501.0 502.0 0.0 1.0 ; wsp. after the step: 6.0 +[staircase] wind_ramp_abs 602.0 603.0 0.0 1.0 ; wsp. after the step: 7.0 +[staircase] wind_ramp_abs 703.0 704.0 0.0 1.0 ; wsp. after the step: 8.0 +[staircase] wind_ramp_abs 804.0 805.0 0.0 1.0 ; wsp. after the step: 9.0 +[staircase] wind_ramp_abs 905.0 906.0 0.0 1.0 ; wsp. after the step: 10.0 +[staircase] wind_ramp_abs 1006.0 1007.0 0.0 1.0 ; wsp. after the step: 11.0 +[staircase] wind_ramp_abs 1107.0 1108.0 0.0 1.0 ; wsp. after the step: 12.0 +[staircase] wind_ramp_abs 1208.0 1209.0 0.0 1.0 ; wsp. after the step: 13.0 +[staircase] wind_ramp_abs 1309.0 1310.0 0.0 1.0 ; wsp. after the step: 14.0 +[staircase] wind_ramp_abs 1410.0 1411.0 0.0 1.0 ; wsp. after the step: 15.0 +[staircase] wind_ramp_abs 1511.0 1512.0 0.0 1.0 ; wsp. after the step: 16.0 +[staircase] wind_ramp_abs 1612.0 1613.0 0.0 1.0 ; wsp. after the step: 17.0 +[staircase] wind_ramp_abs 1713.0 1714.0 0.0 1.0 ; wsp. after the step: 18.0 +[staircase] wind_ramp_abs 1814.0 1815.0 0.0 1.0 ; wsp. after the step: 19.0 +[staircase] wind_ramp_abs 1915.0 1916.0 0.0 1.0 ; wsp. after the step: 20.0 +[staircase] wind_ramp_abs 2016.0 2017.0 0.0 1.0 ; wsp. after the step: 21.0 +[staircase] wind_ramp_abs 2117.0 2118.0 0.0 1.0 ; wsp. after the step: 22.0 +[staircase] wind_ramp_abs 2218.0 2219.0 0.0 1.0 ; wsp. after the step: 23.0 +[staircase] wind_ramp_abs 2319.0 2320.0 0.0 1.0 ; wsp. after the step: 24.0 +[staircase] wind_ramp_abs 2420.0 2421.0 0.0 1.0 ; wsp. after the step: 25.0 + ; +[windramp] wind_ramp_abs 400.0 2200.0 0.0 21.0 ; wsp. after the step: 25.0 +[windramp] wind_ramp_abs 2400.0 4200.0 0.0 -21.0 ; wsp. after the step: 25.0 + ; + begin mann ; + create_turb_parameters 29.4 1.0 3.9 [tu_seed] 1.0 ; L, alfaeps, gamma, seed, highfrq compensation + filename_u ./[turb_dir][Turb base name]u.bin ; + filename_v ./[turb_dir][Turb base name]v.bin ; + filename_w ./[turb_dir][Turb base name]w.bin ; + box_dim_u 8192 [turb_dx] ; + box_dim_v 32 7.5; + box_dim_w 32 7.5; + std_scaling 1.0 0.7 0.5 ; + end mann ; +; + begin tower_shadow_potential_2; + tower_mbdy_link tower; + nsec 2; + radius 0.0 4.15 ; + radius 123.6 2.75 ; (radius) + end tower_shadow_potential_2; +end wind; +; +begin aerodrag ; + begin aerodrag_element ; + mbdy_name tower; + aerodrag_sections uniform 10 ; + nsec 2 ; + sec 0.0 0.6 8.3 ; tower bottom + sec 123.6 0.6 5.5 ; tower top (diameter) + end aerodrag_element; +; + begin aerodrag_element ; Nacelle drag side + mbdy_name shaft; + aerodrag_sections uniform 2 ; + nsec 2 ; + sec 0.0 0.8 10.0 ; + sec 7.01 0.8 10.0 ; + end aerodrag_element; +end aerodrag; +; +begin aero ; + nblades 3; + hub_vec shaft -3 ; rotor rotation vector (normally shaft composant directed from pressure to sustion side) + link 1 mbdy_c2_def blade1; + link 2 mbdy_c2_def blade2; + link 3 mbdy_c2_def blade3; + ae_filename ./data/AVATAR_10MW_RWT_ae.dat ; + pc_filename ./data/AVATAR_10MW_RWT_pc_hama_v1.dat ; + induction_method [Induction] ; 0=none, 1=normal + aerocalc_method 1 ; 0=ingen aerodynamic, 1=med aerodynamic + aero_distribution ae_file 1 ; + ae_sets 1 1 1; + tiploss_method 1 ; 0=none, 1=prandtl + dynstall_method [Dyn stall] ; 0=none, 1=stig øye method,2=mhh method +; +; ; --- Flaps --- ; + ; begin dynstall_ateflap ; + ; Ais 0.165 0.335 0.0 ; + ; Bis 0.0455 0.30 0.30 ; + ; flap 59.5925 85.5023 ./data/Flap_dturwt1_Thk24.ds ; Flap Sec: 1 + ; end dynstall_ateflap; +end aero ; +;------------------------------------------------------------------------------------------------- +begin dll; +; + begin type2_dll; + name risoe_controller ; + filename ./control/risoe_controller.dll ; + dll_subroutine_init init_regulation ; + dll_subroutine_update update_regulation ; + arraysizes_init 52 1 ; + arraysizes_update 12 100 ; + begin init ; + ; Overall parameters + constant 1 10000.0 ; Rated power [kW] + constant 2 0.628 ; Minimum rotor speed [rad/s] + constant 3 1.005 ; Rated rotor speed [rad/s] + constant 4 15.6E+06 ; Maximum allowable generator torque [Nm] + constant 5 100.0 ; Minimum pitch angle, theta_min [deg], + ; if |theta_min|>90, then a table of <wsp,theta_min> is read ; + ; from a file named 'wpdata.n', where n=int(theta_min) + constant 6 90.0 ; Maximum pitch angle [deg] + constant 7 10.0 ; Maximum pitch velocity operation [deg/s] + constant 8 0.4 ; Frequency of generator speed filter [Hz] + constant 9 0.7 ; Damping ratio of speed filter [-] + constant 10 1.64 ; Frequency of free-free DT torsion mode [Hz], if zero no notch filter used + ; Partial load control parameters + constant 11 0.9648030e+07 ; Optimal Cp tracking K factor [Nm/(rad/s)^2], ; + ; Qg=K*Omega^2, K=eta*0.5*rho*A*Cp_opt*R^3/lambda_opt^3 + constant 12 1.047610E+08 ; Proportional gain of torque controller [Nm/(rad/s)] + constant 13 0.153367E+08 ; Integral gain of torque controller [Nm/rad] + constant 14 0.0 ; Differential gain of torque controller [Nm/(rad/s^2)] +; Full load control parameters + constant 15 1 ; Generator control switch [1=constant power, 2=constant torque] + constant 16 0.762489 ; Proportional gain of pitch controller [rad/(rad/s)] + constant 17 0.224086 ; Integral gain of pitch controller [rad/rad] + constant 18 0.0 ; Differential gain of pitch controller [rad/(rad/s^2)] + constant 19 0.4e-9 ; Proportional power error gain [rad/W] + constant 20 0.4e-9 ; Integral power error gain [rad/(Ws)] + constant 21 10.6824 ; Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg] + constant 22 601.25499 ; Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] & + ; (if zero, KK1 = pitch angle at double gain) + constant 23 1.3 ; Relative speed for double nonlinear gain [-] +; Cut-in simulation parameters + constant 24 [Cut-in time] ; Cut-in time [s] + constant 25 1.0 ; Time delay for soft start of torque [1/1P] +; Cut-out simulation parameters + constant 26 [Cut-out time] ; Cut-out time [s] + constant 27 5.0 ; Time constant for linear torque cut-out [s] + constant 28 [Stop type] ; Stop type [1=normal, 2=emergency] + constant 29 1.0 ; Time delay for pitch stop after shut-down signal [s] + constant 30 [Pitvel 1] ; Maximum pitch velocity during initial period of stop [deg/s] + constant 31 3.0 ; Time period of initial pitch stop phase [s] (maintains pitch speed specified in constant 30) + constant 32 [Pitvel 2] ; Maximum pitch velocity during final phase of stop [deg/s] +; Expert parameters (keep default values unless otherwise given) + constant 33 2.0 ; Lower angle above lowest minimum pitch angle for switch [deg] + constant 34 2.0 ; Upper angle above lowest minimum pitch angle for switch [deg], if equal then hard switch + constant 35 95.0 ; Ratio between filtered speed and reference speed for fully open torque limits [%] + constant 36 2.0 ; Time constant of 1st order filter on wind speed used for minimum pitch [1/1P] + constant 37 1.0 ; Time constant of 1st order filter on pitch angle used for gain scheduling [1/1P] +; Drivetrain damper + constant 38 0.0 ; Proportional gain of active DT damper [Nm/(rad/s)], requires frequency in input 10 +; Over speed + constant 39 25.0 ; Overspeed percentage before initiating turbine controller alarm (shut-down) [%] +; Additional non-linear pitch control term (not used when all zero) + constant 40 0.0 ; Err0 [rad/s] + constant 41 0.0 ; ErrDot0 [rad/s^2] + constant 42 0.0 ; PitNonLin1 [rad/s] +; Storm control command + constant 43 28.0 ; Wind speed 'Vstorm' above which derating of rotor speed is used [m/s] + constant 44 28.0 ; Cut-out wind speed (only used for derating of rotor speed in storm) [m/s] +; Safety system parameters + constant 45 25.0 ; Overspeed percentage before initiating safety system alarm (shut-down) [%] + constant 46 1.5 ; Max low-pass filtered tower top acceleration level [m/s^2] - max in DLC 1.3=1.1 m/s^2 +; Turbine parameter + constant 47 205.8 ; Nominal rotor diameter [m] +; Parameters for rotor inertia reduction in variable speed region + constant 48 0.0 ; Proportional gain on rotor acceleration in variable speed region [Nm/(rad/s^2)] (not used when zero) +; Parameters for alternative partial load controller with PI regulated TSR tracking + constant 49 0.0 ; Optimal tip speed ratio [-] (only used when K=constant 11 = 0 otherwise Qg=K*Omega^2 is used) +; Parameters for adding aerodynamic drivetrain damping on gain scheduling + constant 50 0.0 ; Proportional gain of aerodynamic DT damping [Nm/(rad/s)] + constant 51 0.0 ; Coefficient of linear term in aerodynamic DT damping scheduling, KK1 [deg] + constant 52 0.0 ; Coefficient of quadratic term in aerodynamic DT damping scheduling, KK2 [deg^2] + end init ; +; + begin output ; + general time ; [s] + constraint bearing1 shaft_rot 1 only 2 ; Drivetrain speed [rad/s] + constraint bearing2 pitch1 1 only 1; [rad] + constraint bearing2 pitch2 1 only 1; [rad] + constraint bearing2 pitch3 1 only 1; [rad] + wind free_wind 1 0.0 0.0 -127 ; Global coordinates at hub height + dll inpvec 2 2 ; Elec. power from generator servo .dll + dll inpvec 2 8 ; Grid state flag from generator servo .dll + mbdy state acc tower 10 1.0 global only 1 ; Tower top x-acceleration [m/s^2] + mbdy state acc tower 10 1.0 global only 2 ; Tower top y-acceleration [m/s^2] + end output; + end type2_dll; +; + begin type2_dll; + name generator_servo ; + filename ./control/generator_servo.dll ; + dll_subroutine_init init_generator_servo ; + dll_subroutine_update update_generator_servo ; + arraysizes_init 7 1 ; + arraysizes_update 4 8 ; + begin init ; + constant 1 20.0 ; Frequency of 2nd order servo model of generator-converter system [Hz] + constant 2 0.9 ; Damping ratio 2nd order servo model of generator-converter system [-] + constant 3 15.6E+06 ; Maximum allowable LSS torque (pull-out torque) [Nm] + constant 4 0.94 ; Generator efficiency [-] + constant 5 1.0 ; Gearratio [-] + constant 6 0.0 ; Time for half value in softstart of torque [s] + constant 7 [Grid loss time] ; Time for grid loss [s] + end init ; +; + begin output; + general time ; Time [s] + dll inpvec 1 1 ; Electrical torque reference [Nm] + constraint bearing1 shaft_rot 1 only 2; Generator LSS speed [rad/s] + mbdy momentvec shaft 1 1 shaft only 3 ; Shaft moment [kNm] (Qshaft) + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name mech_brake ; + filename ./control/mech_brake.dll ; + dll_subroutine_init init_mech_brake ; + dll_subroutine_update update_mech_brake ; + arraysizes_init 7 1 ; + arraysizes_update 4 6 ; + begin init ; + constant 1 5225.35 ; Fully deployed maximum brake torque [Nm] (0.6*max torque) + constant 2 100.0 ; Parameter alpha used in Q = tanh(omega*alpha), typically 1e2/Omega_nom + constant 3 0.5 ; Delay time for before brake starts to deploy [s] + constant 4 0.74 ; Time for brake to become fully deployed [s] + end init ; +; + begin output; + general time ; Time [s] + constraint bearing1 shaft_rot 1 only 2 ; Generator LSS speed [rad/s] + dll inpvec 1 25 ; Command to deploy mechanical disc brake [0,1] + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name servo_with_limits ; + filename ./control/servo_with_limits.dll ; + dll_subroutine_init init_servo_with_limits ; + dll_subroutine_update update_servo_with_limits ; + arraysizes_init 10 1 ; + arraysizes_update 5 9 ; + begin init ; + constant 1 3 ; Number of blades [-] + constant 2 1.0 ; Frequency of 2nd order servo model of pitch system [Hz] + constant 3 0.7 ; Damping ratio 2nd order servo model of pitch system [-] + constant 4 10.0 ; Max. pitch speed [deg/s] + constant 5 15.0 ; Max. pitch acceleration [deg/s^2] + constant 6 -5.0 ; Min. pitch angle [deg] + constant 7 90.0 ; Max. pitch angle [deg] + constant 8 [Time pitch runaway] ; Time for pitch runaway [s] + constant 9 [Time stuck DLC22b] ; Time for stuck blade 1 [s] + constant 10 [Pitch 1 DLC22b] ; Angle of stuck blade 1 [deg] + end init ; + begin output; + general time ; Time [s] + dll inpvec 1 2 ; Pitch1 demand angle [rad] + dll inpvec 1 3 ; Pitch2 demand angle [rad] + dll inpvec 1 4 ; Pitch3 demand angle [rad] + dll inpvec 1 26 ; Flag for emergency pitch stop [0=off/1=on] + end output; +; + begin actions; + constraint bearing2 angle pitch1 ; Angle pitch1 bearing [rad] + constraint bearing2 angle pitch2 ; Angle pitch2 bearing [rad] + constraint bearing2 angle pitch3 ; Angle pitch3 bearing [rad] + end actions; + end type2_dll; +; +; --- DLL for tower-blade tip distance -- ; + begin type2_dll; + name disttowtip ; + filename ./control/towclearsens.dll ; + dll_subroutine_init initialize ; + dll_subroutine_update update ; + arraysizes_init 1 1 ; + arraysizes_update 12 4 ; + begin init ; + constant 1 3.87 ; Tower radius close to downward blade tip [m] + end init ; + begin output; + mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m + mbdy state pos blade1 26 1.0 global ; [4,5,6] + mbdy state pos blade2 26 1.0 global ; [7,8,9] + mbdy state pos blade3 26 1.0 global ; [10,11,12] + end output; + end type2_dll; +end dll; +; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +; +begin output; + filename ./res/[Case folder]/[Case id.] ; + time [t0] [time stop] ; + data_format [out_format]; + buffer 1 ; +; + general time; + constraint bearing1 shaft_rot 2; angle and angle velocity + constraint bearing2 pitch1 5; angle and angle velocity + constraint bearing2 pitch2 5; angle and angle velocity + constraint bearing2 pitch3 5; angle and angle velocity + aero omega ; + aero torque; + aero power; + aero thrust; + wind free_wind 1 0.0 0.0 -127; local wind at fixed position: coo (1=global,2=non-rotation rotor coo.), pos x, pos y, pos z + ; non rotating coordinates shaft tip: equivalent to stationary hub in BLADED + mbdy momentvec shaft 3 2 shaft_nonrotate # non rotating shaft tip ; + mbdy forcevec shaft 3 2 shaft_nonrotate # non rotating shaft tip ; + ; Moments: + mbdy momentvec tower 1 1 tower # tower base ; + mbdy momentvec tower 19 2 tower # tower yaw bearing ; + mbdy momentvec shaft 4 1 shaft # main bearing ; + mbdy momentvec blade1 3 2 blade1 # blade 1 root ; + mbdy momentvec blade2 3 2 blade2 # blade 2 root ; + mbdy momentvec blade3 3 2 blade3 # blade 3 root ; + ; blade 2,3 root section loads + mbdy momentvec blade2 3 2 local # blade 2 section root; + mbdy momentvec blade3 3 2 local # blade 3 section root; + ; blade 1 sectional loads in local coordinates + mbdy momentvec blade1 2 2 local # blade 1 section; + mbdy momentvec blade1 3 2 local # blade 1 section root; + mbdy momentvec blade1 4 2 local # blade 1 section; + mbdy momentvec blade1 5 2 local # blade 1 section; + mbdy momentvec blade1 6 2 local # blade 1 section; + mbdy momentvec blade1 7 2 local # blade 1 section; + mbdy momentvec blade1 8 2 local # blade 1 section; + mbdy momentvec blade1 9 2 local # blade 1 section; + mbdy momentvec blade1 10 2 local # blade 1 section; + mbdy momentvec blade1 11 2 local # blade 1 section; + mbdy momentvec blade1 12 2 local # blade 1 section; + mbdy momentvec blade1 13 2 local # blade 1 section; + mbdy momentvec blade1 14 2 local # blade 1 section; + mbdy momentvec blade1 15 2 local # blade 1 section; + mbdy momentvec blade1 16 2 local # blade 1 section; + mbdy momentvec blade1 17 2 local # blade 1 section; + mbdy momentvec blade1 18 2 local # blade 1 section; + mbdy momentvec blade1 19 2 local # blade 1 section; + mbdy momentvec blade1 20 2 local # blade 1 section; + mbdy momentvec blade1 21 2 local # blade 1 section; + mbdy momentvec blade1 22 2 local # blade 1 section; + mbdy momentvec blade1 23 2 local # blade 1 section; + mbdy momentvec blade1 24 2 local # blade 1 section; + mbdy momentvec blade1 25 2 local # blade 1 section; + mbdy momentvec blade1 26 2 local # blade 1 section; + ; blade root out and in of plane forces + mbdy momentvec blade1 3 2 hub1 # blade 1 root ; + mbdy momentvec blade2 3 2 hub2 # blade 2 root ; + mbdy momentvec blade3 3 2 hub3 # blade 3 root ; +; mbdy momentvec blade1 14 1 local # blade 1 50% local e coo ; +; mbdy momentvec blade2 14 1 local # blade 2 50% local e coo ; +; mbdy momentvec blade3 14 1 local # blade 3 50% local e coo ; + ; Displacements and accellerations + mbdy state pos tower 19 1.0 global only 1 # Tower top FA displ; + mbdy state pos tower 19 1.0 global only 2 # Tower top SS displ; + mbdy state acc tower 19 1.0 global only 1 # Tower top FA acc; + mbdy state acc tower 19 1.0 global only 2 # Tower top SS acc; +; + mbdy state pos blade1 26 1.0 global # gl blade 1 tip pos ; + mbdy state pos blade2 26 1.0 global # gl blade 2 tip pos ; + mbdy state pos blade3 26 1.0 global # gl blade 3 tip pos ; + mbdy state pos blade1 26 1.0 blade1 # blade 1 tip pos ; + mbdy state pos blade2 26 1.0 blade2 # blade 2 tip pos ; + mbdy state pos blade3 26 1.0 blade3 # blade 3 tip pos ; +; + mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m +; + ; elastic twist (torsional deformation) along the blade + aero tors_ang 1 45.56; + aero tors_ang 1 59.19; + aero tors_ang 1 70.87; + aero tors_ang 1 80.61; + aero tors_ang 1 84.50; + aero tors_ang 1 88.40; + aero tors_ang 1 92.29; + aero tors_ang 1 96.19; + aero tors_ang 1 98.13; + aero tors_ang 1 100.08; tip +; +; - Monitor Aerodynamics - ; + aero windspeed 3 1 1 72.5; + aero alfa 1 72.5; + aero alfa 2 72.5; + aero alfa 3 72.5; + aero cl 1 72.5; + aero cl 2 72.5; + aero cl 3 72.5; + aero cd 1 72.5; + aero cd 2 72.5; + aero cd 3 72.5; +; - Main Controller - +; Output to controller + ; dll outvec 1 1 # time; + ; dll outvec 1 2 # slow speed shaft rad/s; + ; dll outvec 1 3 # pitch angle 1; + ; dll outvec 1 4 # pitch angle 2; + ; dll outvec 1 5 # pitch angle 3; + ; dll outvec 1 6 # WSP_x_global; + ; dll outvec 1 7 # WSP_y_global; + ; dll outvec 1 8 # WSP_z_global; + ; dll outvec 1 9 # Elec. pwr ; + ; dll outvec 1 10 # Grid flag ; +; Input from controller + dll inpvec 1 1 # Generator torque reference [Nm] ; + dll inpvec 1 2 # Pitch angle reference of blade 1 [rad] ; + dll inpvec 1 3 # Pitch angle reference of blade 2 [rad] ; + dll inpvec 1 4 # Pitch angle reference of blade 3 [rad] ; + ; dll inpvec 1 5 # Power reference [W] ; + ; dll inpvec 1 6 # Filtered wind speed [m/s] ; + ; dll inpvec 1 7 # Filtered rotor speed [rad/s]; + ; dll inpvec 1 8 # Filtered rotor speed error for torque [rad/s]; + ; dll inpvec 1 9 # Bandpass filtered rotor speed [rad/s]; + ; dll inpvec 1 10 # Proportional term of torque contr. [Nm] ; + ; dll inpvec 1 11 # Integral term of torque controller [Nm] ; + ; dll inpvec 1 12 # Minimum limit of torque [Nm] ; + ; dll inpvec 1 13 # Maximum limit of torque [Nm] ; + dll inpvec 1 14 # Torque limit switch based on pitch [-] ; + ; dll inpvec 1 15 # Filtered rotor speed error for pitch [rad/s]; + ; dll inpvec 1 16 # Power error for pitch [W] ; + ; dll inpvec 1 17 # Proportional term of pitch controller [rad] ; + ; dll inpvec 1 18 # Integral term of pitch controller [rad] ; + ; dll inpvec 1 19 # Minimum limit of pitch [rad] ; + ; dll inpvec 1 20 # Maximum limit of pitch [rad] ; + dll inpvec 1 21 # Torque reference from DT dammper [Nm] ; + dll inpvec 1 22 # Status signal [-] ; + ; dll inpvec 1 23 # Total added pitch rate [rad/s] ; + dll inpvec 1 24 # Filtered Mean pitch for gain sch [rad] ; + dll inpvec 1 25 # Flag for mechnical brake [0=off/1=on] ; + dll inpvec 1 26 # Flag for emergency pitch stop [0=off/1=on] ; + dll inpvec 1 27 # LP filtered acceleration level [m/s^2] ; +; ; Output to generator model + ; dll outvec 2 1 # time ; + ; dll outvec 2 2 # Electrical torque reference [Nm] ; + ; dll outvec 2 3 # omega LSS ; +; Input from generator model + dll inpvec 2 1 # Mgen LSS [Nm]; + dll inpvec 2 2 # Pelec W ; + dll inpvec 2 3 # Mframe ; + dll inpvec 2 4 # Mgen HSS ; + dll inpvec 2 5 # Generator Pmech kW ; + dll inpvec 2 6 # Filtered Gen speed ; + dll inpvec 2 7 # Resulting Eff ; + dll inpvec 2 8 # Grid flag ; +; Output to mechanical brake + dll inpvec 3 1 # Brake torque [Nm] ; +; ; Input from mechanical brake + ; dll outvec 3 1 # Time [s] ; + ; dll outvec 3 2 # Generator LSS speed [rad/s] ; + ; dll outvec 3 3 # Deploy brake ; +; ; Output to pitch servo + ; dll outvec 4 1 # time; + ; dll outvec 4 2 # pitchref 1; + ; dll outvec 4 3 # pitchref 2; + ; dll outvec 4 4 # pitchref 3; + ; dll outvec 4 5 # Emerg. stop; +; Input from pitch servo + dll inpvec 4 1 # pitch 1; + dll inpvec 4 2 # pitch 2; + dll inpvec 4 3 # pitch 3; +; Check tower clearence + dll inpvec 5 1 # Bltip tow min d [m]; +; general constant 1.0 ; constant 1.0 - to mesure activity of flap in terms of displacement +; - Check on flap control: + ; ; - From flap controller: - + ; dll type2_dll cyclic_flap_controller inpvec 1 # Ref flap signal bl 1 [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 2 # Ref flap signal bl 2 [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 3 # Ref flap signal bl 3 [deg] ; + ; ; - Mbc values + ; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ; + ; ; - Check Gains - ; + ; dll type2_dll cyclic_flap_controller inpvec 10 # lead angle [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 11 # scaling on rat pow [-] ; + ; dll type2_dll cyclic_flap_controller inpvec 12 # actual kp [deg/kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 13 # actual ki [deg/kNms] ; + ; dll type2_dll cyclic_flap_controller inpvec 14 # actual kd [deg s/kNm] ; + ; ; - Actual deflections - + ; [dis_setbeta] aero beta 1 1 ; + ; [dis_setbeta] aero beta 2 1 ; + ; [dis_setbeta] aero beta 3 1 ; + ; ; - Mbc values + ; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ; +end output; +; +exit; diff --git a/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp10_noturb.htc b/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp10_noturb.htc new file mode 100644 index 00000000..c54c20d0 --- /dev/null +++ b/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp10_noturb.htc @@ -0,0 +1,850 @@ +;this version was at some point based on: Avatar_10MW_RWT version 1, 06-08-14, Anyd +begin simulation; + time_stop 40; + solvertype 1 ; (newmark) + on_no_convergence continue ; +; convergence_limits 1E3 1.0 1E-7 ; + logfile ./logfiles/dlc01_demos/dlc01_steady_wsp10_noturb.log ; + begin newmark; + deltat 0.02; + end newmark; +end simulation; +; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +begin new_htc_structure; +;-------------------------------------------------------------------------------------------------- +; beam_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp10_noturb/dlc01_steady_wsp10_noturb_beam.dat; +; body_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp10_noturb/dlc01_steady_wsp10_noturb_body.dat; +; struct_inertia_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp10_noturb/dlc01_steady_wsp10_noturb_struct.dat; +; body_eigenanalysis_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp10_noturb/dlc01_steady_wsp10_noturb_body_eigen.dat; +; structure_eigenanalysis_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp10_noturb/dlc01_steady_wsp10_noturb_strc_eigen.dat; +;--------------------------------------------------------------------------------------------------- + begin main_body; tower 123.6m + name tower ; + type timoschenko ; + nbodies 3 ; + node_distribution c2_def ; + damping_posdef 0 0 0 4.7E-03 4.7E-03 4.3E-04 ; tuned by Anyd 12/8/14 + begin timoschenko_input; + filename ./data/AVATAR_10MW_RWT_tower_st.dat; + set 1 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 20; + sec 1 0 0 0.000 0 ; x,y,z,twist + sec 2 0 0 -12.293 0 ; + sec 3 0 0 -12.294 0 ; + sec 4 0 0 -24.585 0 ; + sec 5 0 0 -24.586 0 ; + sec 6 0 0 -36.878 0 ; + sec 7 0 0 -36.879 0 ; + sec 8 0 0 -49.171 0 ; + sec 9 0 0 -49.172 0 ; + sec 10 0 0 -61.463 0 ; + sec 11 0 0 -61.464 0 ; + sec 12 0 0 -73.756 0 ; + sec 13 0 0 -73.757 0 ; + sec 14 0 0 -86.049 0 ; + sec 15 0 0 -86.050 0 ; + sec 16 0 0 -98.341 0 ; + sec 17 0 0 -98.342 0 ; + sec 18 0 0 -110.634 0 ; + sec 19 0 0 -110.635 0 ; + sec 20 0 0 -123.600 0 ; + end c2_def ; + end main_body; +; + begin main_body; + name towertop ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 7.50E-03 7.40E-03 7.00E-03 7.00E-03 7.00E-03 7.00E-03 ; "changed by Anyd + concentrated_mass 2.0 0.0 2.6870E+00 3.0061E-01 4.4604E+05 4.1060E+06 4.1060E+05 4.1060E+06 ; Nacel + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Towertop_st.dat ; + set 1 2 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 -2.75 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name shaft ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; +; damping_posdef 8.00E-3 8.00E-03 8.00E-02 4.65E-04 4.65E-04 2.38E-02 ; "tuned by Anyd 22/2/13 + damping_posdef 0.0 0.0 3.983E-03 4.65E-04 4.65E-04 3.983E-03 ; "tuned by Anyd 23/5/13 to 31.45 l + concentrated_mass 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.751E+06 ; generator equivalent slow shaft "re_tu + 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 + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Shaft_st.dat ; + set 1 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 5; + sec 1 0.0 0.0 0.0 0.0 ; Tower top x,y,z,twist + sec 2 0.0 0.0 1.5 0.0 ; + sec 3 0.0 0.0 3.0 0.0 ; + sec 4 0.0 0.0 4.4 0.0 ; Main bearing + sec 5 0.0 0.0 7.1 0.0 ; Rotor centre + end c2_def ; + end main_body; +; + begin main_body; + name shaft_nonrotate ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.00E+00 0.00E+00 0.00E+00 1.0E-01 1.0E-01 1.0E-01 ; + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Shaft_st.dat ; + set 1 3; dummy light and stiff structure + end timoschenko_input; + begin c2_def; + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; + sec 2 0.0 0.0 0.1 0.0 ; + end c2_def; + end main_body; +; + begin main_body; + name hub1 ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 2.00E-05 2.00E-05 2.00E-04 3.00E-06 3.00E-06 2.00E-05; + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Hub_st.dat ; + set 1 2 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 2.8 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name hub2 ; + copy_main_body hub1; + end main_body; +; + begin main_body; + name hub3 ; + copy_main_body hub1 ; + end main_body; +; + begin main_body; + name blade1 ; + type timoschenko ; + nbodies 10 ; + node_distribution c2_def; +; damping_posdef 0.0 0.0 0.0 2.5e-3 8.9e-4 3.2e-4 ; "Tuned by Anyd" +; damping_posdef 0.0 0.0 0.0 1.5e-3 2.45e-3 3.2e-4 ; " 3% damping tuned by Anyd 20/02/12 unable to +; damping_posdef 0.0 0.0 0.0 2.1e-3 1.9e-3 1.3e-4 ; " 3% damping tuned by Anyd 15/08/14 rev2 + damping_posdef 0.0 0.0 0.0 1.68e-3 2.25e-3 1.0e-4 ; " 3% damping tuned by Anyd 16/12/14 + begin timoschenko_input ; + filename ./data/AVATAR_10MW_RWT_Blade_st.dat ; + set 1 9 ; + end timoschenko_input; + begin c2_def; + nsec 27 ; + sec 1 -0.001 -0.001 0.000 -17.280 ; + sec 2 -0.005 -0.001 2.220 -17.280 ; + sec 3 -0.006 -0.000 4.440 -17.280 ; + sec 4 -0.086 0.022 6.660 -17.280 ; + sec 5 -0.231 0.069 11.039 -17.273 ; + sec 6 -0.447 0.121 15.418 -16.441 ; + sec 7 -0.690 0.161 19.797 -14.613 ; + sec 8 -0.812 0.162 24.176 -12.578 ; + sec 9 -0.891 0.158 28.555 -10.588 ; + sec 10 -0.865 0.124 32.934 -9.070 ; + sec 11 -0.833 0.112 37.313 -8.224 ; + sec 12 -0.797 0.102 41.692 -7.688 ; + sec 13 -0.760 0.093 46.071 -7.205 ; + sec 14 -0.721 0.083 50.450 -6.749 ; + sec 15 -0.683 0.075 54.829 -6.288 ; + sec 16 -0.644 0.066 59.208 -5.838 ; + sec 17 -0.606 0.058 63.587 -5.401 ; + sec 18 -0.567 0.050 67.966 -4.982 ; + sec 19 -0.529 0.044 72.345 -4.640 ; + sec 20 -0.492 0.037 76.724 -4.380 ; + sec 21 -0.456 0.032 81.103 -4.144 ; + sec 22 -0.422 0.026 85.482 -3.914 ; + sec 23 -0.392 0.021 89.861 -3.685 ; + sec 24 -0.346 0.014 94.240 -3.460 ; + sec 25 -0.307 0.010 96.190 -3.350 ; + sec 26 -0.249 0.005 98.130 -3.250 ; + sec 27 -0.089 0.006 100.080 -3.140 ; + end c2_def ; + end main_body; +; + begin main_body; + name blade2 ; + copy_main_body blade1; + end main_body; +; + begin main_body; + name blade3 ; + copy_main_body blade1 ; + end main_body; +;------------------------------------------------------------------------------------------------------------------------------- +; + begin orientation; + begin base; + body tower; + inipos 0.0 0.0 0.0 ; initial position of node 1 + body_eulerang 0.0 0.0 0.0; + end base; +; + begin relative; + body1 tower last; + body2 towertop 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + begin relative; + body1 towertop last; + body2 shaft 1; + body2_eulerang 90.0 0.0 0.0; + body2_eulerang 5.0 0.0 0.0; 5 deg tilt angle + body2_eulerang 0.0 0.0 0; + mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.5 ; mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.5; + end relative; +; + begin relative; dummy non rotating hub coordinates + body1 towertop last; + body2 shaft_nonrotate 1; + body2_eulerang 90.0 0.0 0.0; + body2_eulerang 5.0 0.0 0.0; same 5 deg tilt angle as real shaft + end relative; +; + begin relative; + body1 shaft last; + body2 hub1 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 180.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub2 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub3 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 -60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 hub1 last; + body2 blade1 1; + body2_eulerang 0.0 0.0 0; + end relative; +; + begin relative; + body1 hub2 last; + body2 blade2 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + begin relative; + body1 hub3 last; + body2 blade3 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + end orientation; +;------------------------------------------------------------------------------------------------------------------------------- +begin constraint; +; + begin fix0; fixed to ground in translation and rotation of node 1 + body tower; + end fix0; +; + begin fix1; + body1 tower last ; + body2 towertop 1; + end fix1; +; + begin bearing1; free bearing + name shaft_rot; + body1 towertop last; + body2 shaft 1; + 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 + end bearing1; +; +; begin bearing3; free bearing +; name shaft_rot; +; body1 towertop last; +; body2 shaft 1; +; 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 +; omegas 0.0 ; +; end bearing3; +; + begin fix1; + body1 tower last ; + body2 shaft_nonrotate 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub1 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub2 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub3 1; + end fix1; +; + begin bearing2; + name pitch1; + body1 hub1 last; + body2 blade1 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch2; + body1 hub2 last; + body2 blade2 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch3; + body1 hub3 last; + body2 blade3 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +end constraint; +; +end new_htc_structure; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +begin wind ; + density 1.225 ; + wsp 10 ; + tint 0.2096 ; + horizontal_input 1 ; + windfield_rotations 0 8.0 0.0 ; yaw, tilt (positive=upflow=wind coming from below), rotation + center_pos0 0.0 0.0 -127 ; hub heigth + shear_format 3 0 ; + turb_format 0 ; 0=none, 1=mann,2=flex + tower_shadow_method 3 ; 0=none, 1=potential flow, 2=jet + scale_time_start 20 ; + wind_ramp_factor 0.0 20 0.8 1.0 ; + ; iec_gust ; +; +; wind_ramp_abs 400.0 401.0 0.0 1.0 ; wsp. after the step: 5.0 +; wind_ramp_abs 501.0 502.0 0.0 1.0 ; wsp. after the step: 6.0 +; wind_ramp_abs 602.0 603.0 0.0 1.0 ; wsp. after the step: 7.0 +; wind_ramp_abs 703.0 704.0 0.0 1.0 ; wsp. after the step: 8.0 +; wind_ramp_abs 804.0 805.0 0.0 1.0 ; wsp. after the step: 9.0 +; wind_ramp_abs 905.0 906.0 0.0 1.0 ; wsp. after the step: 10.0 +; wind_ramp_abs 1006.0 1007.0 0.0 1.0 ; wsp. after the step: 11.0 +; wind_ramp_abs 1107.0 1108.0 0.0 1.0 ; wsp. after the step: 12.0 +; wind_ramp_abs 1208.0 1209.0 0.0 1.0 ; wsp. after the step: 13.0 +; wind_ramp_abs 1309.0 1310.0 0.0 1.0 ; wsp. after the step: 14.0 +; wind_ramp_abs 1410.0 1411.0 0.0 1.0 ; wsp. after the step: 15.0 +; wind_ramp_abs 1511.0 1512.0 0.0 1.0 ; wsp. after the step: 16.0 +; wind_ramp_abs 1612.0 1613.0 0.0 1.0 ; wsp. after the step: 17.0 +; wind_ramp_abs 1713.0 1714.0 0.0 1.0 ; wsp. after the step: 18.0 +; wind_ramp_abs 1814.0 1815.0 0.0 1.0 ; wsp. after the step: 19.0 +; wind_ramp_abs 1915.0 1916.0 0.0 1.0 ; wsp. after the step: 20.0 +; wind_ramp_abs 2016.0 2017.0 0.0 1.0 ; wsp. after the step: 21.0 +; wind_ramp_abs 2117.0 2118.0 0.0 1.0 ; wsp. after the step: 22.0 +; wind_ramp_abs 2218.0 2219.0 0.0 1.0 ; wsp. after the step: 23.0 +; wind_ramp_abs 2319.0 2320.0 0.0 1.0 ; wsp. after the step: 24.0 +; wind_ramp_abs 2420.0 2421.0 0.0 1.0 ; wsp. after the step: 25.0 + ; +; wind_ramp_abs 400.0 2200.0 0.0 21.0 ; wsp. after the step: 25.0 +; wind_ramp_abs 2400.0 4200.0 0.0 -21.0 ; wsp. after the step: 25.0 + ; + begin mann ; + create_turb_parameters 29.4 1.0 3.9 0 1.0 ; L, alfaeps, gamma, seed, highfrq compensation + filename_u ./turb/noneu.bin ; + filename_v ./turb/nonev.bin ; + filename_w ./turb/nonew.bin ; + box_dim_u 8192 0.048828125 ; + box_dim_v 32 7.5; + box_dim_w 32 7.5; + std_scaling 1.0 0.7 0.5 ; + end mann ; +; + begin tower_shadow_potential_2; + tower_mbdy_link tower; + nsec 2; + radius 0.0 4.15 ; + radius 123.6 2.75 ; (radius) + end tower_shadow_potential_2; +end wind; +; +begin aerodrag ; + begin aerodrag_element ; + mbdy_name tower; + aerodrag_sections uniform 10 ; + nsec 2 ; + sec 0.0 0.6 8.3 ; tower bottom + sec 123.6 0.6 5.5 ; tower top (diameter) + end aerodrag_element; +; + begin aerodrag_element ; Nacelle drag side + mbdy_name shaft; + aerodrag_sections uniform 2 ; + nsec 2 ; + sec 0.0 0.8 10.0 ; + sec 7.01 0.8 10.0 ; + end aerodrag_element; +end aerodrag; +; +begin aero ; + nblades 3; + hub_vec shaft -3 ; rotor rotation vector (normally shaft composant directed from pressure to sustion side) + link 1 mbdy_c2_def blade1; + link 2 mbdy_c2_def blade2; + link 3 mbdy_c2_def blade3; + ae_filename ./data/AVATAR_10MW_RWT_ae.dat ; + pc_filename ./data/AVATAR_10MW_RWT_pc_hama_v1.dat ; + induction_method 1 ; 0=none, 1=normal + aerocalc_method 1 ; 0=ingen aerodynamic, 1=med aerodynamic + aero_distribution ae_file 1 ; + ae_sets 1 1 1; + tiploss_method 1 ; 0=none, 1=prandtl + dynstall_method 2 ; 0=none, 1=stig øye method,2=mhh method +; +; ; --- Flaps --- ; + ; begin dynstall_ateflap ; + ; Ais 0.165 0.335 0.0 ; + ; Bis 0.0455 0.30 0.30 ; + ; flap 59.5925 85.5023 ./data/Flap_dturwt1_Thk24.ds ; Flap Sec: 1 + ; end dynstall_ateflap; +end aero ; +;------------------------------------------------------------------------------------------------- +begin dll; +; + begin type2_dll; + name risoe_controller ; + filename ./control/risoe_controller.dll ; + dll_subroutine_init init_regulation ; + dll_subroutine_update update_regulation ; + arraysizes_init 52 1 ; + arraysizes_update 12 100 ; + begin init ; + ; Overall parameters + constant 1 10000.0 ; Rated power [kW] + constant 2 0.628 ; Minimum rotor speed [rad/s] + constant 3 1.005 ; Rated rotor speed [rad/s] + constant 4 15.6E+06 ; Maximum allowable generator torque [Nm] + constant 5 100.0 ; Minimum pitch angle, theta_min [deg], + ; if |theta_min|>90, then a table of <wsp,theta_min> is read ; + ; from a file named 'wpdata.n', where n=int(theta_min) + constant 6 90.0 ; Maximum pitch angle [deg] + constant 7 10.0 ; Maximum pitch velocity operation [deg/s] + constant 8 0.4 ; Frequency of generator speed filter [Hz] + constant 9 0.7 ; Damping ratio of speed filter [-] + constant 10 1.64 ; Frequency of free-free DT torsion mode [Hz], if zero no notch filter used + ; Partial load control parameters + constant 11 0.9648030e+07 ; Optimal Cp tracking K factor [Nm/(rad/s)^2], ; + ; Qg=K*Omega^2, K=eta*0.5*rho*A*Cp_opt*R^3/lambda_opt^3 + constant 12 1.047610E+08 ; Proportional gain of torque controller [Nm/(rad/s)] + constant 13 0.153367E+08 ; Integral gain of torque controller [Nm/rad] + constant 14 0.0 ; Differential gain of torque controller [Nm/(rad/s^2)] +; Full load control parameters + constant 15 1 ; Generator control switch [1=constant power, 2=constant torque] + constant 16 0.762489 ; Proportional gain of pitch controller [rad/(rad/s)] + constant 17 0.224086 ; Integral gain of pitch controller [rad/rad] + constant 18 0.0 ; Differential gain of pitch controller [rad/(rad/s^2)] + constant 19 0.4e-9 ; Proportional power error gain [rad/W] + constant 20 0.4e-9 ; Integral power error gain [rad/(Ws)] + constant 21 10.6824 ; Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg] + constant 22 601.25499 ; Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] & + ; (if zero, KK1 = pitch angle at double gain) + constant 23 1.3 ; Relative speed for double nonlinear gain [-] +; Cut-in simulation parameters + constant 24 -1 ; Cut-in time [s] + constant 25 1.0 ; Time delay for soft start of torque [1/1P] +; Cut-out simulation parameters + constant 26 -1 ; Cut-out time [s] + constant 27 5.0 ; Time constant for linear torque cut-out [s] + constant 28 1 ; Stop type [1=normal, 2=emergency] + constant 29 1.0 ; Time delay for pitch stop after shut-down signal [s] + constant 30 3 ; Maximum pitch velocity during initial period of stop [deg/s] + constant 31 3.0 ; Time period of initial pitch stop phase [s] (maintains pitch speed specified in constant 30) + constant 32 4 ; Maximum pitch velocity during final phase of stop [deg/s] +; Expert parameters (keep default values unless otherwise given) + constant 33 2.0 ; Lower angle above lowest minimum pitch angle for switch [deg] + constant 34 2.0 ; Upper angle above lowest minimum pitch angle for switch [deg], if equal then hard switch + constant 35 95.0 ; Ratio between filtered speed and reference speed for fully open torque limits [%] + constant 36 2.0 ; Time constant of 1st order filter on wind speed used for minimum pitch [1/1P] + constant 37 1.0 ; Time constant of 1st order filter on pitch angle used for gain scheduling [1/1P] +; Drivetrain damper + constant 38 0.0 ; Proportional gain of active DT damper [Nm/(rad/s)], requires frequency in input 10 +; Over speed + constant 39 25.0 ; Overspeed percentage before initiating turbine controller alarm (shut-down) [%] +; Additional non-linear pitch control term (not used when all zero) + constant 40 0.0 ; Err0 [rad/s] + constant 41 0.0 ; ErrDot0 [rad/s^2] + constant 42 0.0 ; PitNonLin1 [rad/s] +; Storm control command + constant 43 28.0 ; Wind speed 'Vstorm' above which derating of rotor speed is used [m/s] + constant 44 28.0 ; Cut-out wind speed (only used for derating of rotor speed in storm) [m/s] +; Safety system parameters + constant 45 25.0 ; Overspeed percentage before initiating safety system alarm (shut-down) [%] + constant 46 1.5 ; Max low-pass filtered tower top acceleration level [m/s^2] - max in DLC 1.3=1.1 m/s^2 +; Turbine parameter + constant 47 205.8 ; Nominal rotor diameter [m] +; Parameters for rotor inertia reduction in variable speed region + constant 48 0.0 ; Proportional gain on rotor acceleration in variable speed region [Nm/(rad/s^2)] (not used when zero) +; Parameters for alternative partial load controller with PI regulated TSR tracking + constant 49 0.0 ; Optimal tip speed ratio [-] (only used when K=constant 11 = 0 otherwise Qg=K*Omega^2 is used) +; Parameters for adding aerodynamic drivetrain damping on gain scheduling + constant 50 0.0 ; Proportional gain of aerodynamic DT damping [Nm/(rad/s)] + constant 51 0.0 ; Coefficient of linear term in aerodynamic DT damping scheduling, KK1 [deg] + constant 52 0.0 ; Coefficient of quadratic term in aerodynamic DT damping scheduling, KK2 [deg^2] + end init ; +; + begin output ; + general time ; [s] + constraint bearing1 shaft_rot 1 only 2 ; Drivetrain speed [rad/s] + constraint bearing2 pitch1 1 only 1; [rad] + constraint bearing2 pitch2 1 only 1; [rad] + constraint bearing2 pitch3 1 only 1; [rad] + wind free_wind 1 0.0 0.0 -127 ; Global coordinates at hub height + dll inpvec 2 2 ; Elec. power from generator servo .dll + dll inpvec 2 8 ; Grid state flag from generator servo .dll + mbdy state acc tower 10 1.0 global only 1 ; Tower top x-acceleration [m/s^2] + mbdy state acc tower 10 1.0 global only 2 ; Tower top y-acceleration [m/s^2] + end output; + end type2_dll; +; + begin type2_dll; + name generator_servo ; + filename ./control/generator_servo.dll ; + dll_subroutine_init init_generator_servo ; + dll_subroutine_update update_generator_servo ; + arraysizes_init 7 1 ; + arraysizes_update 4 8 ; + begin init ; + constant 1 20.0 ; Frequency of 2nd order servo model of generator-converter system [Hz] + constant 2 0.9 ; Damping ratio 2nd order servo model of generator-converter system [-] + constant 3 15.6E+06 ; Maximum allowable LSS torque (pull-out torque) [Nm] + constant 4 0.94 ; Generator efficiency [-] + constant 5 1.0 ; Gearratio [-] + constant 6 0.0 ; Time for half value in softstart of torque [s] + constant 7 5000 ; Time for grid loss [s] + end init ; +; + begin output; + general time ; Time [s] + dll inpvec 1 1 ; Electrical torque reference [Nm] + constraint bearing1 shaft_rot 1 only 2; Generator LSS speed [rad/s] + mbdy momentvec shaft 1 1 shaft only 3 ; Shaft moment [kNm] (Qshaft) + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name mech_brake ; + filename ./control/mech_brake.dll ; + dll_subroutine_init init_mech_brake ; + dll_subroutine_update update_mech_brake ; + arraysizes_init 7 1 ; + arraysizes_update 4 6 ; + begin init ; + constant 1 5225.35 ; Fully deployed maximum brake torque [Nm] (0.6*max torque) + constant 2 100.0 ; Parameter alpha used in Q = tanh(omega*alpha), typically 1e2/Omega_nom + constant 3 0.5 ; Delay time for before brake starts to deploy [s] + constant 4 0.74 ; Time for brake to become fully deployed [s] + end init ; +; + begin output; + general time ; Time [s] + constraint bearing1 shaft_rot 1 only 2 ; Generator LSS speed [rad/s] + dll inpvec 1 25 ; Command to deploy mechanical disc brake [0,1] + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name servo_with_limits ; + filename ./control/servo_with_limits.dll ; + dll_subroutine_init init_servo_with_limits ; + dll_subroutine_update update_servo_with_limits ; + arraysizes_init 10 1 ; + arraysizes_update 5 9 ; + begin init ; + constant 1 3 ; Number of blades [-] + constant 2 1.0 ; Frequency of 2nd order servo model of pitch system [Hz] + constant 3 0.7 ; Damping ratio 2nd order servo model of pitch system [-] + constant 4 10.0 ; Max. pitch speed [deg/s] + constant 5 15.0 ; Max. pitch acceleration [deg/s^2] + constant 6 -5.0 ; Min. pitch angle [deg] + constant 7 90.0 ; Max. pitch angle [deg] + constant 8 5000 ; Time for pitch runaway [s] + constant 9 -1 ; Time for stuck blade 1 [s] + constant 10 0 ; Angle of stuck blade 1 [deg] + end init ; + begin output; + general time ; Time [s] + dll inpvec 1 2 ; Pitch1 demand angle [rad] + dll inpvec 1 3 ; Pitch2 demand angle [rad] + dll inpvec 1 4 ; Pitch3 demand angle [rad] + dll inpvec 1 26 ; Flag for emergency pitch stop [0=off/1=on] + end output; +; + begin actions; + constraint bearing2 angle pitch1 ; Angle pitch1 bearing [rad] + constraint bearing2 angle pitch2 ; Angle pitch2 bearing [rad] + constraint bearing2 angle pitch3 ; Angle pitch3 bearing [rad] + end actions; + end type2_dll; +; +; --- DLL for tower-blade tip distance -- ; + begin type2_dll; + name disttowtip ; + filename ./control/towclearsens.dll ; + dll_subroutine_init initialize ; + dll_subroutine_update update ; + arraysizes_init 1 1 ; + arraysizes_update 12 4 ; + begin init ; + constant 1 3.87 ; Tower radius close to downward blade tip [m] + end init ; + begin output; + mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m + mbdy state pos blade1 26 1.0 global ; [4,5,6] + mbdy state pos blade2 26 1.0 global ; [7,8,9] + mbdy state pos blade3 26 1.0 global ; [10,11,12] + end output; + end type2_dll; +end dll; +; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +; +begin output; + filename ./res/dlc01_demos/dlc01_steady_wsp10_noturb ; + time 20 40 ; + data_format hawc_binary; + buffer 1 ; +; + general time; + constraint bearing1 shaft_rot 2; angle and angle velocity + constraint bearing2 pitch1 5; angle and angle velocity + constraint bearing2 pitch2 5; angle and angle velocity + constraint bearing2 pitch3 5; angle and angle velocity + aero omega ; + aero torque; + aero power; + aero thrust; + wind free_wind 1 0.0 0.0 -127; local wind at fixed position: coo (1=global,2=non-rotation rotor coo.), pos x, pos y, pos z + ; non rotating coordinates shaft tip: equivalent to stationary hub in BLADED + mbdy momentvec shaft 3 2 shaft_nonrotate # non rotating shaft tip ; + mbdy forcevec shaft 3 2 shaft_nonrotate # non rotating shaft tip ; + ; Moments: + mbdy momentvec tower 1 1 tower # tower base ; + mbdy momentvec tower 19 2 tower # tower yaw bearing ; + mbdy momentvec shaft 4 1 shaft # main bearing ; + mbdy momentvec blade1 3 2 blade1 # blade 1 root ; + mbdy momentvec blade2 3 2 blade2 # blade 2 root ; + mbdy momentvec blade3 3 2 blade3 # blade 3 root ; + ; blade 2,3 root section loads + mbdy momentvec blade2 3 2 local # blade 2 section root; + mbdy momentvec blade3 3 2 local # blade 3 section root; + ; blade 1 sectional loads in local coordinates + mbdy momentvec blade1 2 2 local # blade 1 section; + mbdy momentvec blade1 3 2 local # blade 1 section root; + mbdy momentvec blade1 4 2 local # blade 1 section; + mbdy momentvec blade1 5 2 local # blade 1 section; + mbdy momentvec blade1 6 2 local # blade 1 section; + mbdy momentvec blade1 7 2 local # blade 1 section; + mbdy momentvec blade1 8 2 local # blade 1 section; + mbdy momentvec blade1 9 2 local # blade 1 section; + mbdy momentvec blade1 10 2 local # blade 1 section; + mbdy momentvec blade1 11 2 local # blade 1 section; + mbdy momentvec blade1 12 2 local # blade 1 section; + mbdy momentvec blade1 13 2 local # blade 1 section; + mbdy momentvec blade1 14 2 local # blade 1 section; + mbdy momentvec blade1 15 2 local # blade 1 section; + mbdy momentvec blade1 16 2 local # blade 1 section; + mbdy momentvec blade1 17 2 local # blade 1 section; + mbdy momentvec blade1 18 2 local # blade 1 section; + mbdy momentvec blade1 19 2 local # blade 1 section; + mbdy momentvec blade1 20 2 local # blade 1 section; + mbdy momentvec blade1 21 2 local # blade 1 section; + mbdy momentvec blade1 22 2 local # blade 1 section; + mbdy momentvec blade1 23 2 local # blade 1 section; + mbdy momentvec blade1 24 2 local # blade 1 section; + mbdy momentvec blade1 25 2 local # blade 1 section; + mbdy momentvec blade1 26 2 local # blade 1 section; + ; blade root out and in of plane forces + mbdy momentvec blade1 3 2 hub1 # blade 1 root ; + mbdy momentvec blade2 3 2 hub2 # blade 2 root ; + mbdy momentvec blade3 3 2 hub3 # blade 3 root ; +; mbdy momentvec blade1 14 1 local # blade 1 50% local e coo ; +; mbdy momentvec blade2 14 1 local # blade 2 50% local e coo ; +; mbdy momentvec blade3 14 1 local # blade 3 50% local e coo ; + ; Displacements and accellerations + mbdy state pos tower 19 1.0 global only 1 # Tower top FA displ; + mbdy state pos tower 19 1.0 global only 2 # Tower top SS displ; + mbdy state acc tower 19 1.0 global only 1 # Tower top FA acc; + mbdy state acc tower 19 1.0 global only 2 # Tower top SS acc; +; + mbdy state pos blade1 26 1.0 global # gl blade 1 tip pos ; + mbdy state pos blade2 26 1.0 global # gl blade 2 tip pos ; + mbdy state pos blade3 26 1.0 global # gl blade 3 tip pos ; + mbdy state pos blade1 26 1.0 blade1 # blade 1 tip pos ; + mbdy state pos blade2 26 1.0 blade2 # blade 2 tip pos ; + mbdy state pos blade3 26 1.0 blade3 # blade 3 tip pos ; +; + mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m +; + ; elastic twist (torsional deformation) along the blade + aero tors_ang 1 45.56; + aero tors_ang 1 59.19; + aero tors_ang 1 70.87; + aero tors_ang 1 80.61; + aero tors_ang 1 84.50; + aero tors_ang 1 88.40; + aero tors_ang 1 92.29; + aero tors_ang 1 96.19; + aero tors_ang 1 98.13; + aero tors_ang 1 100.08; tip +; +; - Monitor Aerodynamics - ; + aero windspeed 3 1 1 72.5; + aero alfa 1 72.5; + aero alfa 2 72.5; + aero alfa 3 72.5; + aero cl 1 72.5; + aero cl 2 72.5; + aero cl 3 72.5; + aero cd 1 72.5; + aero cd 2 72.5; + aero cd 3 72.5; +; - Main Controller - +; Output to controller + ; dll outvec 1 1 # time; + ; dll outvec 1 2 # slow speed shaft rad/s; + ; dll outvec 1 3 # pitch angle 1; + ; dll outvec 1 4 # pitch angle 2; + ; dll outvec 1 5 # pitch angle 3; + ; dll outvec 1 6 # WSP_x_global; + ; dll outvec 1 7 # WSP_y_global; + ; dll outvec 1 8 # WSP_z_global; + ; dll outvec 1 9 # Elec. pwr ; + ; dll outvec 1 10 # Grid flag ; +; Input from controller + dll inpvec 1 1 # Generator torque reference [Nm] ; + dll inpvec 1 2 # Pitch angle reference of blade 1 [rad] ; + dll inpvec 1 3 # Pitch angle reference of blade 2 [rad] ; + dll inpvec 1 4 # Pitch angle reference of blade 3 [rad] ; + ; dll inpvec 1 5 # Power reference [W] ; + ; dll inpvec 1 6 # Filtered wind speed [m/s] ; + ; dll inpvec 1 7 # Filtered rotor speed [rad/s]; + ; dll inpvec 1 8 # Filtered rotor speed error for torque [rad/s]; + ; dll inpvec 1 9 # Bandpass filtered rotor speed [rad/s]; + ; dll inpvec 1 10 # Proportional term of torque contr. [Nm] ; + ; dll inpvec 1 11 # Integral term of torque controller [Nm] ; + ; dll inpvec 1 12 # Minimum limit of torque [Nm] ; + ; dll inpvec 1 13 # Maximum limit of torque [Nm] ; + dll inpvec 1 14 # Torque limit switch based on pitch [-] ; + ; dll inpvec 1 15 # Filtered rotor speed error for pitch [rad/s]; + ; dll inpvec 1 16 # Power error for pitch [W] ; + ; dll inpvec 1 17 # Proportional term of pitch controller [rad] ; + ; dll inpvec 1 18 # Integral term of pitch controller [rad] ; + ; dll inpvec 1 19 # Minimum limit of pitch [rad] ; + ; dll inpvec 1 20 # Maximum limit of pitch [rad] ; + dll inpvec 1 21 # Torque reference from DT dammper [Nm] ; + dll inpvec 1 22 # Status signal [-] ; + ; dll inpvec 1 23 # Total added pitch rate [rad/s] ; + dll inpvec 1 24 # Filtered Mean pitch for gain sch [rad] ; + dll inpvec 1 25 # Flag for mechnical brake [0=off/1=on] ; + dll inpvec 1 26 # Flag for emergency pitch stop [0=off/1=on] ; + dll inpvec 1 27 # LP filtered acceleration level [m/s^2] ; +; ; Output to generator model + ; dll outvec 2 1 # time ; + ; dll outvec 2 2 # Electrical torque reference [Nm] ; + ; dll outvec 2 3 # omega LSS ; +; Input from generator model + dll inpvec 2 1 # Mgen LSS [Nm]; + dll inpvec 2 2 # Pelec W ; + dll inpvec 2 3 # Mframe ; + dll inpvec 2 4 # Mgen HSS ; + dll inpvec 2 5 # Generator Pmech kW ; + dll inpvec 2 6 # Filtered Gen speed ; + dll inpvec 2 7 # Resulting Eff ; + dll inpvec 2 8 # Grid flag ; +; Output to mechanical brake + dll inpvec 3 1 # Brake torque [Nm] ; +; ; Input from mechanical brake + ; dll outvec 3 1 # Time [s] ; + ; dll outvec 3 2 # Generator LSS speed [rad/s] ; + ; dll outvec 3 3 # Deploy brake ; +; ; Output to pitch servo + ; dll outvec 4 1 # time; + ; dll outvec 4 2 # pitchref 1; + ; dll outvec 4 3 # pitchref 2; + ; dll outvec 4 4 # pitchref 3; + ; dll outvec 4 5 # Emerg. stop; +; Input from pitch servo + dll inpvec 4 1 # pitch 1; + dll inpvec 4 2 # pitch 2; + dll inpvec 4 3 # pitch 3; +; Check tower clearence + dll inpvec 5 1 # Bltip tow min d [m]; +; general constant 1.0 ; constant 1.0 - to mesure activity of flap in terms of displacement +; - Check on flap control: + ; ; - From flap controller: - + ; dll type2_dll cyclic_flap_controller inpvec 1 # Ref flap signal bl 1 [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 2 # Ref flap signal bl 2 [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 3 # Ref flap signal bl 3 [deg] ; + ; ; - Mbc values + ; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ; + ; ; - Check Gains - ; + ; dll type2_dll cyclic_flap_controller inpvec 10 # lead angle [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 11 # scaling on rat pow [-] ; + ; dll type2_dll cyclic_flap_controller inpvec 12 # actual kp [deg/kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 13 # actual ki [deg/kNms] ; + ; dll type2_dll cyclic_flap_controller inpvec 14 # actual kd [deg s/kNm] ; + ; ; - Actual deflections - + ; aero beta 1 1 ; + ; aero beta 2 1 ; + ; aero beta 3 1 ; + ; ; - Mbc values + ; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ; +end output; +; +exit; diff --git a/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp8_noturb.htc b/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp8_noturb.htc new file mode 100644 index 00000000..94abe5e1 --- /dev/null +++ b/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp8_noturb.htc @@ -0,0 +1,850 @@ +;this version was at some point based on: Avatar_10MW_RWT version 1, 06-08-14, Anyd +begin simulation; + time_stop 40; + solvertype 1 ; (newmark) + on_no_convergence continue ; +; convergence_limits 1E3 1.0 1E-7 ; + logfile ./logfiles/dlc01_demos/dlc01_steady_wsp8_noturb.log ; + begin newmark; + deltat 0.02; + end newmark; +end simulation; +; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +begin new_htc_structure; +;-------------------------------------------------------------------------------------------------- +; beam_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp8_noturb/dlc01_steady_wsp8_noturb_beam.dat; +; body_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp8_noturb/dlc01_steady_wsp8_noturb_body.dat; +; struct_inertia_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp8_noturb/dlc01_steady_wsp8_noturb_struct.dat; +; body_eigenanalysis_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp8_noturb/dlc01_steady_wsp8_noturb_body_eigen.dat; +; structure_eigenanalysis_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp8_noturb/dlc01_steady_wsp8_noturb_strc_eigen.dat; +;--------------------------------------------------------------------------------------------------- + begin main_body; tower 123.6m + name tower ; + type timoschenko ; + nbodies 3 ; + node_distribution c2_def ; + damping_posdef 0 0 0 4.7E-03 4.7E-03 4.3E-04 ; tuned by Anyd 12/8/14 + begin timoschenko_input; + filename ./data/AVATAR_10MW_RWT_tower_st.dat; + set 1 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 20; + sec 1 0 0 0.000 0 ; x,y,z,twist + sec 2 0 0 -12.293 0 ; + sec 3 0 0 -12.294 0 ; + sec 4 0 0 -24.585 0 ; + sec 5 0 0 -24.586 0 ; + sec 6 0 0 -36.878 0 ; + sec 7 0 0 -36.879 0 ; + sec 8 0 0 -49.171 0 ; + sec 9 0 0 -49.172 0 ; + sec 10 0 0 -61.463 0 ; + sec 11 0 0 -61.464 0 ; + sec 12 0 0 -73.756 0 ; + sec 13 0 0 -73.757 0 ; + sec 14 0 0 -86.049 0 ; + sec 15 0 0 -86.050 0 ; + sec 16 0 0 -98.341 0 ; + sec 17 0 0 -98.342 0 ; + sec 18 0 0 -110.634 0 ; + sec 19 0 0 -110.635 0 ; + sec 20 0 0 -123.600 0 ; + end c2_def ; + end main_body; +; + begin main_body; + name towertop ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 7.50E-03 7.40E-03 7.00E-03 7.00E-03 7.00E-03 7.00E-03 ; "changed by Anyd + concentrated_mass 2.0 0.0 2.6870E+00 3.0061E-01 4.4604E+05 4.1060E+06 4.1060E+05 4.1060E+06 ; Nacel + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Towertop_st.dat ; + set 1 2 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 -2.75 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name shaft ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; +; damping_posdef 8.00E-3 8.00E-03 8.00E-02 4.65E-04 4.65E-04 2.38E-02 ; "tuned by Anyd 22/2/13 + damping_posdef 0.0 0.0 3.983E-03 4.65E-04 4.65E-04 3.983E-03 ; "tuned by Anyd 23/5/13 to 31.45 l + concentrated_mass 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.751E+06 ; generator equivalent slow shaft "re_tu + 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 + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Shaft_st.dat ; + set 1 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 5; + sec 1 0.0 0.0 0.0 0.0 ; Tower top x,y,z,twist + sec 2 0.0 0.0 1.5 0.0 ; + sec 3 0.0 0.0 3.0 0.0 ; + sec 4 0.0 0.0 4.4 0.0 ; Main bearing + sec 5 0.0 0.0 7.1 0.0 ; Rotor centre + end c2_def ; + end main_body; +; + begin main_body; + name shaft_nonrotate ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.00E+00 0.00E+00 0.00E+00 1.0E-01 1.0E-01 1.0E-01 ; + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Shaft_st.dat ; + set 1 3; dummy light and stiff structure + end timoschenko_input; + begin c2_def; + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; + sec 2 0.0 0.0 0.1 0.0 ; + end c2_def; + end main_body; +; + begin main_body; + name hub1 ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 2.00E-05 2.00E-05 2.00E-04 3.00E-06 3.00E-06 2.00E-05; + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Hub_st.dat ; + set 1 2 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 2.8 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name hub2 ; + copy_main_body hub1; + end main_body; +; + begin main_body; + name hub3 ; + copy_main_body hub1 ; + end main_body; +; + begin main_body; + name blade1 ; + type timoschenko ; + nbodies 10 ; + node_distribution c2_def; +; damping_posdef 0.0 0.0 0.0 2.5e-3 8.9e-4 3.2e-4 ; "Tuned by Anyd" +; damping_posdef 0.0 0.0 0.0 1.5e-3 2.45e-3 3.2e-4 ; " 3% damping tuned by Anyd 20/02/12 unable to +; damping_posdef 0.0 0.0 0.0 2.1e-3 1.9e-3 1.3e-4 ; " 3% damping tuned by Anyd 15/08/14 rev2 + damping_posdef 0.0 0.0 0.0 1.68e-3 2.25e-3 1.0e-4 ; " 3% damping tuned by Anyd 16/12/14 + begin timoschenko_input ; + filename ./data/AVATAR_10MW_RWT_Blade_st.dat ; + set 1 9 ; + end timoschenko_input; + begin c2_def; + nsec 27 ; + sec 1 -0.001 -0.001 0.000 -17.280 ; + sec 2 -0.005 -0.001 2.220 -17.280 ; + sec 3 -0.006 -0.000 4.440 -17.280 ; + sec 4 -0.086 0.022 6.660 -17.280 ; + sec 5 -0.231 0.069 11.039 -17.273 ; + sec 6 -0.447 0.121 15.418 -16.441 ; + sec 7 -0.690 0.161 19.797 -14.613 ; + sec 8 -0.812 0.162 24.176 -12.578 ; + sec 9 -0.891 0.158 28.555 -10.588 ; + sec 10 -0.865 0.124 32.934 -9.070 ; + sec 11 -0.833 0.112 37.313 -8.224 ; + sec 12 -0.797 0.102 41.692 -7.688 ; + sec 13 -0.760 0.093 46.071 -7.205 ; + sec 14 -0.721 0.083 50.450 -6.749 ; + sec 15 -0.683 0.075 54.829 -6.288 ; + sec 16 -0.644 0.066 59.208 -5.838 ; + sec 17 -0.606 0.058 63.587 -5.401 ; + sec 18 -0.567 0.050 67.966 -4.982 ; + sec 19 -0.529 0.044 72.345 -4.640 ; + sec 20 -0.492 0.037 76.724 -4.380 ; + sec 21 -0.456 0.032 81.103 -4.144 ; + sec 22 -0.422 0.026 85.482 -3.914 ; + sec 23 -0.392 0.021 89.861 -3.685 ; + sec 24 -0.346 0.014 94.240 -3.460 ; + sec 25 -0.307 0.010 96.190 -3.350 ; + sec 26 -0.249 0.005 98.130 -3.250 ; + sec 27 -0.089 0.006 100.080 -3.140 ; + end c2_def ; + end main_body; +; + begin main_body; + name blade2 ; + copy_main_body blade1; + end main_body; +; + begin main_body; + name blade3 ; + copy_main_body blade1 ; + end main_body; +;------------------------------------------------------------------------------------------------------------------------------- +; + begin orientation; + begin base; + body tower; + inipos 0.0 0.0 0.0 ; initial position of node 1 + body_eulerang 0.0 0.0 0.0; + end base; +; + begin relative; + body1 tower last; + body2 towertop 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + begin relative; + body1 towertop last; + body2 shaft 1; + body2_eulerang 90.0 0.0 0.0; + body2_eulerang 5.0 0.0 0.0; 5 deg tilt angle + body2_eulerang 0.0 0.0 0; + mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.5 ; mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.5; + end relative; +; + begin relative; dummy non rotating hub coordinates + body1 towertop last; + body2 shaft_nonrotate 1; + body2_eulerang 90.0 0.0 0.0; + body2_eulerang 5.0 0.0 0.0; same 5 deg tilt angle as real shaft + end relative; +; + begin relative; + body1 shaft last; + body2 hub1 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 180.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub2 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub3 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 -60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 hub1 last; + body2 blade1 1; + body2_eulerang 0.0 0.0 0; + end relative; +; + begin relative; + body1 hub2 last; + body2 blade2 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + begin relative; + body1 hub3 last; + body2 blade3 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + end orientation; +;------------------------------------------------------------------------------------------------------------------------------- +begin constraint; +; + begin fix0; fixed to ground in translation and rotation of node 1 + body tower; + end fix0; +; + begin fix1; + body1 tower last ; + body2 towertop 1; + end fix1; +; + begin bearing1; free bearing + name shaft_rot; + body1 towertop last; + body2 shaft 1; + 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 + end bearing1; +; +; begin bearing3; free bearing +; name shaft_rot; +; body1 towertop last; +; body2 shaft 1; +; 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 +; omegas 0.0 ; +; end bearing3; +; + begin fix1; + body1 tower last ; + body2 shaft_nonrotate 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub1 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub2 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub3 1; + end fix1; +; + begin bearing2; + name pitch1; + body1 hub1 last; + body2 blade1 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch2; + body1 hub2 last; + body2 blade2 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch3; + body1 hub3 last; + body2 blade3 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +end constraint; +; +end new_htc_structure; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +begin wind ; + density 1.225 ; + wsp 8 ; + tint 0.232 ; + horizontal_input 1 ; + windfield_rotations 0 8.0 0.0 ; yaw, tilt (positive=upflow=wind coming from below), rotation + center_pos0 0.0 0.0 -127 ; hub heigth + shear_format 3 0 ; + turb_format 0 ; 0=none, 1=mann,2=flex + tower_shadow_method 3 ; 0=none, 1=potential flow, 2=jet + scale_time_start 20 ; + wind_ramp_factor 0.0 20 1.0 1.0 ; + ; iec_gust ; +; +; wind_ramp_abs 400.0 401.0 0.0 1.0 ; wsp. after the step: 5.0 +; wind_ramp_abs 501.0 502.0 0.0 1.0 ; wsp. after the step: 6.0 +; wind_ramp_abs 602.0 603.0 0.0 1.0 ; wsp. after the step: 7.0 +; wind_ramp_abs 703.0 704.0 0.0 1.0 ; wsp. after the step: 8.0 +; wind_ramp_abs 804.0 805.0 0.0 1.0 ; wsp. after the step: 9.0 +; wind_ramp_abs 905.0 906.0 0.0 1.0 ; wsp. after the step: 10.0 +; wind_ramp_abs 1006.0 1007.0 0.0 1.0 ; wsp. after the step: 11.0 +; wind_ramp_abs 1107.0 1108.0 0.0 1.0 ; wsp. after the step: 12.0 +; wind_ramp_abs 1208.0 1209.0 0.0 1.0 ; wsp. after the step: 13.0 +; wind_ramp_abs 1309.0 1310.0 0.0 1.0 ; wsp. after the step: 14.0 +; wind_ramp_abs 1410.0 1411.0 0.0 1.0 ; wsp. after the step: 15.0 +; wind_ramp_abs 1511.0 1512.0 0.0 1.0 ; wsp. after the step: 16.0 +; wind_ramp_abs 1612.0 1613.0 0.0 1.0 ; wsp. after the step: 17.0 +; wind_ramp_abs 1713.0 1714.0 0.0 1.0 ; wsp. after the step: 18.0 +; wind_ramp_abs 1814.0 1815.0 0.0 1.0 ; wsp. after the step: 19.0 +; wind_ramp_abs 1915.0 1916.0 0.0 1.0 ; wsp. after the step: 20.0 +; wind_ramp_abs 2016.0 2017.0 0.0 1.0 ; wsp. after the step: 21.0 +; wind_ramp_abs 2117.0 2118.0 0.0 1.0 ; wsp. after the step: 22.0 +; wind_ramp_abs 2218.0 2219.0 0.0 1.0 ; wsp. after the step: 23.0 +; wind_ramp_abs 2319.0 2320.0 0.0 1.0 ; wsp. after the step: 24.0 +; wind_ramp_abs 2420.0 2421.0 0.0 1.0 ; wsp. after the step: 25.0 + ; +; wind_ramp_abs 400.0 2200.0 0.0 21.0 ; wsp. after the step: 25.0 +; wind_ramp_abs 2400.0 4200.0 0.0 -21.0 ; wsp. after the step: 25.0 + ; + begin mann ; + create_turb_parameters 29.4 1.0 3.9 0 1.0 ; L, alfaeps, gamma, seed, highfrq compensation + filename_u ./turb/noneu.bin ; + filename_v ./turb/nonev.bin ; + filename_w ./turb/nonew.bin ; + box_dim_u 8192 0.0390625 ; + box_dim_v 32 7.5; + box_dim_w 32 7.5; + std_scaling 1.0 0.7 0.5 ; + end mann ; +; + begin tower_shadow_potential_2; + tower_mbdy_link tower; + nsec 2; + radius 0.0 4.15 ; + radius 123.6 2.75 ; (radius) + end tower_shadow_potential_2; +end wind; +; +begin aerodrag ; + begin aerodrag_element ; + mbdy_name tower; + aerodrag_sections uniform 10 ; + nsec 2 ; + sec 0.0 0.6 8.3 ; tower bottom + sec 123.6 0.6 5.5 ; tower top (diameter) + end aerodrag_element; +; + begin aerodrag_element ; Nacelle drag side + mbdy_name shaft; + aerodrag_sections uniform 2 ; + nsec 2 ; + sec 0.0 0.8 10.0 ; + sec 7.01 0.8 10.0 ; + end aerodrag_element; +end aerodrag; +; +begin aero ; + nblades 3; + hub_vec shaft -3 ; rotor rotation vector (normally shaft composant directed from pressure to sustion side) + link 1 mbdy_c2_def blade1; + link 2 mbdy_c2_def blade2; + link 3 mbdy_c2_def blade3; + ae_filename ./data/AVATAR_10MW_RWT_ae.dat ; + pc_filename ./data/AVATAR_10MW_RWT_pc_hama_v1.dat ; + induction_method 1 ; 0=none, 1=normal + aerocalc_method 1 ; 0=ingen aerodynamic, 1=med aerodynamic + aero_distribution ae_file 1 ; + ae_sets 1 1 1; + tiploss_method 1 ; 0=none, 1=prandtl + dynstall_method 2 ; 0=none, 1=stig øye method,2=mhh method +; +; ; --- Flaps --- ; + ; begin dynstall_ateflap ; + ; Ais 0.165 0.335 0.0 ; + ; Bis 0.0455 0.30 0.30 ; + ; flap 59.5925 85.5023 ./data/Flap_dturwt1_Thk24.ds ; Flap Sec: 1 + ; end dynstall_ateflap; +end aero ; +;------------------------------------------------------------------------------------------------- +begin dll; +; + begin type2_dll; + name risoe_controller ; + filename ./control/risoe_controller.dll ; + dll_subroutine_init init_regulation ; + dll_subroutine_update update_regulation ; + arraysizes_init 52 1 ; + arraysizes_update 12 100 ; + begin init ; + ; Overall parameters + constant 1 10000.0 ; Rated power [kW] + constant 2 0.628 ; Minimum rotor speed [rad/s] + constant 3 1.005 ; Rated rotor speed [rad/s] + constant 4 15.6E+06 ; Maximum allowable generator torque [Nm] + constant 5 100.0 ; Minimum pitch angle, theta_min [deg], + ; if |theta_min|>90, then a table of <wsp,theta_min> is read ; + ; from a file named 'wpdata.n', where n=int(theta_min) + constant 6 90.0 ; Maximum pitch angle [deg] + constant 7 10.0 ; Maximum pitch velocity operation [deg/s] + constant 8 0.4 ; Frequency of generator speed filter [Hz] + constant 9 0.7 ; Damping ratio of speed filter [-] + constant 10 1.64 ; Frequency of free-free DT torsion mode [Hz], if zero no notch filter used + ; Partial load control parameters + constant 11 0.9648030e+07 ; Optimal Cp tracking K factor [Nm/(rad/s)^2], ; + ; Qg=K*Omega^2, K=eta*0.5*rho*A*Cp_opt*R^3/lambda_opt^3 + constant 12 1.047610E+08 ; Proportional gain of torque controller [Nm/(rad/s)] + constant 13 0.153367E+08 ; Integral gain of torque controller [Nm/rad] + constant 14 0.0 ; Differential gain of torque controller [Nm/(rad/s^2)] +; Full load control parameters + constant 15 1 ; Generator control switch [1=constant power, 2=constant torque] + constant 16 0.762489 ; Proportional gain of pitch controller [rad/(rad/s)] + constant 17 0.224086 ; Integral gain of pitch controller [rad/rad] + constant 18 0.0 ; Differential gain of pitch controller [rad/(rad/s^2)] + constant 19 0.4e-9 ; Proportional power error gain [rad/W] + constant 20 0.4e-9 ; Integral power error gain [rad/(Ws)] + constant 21 10.6824 ; Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg] + constant 22 601.25499 ; Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] & + ; (if zero, KK1 = pitch angle at double gain) + constant 23 1.3 ; Relative speed for double nonlinear gain [-] +; Cut-in simulation parameters + constant 24 -1 ; Cut-in time [s] + constant 25 1.0 ; Time delay for soft start of torque [1/1P] +; Cut-out simulation parameters + constant 26 -1 ; Cut-out time [s] + constant 27 5.0 ; Time constant for linear torque cut-out [s] + constant 28 1 ; Stop type [1=normal, 2=emergency] + constant 29 1.0 ; Time delay for pitch stop after shut-down signal [s] + constant 30 3 ; Maximum pitch velocity during initial period of stop [deg/s] + constant 31 3.0 ; Time period of initial pitch stop phase [s] (maintains pitch speed specified in constant 30) + constant 32 4 ; Maximum pitch velocity during final phase of stop [deg/s] +; Expert parameters (keep default values unless otherwise given) + constant 33 2.0 ; Lower angle above lowest minimum pitch angle for switch [deg] + constant 34 2.0 ; Upper angle above lowest minimum pitch angle for switch [deg], if equal then hard switch + constant 35 95.0 ; Ratio between filtered speed and reference speed for fully open torque limits [%] + constant 36 2.0 ; Time constant of 1st order filter on wind speed used for minimum pitch [1/1P] + constant 37 1.0 ; Time constant of 1st order filter on pitch angle used for gain scheduling [1/1P] +; Drivetrain damper + constant 38 0.0 ; Proportional gain of active DT damper [Nm/(rad/s)], requires frequency in input 10 +; Over speed + constant 39 25.0 ; Overspeed percentage before initiating turbine controller alarm (shut-down) [%] +; Additional non-linear pitch control term (not used when all zero) + constant 40 0.0 ; Err0 [rad/s] + constant 41 0.0 ; ErrDot0 [rad/s^2] + constant 42 0.0 ; PitNonLin1 [rad/s] +; Storm control command + constant 43 28.0 ; Wind speed 'Vstorm' above which derating of rotor speed is used [m/s] + constant 44 28.0 ; Cut-out wind speed (only used for derating of rotor speed in storm) [m/s] +; Safety system parameters + constant 45 25.0 ; Overspeed percentage before initiating safety system alarm (shut-down) [%] + constant 46 1.5 ; Max low-pass filtered tower top acceleration level [m/s^2] - max in DLC 1.3=1.1 m/s^2 +; Turbine parameter + constant 47 205.8 ; Nominal rotor diameter [m] +; Parameters for rotor inertia reduction in variable speed region + constant 48 0.0 ; Proportional gain on rotor acceleration in variable speed region [Nm/(rad/s^2)] (not used when zero) +; Parameters for alternative partial load controller with PI regulated TSR tracking + constant 49 0.0 ; Optimal tip speed ratio [-] (only used when K=constant 11 = 0 otherwise Qg=K*Omega^2 is used) +; Parameters for adding aerodynamic drivetrain damping on gain scheduling + constant 50 0.0 ; Proportional gain of aerodynamic DT damping [Nm/(rad/s)] + constant 51 0.0 ; Coefficient of linear term in aerodynamic DT damping scheduling, KK1 [deg] + constant 52 0.0 ; Coefficient of quadratic term in aerodynamic DT damping scheduling, KK2 [deg^2] + end init ; +; + begin output ; + general time ; [s] + constraint bearing1 shaft_rot 1 only 2 ; Drivetrain speed [rad/s] + constraint bearing2 pitch1 1 only 1; [rad] + constraint bearing2 pitch2 1 only 1; [rad] + constraint bearing2 pitch3 1 only 1; [rad] + wind free_wind 1 0.0 0.0 -127 ; Global coordinates at hub height + dll inpvec 2 2 ; Elec. power from generator servo .dll + dll inpvec 2 8 ; Grid state flag from generator servo .dll + mbdy state acc tower 10 1.0 global only 1 ; Tower top x-acceleration [m/s^2] + mbdy state acc tower 10 1.0 global only 2 ; Tower top y-acceleration [m/s^2] + end output; + end type2_dll; +; + begin type2_dll; + name generator_servo ; + filename ./control/generator_servo.dll ; + dll_subroutine_init init_generator_servo ; + dll_subroutine_update update_generator_servo ; + arraysizes_init 7 1 ; + arraysizes_update 4 8 ; + begin init ; + constant 1 20.0 ; Frequency of 2nd order servo model of generator-converter system [Hz] + constant 2 0.9 ; Damping ratio 2nd order servo model of generator-converter system [-] + constant 3 15.6E+06 ; Maximum allowable LSS torque (pull-out torque) [Nm] + constant 4 0.94 ; Generator efficiency [-] + constant 5 1.0 ; Gearratio [-] + constant 6 0.0 ; Time for half value in softstart of torque [s] + constant 7 5000 ; Time for grid loss [s] + end init ; +; + begin output; + general time ; Time [s] + dll inpvec 1 1 ; Electrical torque reference [Nm] + constraint bearing1 shaft_rot 1 only 2; Generator LSS speed [rad/s] + mbdy momentvec shaft 1 1 shaft only 3 ; Shaft moment [kNm] (Qshaft) + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name mech_brake ; + filename ./control/mech_brake.dll ; + dll_subroutine_init init_mech_brake ; + dll_subroutine_update update_mech_brake ; + arraysizes_init 7 1 ; + arraysizes_update 4 6 ; + begin init ; + constant 1 5225.35 ; Fully deployed maximum brake torque [Nm] (0.6*max torque) + constant 2 100.0 ; Parameter alpha used in Q = tanh(omega*alpha), typically 1e2/Omega_nom + constant 3 0.5 ; Delay time for before brake starts to deploy [s] + constant 4 0.74 ; Time for brake to become fully deployed [s] + end init ; +; + begin output; + general time ; Time [s] + constraint bearing1 shaft_rot 1 only 2 ; Generator LSS speed [rad/s] + dll inpvec 1 25 ; Command to deploy mechanical disc brake [0,1] + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name servo_with_limits ; + filename ./control/servo_with_limits.dll ; + dll_subroutine_init init_servo_with_limits ; + dll_subroutine_update update_servo_with_limits ; + arraysizes_init 10 1 ; + arraysizes_update 5 9 ; + begin init ; + constant 1 3 ; Number of blades [-] + constant 2 1.0 ; Frequency of 2nd order servo model of pitch system [Hz] + constant 3 0.7 ; Damping ratio 2nd order servo model of pitch system [-] + constant 4 10.0 ; Max. pitch speed [deg/s] + constant 5 15.0 ; Max. pitch acceleration [deg/s^2] + constant 6 -5.0 ; Min. pitch angle [deg] + constant 7 90.0 ; Max. pitch angle [deg] + constant 8 5000 ; Time for pitch runaway [s] + constant 9 -1 ; Time for stuck blade 1 [s] + constant 10 0 ; Angle of stuck blade 1 [deg] + end init ; + begin output; + general time ; Time [s] + dll inpvec 1 2 ; Pitch1 demand angle [rad] + dll inpvec 1 3 ; Pitch2 demand angle [rad] + dll inpvec 1 4 ; Pitch3 demand angle [rad] + dll inpvec 1 26 ; Flag for emergency pitch stop [0=off/1=on] + end output; +; + begin actions; + constraint bearing2 angle pitch1 ; Angle pitch1 bearing [rad] + constraint bearing2 angle pitch2 ; Angle pitch2 bearing [rad] + constraint bearing2 angle pitch3 ; Angle pitch3 bearing [rad] + end actions; + end type2_dll; +; +; --- DLL for tower-blade tip distance -- ; + begin type2_dll; + name disttowtip ; + filename ./control/towclearsens.dll ; + dll_subroutine_init initialize ; + dll_subroutine_update update ; + arraysizes_init 1 1 ; + arraysizes_update 12 4 ; + begin init ; + constant 1 3.87 ; Tower radius close to downward blade tip [m] + end init ; + begin output; + mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m + mbdy state pos blade1 26 1.0 global ; [4,5,6] + mbdy state pos blade2 26 1.0 global ; [7,8,9] + mbdy state pos blade3 26 1.0 global ; [10,11,12] + end output; + end type2_dll; +end dll; +; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +; +begin output; + filename ./res/dlc01_demos/dlc01_steady_wsp8_noturb ; + time 20 40 ; + data_format hawc_binary; + buffer 1 ; +; + general time; + constraint bearing1 shaft_rot 2; angle and angle velocity + constraint bearing2 pitch1 5; angle and angle velocity + constraint bearing2 pitch2 5; angle and angle velocity + constraint bearing2 pitch3 5; angle and angle velocity + aero omega ; + aero torque; + aero power; + aero thrust; + wind free_wind 1 0.0 0.0 -127; local wind at fixed position: coo (1=global,2=non-rotation rotor coo.), pos x, pos y, pos z + ; non rotating coordinates shaft tip: equivalent to stationary hub in BLADED + mbdy momentvec shaft 3 2 shaft_nonrotate # non rotating shaft tip ; + mbdy forcevec shaft 3 2 shaft_nonrotate # non rotating shaft tip ; + ; Moments: + mbdy momentvec tower 1 1 tower # tower base ; + mbdy momentvec tower 19 2 tower # tower yaw bearing ; + mbdy momentvec shaft 4 1 shaft # main bearing ; + mbdy momentvec blade1 3 2 blade1 # blade 1 root ; + mbdy momentvec blade2 3 2 blade2 # blade 2 root ; + mbdy momentvec blade3 3 2 blade3 # blade 3 root ; + ; blade 2,3 root section loads + mbdy momentvec blade2 3 2 local # blade 2 section root; + mbdy momentvec blade3 3 2 local # blade 3 section root; + ; blade 1 sectional loads in local coordinates + mbdy momentvec blade1 2 2 local # blade 1 section; + mbdy momentvec blade1 3 2 local # blade 1 section root; + mbdy momentvec blade1 4 2 local # blade 1 section; + mbdy momentvec blade1 5 2 local # blade 1 section; + mbdy momentvec blade1 6 2 local # blade 1 section; + mbdy momentvec blade1 7 2 local # blade 1 section; + mbdy momentvec blade1 8 2 local # blade 1 section; + mbdy momentvec blade1 9 2 local # blade 1 section; + mbdy momentvec blade1 10 2 local # blade 1 section; + mbdy momentvec blade1 11 2 local # blade 1 section; + mbdy momentvec blade1 12 2 local # blade 1 section; + mbdy momentvec blade1 13 2 local # blade 1 section; + mbdy momentvec blade1 14 2 local # blade 1 section; + mbdy momentvec blade1 15 2 local # blade 1 section; + mbdy momentvec blade1 16 2 local # blade 1 section; + mbdy momentvec blade1 17 2 local # blade 1 section; + mbdy momentvec blade1 18 2 local # blade 1 section; + mbdy momentvec blade1 19 2 local # blade 1 section; + mbdy momentvec blade1 20 2 local # blade 1 section; + mbdy momentvec blade1 21 2 local # blade 1 section; + mbdy momentvec blade1 22 2 local # blade 1 section; + mbdy momentvec blade1 23 2 local # blade 1 section; + mbdy momentvec blade1 24 2 local # blade 1 section; + mbdy momentvec blade1 25 2 local # blade 1 section; + mbdy momentvec blade1 26 2 local # blade 1 section; + ; blade root out and in of plane forces + mbdy momentvec blade1 3 2 hub1 # blade 1 root ; + mbdy momentvec blade2 3 2 hub2 # blade 2 root ; + mbdy momentvec blade3 3 2 hub3 # blade 3 root ; +; mbdy momentvec blade1 14 1 local # blade 1 50% local e coo ; +; mbdy momentvec blade2 14 1 local # blade 2 50% local e coo ; +; mbdy momentvec blade3 14 1 local # blade 3 50% local e coo ; + ; Displacements and accellerations + mbdy state pos tower 19 1.0 global only 1 # Tower top FA displ; + mbdy state pos tower 19 1.0 global only 2 # Tower top SS displ; + mbdy state acc tower 19 1.0 global only 1 # Tower top FA acc; + mbdy state acc tower 19 1.0 global only 2 # Tower top SS acc; +; + mbdy state pos blade1 26 1.0 global # gl blade 1 tip pos ; + mbdy state pos blade2 26 1.0 global # gl blade 2 tip pos ; + mbdy state pos blade3 26 1.0 global # gl blade 3 tip pos ; + mbdy state pos blade1 26 1.0 blade1 # blade 1 tip pos ; + mbdy state pos blade2 26 1.0 blade2 # blade 2 tip pos ; + mbdy state pos blade3 26 1.0 blade3 # blade 3 tip pos ; +; + mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m +; + ; elastic twist (torsional deformation) along the blade + aero tors_ang 1 45.56; + aero tors_ang 1 59.19; + aero tors_ang 1 70.87; + aero tors_ang 1 80.61; + aero tors_ang 1 84.50; + aero tors_ang 1 88.40; + aero tors_ang 1 92.29; + aero tors_ang 1 96.19; + aero tors_ang 1 98.13; + aero tors_ang 1 100.08; tip +; +; - Monitor Aerodynamics - ; + aero windspeed 3 1 1 72.5; + aero alfa 1 72.5; + aero alfa 2 72.5; + aero alfa 3 72.5; + aero cl 1 72.5; + aero cl 2 72.5; + aero cl 3 72.5; + aero cd 1 72.5; + aero cd 2 72.5; + aero cd 3 72.5; +; - Main Controller - +; Output to controller + ; dll outvec 1 1 # time; + ; dll outvec 1 2 # slow speed shaft rad/s; + ; dll outvec 1 3 # pitch angle 1; + ; dll outvec 1 4 # pitch angle 2; + ; dll outvec 1 5 # pitch angle 3; + ; dll outvec 1 6 # WSP_x_global; + ; dll outvec 1 7 # WSP_y_global; + ; dll outvec 1 8 # WSP_z_global; + ; dll outvec 1 9 # Elec. pwr ; + ; dll outvec 1 10 # Grid flag ; +; Input from controller + dll inpvec 1 1 # Generator torque reference [Nm] ; + dll inpvec 1 2 # Pitch angle reference of blade 1 [rad] ; + dll inpvec 1 3 # Pitch angle reference of blade 2 [rad] ; + dll inpvec 1 4 # Pitch angle reference of blade 3 [rad] ; + ; dll inpvec 1 5 # Power reference [W] ; + ; dll inpvec 1 6 # Filtered wind speed [m/s] ; + ; dll inpvec 1 7 # Filtered rotor speed [rad/s]; + ; dll inpvec 1 8 # Filtered rotor speed error for torque [rad/s]; + ; dll inpvec 1 9 # Bandpass filtered rotor speed [rad/s]; + ; dll inpvec 1 10 # Proportional term of torque contr. [Nm] ; + ; dll inpvec 1 11 # Integral term of torque controller [Nm] ; + ; dll inpvec 1 12 # Minimum limit of torque [Nm] ; + ; dll inpvec 1 13 # Maximum limit of torque [Nm] ; + dll inpvec 1 14 # Torque limit switch based on pitch [-] ; + ; dll inpvec 1 15 # Filtered rotor speed error for pitch [rad/s]; + ; dll inpvec 1 16 # Power error for pitch [W] ; + ; dll inpvec 1 17 # Proportional term of pitch controller [rad] ; + ; dll inpvec 1 18 # Integral term of pitch controller [rad] ; + ; dll inpvec 1 19 # Minimum limit of pitch [rad] ; + ; dll inpvec 1 20 # Maximum limit of pitch [rad] ; + dll inpvec 1 21 # Torque reference from DT dammper [Nm] ; + dll inpvec 1 22 # Status signal [-] ; + ; dll inpvec 1 23 # Total added pitch rate [rad/s] ; + dll inpvec 1 24 # Filtered Mean pitch for gain sch [rad] ; + dll inpvec 1 25 # Flag for mechnical brake [0=off/1=on] ; + dll inpvec 1 26 # Flag for emergency pitch stop [0=off/1=on] ; + dll inpvec 1 27 # LP filtered acceleration level [m/s^2] ; +; ; Output to generator model + ; dll outvec 2 1 # time ; + ; dll outvec 2 2 # Electrical torque reference [Nm] ; + ; dll outvec 2 3 # omega LSS ; +; Input from generator model + dll inpvec 2 1 # Mgen LSS [Nm]; + dll inpvec 2 2 # Pelec W ; + dll inpvec 2 3 # Mframe ; + dll inpvec 2 4 # Mgen HSS ; + dll inpvec 2 5 # Generator Pmech kW ; + dll inpvec 2 6 # Filtered Gen speed ; + dll inpvec 2 7 # Resulting Eff ; + dll inpvec 2 8 # Grid flag ; +; Output to mechanical brake + dll inpvec 3 1 # Brake torque [Nm] ; +; ; Input from mechanical brake + ; dll outvec 3 1 # Time [s] ; + ; dll outvec 3 2 # Generator LSS speed [rad/s] ; + ; dll outvec 3 3 # Deploy brake ; +; ; Output to pitch servo + ; dll outvec 4 1 # time; + ; dll outvec 4 2 # pitchref 1; + ; dll outvec 4 3 # pitchref 2; + ; dll outvec 4 4 # pitchref 3; + ; dll outvec 4 5 # Emerg. stop; +; Input from pitch servo + dll inpvec 4 1 # pitch 1; + dll inpvec 4 2 # pitch 2; + dll inpvec 4 3 # pitch 3; +; Check tower clearence + dll inpvec 5 1 # Bltip tow min d [m]; +; general constant 1.0 ; constant 1.0 - to mesure activity of flap in terms of displacement +; - Check on flap control: + ; ; - From flap controller: - + ; dll type2_dll cyclic_flap_controller inpvec 1 # Ref flap signal bl 1 [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 2 # Ref flap signal bl 2 [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 3 # Ref flap signal bl 3 [deg] ; + ; ; - Mbc values + ; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ; + ; ; - Check Gains - ; + ; dll type2_dll cyclic_flap_controller inpvec 10 # lead angle [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 11 # scaling on rat pow [-] ; + ; dll type2_dll cyclic_flap_controller inpvec 12 # actual kp [deg/kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 13 # actual ki [deg/kNms] ; + ; dll type2_dll cyclic_flap_controller inpvec 14 # actual kd [deg s/kNm] ; + ; ; - Actual deflections - + ; aero beta 1 1 ; + ; aero beta 2 1 ; + ; aero beta 3 1 ; + ; ; - Mbc values + ; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ; +end output; +; +exit; diff --git a/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp9_noturb.htc b/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp9_noturb.htc new file mode 100644 index 00000000..537e8ef7 --- /dev/null +++ b/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp9_noturb.htc @@ -0,0 +1,850 @@ +;this version was at some point based on: Avatar_10MW_RWT version 1, 06-08-14, Anyd +begin simulation; + time_stop 40; + solvertype 1 ; (newmark) + on_no_convergence continue ; +; convergence_limits 1E3 1.0 1E-7 ; + logfile ./logfiles/dlc01_demos/dlc01_steady_wsp9_noturb.log ; + begin newmark; + deltat 0.02; + end newmark; +end simulation; +; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +begin new_htc_structure; +;-------------------------------------------------------------------------------------------------- +; beam_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp9_noturb/dlc01_steady_wsp9_noturb_beam.dat; +; body_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp9_noturb/dlc01_steady_wsp9_noturb_body.dat; +; struct_inertia_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp9_noturb/dlc01_steady_wsp9_noturb_struct.dat; +; body_eigenanalysis_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp9_noturb/dlc01_steady_wsp9_noturb_body_eigen.dat; +; structure_eigenanalysis_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp9_noturb/dlc01_steady_wsp9_noturb_strc_eigen.dat; +;--------------------------------------------------------------------------------------------------- + begin main_body; tower 123.6m + name tower ; + type timoschenko ; + nbodies 3 ; + node_distribution c2_def ; + damping_posdef 0 0 0 4.7E-03 4.7E-03 4.3E-04 ; tuned by Anyd 12/8/14 + begin timoschenko_input; + filename ./data/AVATAR_10MW_RWT_tower_st.dat; + set 1 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 20; + sec 1 0 0 0.000 0 ; x,y,z,twist + sec 2 0 0 -12.293 0 ; + sec 3 0 0 -12.294 0 ; + sec 4 0 0 -24.585 0 ; + sec 5 0 0 -24.586 0 ; + sec 6 0 0 -36.878 0 ; + sec 7 0 0 -36.879 0 ; + sec 8 0 0 -49.171 0 ; + sec 9 0 0 -49.172 0 ; + sec 10 0 0 -61.463 0 ; + sec 11 0 0 -61.464 0 ; + sec 12 0 0 -73.756 0 ; + sec 13 0 0 -73.757 0 ; + sec 14 0 0 -86.049 0 ; + sec 15 0 0 -86.050 0 ; + sec 16 0 0 -98.341 0 ; + sec 17 0 0 -98.342 0 ; + sec 18 0 0 -110.634 0 ; + sec 19 0 0 -110.635 0 ; + sec 20 0 0 -123.600 0 ; + end c2_def ; + end main_body; +; + begin main_body; + name towertop ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 7.50E-03 7.40E-03 7.00E-03 7.00E-03 7.00E-03 7.00E-03 ; "changed by Anyd + concentrated_mass 2.0 0.0 2.6870E+00 3.0061E-01 4.4604E+05 4.1060E+06 4.1060E+05 4.1060E+06 ; Nacel + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Towertop_st.dat ; + set 1 2 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 -2.75 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name shaft ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; +; damping_posdef 8.00E-3 8.00E-03 8.00E-02 4.65E-04 4.65E-04 2.38E-02 ; "tuned by Anyd 22/2/13 + damping_posdef 0.0 0.0 3.983E-03 4.65E-04 4.65E-04 3.983E-03 ; "tuned by Anyd 23/5/13 to 31.45 l + concentrated_mass 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.751E+06 ; generator equivalent slow shaft "re_tu + 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 + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Shaft_st.dat ; + set 1 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 5; + sec 1 0.0 0.0 0.0 0.0 ; Tower top x,y,z,twist + sec 2 0.0 0.0 1.5 0.0 ; + sec 3 0.0 0.0 3.0 0.0 ; + sec 4 0.0 0.0 4.4 0.0 ; Main bearing + sec 5 0.0 0.0 7.1 0.0 ; Rotor centre + end c2_def ; + end main_body; +; + begin main_body; + name shaft_nonrotate ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.00E+00 0.00E+00 0.00E+00 1.0E-01 1.0E-01 1.0E-01 ; + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Shaft_st.dat ; + set 1 3; dummy light and stiff structure + end timoschenko_input; + begin c2_def; + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; + sec 2 0.0 0.0 0.1 0.0 ; + end c2_def; + end main_body; +; + begin main_body; + name hub1 ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 2.00E-05 2.00E-05 2.00E-04 3.00E-06 3.00E-06 2.00E-05; + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Hub_st.dat ; + set 1 2 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 2.8 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name hub2 ; + copy_main_body hub1; + end main_body; +; + begin main_body; + name hub3 ; + copy_main_body hub1 ; + end main_body; +; + begin main_body; + name blade1 ; + type timoschenko ; + nbodies 10 ; + node_distribution c2_def; +; damping_posdef 0.0 0.0 0.0 2.5e-3 8.9e-4 3.2e-4 ; "Tuned by Anyd" +; damping_posdef 0.0 0.0 0.0 1.5e-3 2.45e-3 3.2e-4 ; " 3% damping tuned by Anyd 20/02/12 unable to +; damping_posdef 0.0 0.0 0.0 2.1e-3 1.9e-3 1.3e-4 ; " 3% damping tuned by Anyd 15/08/14 rev2 + damping_posdef 0.0 0.0 0.0 1.68e-3 2.25e-3 1.0e-4 ; " 3% damping tuned by Anyd 16/12/14 + begin timoschenko_input ; + filename ./data/AVATAR_10MW_RWT_Blade_st.dat ; + set 1 9 ; + end timoschenko_input; + begin c2_def; + nsec 27 ; + sec 1 -0.001 -0.001 0.000 -17.280 ; + sec 2 -0.005 -0.001 2.220 -17.280 ; + sec 3 -0.006 -0.000 4.440 -17.280 ; + sec 4 -0.086 0.022 6.660 -17.280 ; + sec 5 -0.231 0.069 11.039 -17.273 ; + sec 6 -0.447 0.121 15.418 -16.441 ; + sec 7 -0.690 0.161 19.797 -14.613 ; + sec 8 -0.812 0.162 24.176 -12.578 ; + sec 9 -0.891 0.158 28.555 -10.588 ; + sec 10 -0.865 0.124 32.934 -9.070 ; + sec 11 -0.833 0.112 37.313 -8.224 ; + sec 12 -0.797 0.102 41.692 -7.688 ; + sec 13 -0.760 0.093 46.071 -7.205 ; + sec 14 -0.721 0.083 50.450 -6.749 ; + sec 15 -0.683 0.075 54.829 -6.288 ; + sec 16 -0.644 0.066 59.208 -5.838 ; + sec 17 -0.606 0.058 63.587 -5.401 ; + sec 18 -0.567 0.050 67.966 -4.982 ; + sec 19 -0.529 0.044 72.345 -4.640 ; + sec 20 -0.492 0.037 76.724 -4.380 ; + sec 21 -0.456 0.032 81.103 -4.144 ; + sec 22 -0.422 0.026 85.482 -3.914 ; + sec 23 -0.392 0.021 89.861 -3.685 ; + sec 24 -0.346 0.014 94.240 -3.460 ; + sec 25 -0.307 0.010 96.190 -3.350 ; + sec 26 -0.249 0.005 98.130 -3.250 ; + sec 27 -0.089 0.006 100.080 -3.140 ; + end c2_def ; + end main_body; +; + begin main_body; + name blade2 ; + copy_main_body blade1; + end main_body; +; + begin main_body; + name blade3 ; + copy_main_body blade1 ; + end main_body; +;------------------------------------------------------------------------------------------------------------------------------- +; + begin orientation; + begin base; + body tower; + inipos 0.0 0.0 0.0 ; initial position of node 1 + body_eulerang 0.0 0.0 0.0; + end base; +; + begin relative; + body1 tower last; + body2 towertop 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + begin relative; + body1 towertop last; + body2 shaft 1; + body2_eulerang 90.0 0.0 0.0; + body2_eulerang 5.0 0.0 0.0; 5 deg tilt angle + body2_eulerang 0.0 0.0 0; + mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.5 ; mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.5; + end relative; +; + begin relative; dummy non rotating hub coordinates + body1 towertop last; + body2 shaft_nonrotate 1; + body2_eulerang 90.0 0.0 0.0; + body2_eulerang 5.0 0.0 0.0; same 5 deg tilt angle as real shaft + end relative; +; + begin relative; + body1 shaft last; + body2 hub1 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 180.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub2 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub3 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 -60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 hub1 last; + body2 blade1 1; + body2_eulerang 0.0 0.0 0; + end relative; +; + begin relative; + body1 hub2 last; + body2 blade2 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + begin relative; + body1 hub3 last; + body2 blade3 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + end orientation; +;------------------------------------------------------------------------------------------------------------------------------- +begin constraint; +; + begin fix0; fixed to ground in translation and rotation of node 1 + body tower; + end fix0; +; + begin fix1; + body1 tower last ; + body2 towertop 1; + end fix1; +; + begin bearing1; free bearing + name shaft_rot; + body1 towertop last; + body2 shaft 1; + 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 + end bearing1; +; +; begin bearing3; free bearing +; name shaft_rot; +; body1 towertop last; +; body2 shaft 1; +; 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 +; omegas 0.0 ; +; end bearing3; +; + begin fix1; + body1 tower last ; + body2 shaft_nonrotate 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub1 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub2 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub3 1; + end fix1; +; + begin bearing2; + name pitch1; + body1 hub1 last; + body2 blade1 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch2; + body1 hub2 last; + body2 blade2 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch3; + body1 hub3 last; + body2 blade3 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +end constraint; +; +end new_htc_structure; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +begin wind ; + density 1.225 ; + wsp 9 ; + tint 0.219555555556 ; + horizontal_input 1 ; + windfield_rotations 0 8.0 0.0 ; yaw, tilt (positive=upflow=wind coming from below), rotation + center_pos0 0.0 0.0 -127 ; hub heigth + shear_format 3 0 ; + turb_format 0 ; 0=none, 1=mann,2=flex + tower_shadow_method 3 ; 0=none, 1=potential flow, 2=jet + scale_time_start 20 ; + wind_ramp_factor 0.0 20 0.888888888889 1.0 ; + ; iec_gust ; +; +; wind_ramp_abs 400.0 401.0 0.0 1.0 ; wsp. after the step: 5.0 +; wind_ramp_abs 501.0 502.0 0.0 1.0 ; wsp. after the step: 6.0 +; wind_ramp_abs 602.0 603.0 0.0 1.0 ; wsp. after the step: 7.0 +; wind_ramp_abs 703.0 704.0 0.0 1.0 ; wsp. after the step: 8.0 +; wind_ramp_abs 804.0 805.0 0.0 1.0 ; wsp. after the step: 9.0 +; wind_ramp_abs 905.0 906.0 0.0 1.0 ; wsp. after the step: 10.0 +; wind_ramp_abs 1006.0 1007.0 0.0 1.0 ; wsp. after the step: 11.0 +; wind_ramp_abs 1107.0 1108.0 0.0 1.0 ; wsp. after the step: 12.0 +; wind_ramp_abs 1208.0 1209.0 0.0 1.0 ; wsp. after the step: 13.0 +; wind_ramp_abs 1309.0 1310.0 0.0 1.0 ; wsp. after the step: 14.0 +; wind_ramp_abs 1410.0 1411.0 0.0 1.0 ; wsp. after the step: 15.0 +; wind_ramp_abs 1511.0 1512.0 0.0 1.0 ; wsp. after the step: 16.0 +; wind_ramp_abs 1612.0 1613.0 0.0 1.0 ; wsp. after the step: 17.0 +; wind_ramp_abs 1713.0 1714.0 0.0 1.0 ; wsp. after the step: 18.0 +; wind_ramp_abs 1814.0 1815.0 0.0 1.0 ; wsp. after the step: 19.0 +; wind_ramp_abs 1915.0 1916.0 0.0 1.0 ; wsp. after the step: 20.0 +; wind_ramp_abs 2016.0 2017.0 0.0 1.0 ; wsp. after the step: 21.0 +; wind_ramp_abs 2117.0 2118.0 0.0 1.0 ; wsp. after the step: 22.0 +; wind_ramp_abs 2218.0 2219.0 0.0 1.0 ; wsp. after the step: 23.0 +; wind_ramp_abs 2319.0 2320.0 0.0 1.0 ; wsp. after the step: 24.0 +; wind_ramp_abs 2420.0 2421.0 0.0 1.0 ; wsp. after the step: 25.0 + ; +; wind_ramp_abs 400.0 2200.0 0.0 21.0 ; wsp. after the step: 25.0 +; wind_ramp_abs 2400.0 4200.0 0.0 -21.0 ; wsp. after the step: 25.0 + ; + begin mann ; + create_turb_parameters 29.4 1.0 3.9 0 1.0 ; L, alfaeps, gamma, seed, highfrq compensation + filename_u ./turb/noneu.bin ; + filename_v ./turb/nonev.bin ; + filename_w ./turb/nonew.bin ; + box_dim_u 8192 0.0439453125 ; + box_dim_v 32 7.5; + box_dim_w 32 7.5; + std_scaling 1.0 0.7 0.5 ; + end mann ; +; + begin tower_shadow_potential_2; + tower_mbdy_link tower; + nsec 2; + radius 0.0 4.15 ; + radius 123.6 2.75 ; (radius) + end tower_shadow_potential_2; +end wind; +; +begin aerodrag ; + begin aerodrag_element ; + mbdy_name tower; + aerodrag_sections uniform 10 ; + nsec 2 ; + sec 0.0 0.6 8.3 ; tower bottom + sec 123.6 0.6 5.5 ; tower top (diameter) + end aerodrag_element; +; + begin aerodrag_element ; Nacelle drag side + mbdy_name shaft; + aerodrag_sections uniform 2 ; + nsec 2 ; + sec 0.0 0.8 10.0 ; + sec 7.01 0.8 10.0 ; + end aerodrag_element; +end aerodrag; +; +begin aero ; + nblades 3; + hub_vec shaft -3 ; rotor rotation vector (normally shaft composant directed from pressure to sustion side) + link 1 mbdy_c2_def blade1; + link 2 mbdy_c2_def blade2; + link 3 mbdy_c2_def blade3; + ae_filename ./data/AVATAR_10MW_RWT_ae.dat ; + pc_filename ./data/AVATAR_10MW_RWT_pc_hama_v1.dat ; + induction_method 1 ; 0=none, 1=normal + aerocalc_method 1 ; 0=ingen aerodynamic, 1=med aerodynamic + aero_distribution ae_file 1 ; + ae_sets 1 1 1; + tiploss_method 1 ; 0=none, 1=prandtl + dynstall_method 2 ; 0=none, 1=stig øye method,2=mhh method +; +; ; --- Flaps --- ; + ; begin dynstall_ateflap ; + ; Ais 0.165 0.335 0.0 ; + ; Bis 0.0455 0.30 0.30 ; + ; flap 59.5925 85.5023 ./data/Flap_dturwt1_Thk24.ds ; Flap Sec: 1 + ; end dynstall_ateflap; +end aero ; +;------------------------------------------------------------------------------------------------- +begin dll; +; + begin type2_dll; + name risoe_controller ; + filename ./control/risoe_controller.dll ; + dll_subroutine_init init_regulation ; + dll_subroutine_update update_regulation ; + arraysizes_init 52 1 ; + arraysizes_update 12 100 ; + begin init ; + ; Overall parameters + constant 1 10000.0 ; Rated power [kW] + constant 2 0.628 ; Minimum rotor speed [rad/s] + constant 3 1.005 ; Rated rotor speed [rad/s] + constant 4 15.6E+06 ; Maximum allowable generator torque [Nm] + constant 5 100.0 ; Minimum pitch angle, theta_min [deg], + ; if |theta_min|>90, then a table of <wsp,theta_min> is read ; + ; from a file named 'wpdata.n', where n=int(theta_min) + constant 6 90.0 ; Maximum pitch angle [deg] + constant 7 10.0 ; Maximum pitch velocity operation [deg/s] + constant 8 0.4 ; Frequency of generator speed filter [Hz] + constant 9 0.7 ; Damping ratio of speed filter [-] + constant 10 1.64 ; Frequency of free-free DT torsion mode [Hz], if zero no notch filter used + ; Partial load control parameters + constant 11 0.9648030e+07 ; Optimal Cp tracking K factor [Nm/(rad/s)^2], ; + ; Qg=K*Omega^2, K=eta*0.5*rho*A*Cp_opt*R^3/lambda_opt^3 + constant 12 1.047610E+08 ; Proportional gain of torque controller [Nm/(rad/s)] + constant 13 0.153367E+08 ; Integral gain of torque controller [Nm/rad] + constant 14 0.0 ; Differential gain of torque controller [Nm/(rad/s^2)] +; Full load control parameters + constant 15 1 ; Generator control switch [1=constant power, 2=constant torque] + constant 16 0.762489 ; Proportional gain of pitch controller [rad/(rad/s)] + constant 17 0.224086 ; Integral gain of pitch controller [rad/rad] + constant 18 0.0 ; Differential gain of pitch controller [rad/(rad/s^2)] + constant 19 0.4e-9 ; Proportional power error gain [rad/W] + constant 20 0.4e-9 ; Integral power error gain [rad/(Ws)] + constant 21 10.6824 ; Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg] + constant 22 601.25499 ; Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] & + ; (if zero, KK1 = pitch angle at double gain) + constant 23 1.3 ; Relative speed for double nonlinear gain [-] +; Cut-in simulation parameters + constant 24 -1 ; Cut-in time [s] + constant 25 1.0 ; Time delay for soft start of torque [1/1P] +; Cut-out simulation parameters + constant 26 -1 ; Cut-out time [s] + constant 27 5.0 ; Time constant for linear torque cut-out [s] + constant 28 1 ; Stop type [1=normal, 2=emergency] + constant 29 1.0 ; Time delay for pitch stop after shut-down signal [s] + constant 30 3 ; Maximum pitch velocity during initial period of stop [deg/s] + constant 31 3.0 ; Time period of initial pitch stop phase [s] (maintains pitch speed specified in constant 30) + constant 32 4 ; Maximum pitch velocity during final phase of stop [deg/s] +; Expert parameters (keep default values unless otherwise given) + constant 33 2.0 ; Lower angle above lowest minimum pitch angle for switch [deg] + constant 34 2.0 ; Upper angle above lowest minimum pitch angle for switch [deg], if equal then hard switch + constant 35 95.0 ; Ratio between filtered speed and reference speed for fully open torque limits [%] + constant 36 2.0 ; Time constant of 1st order filter on wind speed used for minimum pitch [1/1P] + constant 37 1.0 ; Time constant of 1st order filter on pitch angle used for gain scheduling [1/1P] +; Drivetrain damper + constant 38 0.0 ; Proportional gain of active DT damper [Nm/(rad/s)], requires frequency in input 10 +; Over speed + constant 39 25.0 ; Overspeed percentage before initiating turbine controller alarm (shut-down) [%] +; Additional non-linear pitch control term (not used when all zero) + constant 40 0.0 ; Err0 [rad/s] + constant 41 0.0 ; ErrDot0 [rad/s^2] + constant 42 0.0 ; PitNonLin1 [rad/s] +; Storm control command + constant 43 28.0 ; Wind speed 'Vstorm' above which derating of rotor speed is used [m/s] + constant 44 28.0 ; Cut-out wind speed (only used for derating of rotor speed in storm) [m/s] +; Safety system parameters + constant 45 25.0 ; Overspeed percentage before initiating safety system alarm (shut-down) [%] + constant 46 1.5 ; Max low-pass filtered tower top acceleration level [m/s^2] - max in DLC 1.3=1.1 m/s^2 +; Turbine parameter + constant 47 205.8 ; Nominal rotor diameter [m] +; Parameters for rotor inertia reduction in variable speed region + constant 48 0.0 ; Proportional gain on rotor acceleration in variable speed region [Nm/(rad/s^2)] (not used when zero) +; Parameters for alternative partial load controller with PI regulated TSR tracking + constant 49 0.0 ; Optimal tip speed ratio [-] (only used when K=constant 11 = 0 otherwise Qg=K*Omega^2 is used) +; Parameters for adding aerodynamic drivetrain damping on gain scheduling + constant 50 0.0 ; Proportional gain of aerodynamic DT damping [Nm/(rad/s)] + constant 51 0.0 ; Coefficient of linear term in aerodynamic DT damping scheduling, KK1 [deg] + constant 52 0.0 ; Coefficient of quadratic term in aerodynamic DT damping scheduling, KK2 [deg^2] + end init ; +; + begin output ; + general time ; [s] + constraint bearing1 shaft_rot 1 only 2 ; Drivetrain speed [rad/s] + constraint bearing2 pitch1 1 only 1; [rad] + constraint bearing2 pitch2 1 only 1; [rad] + constraint bearing2 pitch3 1 only 1; [rad] + wind free_wind 1 0.0 0.0 -127 ; Global coordinates at hub height + dll inpvec 2 2 ; Elec. power from generator servo .dll + dll inpvec 2 8 ; Grid state flag from generator servo .dll + mbdy state acc tower 10 1.0 global only 1 ; Tower top x-acceleration [m/s^2] + mbdy state acc tower 10 1.0 global only 2 ; Tower top y-acceleration [m/s^2] + end output; + end type2_dll; +; + begin type2_dll; + name generator_servo ; + filename ./control/generator_servo.dll ; + dll_subroutine_init init_generator_servo ; + dll_subroutine_update update_generator_servo ; + arraysizes_init 7 1 ; + arraysizes_update 4 8 ; + begin init ; + constant 1 20.0 ; Frequency of 2nd order servo model of generator-converter system [Hz] + constant 2 0.9 ; Damping ratio 2nd order servo model of generator-converter system [-] + constant 3 15.6E+06 ; Maximum allowable LSS torque (pull-out torque) [Nm] + constant 4 0.94 ; Generator efficiency [-] + constant 5 1.0 ; Gearratio [-] + constant 6 0.0 ; Time for half value in softstart of torque [s] + constant 7 5000 ; Time for grid loss [s] + end init ; +; + begin output; + general time ; Time [s] + dll inpvec 1 1 ; Electrical torque reference [Nm] + constraint bearing1 shaft_rot 1 only 2; Generator LSS speed [rad/s] + mbdy momentvec shaft 1 1 shaft only 3 ; Shaft moment [kNm] (Qshaft) + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name mech_brake ; + filename ./control/mech_brake.dll ; + dll_subroutine_init init_mech_brake ; + dll_subroutine_update update_mech_brake ; + arraysizes_init 7 1 ; + arraysizes_update 4 6 ; + begin init ; + constant 1 5225.35 ; Fully deployed maximum brake torque [Nm] (0.6*max torque) + constant 2 100.0 ; Parameter alpha used in Q = tanh(omega*alpha), typically 1e2/Omega_nom + constant 3 0.5 ; Delay time for before brake starts to deploy [s] + constant 4 0.74 ; Time for brake to become fully deployed [s] + end init ; +; + begin output; + general time ; Time [s] + constraint bearing1 shaft_rot 1 only 2 ; Generator LSS speed [rad/s] + dll inpvec 1 25 ; Command to deploy mechanical disc brake [0,1] + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name servo_with_limits ; + filename ./control/servo_with_limits.dll ; + dll_subroutine_init init_servo_with_limits ; + dll_subroutine_update update_servo_with_limits ; + arraysizes_init 10 1 ; + arraysizes_update 5 9 ; + begin init ; + constant 1 3 ; Number of blades [-] + constant 2 1.0 ; Frequency of 2nd order servo model of pitch system [Hz] + constant 3 0.7 ; Damping ratio 2nd order servo model of pitch system [-] + constant 4 10.0 ; Max. pitch speed [deg/s] + constant 5 15.0 ; Max. pitch acceleration [deg/s^2] + constant 6 -5.0 ; Min. pitch angle [deg] + constant 7 90.0 ; Max. pitch angle [deg] + constant 8 5000 ; Time for pitch runaway [s] + constant 9 -1 ; Time for stuck blade 1 [s] + constant 10 0 ; Angle of stuck blade 1 [deg] + end init ; + begin output; + general time ; Time [s] + dll inpvec 1 2 ; Pitch1 demand angle [rad] + dll inpvec 1 3 ; Pitch2 demand angle [rad] + dll inpvec 1 4 ; Pitch3 demand angle [rad] + dll inpvec 1 26 ; Flag for emergency pitch stop [0=off/1=on] + end output; +; + begin actions; + constraint bearing2 angle pitch1 ; Angle pitch1 bearing [rad] + constraint bearing2 angle pitch2 ; Angle pitch2 bearing [rad] + constraint bearing2 angle pitch3 ; Angle pitch3 bearing [rad] + end actions; + end type2_dll; +; +; --- DLL for tower-blade tip distance -- ; + begin type2_dll; + name disttowtip ; + filename ./control/towclearsens.dll ; + dll_subroutine_init initialize ; + dll_subroutine_update update ; + arraysizes_init 1 1 ; + arraysizes_update 12 4 ; + begin init ; + constant 1 3.87 ; Tower radius close to downward blade tip [m] + end init ; + begin output; + mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m + mbdy state pos blade1 26 1.0 global ; [4,5,6] + mbdy state pos blade2 26 1.0 global ; [7,8,9] + mbdy state pos blade3 26 1.0 global ; [10,11,12] + end output; + end type2_dll; +end dll; +; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +; +begin output; + filename ./res/dlc01_demos/dlc01_steady_wsp9_noturb ; + time 20 40 ; + data_format hawc_binary; + buffer 1 ; +; + general time; + constraint bearing1 shaft_rot 2; angle and angle velocity + constraint bearing2 pitch1 5; angle and angle velocity + constraint bearing2 pitch2 5; angle and angle velocity + constraint bearing2 pitch3 5; angle and angle velocity + aero omega ; + aero torque; + aero power; + aero thrust; + wind free_wind 1 0.0 0.0 -127; local wind at fixed position: coo (1=global,2=non-rotation rotor coo.), pos x, pos y, pos z + ; non rotating coordinates shaft tip: equivalent to stationary hub in BLADED + mbdy momentvec shaft 3 2 shaft_nonrotate # non rotating shaft tip ; + mbdy forcevec shaft 3 2 shaft_nonrotate # non rotating shaft tip ; + ; Moments: + mbdy momentvec tower 1 1 tower # tower base ; + mbdy momentvec tower 19 2 tower # tower yaw bearing ; + mbdy momentvec shaft 4 1 shaft # main bearing ; + mbdy momentvec blade1 3 2 blade1 # blade 1 root ; + mbdy momentvec blade2 3 2 blade2 # blade 2 root ; + mbdy momentvec blade3 3 2 blade3 # blade 3 root ; + ; blade 2,3 root section loads + mbdy momentvec blade2 3 2 local # blade 2 section root; + mbdy momentvec blade3 3 2 local # blade 3 section root; + ; blade 1 sectional loads in local coordinates + mbdy momentvec blade1 2 2 local # blade 1 section; + mbdy momentvec blade1 3 2 local # blade 1 section root; + mbdy momentvec blade1 4 2 local # blade 1 section; + mbdy momentvec blade1 5 2 local # blade 1 section; + mbdy momentvec blade1 6 2 local # blade 1 section; + mbdy momentvec blade1 7 2 local # blade 1 section; + mbdy momentvec blade1 8 2 local # blade 1 section; + mbdy momentvec blade1 9 2 local # blade 1 section; + mbdy momentvec blade1 10 2 local # blade 1 section; + mbdy momentvec blade1 11 2 local # blade 1 section; + mbdy momentvec blade1 12 2 local # blade 1 section; + mbdy momentvec blade1 13 2 local # blade 1 section; + mbdy momentvec blade1 14 2 local # blade 1 section; + mbdy momentvec blade1 15 2 local # blade 1 section; + mbdy momentvec blade1 16 2 local # blade 1 section; + mbdy momentvec blade1 17 2 local # blade 1 section; + mbdy momentvec blade1 18 2 local # blade 1 section; + mbdy momentvec blade1 19 2 local # blade 1 section; + mbdy momentvec blade1 20 2 local # blade 1 section; + mbdy momentvec blade1 21 2 local # blade 1 section; + mbdy momentvec blade1 22 2 local # blade 1 section; + mbdy momentvec blade1 23 2 local # blade 1 section; + mbdy momentvec blade1 24 2 local # blade 1 section; + mbdy momentvec blade1 25 2 local # blade 1 section; + mbdy momentvec blade1 26 2 local # blade 1 section; + ; blade root out and in of plane forces + mbdy momentvec blade1 3 2 hub1 # blade 1 root ; + mbdy momentvec blade2 3 2 hub2 # blade 2 root ; + mbdy momentvec blade3 3 2 hub3 # blade 3 root ; +; mbdy momentvec blade1 14 1 local # blade 1 50% local e coo ; +; mbdy momentvec blade2 14 1 local # blade 2 50% local e coo ; +; mbdy momentvec blade3 14 1 local # blade 3 50% local e coo ; + ; Displacements and accellerations + mbdy state pos tower 19 1.0 global only 1 # Tower top FA displ; + mbdy state pos tower 19 1.0 global only 2 # Tower top SS displ; + mbdy state acc tower 19 1.0 global only 1 # Tower top FA acc; + mbdy state acc tower 19 1.0 global only 2 # Tower top SS acc; +; + mbdy state pos blade1 26 1.0 global # gl blade 1 tip pos ; + mbdy state pos blade2 26 1.0 global # gl blade 2 tip pos ; + mbdy state pos blade3 26 1.0 global # gl blade 3 tip pos ; + mbdy state pos blade1 26 1.0 blade1 # blade 1 tip pos ; + mbdy state pos blade2 26 1.0 blade2 # blade 2 tip pos ; + mbdy state pos blade3 26 1.0 blade3 # blade 3 tip pos ; +; + mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m +; + ; elastic twist (torsional deformation) along the blade + aero tors_ang 1 45.56; + aero tors_ang 1 59.19; + aero tors_ang 1 70.87; + aero tors_ang 1 80.61; + aero tors_ang 1 84.50; + aero tors_ang 1 88.40; + aero tors_ang 1 92.29; + aero tors_ang 1 96.19; + aero tors_ang 1 98.13; + aero tors_ang 1 100.08; tip +; +; - Monitor Aerodynamics - ; + aero windspeed 3 1 1 72.5; + aero alfa 1 72.5; + aero alfa 2 72.5; + aero alfa 3 72.5; + aero cl 1 72.5; + aero cl 2 72.5; + aero cl 3 72.5; + aero cd 1 72.5; + aero cd 2 72.5; + aero cd 3 72.5; +; - Main Controller - +; Output to controller + ; dll outvec 1 1 # time; + ; dll outvec 1 2 # slow speed shaft rad/s; + ; dll outvec 1 3 # pitch angle 1; + ; dll outvec 1 4 # pitch angle 2; + ; dll outvec 1 5 # pitch angle 3; + ; dll outvec 1 6 # WSP_x_global; + ; dll outvec 1 7 # WSP_y_global; + ; dll outvec 1 8 # WSP_z_global; + ; dll outvec 1 9 # Elec. pwr ; + ; dll outvec 1 10 # Grid flag ; +; Input from controller + dll inpvec 1 1 # Generator torque reference [Nm] ; + dll inpvec 1 2 # Pitch angle reference of blade 1 [rad] ; + dll inpvec 1 3 # Pitch angle reference of blade 2 [rad] ; + dll inpvec 1 4 # Pitch angle reference of blade 3 [rad] ; + ; dll inpvec 1 5 # Power reference [W] ; + ; dll inpvec 1 6 # Filtered wind speed [m/s] ; + ; dll inpvec 1 7 # Filtered rotor speed [rad/s]; + ; dll inpvec 1 8 # Filtered rotor speed error for torque [rad/s]; + ; dll inpvec 1 9 # Bandpass filtered rotor speed [rad/s]; + ; dll inpvec 1 10 # Proportional term of torque contr. [Nm] ; + ; dll inpvec 1 11 # Integral term of torque controller [Nm] ; + ; dll inpvec 1 12 # Minimum limit of torque [Nm] ; + ; dll inpvec 1 13 # Maximum limit of torque [Nm] ; + dll inpvec 1 14 # Torque limit switch based on pitch [-] ; + ; dll inpvec 1 15 # Filtered rotor speed error for pitch [rad/s]; + ; dll inpvec 1 16 # Power error for pitch [W] ; + ; dll inpvec 1 17 # Proportional term of pitch controller [rad] ; + ; dll inpvec 1 18 # Integral term of pitch controller [rad] ; + ; dll inpvec 1 19 # Minimum limit of pitch [rad] ; + ; dll inpvec 1 20 # Maximum limit of pitch [rad] ; + dll inpvec 1 21 # Torque reference from DT dammper [Nm] ; + dll inpvec 1 22 # Status signal [-] ; + ; dll inpvec 1 23 # Total added pitch rate [rad/s] ; + dll inpvec 1 24 # Filtered Mean pitch for gain sch [rad] ; + dll inpvec 1 25 # Flag for mechnical brake [0=off/1=on] ; + dll inpvec 1 26 # Flag for emergency pitch stop [0=off/1=on] ; + dll inpvec 1 27 # LP filtered acceleration level [m/s^2] ; +; ; Output to generator model + ; dll outvec 2 1 # time ; + ; dll outvec 2 2 # Electrical torque reference [Nm] ; + ; dll outvec 2 3 # omega LSS ; +; Input from generator model + dll inpvec 2 1 # Mgen LSS [Nm]; + dll inpvec 2 2 # Pelec W ; + dll inpvec 2 3 # Mframe ; + dll inpvec 2 4 # Mgen HSS ; + dll inpvec 2 5 # Generator Pmech kW ; + dll inpvec 2 6 # Filtered Gen speed ; + dll inpvec 2 7 # Resulting Eff ; + dll inpvec 2 8 # Grid flag ; +; Output to mechanical brake + dll inpvec 3 1 # Brake torque [Nm] ; +; ; Input from mechanical brake + ; dll outvec 3 1 # Time [s] ; + ; dll outvec 3 2 # Generator LSS speed [rad/s] ; + ; dll outvec 3 3 # Deploy brake ; +; ; Output to pitch servo + ; dll outvec 4 1 # time; + ; dll outvec 4 2 # pitchref 1; + ; dll outvec 4 3 # pitchref 2; + ; dll outvec 4 4 # pitchref 3; + ; dll outvec 4 5 # Emerg. stop; +; Input from pitch servo + dll inpvec 4 1 # pitch 1; + dll inpvec 4 2 # pitch 2; + dll inpvec 4 3 # pitch 3; +; Check tower clearence + dll inpvec 5 1 # Bltip tow min d [m]; +; general constant 1.0 ; constant 1.0 - to mesure activity of flap in terms of displacement +; - Check on flap control: + ; ; - From flap controller: - + ; dll type2_dll cyclic_flap_controller inpvec 1 # Ref flap signal bl 1 [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 2 # Ref flap signal bl 2 [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 3 # Ref flap signal bl 3 [deg] ; + ; ; - Mbc values + ; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ; + ; ; - Check Gains - ; + ; dll type2_dll cyclic_flap_controller inpvec 10 # lead angle [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 11 # scaling on rat pow [-] ; + ; dll type2_dll cyclic_flap_controller inpvec 12 # actual kp [deg/kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 13 # actual ki [deg/kNms] ; + ; dll type2_dll cyclic_flap_controller inpvec 14 # actual kd [deg s/kNm] ; + ; ; - Actual deflections - + ; aero beta 1 1 ; + ; aero beta 2 1 ; + ; aero beta 3 1 ; + ; ; - Mbc values + ; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ; +end output; +; +exit; diff --git a/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp10_noturb.p b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp10_noturb.p new file mode 100644 index 00000000..1bc115f7 --- /dev/null +++ b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp10_noturb.p @@ -0,0 +1,55 @@ +### Standard Output +#PBS -N dlc01_steady_wsp10_noturb +#PBS -o ./pbs_out/dlc01_demos/dlc01_steady_wsp10_noturb.out +### Standard Error +#PBS -e ./pbs_out/dlc01_demos/dlc01_steady_wsp10_noturb.err +#PBS -W umask=003 +### Maximum wallclock time format HOURS:MINUTES:SECONDS +#PBS -l walltime=04:00:00 +#PBS -l nodes=1:ppn=1 +### Queue name +#PBS -q workq +### Create scratch directory and copy data to it +cd $PBS_O_WORKDIR +echo "current working dir (pwd):" +pwd +cp -R ./demo_dlc_remote.zip /scratch/$USER/$PBS_JOBID + + +echo "" +echo "Execute commands on scratch nodes" +cd /scratch/$USER/$PBS_JOBID +pwd +/usr/bin/unzip demo_dlc_remote.zip +mkdir -p htc/dlc01_demos/ +mkdir -p res/dlc01_demos/ +mkdir -p logfiles/dlc01_demos/ +mkdir -p turb/ +cp -R $PBS_O_WORKDIR/htc/dlc01_demos/dlc01_steady_wsp10_noturb.htc ./htc/dlc01_demos/ +cp -R $PBS_O_WORKDIR/../turb/none*.bin turb/ +time WINEARCH=win32 WINEPREFIX=~/.wine32 wine hawc2-latest ./htc/dlc01_demos/dlc01_steady_wsp10_noturb.htc & +### wait for jobs to finish +wait +echo "" +echo "Copy back from scratch directory" +cd /scratch/$USER/$PBS_JOBID +mkdir -p $PBS_O_WORKDIR/res/dlc01_demos/ +mkdir -p $PBS_O_WORKDIR/logfiles/dlc01_demos/ +mkdir -p $PBS_O_WORKDIR/animation/ +mkdir -p $PBS_O_WORKDIR/../turb/ +cp -R res/dlc01_demos/. $PBS_O_WORKDIR/res/dlc01_demos/. +cp -R logfiles/dlc01_demos/. $PBS_O_WORKDIR/logfiles/dlc01_demos/. +cp -R animation/. $PBS_O_WORKDIR/animation/. + +echo "" +echo "COPY BACK TURB IF APPLICABLE" +cd turb/ +for i in `ls *.bin`; do if [ -e $PBS_O_WORKDIR/../turb/$i ]; then echo "$i exists no copyback"; else echo "$i copyback"; cp $i $PBS_O_WORKDIR/../turb/; fi; done +cd /scratch/$USER/$PBS_JOBID +echo "END COPY BACK TURB" +echo "" + +echo "" +echo "following files are on the node (find .):" +find . +exit diff --git a/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp8_noturb.p b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp8_noturb.p new file mode 100644 index 00000000..640e5c20 --- /dev/null +++ b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp8_noturb.p @@ -0,0 +1,55 @@ +### Standard Output +#PBS -N dlc01_steady_wsp8_noturb +#PBS -o ./pbs_out/dlc01_demos/dlc01_steady_wsp8_noturb.out +### Standard Error +#PBS -e ./pbs_out/dlc01_demos/dlc01_steady_wsp8_noturb.err +#PBS -W umask=003 +### Maximum wallclock time format HOURS:MINUTES:SECONDS +#PBS -l walltime=04:00:00 +#PBS -l nodes=1:ppn=1 +### Queue name +#PBS -q workq +### Create scratch directory and copy data to it +cd $PBS_O_WORKDIR +echo "current working dir (pwd):" +pwd +cp -R ./demo_dlc_remote.zip /scratch/$USER/$PBS_JOBID + + +echo "" +echo "Execute commands on scratch nodes" +cd /scratch/$USER/$PBS_JOBID +pwd +/usr/bin/unzip demo_dlc_remote.zip +mkdir -p htc/dlc01_demos/ +mkdir -p res/dlc01_demos/ +mkdir -p logfiles/dlc01_demos/ +mkdir -p turb/ +cp -R $PBS_O_WORKDIR/htc/dlc01_demos/dlc01_steady_wsp8_noturb.htc ./htc/dlc01_demos/ +cp -R $PBS_O_WORKDIR/../turb/none*.bin turb/ +time WINEARCH=win32 WINEPREFIX=~/.wine32 wine hawc2-latest ./htc/dlc01_demos/dlc01_steady_wsp8_noturb.htc & +### wait for jobs to finish +wait +echo "" +echo "Copy back from scratch directory" +cd /scratch/$USER/$PBS_JOBID +mkdir -p $PBS_O_WORKDIR/res/dlc01_demos/ +mkdir -p $PBS_O_WORKDIR/logfiles/dlc01_demos/ +mkdir -p $PBS_O_WORKDIR/animation/ +mkdir -p $PBS_O_WORKDIR/../turb/ +cp -R res/dlc01_demos/. $PBS_O_WORKDIR/res/dlc01_demos/. +cp -R logfiles/dlc01_demos/. $PBS_O_WORKDIR/logfiles/dlc01_demos/. +cp -R animation/. $PBS_O_WORKDIR/animation/. + +echo "" +echo "COPY BACK TURB IF APPLICABLE" +cd turb/ +for i in `ls *.bin`; do if [ -e $PBS_O_WORKDIR/../turb/$i ]; then echo "$i exists no copyback"; else echo "$i copyback"; cp $i $PBS_O_WORKDIR/../turb/; fi; done +cd /scratch/$USER/$PBS_JOBID +echo "END COPY BACK TURB" +echo "" + +echo "" +echo "following files are on the node (find .):" +find . +exit diff --git a/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp9_noturb.p b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp9_noturb.p new file mode 100644 index 00000000..a9d5ef52 --- /dev/null +++ b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp9_noturb.p @@ -0,0 +1,55 @@ +### Standard Output +#PBS -N dlc01_steady_wsp9_noturb +#PBS -o ./pbs_out/dlc01_demos/dlc01_steady_wsp9_noturb.out +### Standard Error +#PBS -e ./pbs_out/dlc01_demos/dlc01_steady_wsp9_noturb.err +#PBS -W umask=003 +### Maximum wallclock time format HOURS:MINUTES:SECONDS +#PBS -l walltime=04:00:00 +#PBS -l nodes=1:ppn=1 +### Queue name +#PBS -q workq +### Create scratch directory and copy data to it +cd $PBS_O_WORKDIR +echo "current working dir (pwd):" +pwd +cp -R ./demo_dlc_remote.zip /scratch/$USER/$PBS_JOBID + + +echo "" +echo "Execute commands on scratch nodes" +cd /scratch/$USER/$PBS_JOBID +pwd +/usr/bin/unzip demo_dlc_remote.zip +mkdir -p htc/dlc01_demos/ +mkdir -p res/dlc01_demos/ +mkdir -p logfiles/dlc01_demos/ +mkdir -p turb/ +cp -R $PBS_O_WORKDIR/htc/dlc01_demos/dlc01_steady_wsp9_noturb.htc ./htc/dlc01_demos/ +cp -R $PBS_O_WORKDIR/../turb/none*.bin turb/ +time WINEARCH=win32 WINEPREFIX=~/.wine32 wine hawc2-latest ./htc/dlc01_demos/dlc01_steady_wsp9_noturb.htc & +### wait for jobs to finish +wait +echo "" +echo "Copy back from scratch directory" +cd /scratch/$USER/$PBS_JOBID +mkdir -p $PBS_O_WORKDIR/res/dlc01_demos/ +mkdir -p $PBS_O_WORKDIR/logfiles/dlc01_demos/ +mkdir -p $PBS_O_WORKDIR/animation/ +mkdir -p $PBS_O_WORKDIR/../turb/ +cp -R res/dlc01_demos/. $PBS_O_WORKDIR/res/dlc01_demos/. +cp -R logfiles/dlc01_demos/. $PBS_O_WORKDIR/logfiles/dlc01_demos/. +cp -R animation/. $PBS_O_WORKDIR/animation/. + +echo "" +echo "COPY BACK TURB IF APPLICABLE" +cd turb/ +for i in `ls *.bin`; do if [ -e $PBS_O_WORKDIR/../turb/$i ]; then echo "$i exists no copyback"; else echo "$i copyback"; cp $i $PBS_O_WORKDIR/../turb/; fi; done +cd /scratch/$USER/$PBS_JOBID +echo "END COPY BACK TURB" +echo "" + +echo "" +echo "following files are on the node (find .):" +find . +exit diff --git a/wetb/prepost/tests/data/demo_dlc/ref/prepost/A0001.pkl b/wetb/prepost/tests/data/demo_dlc/ref/prepost/A0001.pkl new file mode 100755 index 0000000000000000000000000000000000000000..2bec5738cd61979d1887c8e6a66f398c8f4f161e GIT binary patch literal 4418 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 literal 0 HcmV?d00001 diff --git a/wetb/prepost/tests/data/demo_dlc/ref/prepost/A0001_tags.txt b/wetb/prepost/tests/data/demo_dlc/ref/prepost/A0001_tags.txt new file mode 100755 index 00000000..6de32e2b --- /dev/null +++ b/wetb/prepost/tests/data/demo_dlc/ref/prepost/A0001_tags.txt @@ -0,0 +1,178 @@ + + +=============================================================================== + iter_dict +=============================================================================== + [empty] : [False] + +=============================================================================== + opt_tags +=============================================================================== + +------------------------------------------------------------------------------- + opt_tags set +------------------------------------------------------------------------------- + [Case folder] : dlc01_demos + [Case id.] : dlc01_steady_wsp8_noturb + [Cut-in time] : -1 + [Cut-out time] : -1 + [DLC] : 01 + [Dyn stall] : 2 + [Free shaft rot] : True + [G_A] : True + [G_T] : True + [G_phi0] : True + [G_t0] : True + [Grid loss time] : 5000 + [Induction] : 1 + [Pitch 1 DLC22b] : 0 + [Pitvel 1] : 3 + [Pitvel 2] : 4 + [Rotor azimuth] : 0 + [Rotor locked] : False + [Stop type] : 1 + [TI] : 0.232 + [Time pitch runaway] : 5000 + [Time stuck DLC22b] : -1 + [Turb base name] : none + [Windspeed] : 8 + [case_id] : dlc01_steady_wsp8_noturb + [data_dir] : data/ + [dis_setbeta] : True + [duration] : 20.0 + [gust] : False + [gust_type] : True + [htc_dir] : htc/dlc01_demos/ + [init_wr] : 0.5 + [iter_dir] : iter/dlc01_demos/ + [log_dir] : logfiles/dlc01_demos/ + [out_format] : hawc_binary + [pbs_in_dir] : pbs_in/dlc01_demos/ + [pbs_out_dir] : pbs_out/dlc01_demos/ + [res_dir] : res/dlc01_demos/ + [shear_exp] : 0 + [staircase] : False + [t flap on] : -1 + [t0] : 20 + [time stop] : 40 + [time_stop] : 40 + [tu_model] : 0 + [tu_seed] : 0 + [turb_base_name] : none + [turb_dx] : 0.0390625 + [wdir] : 0 + [windramp] : False + [wsp factor] : 1.0 + [zip_root_files] : ['pbs_in_file_cache.txt', 'A0001_ErrorLog.csv'] + +------------------------------------------------------------------------------- + opt_tags set +------------------------------------------------------------------------------- + [Case folder] : dlc01_demos + [Case id.] : dlc01_steady_wsp9_noturb + [Cut-in time] : -1 + [Cut-out time] : -1 + [DLC] : 01 + [Dyn stall] : 2 + [Free shaft rot] : True + [G_A] : True + [G_T] : True + [G_phi0] : True + [G_t0] : True + [Grid loss time] : 5000 + [Induction] : 1 + [Pitch 1 DLC22b] : 0 + [Pitvel 1] : 3 + [Pitvel 2] : 4 + [Rotor azimuth] : 0 + [Rotor locked] : False + [Stop type] : 1 + [TI] : 0.219555555556 + [Time pitch runaway] : 5000 + [Time stuck DLC22b] : -1 + [Turb base name] : none + [Windspeed] : 9 + [case_id] : dlc01_steady_wsp9_noturb + [data_dir] : data/ + [dis_setbeta] : True + [duration] : 20.0 + [gust] : False + [gust_type] : True + [htc_dir] : htc/dlc01_demos/ + [init_wr] : 0.5 + [iter_dir] : iter/dlc01_demos/ + [log_dir] : logfiles/dlc01_demos/ + [out_format] : hawc_binary + [pbs_in_dir] : pbs_in/dlc01_demos/ + [pbs_out_dir] : pbs_out/dlc01_demos/ + [res_dir] : res/dlc01_demos/ + [shear_exp] : 0 + [staircase] : False + [t flap on] : -1 + [t0] : 20 + [time stop] : 40 + [time_stop] : 40 + [tu_model] : 0 + [tu_seed] : 0 + [turb_base_name] : none + [turb_dx] : 0.0439453125 + [wdir] : 0 + [windramp] : False + [wsp factor] : 0.888888888889 + [zip_root_files] : ['pbs_in_file_cache.txt', 'A0001_ErrorLog.csv'] + +------------------------------------------------------------------------------- + opt_tags set +------------------------------------------------------------------------------- + [Case folder] : dlc01_demos + [Case id.] : dlc01_steady_wsp10_noturb + [Cut-in time] : -1 + [Cut-out time] : -1 + [DLC] : 01 + [Dyn stall] : 2 + [Free shaft rot] : True + [G_A] : True + [G_T] : True + [G_phi0] : True + [G_t0] : True + [Grid loss time] : 5000 + [Induction] : 1 + [Pitch 1 DLC22b] : 0 + [Pitvel 1] : 3 + [Pitvel 2] : 4 + [Rotor azimuth] : 0 + [Rotor locked] : False + [Stop type] : 1 + [TI] : 0.2096 + [Time pitch runaway] : 5000 + [Time stuck DLC22b] : -1 + [Turb base name] : none + [Windspeed] : 10 + [case_id] : dlc01_steady_wsp10_noturb + [data_dir] : data/ + [dis_setbeta] : True + [duration] : 20.0 + [gust] : False + [gust_type] : True + [htc_dir] : htc/dlc01_demos/ + [init_wr] : 0.5 + [iter_dir] : iter/dlc01_demos/ + [log_dir] : logfiles/dlc01_demos/ + [out_format] : hawc_binary + [pbs_in_dir] : pbs_in/dlc01_demos/ + [pbs_out_dir] : pbs_out/dlc01_demos/ + [res_dir] : res/dlc01_demos/ + [shear_exp] : 0 + [staircase] : False + [t flap on] : -1 + [t0] : 20 + [time stop] : 40 + [time_stop] : 40 + [tu_model] : 0 + [tu_seed] : 0 + [turb_base_name] : none + [turb_dx] : 0.048828125 + [wdir] : 0 + [windramp] : False + [wsp factor] : 0.8 + [zip_root_files] : ['pbs_in_file_cache.txt', 'A0001_ErrorLog.csv'] diff --git a/wetb/prepost/tests/data/demo_dlc/source/data/minimal_demo_file.txt b/wetb/prepost/tests/data/demo_dlc/source/data/minimal_demo_file.txt new file mode 100644 index 00000000..8db26215 --- /dev/null +++ b/wetb/prepost/tests/data/demo_dlc/source/data/minimal_demo_file.txt @@ -0,0 +1 @@ +just one demo line diff --git a/wetb/prepost/tests/data/demo_dlc/source/demo_dlc_remote.zip b/wetb/prepost/tests/data/demo_dlc/source/demo_dlc_remote.zip new file mode 100644 index 0000000000000000000000000000000000000000..60fe434ad3dc15cf5e1dd1977c630107c611ac55 GIT binary patch literal 9358 zcma)?WmFySm!)wh$i>|ucyM=jcXuxC?%W{3?P9^h#ogV5yN2Kp+=2$3{JMLlXJ+-k zXHKnm)vh{wpIYm!Z&i<)A}kyZ6ciK^)UpRi?yvY?h4fchx;T5fyEw9`{Yw}8Uze4+ zr}_WG;_2mX@!wd`{!X#;v}7}NGWYPbcK_d;#y-I^$bL{qJCsmR*ojb3wEvgW%G$}r z)XLHFKa!^6?Ck8HSpUvC54ucU=V{nJ%<6?{F7GBijJJb%p=1>3W&G~lP|l}cd;ahu z&aLi7V>e{0u$YqeJ=H&CHK;e_tb>>WIi;W^xp8cB>0`Y#){#u{+{O_C(N&WXJ^VAx z4b@o7nFy<%Q3KVwT+2j?)0p#~1gn0_>u2G29I%_n;e{&sFBj3STJuM4kHKW(__mO# zJQwl|aO-c@wFauSvxT-u#s$TZaVzRW>8x{tK%2)eJGI2jObs|m=@^2@*15{{<4Zc5 zF1s�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 YTToMkNBGB!@b_?ohJr$*{^#m{06WKVl>h($ literal 0 HcmV?d00001 diff --git a/wetb/prepost/tests/data/demo_dlc/source/htc/DLCs/dlc01_demos.xlsx b/wetb/prepost/tests/data/demo_dlc/source/htc/DLCs/dlc01_demos.xlsx new file mode 100755 index 0000000000000000000000000000000000000000..1f4c2311367ccea9d06f57db32793e8948f0e959 GIT binary patch literal 6554 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 literal 0 HcmV?d00001 diff --git a/wetb/prepost/tests/data/demo_dlc/source/htc/_master/demo_dlc_master_A0001.htc b/wetb/prepost/tests/data/demo_dlc/source/htc/_master/demo_dlc_master_A0001.htc new file mode 100755 index 00000000..6e956f80 --- /dev/null +++ b/wetb/prepost/tests/data/demo_dlc/source/htc/_master/demo_dlc_master_A0001.htc @@ -0,0 +1,850 @@ +;this version was at some point based on: Avatar_10MW_RWT version 1, 06-08-14, Anyd +begin simulation; + time_stop [time stop]; + solvertype 1 ; (newmark) + on_no_convergence continue ; +; convergence_limits 1E3 1.0 1E-7 ; + logfile ./logfiles/[Case folder]/[Case id.].log ; + begin newmark; + deltat 0.02; + end newmark; +end simulation; +; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +begin new_htc_structure; +;-------------------------------------------------------------------------------------------------- +[staircase] beam_output_file_name ./res_eigen/[Case folder]/[Case id.]/[Case id.]_beam.dat; +[staircase] body_output_file_name ./res_eigen/[Case folder]/[Case id.]/[Case id.]_body.dat; +[staircase] struct_inertia_output_file_name ./res_eigen/[Case folder]/[Case id.]/[Case id.]_struct.dat; +[staircase] body_eigenanalysis_file_name ./res_eigen/[Case folder]/[Case id.]/[Case id.]_body_eigen.dat; +[staircase] structure_eigenanalysis_file_name ./res_eigen/[Case folder]/[Case id.]/[Case id.]_strc_eigen.dat; +;--------------------------------------------------------------------------------------------------- + begin main_body; tower 123.6m + name tower ; + type timoschenko ; + nbodies 3 ; + node_distribution c2_def ; + damping_posdef 0 0 0 4.7E-03 4.7E-03 4.3E-04 ; tuned by Anyd 12/8/14 + begin timoschenko_input; + filename ./data/AVATAR_10MW_RWT_tower_st.dat; + set 1 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 20; + sec 1 0 0 0.000 0 ; x,y,z,twist + sec 2 0 0 -12.293 0 ; + sec 3 0 0 -12.294 0 ; + sec 4 0 0 -24.585 0 ; + sec 5 0 0 -24.586 0 ; + sec 6 0 0 -36.878 0 ; + sec 7 0 0 -36.879 0 ; + sec 8 0 0 -49.171 0 ; + sec 9 0 0 -49.172 0 ; + sec 10 0 0 -61.463 0 ; + sec 11 0 0 -61.464 0 ; + sec 12 0 0 -73.756 0 ; + sec 13 0 0 -73.757 0 ; + sec 14 0 0 -86.049 0 ; + sec 15 0 0 -86.050 0 ; + sec 16 0 0 -98.341 0 ; + sec 17 0 0 -98.342 0 ; + sec 18 0 0 -110.634 0 ; + sec 19 0 0 -110.635 0 ; + sec 20 0 0 -123.600 0 ; + end c2_def ; + end main_body; +; + begin main_body; + name towertop ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 7.50E-03 7.40E-03 7.00E-03 7.00E-03 7.00E-03 7.00E-03 ; "changed by Anyd + concentrated_mass 2.0 0.0 2.6870E+00 3.0061E-01 4.4604E+05 4.1060E+06 4.1060E+05 4.1060E+06 ; Nacel + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Towertop_st.dat ; + set 1 2 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 -2.75 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name shaft ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; +; damping_posdef 8.00E-3 8.00E-03 8.00E-02 4.65E-04 4.65E-04 2.38E-02 ; "tuned by Anyd 22/2/13 + damping_posdef 0.0 0.0 3.983E-03 4.65E-04 4.65E-04 3.983E-03 ; "tuned by Anyd 23/5/13 to 31.45 l + concentrated_mass 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.751E+06 ; generator equivalent slow shaft "re_tu + 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 + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Shaft_st.dat ; + set 1 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 5; + sec 1 0.0 0.0 0.0 0.0 ; Tower top x,y,z,twist + sec 2 0.0 0.0 1.5 0.0 ; + sec 3 0.0 0.0 3.0 0.0 ; + sec 4 0.0 0.0 4.4 0.0 ; Main bearing + sec 5 0.0 0.0 7.1 0.0 ; Rotor centre + end c2_def ; + end main_body; +; + begin main_body; + name shaft_nonrotate ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.00E+00 0.00E+00 0.00E+00 1.0E-01 1.0E-01 1.0E-01 ; + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Shaft_st.dat ; + set 1 3; dummy light and stiff structure + end timoschenko_input; + begin c2_def; + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; + sec 2 0.0 0.0 0.1 0.0 ; + end c2_def; + end main_body; +; + begin main_body; + name hub1 ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 2.00E-05 2.00E-05 2.00E-04 3.00E-06 3.00E-06 2.00E-05; + begin timoschenko_input; + filename ./data/DTU_10MW_RWT_Hub_st.dat ; + set 1 2 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 2.8 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name hub2 ; + copy_main_body hub1; + end main_body; +; + begin main_body; + name hub3 ; + copy_main_body hub1 ; + end main_body; +; + begin main_body; + name blade1 ; + type timoschenko ; + nbodies 10 ; + node_distribution c2_def; +; damping_posdef 0.0 0.0 0.0 2.5e-3 8.9e-4 3.2e-4 ; "Tuned by Anyd" +; damping_posdef 0.0 0.0 0.0 1.5e-3 2.45e-3 3.2e-4 ; " 3% damping tuned by Anyd 20/02/12 unable to +; damping_posdef 0.0 0.0 0.0 2.1e-3 1.9e-3 1.3e-4 ; " 3% damping tuned by Anyd 15/08/14 rev2 + damping_posdef 0.0 0.0 0.0 1.68e-3 2.25e-3 1.0e-4 ; " 3% damping tuned by Anyd 16/12/14 + begin timoschenko_input ; + filename ./data/AVATAR_10MW_RWT_Blade_st.dat ; + set 1 9 ; + end timoschenko_input; + begin c2_def; + nsec 27 ; + sec 1 -0.001 -0.001 0.000 -17.280 ; + sec 2 -0.005 -0.001 2.220 -17.280 ; + sec 3 -0.006 -0.000 4.440 -17.280 ; + sec 4 -0.086 0.022 6.660 -17.280 ; + sec 5 -0.231 0.069 11.039 -17.273 ; + sec 6 -0.447 0.121 15.418 -16.441 ; + sec 7 -0.690 0.161 19.797 -14.613 ; + sec 8 -0.812 0.162 24.176 -12.578 ; + sec 9 -0.891 0.158 28.555 -10.588 ; + sec 10 -0.865 0.124 32.934 -9.070 ; + sec 11 -0.833 0.112 37.313 -8.224 ; + sec 12 -0.797 0.102 41.692 -7.688 ; + sec 13 -0.760 0.093 46.071 -7.205 ; + sec 14 -0.721 0.083 50.450 -6.749 ; + sec 15 -0.683 0.075 54.829 -6.288 ; + sec 16 -0.644 0.066 59.208 -5.838 ; + sec 17 -0.606 0.058 63.587 -5.401 ; + sec 18 -0.567 0.050 67.966 -4.982 ; + sec 19 -0.529 0.044 72.345 -4.640 ; + sec 20 -0.492 0.037 76.724 -4.380 ; + sec 21 -0.456 0.032 81.103 -4.144 ; + sec 22 -0.422 0.026 85.482 -3.914 ; + sec 23 -0.392 0.021 89.861 -3.685 ; + sec 24 -0.346 0.014 94.240 -3.460 ; + sec 25 -0.307 0.010 96.190 -3.350 ; + sec 26 -0.249 0.005 98.130 -3.250 ; + sec 27 -0.089 0.006 100.080 -3.140 ; + end c2_def ; + end main_body; +; + begin main_body; + name blade2 ; + copy_main_body blade1; + end main_body; +; + begin main_body; + name blade3 ; + copy_main_body blade1 ; + end main_body; +;------------------------------------------------------------------------------------------------------------------------------- +; + begin orientation; + begin base; + body tower; + inipos 0.0 0.0 0.0 ; initial position of node 1 + body_eulerang 0.0 0.0 0.0; + end base; +; + begin relative; + body1 tower last; + body2 towertop 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + begin relative; + body1 towertop last; + body2 shaft 1; + body2_eulerang 90.0 0.0 0.0; + body2_eulerang 5.0 0.0 0.0; 5 deg tilt angle + body2_eulerang 0.0 0.0 [Rotor azimuth]; +[Free shaft rot] mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 [init_wr] ; mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 [init_wr]; + end relative; +; + begin relative; dummy non rotating hub coordinates + body1 towertop last; + body2 shaft_nonrotate 1; + body2_eulerang 90.0 0.0 0.0; + body2_eulerang 5.0 0.0 0.0; same 5 deg tilt angle as real shaft + end relative; +; + begin relative; + body1 shaft last; + body2 hub1 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 180.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub2 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub3 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 -60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 hub1 last; + body2 blade1 1; + body2_eulerang 0.0 0.0 0; + end relative; +; + begin relative; + body1 hub2 last; + body2 blade2 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + begin relative; + body1 hub3 last; + body2 blade3 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + end orientation; +;------------------------------------------------------------------------------------------------------------------------------- +begin constraint; +; + begin fix0; fixed to ground in translation and rotation of node 1 + body tower; + end fix0; +; + begin fix1; + body1 tower last ; + body2 towertop 1; + end fix1; +; +[Free shaft rot] begin bearing1; free bearing +[Free shaft rot] name shaft_rot; +[Free shaft rot] body1 towertop last; +[Free shaft rot] body2 shaft 1; +[Free shaft rot] 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 +[Free shaft rot] end bearing1; +; +[Rotor locked] begin bearing3; free bearing +[Rotor locked] name shaft_rot; +[Rotor locked] body1 towertop last; +[Rotor locked] body2 shaft 1; +[Rotor locked] 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 +[Rotor locked] omegas 0.0 ; +[Rotor locked] end bearing3; +; + begin fix1; + body1 tower last ; + body2 shaft_nonrotate 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub1 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub2 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub3 1; + end fix1; +; + begin bearing2; + name pitch1; + body1 hub1 last; + body2 blade1 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch2; + body1 hub2 last; + body2 blade2 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch3; + body1 hub3 last; + body2 blade3 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +end constraint; +; +end new_htc_structure; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +begin wind ; + density 1.225 ; + wsp [Windspeed] ; + tint [TI] ; + horizontal_input 1 ; + windfield_rotations [wdir] 8.0 0.0 ; yaw, tilt (positive=upflow=wind coming from below), rotation + center_pos0 0.0 0.0 -127 ; hub heigth + shear_format 3 [shear_exp] ; + turb_format [tu_model] ; 0=none, 1=mann,2=flex + tower_shadow_method 3 ; 0=none, 1=potential flow, 2=jet + scale_time_start [t0] ; + wind_ramp_factor 0.0 [t0] [wsp factor] 1.0 ; + [gust] iec_gust [gust_type] [G_A] [G_phi0] [G_t0] [G_T] ; +; +[staircase] wind_ramp_abs 400.0 401.0 0.0 1.0 ; wsp. after the step: 5.0 +[staircase] wind_ramp_abs 501.0 502.0 0.0 1.0 ; wsp. after the step: 6.0 +[staircase] wind_ramp_abs 602.0 603.0 0.0 1.0 ; wsp. after the step: 7.0 +[staircase] wind_ramp_abs 703.0 704.0 0.0 1.0 ; wsp. after the step: 8.0 +[staircase] wind_ramp_abs 804.0 805.0 0.0 1.0 ; wsp. after the step: 9.0 +[staircase] wind_ramp_abs 905.0 906.0 0.0 1.0 ; wsp. after the step: 10.0 +[staircase] wind_ramp_abs 1006.0 1007.0 0.0 1.0 ; wsp. after the step: 11.0 +[staircase] wind_ramp_abs 1107.0 1108.0 0.0 1.0 ; wsp. after the step: 12.0 +[staircase] wind_ramp_abs 1208.0 1209.0 0.0 1.0 ; wsp. after the step: 13.0 +[staircase] wind_ramp_abs 1309.0 1310.0 0.0 1.0 ; wsp. after the step: 14.0 +[staircase] wind_ramp_abs 1410.0 1411.0 0.0 1.0 ; wsp. after the step: 15.0 +[staircase] wind_ramp_abs 1511.0 1512.0 0.0 1.0 ; wsp. after the step: 16.0 +[staircase] wind_ramp_abs 1612.0 1613.0 0.0 1.0 ; wsp. after the step: 17.0 +[staircase] wind_ramp_abs 1713.0 1714.0 0.0 1.0 ; wsp. after the step: 18.0 +[staircase] wind_ramp_abs 1814.0 1815.0 0.0 1.0 ; wsp. after the step: 19.0 +[staircase] wind_ramp_abs 1915.0 1916.0 0.0 1.0 ; wsp. after the step: 20.0 +[staircase] wind_ramp_abs 2016.0 2017.0 0.0 1.0 ; wsp. after the step: 21.0 +[staircase] wind_ramp_abs 2117.0 2118.0 0.0 1.0 ; wsp. after the step: 22.0 +[staircase] wind_ramp_abs 2218.0 2219.0 0.0 1.0 ; wsp. after the step: 23.0 +[staircase] wind_ramp_abs 2319.0 2320.0 0.0 1.0 ; wsp. after the step: 24.0 +[staircase] wind_ramp_abs 2420.0 2421.0 0.0 1.0 ; wsp. after the step: 25.0 + ; +[windramp] wind_ramp_abs 400.0 2200.0 0.0 21.0 ; wsp. after the step: 25.0 +[windramp] wind_ramp_abs 2400.0 4200.0 0.0 -21.0 ; wsp. after the step: 25.0 + ; + begin mann ; + create_turb_parameters 29.4 1.0 3.9 [tu_seed] 1.0 ; L, alfaeps, gamma, seed, highfrq compensation + filename_u ./[turb_dir][Turb base name]u.bin ; + filename_v ./[turb_dir][Turb base name]v.bin ; + filename_w ./[turb_dir][Turb base name]w.bin ; + box_dim_u 8192 [turb_dx] ; + box_dim_v 32 7.5; + box_dim_w 32 7.5; + std_scaling 1.0 0.7 0.5 ; + end mann ; +; + begin tower_shadow_potential_2; + tower_mbdy_link tower; + nsec 2; + radius 0.0 4.15 ; + radius 123.6 2.75 ; (radius) + end tower_shadow_potential_2; +end wind; +; +begin aerodrag ; + begin aerodrag_element ; + mbdy_name tower; + aerodrag_sections uniform 10 ; + nsec 2 ; + sec 0.0 0.6 8.3 ; tower bottom + sec 123.6 0.6 5.5 ; tower top (diameter) + end aerodrag_element; +; + begin aerodrag_element ; Nacelle drag side + mbdy_name shaft; + aerodrag_sections uniform 2 ; + nsec 2 ; + sec 0.0 0.8 10.0 ; + sec 7.01 0.8 10.0 ; + end aerodrag_element; +end aerodrag; +; +begin aero ; + nblades 3; + hub_vec shaft -3 ; rotor rotation vector (normally shaft composant directed from pressure to sustion side) + link 1 mbdy_c2_def blade1; + link 2 mbdy_c2_def blade2; + link 3 mbdy_c2_def blade3; + ae_filename ./data/AVATAR_10MW_RWT_ae.dat ; + pc_filename ./data/AVATAR_10MW_RWT_pc_hama_v1.dat ; + induction_method [Induction] ; 0=none, 1=normal + aerocalc_method 1 ; 0=ingen aerodynamic, 1=med aerodynamic + aero_distribution ae_file 1 ; + ae_sets 1 1 1; + tiploss_method 1 ; 0=none, 1=prandtl + dynstall_method [Dyn stall] ; 0=none, 1=stig øye method,2=mhh method +; +; ; --- Flaps --- ; + ; begin dynstall_ateflap ; + ; Ais 0.165 0.335 0.0 ; + ; Bis 0.0455 0.30 0.30 ; + ; flap 59.5925 85.5023 ./data/Flap_dturwt1_Thk24.ds ; Flap Sec: 1 + ; end dynstall_ateflap; +end aero ; +;------------------------------------------------------------------------------------------------- +begin dll; +; + begin type2_dll; + name risoe_controller ; + filename ./control/risoe_controller.dll ; + dll_subroutine_init init_regulation ; + dll_subroutine_update update_regulation ; + arraysizes_init 52 1 ; + arraysizes_update 12 100 ; + begin init ; + ; Overall parameters + constant 1 10000.0 ; Rated power [kW] + constant 2 0.628 ; Minimum rotor speed [rad/s] + constant 3 1.005 ; Rated rotor speed [rad/s] + constant 4 15.6E+06 ; Maximum allowable generator torque [Nm] + constant 5 100.0 ; Minimum pitch angle, theta_min [deg], + ; if |theta_min|>90, then a table of <wsp,theta_min> is read ; + ; from a file named 'wpdata.n', where n=int(theta_min) + constant 6 90.0 ; Maximum pitch angle [deg] + constant 7 10.0 ; Maximum pitch velocity operation [deg/s] + constant 8 0.4 ; Frequency of generator speed filter [Hz] + constant 9 0.7 ; Damping ratio of speed filter [-] + constant 10 1.64 ; Frequency of free-free DT torsion mode [Hz], if zero no notch filter used + ; Partial load control parameters + constant 11 0.9648030e+07 ; Optimal Cp tracking K factor [Nm/(rad/s)^2], ; + ; Qg=K*Omega^2, K=eta*0.5*rho*A*Cp_opt*R^3/lambda_opt^3 + constant 12 1.047610E+08 ; Proportional gain of torque controller [Nm/(rad/s)] + constant 13 0.153367E+08 ; Integral gain of torque controller [Nm/rad] + constant 14 0.0 ; Differential gain of torque controller [Nm/(rad/s^2)] +; Full load control parameters + constant 15 1 ; Generator control switch [1=constant power, 2=constant torque] + constant 16 0.762489 ; Proportional gain of pitch controller [rad/(rad/s)] + constant 17 0.224086 ; Integral gain of pitch controller [rad/rad] + constant 18 0.0 ; Differential gain of pitch controller [rad/(rad/s^2)] + constant 19 0.4e-9 ; Proportional power error gain [rad/W] + constant 20 0.4e-9 ; Integral power error gain [rad/(Ws)] + constant 21 10.6824 ; Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg] + constant 22 601.25499 ; Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] & + ; (if zero, KK1 = pitch angle at double gain) + constant 23 1.3 ; Relative speed for double nonlinear gain [-] +; Cut-in simulation parameters + constant 24 [Cut-in time] ; Cut-in time [s] + constant 25 1.0 ; Time delay for soft start of torque [1/1P] +; Cut-out simulation parameters + constant 26 [Cut-out time] ; Cut-out time [s] + constant 27 5.0 ; Time constant for linear torque cut-out [s] + constant 28 [Stop type] ; Stop type [1=normal, 2=emergency] + constant 29 1.0 ; Time delay for pitch stop after shut-down signal [s] + constant 30 [Pitvel 1] ; Maximum pitch velocity during initial period of stop [deg/s] + constant 31 3.0 ; Time period of initial pitch stop phase [s] (maintains pitch speed specified in constant 30) + constant 32 [Pitvel 2] ; Maximum pitch velocity during final phase of stop [deg/s] +; Expert parameters (keep default values unless otherwise given) + constant 33 2.0 ; Lower angle above lowest minimum pitch angle for switch [deg] + constant 34 2.0 ; Upper angle above lowest minimum pitch angle for switch [deg], if equal then hard switch + constant 35 95.0 ; Ratio between filtered speed and reference speed for fully open torque limits [%] + constant 36 2.0 ; Time constant of 1st order filter on wind speed used for minimum pitch [1/1P] + constant 37 1.0 ; Time constant of 1st order filter on pitch angle used for gain scheduling [1/1P] +; Drivetrain damper + constant 38 0.0 ; Proportional gain of active DT damper [Nm/(rad/s)], requires frequency in input 10 +; Over speed + constant 39 25.0 ; Overspeed percentage before initiating turbine controller alarm (shut-down) [%] +; Additional non-linear pitch control term (not used when all zero) + constant 40 0.0 ; Err0 [rad/s] + constant 41 0.0 ; ErrDot0 [rad/s^2] + constant 42 0.0 ; PitNonLin1 [rad/s] +; Storm control command + constant 43 28.0 ; Wind speed 'Vstorm' above which derating of rotor speed is used [m/s] + constant 44 28.0 ; Cut-out wind speed (only used for derating of rotor speed in storm) [m/s] +; Safety system parameters + constant 45 25.0 ; Overspeed percentage before initiating safety system alarm (shut-down) [%] + constant 46 1.5 ; Max low-pass filtered tower top acceleration level [m/s^2] - max in DLC 1.3=1.1 m/s^2 +; Turbine parameter + constant 47 205.8 ; Nominal rotor diameter [m] +; Parameters for rotor inertia reduction in variable speed region + constant 48 0.0 ; Proportional gain on rotor acceleration in variable speed region [Nm/(rad/s^2)] (not used when zero) +; Parameters for alternative partial load controller with PI regulated TSR tracking + constant 49 0.0 ; Optimal tip speed ratio [-] (only used when K=constant 11 = 0 otherwise Qg=K*Omega^2 is used) +; Parameters for adding aerodynamic drivetrain damping on gain scheduling + constant 50 0.0 ; Proportional gain of aerodynamic DT damping [Nm/(rad/s)] + constant 51 0.0 ; Coefficient of linear term in aerodynamic DT damping scheduling, KK1 [deg] + constant 52 0.0 ; Coefficient of quadratic term in aerodynamic DT damping scheduling, KK2 [deg^2] + end init ; +; + begin output ; + general time ; [s] + constraint bearing1 shaft_rot 1 only 2 ; Drivetrain speed [rad/s] + constraint bearing2 pitch1 1 only 1; [rad] + constraint bearing2 pitch2 1 only 1; [rad] + constraint bearing2 pitch3 1 only 1; [rad] + wind free_wind 1 0.0 0.0 -127 ; Global coordinates at hub height + dll inpvec 2 2 ; Elec. power from generator servo .dll + dll inpvec 2 8 ; Grid state flag from generator servo .dll + mbdy state acc tower 10 1.0 global only 1 ; Tower top x-acceleration [m/s^2] + mbdy state acc tower 10 1.0 global only 2 ; Tower top y-acceleration [m/s^2] + end output; + end type2_dll; +; + begin type2_dll; + name generator_servo ; + filename ./control/generator_servo.dll ; + dll_subroutine_init init_generator_servo ; + dll_subroutine_update update_generator_servo ; + arraysizes_init 7 1 ; + arraysizes_update 4 8 ; + begin init ; + constant 1 20.0 ; Frequency of 2nd order servo model of generator-converter system [Hz] + constant 2 0.9 ; Damping ratio 2nd order servo model of generator-converter system [-] + constant 3 15.6E+06 ; Maximum allowable LSS torque (pull-out torque) [Nm] + constant 4 0.94 ; Generator efficiency [-] + constant 5 1.0 ; Gearratio [-] + constant 6 0.0 ; Time for half value in softstart of torque [s] + constant 7 [Grid loss time] ; Time for grid loss [s] + end init ; +; + begin output; + general time ; Time [s] + dll inpvec 1 1 ; Electrical torque reference [Nm] + constraint bearing1 shaft_rot 1 only 2; Generator LSS speed [rad/s] + mbdy momentvec shaft 1 1 shaft only 3 ; Shaft moment [kNm] (Qshaft) + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name mech_brake ; + filename ./control/mech_brake.dll ; + dll_subroutine_init init_mech_brake ; + dll_subroutine_update update_mech_brake ; + arraysizes_init 7 1 ; + arraysizes_update 4 6 ; + begin init ; + constant 1 5225.35 ; Fully deployed maximum brake torque [Nm] (0.6*max torque) + constant 2 100.0 ; Parameter alpha used in Q = tanh(omega*alpha), typically 1e2/Omega_nom + constant 3 0.5 ; Delay time for before brake starts to deploy [s] + constant 4 0.74 ; Time for brake to become fully deployed [s] + end init ; +; + begin output; + general time ; Time [s] + constraint bearing1 shaft_rot 1 only 2 ; Generator LSS speed [rad/s] + dll inpvec 1 25 ; Command to deploy mechanical disc brake [0,1] + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name servo_with_limits ; + filename ./control/servo_with_limits.dll ; + dll_subroutine_init init_servo_with_limits ; + dll_subroutine_update update_servo_with_limits ; + arraysizes_init 10 1 ; + arraysizes_update 5 9 ; + begin init ; + constant 1 3 ; Number of blades [-] + constant 2 1.0 ; Frequency of 2nd order servo model of pitch system [Hz] + constant 3 0.7 ; Damping ratio 2nd order servo model of pitch system [-] + constant 4 10.0 ; Max. pitch speed [deg/s] + constant 5 15.0 ; Max. pitch acceleration [deg/s^2] + constant 6 -5.0 ; Min. pitch angle [deg] + constant 7 90.0 ; Max. pitch angle [deg] + constant 8 [Time pitch runaway] ; Time for pitch runaway [s] + constant 9 [Time stuck DLC22b] ; Time for stuck blade 1 [s] + constant 10 [Pitch 1 DLC22b] ; Angle of stuck blade 1 [deg] + end init ; + begin output; + general time ; Time [s] + dll inpvec 1 2 ; Pitch1 demand angle [rad] + dll inpvec 1 3 ; Pitch2 demand angle [rad] + dll inpvec 1 4 ; Pitch3 demand angle [rad] + dll inpvec 1 26 ; Flag for emergency pitch stop [0=off/1=on] + end output; +; + begin actions; + constraint bearing2 angle pitch1 ; Angle pitch1 bearing [rad] + constraint bearing2 angle pitch2 ; Angle pitch2 bearing [rad] + constraint bearing2 angle pitch3 ; Angle pitch3 bearing [rad] + end actions; + end type2_dll; +; +; --- DLL for tower-blade tip distance -- ; + begin type2_dll; + name disttowtip ; + filename ./control/towclearsens.dll ; + dll_subroutine_init initialize ; + dll_subroutine_update update ; + arraysizes_init 1 1 ; + arraysizes_update 12 4 ; + begin init ; + constant 1 3.87 ; Tower radius close to downward blade tip [m] + end init ; + begin output; + mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m + mbdy state pos blade1 26 1.0 global ; [4,5,6] + mbdy state pos blade2 26 1.0 global ; [7,8,9] + mbdy state pos blade3 26 1.0 global ; [10,11,12] + end output; + end type2_dll; +end dll; +; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +; +begin output; + filename ./res/[Case folder]/[Case id.] ; + time [t0] [time stop] ; + data_format [out_format]; + buffer 1 ; +; + general time; + constraint bearing1 shaft_rot 2; angle and angle velocity + constraint bearing2 pitch1 5; angle and angle velocity + constraint bearing2 pitch2 5; angle and angle velocity + constraint bearing2 pitch3 5; angle and angle velocity + aero omega ; + aero torque; + aero power; + aero thrust; + wind free_wind 1 0.0 0.0 -127; local wind at fixed position: coo (1=global,2=non-rotation rotor coo.), pos x, pos y, pos z + ; non rotating coordinates shaft tip: equivalent to stationary hub in BLADED + mbdy momentvec shaft 3 2 shaft_nonrotate # non rotating shaft tip ; + mbdy forcevec shaft 3 2 shaft_nonrotate # non rotating shaft tip ; + ; Moments: + mbdy momentvec tower 1 1 tower # tower base ; + mbdy momentvec tower 19 2 tower # tower yaw bearing ; + mbdy momentvec shaft 4 1 shaft # main bearing ; + mbdy momentvec blade1 3 2 blade1 # blade 1 root ; + mbdy momentvec blade2 3 2 blade2 # blade 2 root ; + mbdy momentvec blade3 3 2 blade3 # blade 3 root ; + ; blade 2,3 root section loads + mbdy momentvec blade2 3 2 local # blade 2 section root; + mbdy momentvec blade3 3 2 local # blade 3 section root; + ; blade 1 sectional loads in local coordinates + mbdy momentvec blade1 2 2 local # blade 1 section; + mbdy momentvec blade1 3 2 local # blade 1 section root; + mbdy momentvec blade1 4 2 local # blade 1 section; + mbdy momentvec blade1 5 2 local # blade 1 section; + mbdy momentvec blade1 6 2 local # blade 1 section; + mbdy momentvec blade1 7 2 local # blade 1 section; + mbdy momentvec blade1 8 2 local # blade 1 section; + mbdy momentvec blade1 9 2 local # blade 1 section; + mbdy momentvec blade1 10 2 local # blade 1 section; + mbdy momentvec blade1 11 2 local # blade 1 section; + mbdy momentvec blade1 12 2 local # blade 1 section; + mbdy momentvec blade1 13 2 local # blade 1 section; + mbdy momentvec blade1 14 2 local # blade 1 section; + mbdy momentvec blade1 15 2 local # blade 1 section; + mbdy momentvec blade1 16 2 local # blade 1 section; + mbdy momentvec blade1 17 2 local # blade 1 section; + mbdy momentvec blade1 18 2 local # blade 1 section; + mbdy momentvec blade1 19 2 local # blade 1 section; + mbdy momentvec blade1 20 2 local # blade 1 section; + mbdy momentvec blade1 21 2 local # blade 1 section; + mbdy momentvec blade1 22 2 local # blade 1 section; + mbdy momentvec blade1 23 2 local # blade 1 section; + mbdy momentvec blade1 24 2 local # blade 1 section; + mbdy momentvec blade1 25 2 local # blade 1 section; + mbdy momentvec blade1 26 2 local # blade 1 section; + ; blade root out and in of plane forces + mbdy momentvec blade1 3 2 hub1 # blade 1 root ; + mbdy momentvec blade2 3 2 hub2 # blade 2 root ; + mbdy momentvec blade3 3 2 hub3 # blade 3 root ; +; mbdy momentvec blade1 14 1 local # blade 1 50% local e coo ; +; mbdy momentvec blade2 14 1 local # blade 2 50% local e coo ; +; mbdy momentvec blade3 14 1 local # blade 3 50% local e coo ; + ; Displacements and accellerations + mbdy state pos tower 19 1.0 global only 1 # Tower top FA displ; + mbdy state pos tower 19 1.0 global only 2 # Tower top SS displ; + mbdy state acc tower 19 1.0 global only 1 # Tower top FA acc; + mbdy state acc tower 19 1.0 global only 2 # Tower top SS acc; +; + mbdy state pos blade1 26 1.0 global # gl blade 1 tip pos ; + mbdy state pos blade2 26 1.0 global # gl blade 2 tip pos ; + mbdy state pos blade3 26 1.0 global # gl blade 3 tip pos ; + mbdy state pos blade1 26 1.0 blade1 # blade 1 tip pos ; + mbdy state pos blade2 26 1.0 blade2 # blade 2 tip pos ; + mbdy state pos blade3 26 1.0 blade3 # blade 3 tip pos ; +; + mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m +; + ; elastic twist (torsional deformation) along the blade + aero tors_ang 1 45.56; + aero tors_ang 1 59.19; + aero tors_ang 1 70.87; + aero tors_ang 1 80.61; + aero tors_ang 1 84.50; + aero tors_ang 1 88.40; + aero tors_ang 1 92.29; + aero tors_ang 1 96.19; + aero tors_ang 1 98.13; + aero tors_ang 1 100.08; tip +; +; - Monitor Aerodynamics - ; + aero windspeed 3 1 1 72.5; + aero alfa 1 72.5; + aero alfa 2 72.5; + aero alfa 3 72.5; + aero cl 1 72.5; + aero cl 2 72.5; + aero cl 3 72.5; + aero cd 1 72.5; + aero cd 2 72.5; + aero cd 3 72.5; +; - Main Controller - +; Output to controller + ; dll outvec 1 1 # time; + ; dll outvec 1 2 # slow speed shaft rad/s; + ; dll outvec 1 3 # pitch angle 1; + ; dll outvec 1 4 # pitch angle 2; + ; dll outvec 1 5 # pitch angle 3; + ; dll outvec 1 6 # WSP_x_global; + ; dll outvec 1 7 # WSP_y_global; + ; dll outvec 1 8 # WSP_z_global; + ; dll outvec 1 9 # Elec. pwr ; + ; dll outvec 1 10 # Grid flag ; +; Input from controller + dll inpvec 1 1 # Generator torque reference [Nm] ; + dll inpvec 1 2 # Pitch angle reference of blade 1 [rad] ; + dll inpvec 1 3 # Pitch angle reference of blade 2 [rad] ; + dll inpvec 1 4 # Pitch angle reference of blade 3 [rad] ; + ; dll inpvec 1 5 # Power reference [W] ; + ; dll inpvec 1 6 # Filtered wind speed [m/s] ; + ; dll inpvec 1 7 # Filtered rotor speed [rad/s]; + ; dll inpvec 1 8 # Filtered rotor speed error for torque [rad/s]; + ; dll inpvec 1 9 # Bandpass filtered rotor speed [rad/s]; + ; dll inpvec 1 10 # Proportional term of torque contr. [Nm] ; + ; dll inpvec 1 11 # Integral term of torque controller [Nm] ; + ; dll inpvec 1 12 # Minimum limit of torque [Nm] ; + ; dll inpvec 1 13 # Maximum limit of torque [Nm] ; + dll inpvec 1 14 # Torque limit switch based on pitch [-] ; + ; dll inpvec 1 15 # Filtered rotor speed error for pitch [rad/s]; + ; dll inpvec 1 16 # Power error for pitch [W] ; + ; dll inpvec 1 17 # Proportional term of pitch controller [rad] ; + ; dll inpvec 1 18 # Integral term of pitch controller [rad] ; + ; dll inpvec 1 19 # Minimum limit of pitch [rad] ; + ; dll inpvec 1 20 # Maximum limit of pitch [rad] ; + dll inpvec 1 21 # Torque reference from DT dammper [Nm] ; + dll inpvec 1 22 # Status signal [-] ; + ; dll inpvec 1 23 # Total added pitch rate [rad/s] ; + dll inpvec 1 24 # Filtered Mean pitch for gain sch [rad] ; + dll inpvec 1 25 # Flag for mechnical brake [0=off/1=on] ; + dll inpvec 1 26 # Flag for emergency pitch stop [0=off/1=on] ; + dll inpvec 1 27 # LP filtered acceleration level [m/s^2] ; +; ; Output to generator model + ; dll outvec 2 1 # time ; + ; dll outvec 2 2 # Electrical torque reference [Nm] ; + ; dll outvec 2 3 # omega LSS ; +; Input from generator model + dll inpvec 2 1 # Mgen LSS [Nm]; + dll inpvec 2 2 # Pelec W ; + dll inpvec 2 3 # Mframe ; + dll inpvec 2 4 # Mgen HSS ; + dll inpvec 2 5 # Generator Pmech kW ; + dll inpvec 2 6 # Filtered Gen speed ; + dll inpvec 2 7 # Resulting Eff ; + dll inpvec 2 8 # Grid flag ; +; Output to mechanical brake + dll inpvec 3 1 # Brake torque [Nm] ; +; ; Input from mechanical brake + ; dll outvec 3 1 # Time [s] ; + ; dll outvec 3 2 # Generator LSS speed [rad/s] ; + ; dll outvec 3 3 # Deploy brake ; +; ; Output to pitch servo + ; dll outvec 4 1 # time; + ; dll outvec 4 2 # pitchref 1; + ; dll outvec 4 3 # pitchref 2; + ; dll outvec 4 4 # pitchref 3; + ; dll outvec 4 5 # Emerg. stop; +; Input from pitch servo + dll inpvec 4 1 # pitch 1; + dll inpvec 4 2 # pitch 2; + dll inpvec 4 3 # pitch 3; +; Check tower clearence + dll inpvec 5 1 # Bltip tow min d [m]; +; general constant 1.0 ; constant 1.0 - to mesure activity of flap in terms of displacement +; - Check on flap control: + ; ; - From flap controller: - + ; dll type2_dll cyclic_flap_controller inpvec 1 # Ref flap signal bl 1 [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 2 # Ref flap signal bl 2 [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 3 # Ref flap signal bl 3 [deg] ; + ; ; - Mbc values + ; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ; + ; ; - Check Gains - ; + ; dll type2_dll cyclic_flap_controller inpvec 10 # lead angle [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 11 # scaling on rat pow [-] ; + ; dll type2_dll cyclic_flap_controller inpvec 12 # actual kp [deg/kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 13 # actual ki [deg/kNms] ; + ; dll type2_dll cyclic_flap_controller inpvec 14 # actual kd [deg s/kNm] ; + ; ; - Actual deflections - + ; [dis_setbeta] aero beta 1 1 ; + ; [dis_setbeta] aero beta 2 1 ; + ; [dis_setbeta] aero beta 3 1 ; + ; ; - Mbc values + ; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ; + ; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ; + ; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ; +end output; +; +exit; diff --git a/wetb/prepost/tests/test_Simulations.py b/wetb/prepost/tests/test_Simulations.py new file mode 100644 index 00000000..f4c9cfa4 --- /dev/null +++ b/wetb/prepost/tests/test_Simulations.py @@ -0,0 +1,55 @@ +''' +Created on 05/11/2015 + +@author: MMPE +''' +from __future__ import unicode_literals +from __future__ import print_function +from __future__ import division +from __future__ import absolute_import +from future import standard_library +standard_library.install_aliases() + +import unittest +import os +import filecmp + +from wetb.prepost import dlctemplate as tmpl + + +class TestGenerateInputs(unittest.TestCase): + + def setUp(self): + self.basepath = os.path.dirname(__file__) + + def test_launch_dlcs_excel(self): + # manually configure paths, HAWC2 model root path is then constructed as + # p_root_remote/PROJECT/sim_id, and p_root_local/PROJECT/sim_id + # adopt accordingly when you have configured your directories differently + p_root_remote = os.path.join(self.basepath, 'data/') + p_root_local = os.path.join(self.basepath, 'data/') + # project name, sim_id, master file name + tmpl.PROJECT = 'demo_dlc' + tmpl.MASTERFILE = 'demo_dlc_master_A0001.htc' + # MODEL SOURCES, exchanche file sources + tmpl.P_RUN = os.path.join(p_root_remote, tmpl.PROJECT, 'remote/') + tmpl.P_SOURCE = os.path.join(p_root_local, tmpl.PROJECT, 'source/') + # location of the master file + tmpl.P_MASTERFILE = os.path.join(p_root_local, tmpl.PROJECT, + 'source', 'htc', '_master/') + # location of the pre and post processing data + tmpl.POST_DIR = os.path.join(p_root_remote, tmpl.PROJECT, 'remote', + 'prepost/') + tmpl.force_dir = tmpl.P_RUN + tmpl.launch_dlcs_excel('remote', silent=True) + + remote = os.path.join(p_root_remote, tmpl.PROJECT, 'remote') + ref = os.path.join(p_root_remote, tmpl.PROJECT, 'ref') + cmp = filecmp.dircmp(remote, ref) + self.assertTrue(len(cmp.diff_files)==0) + self.assertTrue(len(cmp.right_only)==0) + self.assertTrue(len(cmp.left_only)==0) + + +if __name__ == "__main__": + unittest.main() -- GitLab