7.00 1.197 0.0107 -0.1287
7.50 1.256 0.0112 -0.1289
8.00 1.305 0.0125 -0.1270
9.00 1.390 0.0155 -0.1207
9.50 1.424 0.0171 -0.1158
10.00 1.458 0.0192 -0.1116
10.50 1.488 0.0219 -0.1073
11.00 1.512 0.0255 -0.1029
11.50 1.533 0.0307 -0.0983
12.00 1.549 0.0370 -0.0949
12.50 1.558 0.0452 -0.0921
13.00 1.470 0.0630 -0.0899
13.50 1.398 0.0784 -0.0885
14.00 1.354 0.0931 -0.0885
14.50 1.336 0.1081 -0.0902
15.00 1.333 0.1239 -0.0928
15.50 1.326 0.1415 -0.0963
16.00 1.329 0.1592 -0.1006
16.50 1.326 0.1743 -0.1042
17.00 1.321 0.1903 -0.1084
17.50 1.331 0.2044 -0.1125
18.00 1.333 0.2186 -0.1169
18.50 1.340 0.2324 -0.1215
19.00 1.362 0.2455 -0.1263
19.50 1.382 0.2584 -0.1313
20.00 1.398 0.2689 -0.1352
20.50 1.426 0.2814 -0.1406
21.00 1.437 0.2943 -0.1462
22.00 1.418 0.3246 -0.1516
23.00 1.397 0.3557 -0.1570
24.00 1.376 0.3875 -0.1623
25.00 1.354 0.4198 -0.1676
26.00 1.332 0.4524 -0.1728
28.00 1.293 0.5183 -0.1832
30.00 1.265 0.5843 -0.1935
32.00 1.253 0.6492 -0.2039
35.00 1.264 0.7438 -0.2193
40.00 1.258 0.8970 -0.2440
45.00 1.217 1.0402 -0.2672
50.00 1.146 1.1686 -0.2891
55.00 1.049 1.2779 -0.3097
60.00 0.932 1.3647 -0.3290
65.00 0.799 1.4267 -0.3471
70.00 0.657 1.4621 -0.3641
75.00 0.509 1.4708 -0.3799
80.00 0.362 1.4544 -0.3946
85.00 0.221 1.4196 -0.4081
90.00 0.092 1.3938 -0.4204
95.00 -0.030 1.3943 -0.4313
100.00 -0.150 1.3798 -0.4408
105.00 -0.267 1.3504 -0.4486
110.00 -0.379 1.3063 -0.4546
115.00 -0.483 1.2481 -0.4584
120.00 -0.578 1.1763 -0.4597
125.00 -0.660 1.0919 -0.4582
130.00 -0.727 0.9962 -0.4532
135.00 -0.777 0.8906 -0.4441
140.00 -0.807 0.7771 -0.4303
145.00 -0.815 0.6581 -0.4109
150.00 -0.797 0.5364 -0.3848
155.00 -0.750 0.4157 -0.3508
160.00 -0.673 0.3000 -0.3074
170.00 -0.547 0.1051 -0.2786
175.00 -0.274 0.0388 -0.1380
180.00 0.000 0.0267 0.0000
# B.7 Airfoil-Data Input File – DU25_A17.dat
DU25 airfoil with an aspect ratio of 17. Original -180 to 180deg Cl, Cd, and Cm versus AOA data taken from Appendix A of DOW
Cl and Cd values corrected for rotational stall delay and Cd values corrected using the Viterna method for 0 to 90deg AOA by 1 Number of airfoil tables in this file 0.0 Table ID parameter 8.50 Stall angle (deg) 0.0 No longer used, enter zero 0.0 No longer used, enter zero 0.0 No longer used, enter zero -4.2422 Zero Cn angle of attack (deg) 6.4462 Cn slope for zero lift (dimensionless) 1.4336 Cn extrapolated to value at positive stall angle of attack -0.6873 Cn at stall value for negative angle of attack 0.00 Angle of attack for minimum CD (deg) 0.0065 Minimum CD value
-180.00 -175.00 -170.00 -160.00 -155.00 -150.00 -145.00 -140.00 -135.00 -130.00 -125.00 -120.00 -115.00 -110.00 -105.00 -100.00 -95.00 -90.00 -85.00 -80.00 -75.00 -70.00 -65.00 -60.00 -55.00 -50.00 -45.00 -40.00 -35.00 -30.00 -25.00 -24.00 -23.00 -22.00 -0.792 -21.00 -0.801 -20.00 -0.815 0.2237 0.0739 -19.00 -0.833 0.1990 0.0618 -18.00 -0.854 0.1743 0.0488 -17.00 -0.879 0.1498 0.0351 -16.00 -0.905 0.1256 0.0208 -15.00 -0.932 0.1020 0.0060 -14.00 -0.959 0.0789 -0.0091 -13.00 -0.985 0.0567 -0.0243 -13.00 -0.985 0.0567 -0.0243 -12.01 -0.953 0.0271 -0.0349 -11.00 -0.900 0.0303 -0.0361 -9.98 -0.827 0.0287 -0.0464 -8.98 -0.753 0.0271 -0.0534 -8.47 -0.691 0.0264 -0.0650 -7.45 -0.555 0.0114 -0.0782 -6.42 -0.413 0.0094 -0.0904 -5.40 -0.271 0.0086 -0.1006 -5.00 -0.220 0.0073 -0.1107 -4.50 -0.152 0.0071 -0.1135 -4.00 -0.084 0.0070 -0.1162 -3.50 -0.018 0.0069 -0.1186 -3.00 0.049 0.0068 -0.1209 -2.50 0.115 0.0068 -0.1231 -2.00 0.181 0.0068 -0.1252 -1.50 0.247 0.0067 -0.1272 -1.00 0.312 0.0067 -0.1293 -0.50 0.377 0.0067 -0.1311 0.00 0.444 0.0065 -0.1330 0.50 0.508 0.0065 -0.1347 1.00 0.573 0.0066 -0.1364 1.50 0.636 0.0067 -0.1380 2.00 0.701 0.0068 -0.1396 2.50 0.765 0.0069 -0.1411 3.00 0.827 0.0070 -0.1424 3.50 0.890 0.0071 -0.1437 4.00 0.952 0.0073 -0.1448 4.50 1.013 0.0076 -0.1456 5.00 1.062 0.0079 -0.1445 6.00 1.161 0.0099 -0.1419 6.50 1.208 0.0117 -0.1403 7.00 1.254 0.0132 -0.1382 7.50 1.301 0.0143 -0.1362 8.00 1.336 0.0153 -0.1320 8.50 1.369 0.0165 -0.1276 9.00 1.400 0.0181 -0.1234 9.50 1.428 0.0211 -0.1193 10.00 1.442 0.0262 -0.1152 10.50 1.427 0.0336 -0.1115 11.00 1.374 0.0420 -0.1081 | 0.000 0.368 0.735 0.695 0.777 0.828 0.850 0.846 0.818 0.771 0.705 0.624 0.530 1.2545 0.426 1.3168 0.314 1.3650 0.195 1.3984 0.073 1.4169 -0.050 1.4201 -0.173 1.4081 -0.294 1.3811 -0.409 1.3394 0.3017 -0.518 1.2833 0.2866 -0.617 1.2138 0.2707 -0.706 1.1315 0.2539 -0.780 1.0378 0.2364 -0.839 0.9341 0.2181 -0.879 0.8221 0.1991 -0.898 0.7042 0.1792 -0.893 0.5829 0.1587 -0.862 0.4616 0.1374 -0.803 0.3441 0.1154 -0.792 0.3209 0.1101 -0.789 0.2972 0.1031 0.2730 0.0947 0.2485 0.0849 | 0.0202 0.0000 0.0324 0.1845 0.0943 0.3701 0.2848 0.2679 0.4001 0.3046 0.5215 0.3329 0.6447 0.3540 0.7660 0.3693 0.8823 0.3794 0.9911 0.3854 1.0905 0.3878 1.1787 0.3872 0.3841 0.3788 0.3716 0.3629 0.3529 0.3416 0.3292 0.3159 |
11.50 | 1.316 | 0.0515 | -0.1052 | 12.00 | 1.277 | 0.0601 | -0.1026 | 12.50 | 1.250 | 0.0693 | -0.1000 | 13.00 | 1.246 | 0.0785 | -0.0980 | 13.50 | 1.247 | 0.0888 | -0.0969 | 14.00 | 1.256 | 0.1000 | -0.0968 | 14.50 | 1.260 | 0.1108 | -0.0973 | 15.00 | 1.271 | 0.1219 | -0.0981 | 15.50 | 1.281 | 0.1325 | -0.0992 | 16.00 | 1.289 | 0.1433 | -0.1006 | 16.50 | 1.294 | 0.1541 | -0.1023 | 17.00 | 1.304 | 0.1649 | -0.1042 | 17.50 | 1.309 | 0.1754 | -0.1064 | 18.00 | 1.315 | 0.1845 | -0.1082 | 18.50 | 1.320 | 0.1953 | -0.1110 | 19.00 | 1.330 | 0.2061 | -0.1143 | 19.50 | 1.343 | 0.2170 | -0.1179 | 20.00 | 1.354 | 0.2280 | -0.1219 | 20.50 | 1.359 | 0.2390 | -0.1261 | 21.00 | 1.360 | 0.2536 | -0.1303 | 22.00 | 1.325 | 0.2814 | -0.1375 | 23.00 | 1.288 | 0.3098 | -0.1446 | 24.00 | 1.251 | 0.3386 | -0.1515 | 25.00 | 1.215 | 0.3678 | -0.1584 | 26.00 | 1.181 | 0.3972 | -0.1651 | 28.00 | 1.120 | 0.4563 | -0.1781 | 30.00 | 1.076 | 0.5149 | -0.1904 | 32.00 | 1.056 | 0.5720 | -0.2017 | 35.00 | 1.066 | 0.6548 | -0.2173 | 40.00 | 1.064 | 0.7901 | -0.2418 | 45.00 | 1.035 | 0.9190 | -0.2650 | 50.00 | 0.980 | 1.0378 | -0.2867 | 55.00 | 0.904 | 1.1434 | -0.3072 | 60.00 | 0.810 | 1.2333 | -0.3265 | 65.00 | 0.702 | 1.3055 | -0.3446 | 70.00 | 0.582 | 1.3587 | -0.3616 | 75.00 | 0.456 | 1.3922 | -0.3775 | 80.00 | 0.326 | 1.4063 | -0.3921 | 85.00 | 0.197 | 1.4042 | -0.4057 | 90.00 | 0.072 | 1.3985 | -0.4180 | 95.00 | -0.050 | 1.3973 | -0.4289 | 100.00 | -0.170 | 1.3810 | -0.4385 | 105.00 | -0.287 | 1.3498 | -0.4464 | 110.00 | -0.399 | 1.3041 | -0.4524 | 115.00 | -0.502 | 1.2442 | -0.4563 | 120.00 | -0.596 | 1.1709 | -0.4577 | 125.00 | -0.677 | 1.0852 | -0.4563 | 130.00 | -0.743 | 0.9883 | -0.4514 | 135.00 | -0.792 | 0.8818 | -0.4425 | 140.00 | -0.821 | 0.7676 | -0.4288 | 145.00 | -0.826 | 0.6481 | -0.4095 | 150.00 | -0.806 | 0.5264 | -0.3836 | 155.00 | | 0.4060 | -0.3497 | 160.00 | -0.758 | | -0.3065 | 170.00 | -0.679 -0.735 | 0.2912 0.0995 | -0.3706 | 175.00 | -0.368 | | -0.1846 | 180.00 | 0.000 | 0.0356 0.0202 | 0.0000 |
# B.8 Airfoil-Data Input File – DU21_A17.dat
DU21 airfoil with an aspect ratio of 17. Original -180 to 180deg Cl, Cd, and Cm versus AOA data taken from Appendix A of DOW
Cl and Cd values corrected for rotational stall delay and Cd values corrected using the Viterna method for 0 to 90deg AOA by 1 Number of airfoil tables in this file 0.0 Table ID parameter 8.00 Stall angle (deg) 0.0 No longer used, enter zero 0.0 No longer used, enter zero 0.0 No longer used, enter zero -5.0609 Zero Cn angle of attack (deg) 6.2047 Cn slope for zero lift (dimensionless) 1.4144 Cn extrapolated to value at positive stall angle of attack -0.5324 Cn at stall value for negative angle of attack -1.50 Angle of attack for minimum CD (deg) 0.0057 Minimum CD value
-180.00 0.000 0.0185 0.0000
-175.00 0.394 0.0332 0.1978
-170.00 0.788 0.0945 0.3963
-160.00 0.670 0.2809 0.2738
-155.00 0.749 0.3932 0.3118
-150.00 0.797 0.5112 0.3413
-145.00 0.818 0.6309 0.3636
-140.00 0.813 0.7485 0.3799
-135.00 -130.00 -125.00 -120.00 -115.00 -110.00 -105.00 -100.00 -95.00 -90.00 -85.00 -80.00 -75.00 -70.00 -65.00 -60.00 -55.00 -50.00 -45.00 -40.00 -35.00 -30.00 -25.00 -24.00 -23.00 -22.00 -21.00 -20.00 -19.00 -18.00 -17.00 -16.00 -15.00 -14.50 -12.01 -11.00 -9.98 -8.12 -7.62 -7.11 -6.60 -6.50 -6.00 -5.50 -5.00 -4.50 -4.00 -3.50 -3.00 -2.50 -2.00 -1.50 -1.00 -0.50 0.00 0.50 1.00 1.50 2.00 2.50 3.00 3.50 4.00 4.50 5.00 10.00 10.50 11.00 11.50 12.00 12.50 13.00 13.50 14.00 14.50 | 0.786 0.739 0.675 0.596 0.505 0.403 0.294 0.179 0.060 -0.060 -0.179 -0.295 -0.407 -0.512 -0.608 -0.693 -0.764 -0.820 -0.857 -0.875 -0.869 -0.838 -0.791 -0.794 -0.805 -0.821 -0.843 -0.869 -0.899 -0.931 -0.964 -0.999 -1.033 -1.050 -0.953 -0.900 -0.827 -0.536 -0.467 -0.393 -0.323 -0.311 -0.245 -0.178 -0.113 -0.048 0.016 0.080 0.145 0.208 0.270 0.333 0.396 0.458 0.521 0.583 0.645 0.706 0.768 0.828 0.888 0.948 0.996 1.046 0.0079 1.095 0.0090 5.50 1.145 0.0103 6.00 1.192 0.0113 6.50 1.239 0.0122 7.00 1.283 7.50 1.324 8.00 1.358 8.50 1.385 9.00 1.403 9.50 1.401 1.358 1.313 1.287 1.274 1.272 1.273 1.273 1.273 1.272 1.273 | 0.8612 0.9665 1.0625 1.1476 1.2206 1.2805 1.3265 1.3582 1.3752 1.3774 1.3648 1.3376 1.2962 1.2409 1.1725 1.0919 1.0002 0.8990 0.7900 0.6754 0.5579 0.4405 0.3256 0.3013 0.2762 0.2506 0.2246 0.1983 0.1720 0.1457 0.1197 0.0940 0.0689 0.0567 0.0271 0.0303 0.0287 0.0124 0.0109 0.0092 0.0083 0.0089 0.0082 0.0074 0.0069 0.0065 0.0063 0.0061 0.0058 0.0057 0.0057 0.0057 0.0057 0.0057 0.0057 0.0057 0.0058 0.0058 0.0059 0.0061 0.0063 0.0066 0.0071 | 0.3911 0.3980 0.4012 0.4014 0.3990 0.3943 0.3878 0.3796 0.3700 0.3591 0.3471 0.3340 0.3199 0.3049 0.2890 0.2722 0.2545 0.2359 0.2163 0.1958 0.1744 0.1520 0.1262 0.1170 0.1059 0.0931 0.0788 0.0631 0.0464 0.0286 0.0102 -0.0088 -0.0281 -0.0378 -0.0349 -0.0361 -0.0464 -0.0821 -0.0924 -0.1015 -0.1073 -0.1083 -0.1112 -0.1146 -0.1172 -0.1194 -0.1213 -0.1232 -0.1252 -0.1268 -0.1282 -0.1297 -0.1310 -0.1324 -0.1337 -0.1350 -0.1363 -0.1374 -0.1385 -0.1395 -0.1403 -0.1406 -0.1398 -0.1390 -0.1378 -0.1369 -0.1353 -0.1338 0.0131 -0.1317 0.0139 -0.1291 0.0147 -0.1249 0.0158 -0.1213 0.0181 -0.1177 0.0211 -0.1142 0.0255 -0.1103 0.0301 -0.1066 0.0347 -0.1032 0.0401 -0.1002 0.0468 -0.0971 0.0545 -0.0940 0.0633 -0.0909 0.0722 -0.0883 0.0806 -0.0865 0.0900 -0.0854 |
15.00 1.275 0.0987 -0.0849
15.50 1.281 0.1075 -0.0847
16.00 1.284 0.1170 -0.0850
16.50 1.296 0.1270 -0.0858
17.00 1.306 0.1368 -0.0869
17.50 1.308 0.1464 -0.0883
18.00 1.308 0.1562 -0.0901
18.50 1.308 0.1664 -0.0922
19.00 1.308 0.1770 -0.0949
19.50 1.307 0.1878 -0.0980
20.00 1.311 0.1987 -0.1017
20.50 1.325 0.2100 -0.1059
21.00 1.324 0.2214 -0.1105
22.00 1.277 0.2499 -0.1172
23.00 1.229 0.2786 -0.1239
24.00 1.182 0.3077 -0.1305
25.00 1.136 0.3371 -0.1370
26.00 1.093 0.3664 -0.1433
28.00 1.017 0.4246 -0.1556
30.00 0.962 0.4813 -0.1671
32.00 0.937 0.5356 -0.1778
35.00 0.947 0.6127 -0.1923
40.00 0.950 0.7396 -0.2154
45.00 0.928 0.8623 -0.2374
50.00 0.884 0.9781 -0.2583
55.00 0.821 1.0846 -0.2782
60.00 0.740 1.1796 -0.2971
65.00 0.646 1.2617 -0.3149
70.00 0.540 1.3297 -0.3318
75.00 0.425 1.3827 -0.3476
80.00 0.304 1.4202 -0.3625
85.00 0.179 1.4423 -0.3763
90.00 0.053 1.4512 -0.3890
95.00 -0.073 1.4480 -0.4004
100.00 -0.198 1.4294 -0.4105
105.00 -0.319 1.3954 -0.4191
110.00 -0.434 1.3464 -0.4260
115.00 -0.541 1.2829 -0.4308
120.00 -0.637 1.2057 -0.4333
125.00 -0.720 1.1157 -0.4330
130.00 -0.787 1.0144 -0.4294
135.00 -0.836 0.9033 -0.4219
140.00 -0.864 0.7845 -0.4098
145.00 -0.869 0.6605 -0.3922
150.00 -0.847 0.5346 -0.3682
155.00 -0.795 0.4103 -0.3364
160.00 -0.711 0.2922 -0.2954
170.00 -0.788 0.0969 -0.3966
175.00 -0.394 0.0334 -0.1978
180.00 0.000 0.0185 0.0000
# B.9 Airfoil-Data Input File – NACA64_A17.dat
NACA64 airfoil with an aspect ratio of 17. Original -180 to 180deg Cl, Cd, and Cm versus AOA data taken from Appendix A of D
Cl and Cd values corrected for rotational stall delay and Cd values corrected using the Viterna method for 0 to 90deg AOA by 1 Number of airfoil tables in this file 0.0 Table ID parameter 9.00 Stall angle (deg) 0.0 No longer used, enter zero 0.0 No longer used, enter zero 0.0 No longer used, enter zero -4.4320 Zero Cn angle of attack (deg) 6.0031 Cn slope for zero lift (dimensionless) 1.4073 Cn extrapolated to value at positive stall angle of attack -0.7945 Cn at stall value for negative angle of attack -1.00 Angle of attack for minimum CD (deg) 0.0052 Minimum CD value
-180.00 0.000 0.0198 0.0000
-175.00 0.374 0.0341 0.1880
-170.00 0.749 0.0955 0.3770
-160.00 0.659 0.2807 0.2747
-155.00 0.736 0.3919 0.3130
-150.00 0.783 0.5086 0.3428
-145.00 0.803 0.6267 0.3654
-140.00 0.798 0.7427 0.3820
-135.00 0.771 0.8537 0.3935
-130.00 0.724 0.9574 0.4007
-125.00 0.660 1.0519 0.4042
-120.00 0.581 1.1355 0.4047
-115.00 0.491 1.2070 0.4025
-110.00 0.390 1.2656 0.3981
-105.00 0.282 1.3104 0.3918
-100.00 -95.00 -90.00 -85.00 -80.00 -75.00 -70.00 -65.00 -60.00 -55.00 -50.00 -45.00 -40.00 -35.00 -30.00 -25.00 -24.00 -23.00 -22.00 -21.00 -20.00 -19.00 -18.00 -17.00 -16.00 -15.00 -14.00 -13.50 -13.00 -12.00 -11.00 -10.00 -9.00 -8.00 -7.00 -6.00 -5.00 -4.00 -3.00 -2.00 -1.00 0.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 8.50 9.00 9.50 10.00 10.50 11.00 11.50 12.00 12.50 13.00 13.50 14.00 14.50 15.00 15.50 16.00 16.50 17.00 17.50 18.00 18.50 19.00 19.50 20.00 21.00 22.00 23.00 24.00 25.00 26.00 28.00 30.00 32.00 35.00 | 0.169 0.052 -0.067 -0.184 -0.299 -0.409 -0.512 -0.606 -0.689 -0.759 -0.814 -0.850 -0.866 -0.860 -0.829 -0.853 -0.870 -0.890 -0.911 -0.934 -0.958 -0.982 -1.005 -1.082 -1.113 -1.105 -1.078 -1.053 -1.015 -0.904 -0.807 -0.711 -0.595 -0.478 -0.375 -0.264 -0.151 -0.017 0.088 0.213 0.328 0.442 0.556 0.670 0.784 0.898 1.011 1.103 1.181 1.257 1.293 1.326 1.356 1.382 1.400 1.415 1.425 1.434 1.443 1.451 1.453 1.448 1.444 1.445 1.447 1.448 1.444 1.438 1.439 1.448 1.452 1.448 1.438 1.428 1.401 1.359 1.300 1.220 1.168 1.116 1.015 0.926 0.855 0.800 | 1.3410 0.3838 1.3572 0.3743 1.3587 0.3636 1.3456 0.3517 1.3181 0.3388 1.2765 0.3248 1.2212 0.3099 1.1532 0.2940 1.0731 0.2772 0.9822 0.2595 0.8820 0.2409 0.7742 0.2212 0.6610 0.2006 0.5451 0.1789 0.4295 0.1563 0.3071 0.1156 0.2814 0.1040 0.2556 0.0916 0.2297 0.0785 0.2040 0.0649 0.1785 0.0508 0.1534 0.0364 0.1288 0.0218 0.1037 0.0129 0.0786 -0.0028 0.0535 -0.0251 0.0283 -0.0419 0.0158 -0.0521 0.0151 -0.0610 0.0134 -0.0707 0.0121 -0.0722 0.0111 -0.0734 0.0099 -0.0772 0.0091 -0.0807 0.0086 -0.0825 0.0082 -0.0832 0.0079 -0.0841 0.0072 -0.0869 0.0064 -0.0912 0.0054 -0.0946 0.0052 -0.0971 0.0052 -0.1014 0.0052 -0.1076 0.0053 -0.1126 0.0053 -0.1157 0.0054 -0.1199 0.0058 -0.1240 0.0091 -0.1234 0.0113 -0.1184 0.0124 -0.1163 0.0130 -0.1163 0.0136 -0.1160 0.0143 -0.1154 0.0150 -0.1149 0.0267 -0.1145 0.0383 -0.1143 0.0498 -0.1147 0.0613 -0.1158 0.0727 -0.1165 0.0841 -0.1153 0.0954 -0.1131 0.1065 -0.1112 0.1176 -0.1101 0.1287 -0.1103 0.1398 -0.1109 0.1509 -0.1114 0.1619 -0.1111 0.1728 -0.1097 0.1837 -0.1079 0.1947 -0.1080 0.2057 -0.1090 0.2165 -0.1086 0.2272 -0.1077 0.2379 -0.1099 0.2590 -0.1169 0.2799 -0.1190 0.3004 -0.1235 0.3204 -0.1393 0.3377 -0.1440 0.3554 -0.1486 0.3916 -0.1577 0.4294 -0.1668 0.4690 -0.1759 0.5324 -0.1897 |
0.804 0.793 | 0.6452 0.7573 | -0.2126 -0.2344 | | 45.00 50.00 | 0.763 | 0.8664 | -0.2553 | 40.00 55.00 | 0.717 | 0.9708 | -0.2751 | 60.00 | 0.656 | 1.0693 | -0.2939 | 65.00 | 0.582 | 1.1606 | -0.3117 | 70.00 | | 1.2438 | -0.3285 | | 0.495 | | | 75.00 | 0.398 | 1.3178 | -0.3444 | 80.00 | 0.291 | 1.3809 | -0.3593 | 85.00 | 0.176 | 1.4304 | -0.3731 -0.3858 | 90.00 95.00 | 0.053 -0.074 | 1.4565 1.4533 | -0.3973 | 100.00 | -0.199 | 1.4345 | -0.4075 | 105.00 | -0.321 | 1.4004 | -0.4162 | 110.00 | -0.436 | 1.3512 | -0.4231 | 115.00 | -0.543 | 1.2874 | -0.4280 | 120.00 | -0.640 | 1.2099 | -0.4306 | 125.00 | -0.723 | 1.1196 | -0.4304 | 130.00 | -0.790 | 1.0179 | -0.4270 | 135.00 | -0.840 | 0.9064 | -0.4196 | 140.00 | -0.868 | 0.7871 | -0.4077 | 145.00 | -0.872 -0.850 | 0.6627 | -0.3903 | 150.00 | -0.798 | 0.5363 0.4116 | -0.3665 -0.3349 | 155.00 160.00 | -0.714 | 0.2931 | -0.2942 | 170.00 | -0.749 | 0.0971 | -0.3771 | 175.00 | -0.374 | 0.0334 | -0.1879 | 180.00 | 0.000 | 0.0198 | 0.0000 | | | | |
# Appendix C Source Code for the Control System DLL
!=== SUBROUTINE DISCON ( avrSWAP, aviFAIL, accINFILE, avcOUTNAME, avcMSG ) !DEC\$ ATTRIBUTES DLLEXPORT, ALIAS:'DISCON' :: DISCON
! This Bladed-style DLL controller is used to implement a variable-speed ! generator-torque controller and PI collective blade pitch controller for ! the NREL Offshore 5MW baseline wind turbine. This routine was written by ! J. Jonkman of NREL/NWTC for use in the IEA Annex XXIII OC3 studies.
IMPLICIT
NONE
! Passed Variables:
REAL(4), INTENT(INOUT) :: avrSWAP (\*)
INTEGER(4), INTENT( OUT)
INTEGER(1), INTENT(IN ) INTEGER(1), INTENT( OUT) INTEGER(1), INTENT(IN )
:: accINFILE $({}^{*})$ :: avcMSG $({}^{*})$ :: avcOUTNAME $({}^{*})$
! The swap array, used to pass data to, and r ! A flag used to indicate the success of this ! The address of the first record of an array ! The address of the first record of an array ! The address of the first record of an array
# ! Local Variables:
REAL(4)
REAL(4)
REAL(4)
REAL(4), PARAMETER
REAL(4)
REAL(4), SAVE
REAL(4)
REAL(4)
REAL(4)
REAL(4), SAVE
REAL(4), SAVE
REAL(4), SAVE
REAL(4), SAVE
REAL(4), SAVE
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), SAVE
REAL(4)
REAL(4)
REAL(4)
REAL(4)
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4)
REAL(4)
REAL(4)
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), PARAMETER
REAL(4), SAVE
REAL(4), SAVE
REAL(4), PARAMETER
REAL(4), SAVE
REAL(4), SAVE
INTEGER(4)
INTEGER(4)
:: Alpha
:: BlPitch (3)
:: ElapTime
:: CornerFreq 1.570796
:: GenSpeed
:: GenSpeedF
:: GenTrq
:: GK
:: HorWindV
:: IntSpdErr
:: LastGenTrq
:: LastTime
:: LastTimePC
:: LastTimeVS
:: OnePlusEps $=\ 1.\theta\ +$ EPSILON(OnePlusEps)
:: PC_DT = 0.00125
:: PC_KI $=$ 0.008068634
:: PC_KK $=$ 0.1099965
:: PC_KP $=$ 0.01882681
:: PC_MaxPit = 1.570796
:: PC_MaxRat = 0.1396263
:: PC_MinPit = 0.0
:: PC_RefSpd = 122.9096
:: PitCom (3)
:: PitComI
:: PitComP
:: PitComT
:: PitRate (3)
:: R2D = 57.295780
:: RPS2RPM = 9.5492966
:: SpdErr
:: Time
:: TrqRate
:: VS_CtInSp = 70.16224
:: VS_DT = 0.00125
:: VS_MaxRat $=$ 15000.0
:: VS_MaxTq = 47402.91
:: VS_Rgn2K $=$ 2.332287
:: VS_Rgn2Sp = 91.21091
:: VS_Rgn3MP $=$ 0.01745329
:: VS_RtGnSp $=$ 121.6805
:: VS_RtPwr = 5296610.0
:: VS_Slope15
:: VS_Slope25
:: VS_SlPc 10.0
:: VS_SySp
:: VS_TrGnSp
:: I
:: iStatus
:: K
:: NumBl
! Current coefficient in the recursive, singl ! Current values of the blade pitch angles, r ! Elapsed time since the last call to the con ! Corner frequency (-3dB point) in the recurs ! Current HSS (generator) speed, rad/s. ! Filtered HSS (generator) speed, rad/s. ! Electrical generator torque, N-m. ! Current value of the gain correction factor ! Horizontal hub-heigh wind speed, m/s. ! Current integral of speed error w.r.t. time ! Commanded electrical generator torque the l ! Last time this DLL was called, sec. ! Last time the pitch controller was called, ! Last time the torque controller was called, ! The number slighty greater than unity in si ! Communication interval for pitch controlle ! Integral gain for pitch controller at rated ! Pitch angle were the the derivative of the ! Proportional gain for pitch controller at r ! Maximum pitch setting in pitch controller, ! Maximum pitch rate (in absolute value) in ! Minimum pitch setting in pitch controller, ! Desired (reference) HSS speed for pitch con ! Commanded pitch of each blade the last time ! Integral term of command pitch, rad. ! Proportional term of command pitch, rad. ! Total command pitch based on the sum of the ! Pitch rates of each blade based on the curr ! Factor to convert radians to degrees. ! Factor to convert radians per second to rev ! Current speed error, rad/s. ! Current simulation time, sec. ! Torque rate based on the current and last t ! Transitional generator speed (HSS side) bet ! Communication interval for torque controlle ! Maximum torque rate (in absolute value) in ! Maximum generator torque in Region 3 (HSS s ! Generator torque constant in Region 2 (HSS ! Transitional generator speed (HSS side) bet ! Minimum pitch angle at which the torque is ! Rated generator speed (HSS side), rad/s. -- ! Rated generator generator power in Region 3 ! Torque/speed slope of region 1 1/2 cut-in t ! Torque/speed slope of region 2 1/2 inductio ! Rated generator slip percentage in Region 2 ! Synchronous speed of region $^{2\ 1/2}$ induction ! Transitional generator speed (HSS side) bet
INTEGER(4), PARAMETER :: UnDb = 85 ! I/O unit for the debugging information INTEGER(1) :: iInFile ( 256) ! CHARACTER string cInFile stored as a 1-byt INTEGER(1) :: iMessage ( 256) ! CHARACTER string cMessage stored as a 1-byt INTEGER(1), SAVE :: iOutName (1024) ! CHARACTER string cOutName stored as a 1-byt LOGICAL(1), PARAMETER :: PC_DbgOut = .FALSE. ! Flag to indicate whether to output debuggin CHARACTER( 256) :: cInFile ! CHARACTER string giving the name of the par CHARACTER( 256) :: cMessage ! CHARACTER string giving a message that will CHARACTER(1024), SAVE :: cOutName ! CHARACTER string giving the simulation run CHARACTER( 1), PARAMETER :: Tab $=$ CHAR( 9 ) ! The tab character. CHARACTER( 25), PARAMETER :: FmtDat $=$ "(F8.3,99('"//Tab//"',ES10.3E2,:))" ! The format of the debugging data
! Set EQUIVALENCE relationships between INTEGER(1) byte arrays and CHARACTER strings:
EQUIVALENCE (iInFile , cInFile ) EQUIVALENCE (iMessage, cMessage) EQUIVALENCE (iOutName, cOutName)
! Load variables from calling program (See Appendix A of Bladed User's Guide):
iStatus $=$ NINT( avrSWAP( 1) ) NumBl $=$ NINT( avrSWAP(61) ) BlPitch (1) $=$ avrSWAP( 4) BlPitch $\mathbf{\Psi}(2)\mathbf{\Psi}=\mathbf{\Psi}$ avrSWAP(33) BlPitch (3) $=$ avrSWAP(34) GenSpeed $=$ avrSWAP(20) HorWindV $=$ avrSWAP(27) Time $=$ avrSWAP( 2)
! Initialize aviFAIL to 0:
aviFAIL $=6$
! Read any External Controller Parameters specified in the User Interface ! and initialize variables:
DO $\texttt{T}=\texttt{1}$ ,MIN( 256, NINT( avrSWAP(50) ) ) iInFile (I) $=$ accINFILE (I) ! Sets cInfile by EQUIVALENCE
ENDDO
DO $\ I~=~1,\mathsf{M I N}$ ( 1024, NINT( avrSWAP(51) ) ) iOutName(I) $=$ avcOUTNAME(I) ! Sets cOutName by EQUIVALENCE
ENDDO
! Inform users that we are using this user-defined routine:
aviFAIL $\mathit{\Theta}=\;1$
cMessage $=$ 'Running with torque and pitch control of the NREL offshore '// & '5MW baseline wind turbine from DISCON.dll as written by J. '// & 'Jonkman of NREL/NWTC for use in the IEA Annex XXIII OC3 ' // & 'studies.'
! Determine some torque control parameters not specified directly:
VS_SySp $=$ VS_RtGnSp/( $1.\theta{\mathrm{~+~}}\theta.\theta1^{*}\forall5\_51\mathsf{P c}$ )
VS_Slope15 $=$ ( VS_Rgn2K\*VS_Rgn2Sp\*VS_Rgn2Sp )/( VS_Rgn2Sp - VS_CtInSp )
VS_Slope25 $=$ ( VS_RtPwr/VS_RtGnSp )/( VS_RtGnSp - VS_SySp
IF ( VS_Rgn2K $==0.\theta$ ) THEN ! .TRUE. if the Region 2 torque is flat, and thus, the denominator in the ELSE condition is VS_TrGnSp $=$ VS_SySp
ELSE ! .TRUE. if the Region 2 torque is quadratic with speed VS_TrGnSp $=$ ( VS_Slope25 - SQRT( VS_Slope25\*( VS_Slope25 - 4.0\*VS_Rgn2K\*VS_SySp ) ) )/( 2.0\*VS_Rgn2K )
! Check validity of input parameters:
IF ( CornerFreq $<=0.9$ ) THEN aviFAIL $\mathrm{~\ensuremath~{~\vert~\mathbf~{~\mu~}~}~}=\mathrm{~\ensuremath~{~\mathbf~{~-~}~}~}1$
cMessage $=$ 'CornerFreq must be greater than zero.' ENDIF IF ( VS_DT $<=\ \Theta\,.\,\Theta$ ) THEN aviFAIL $\begin{array}{r l}{\mathbf{\Sigma}=}&{{}-\mathbf{1}}\end{array}$ cMessage $=\cdot\mathsf{v s}\_\mathsf{D T}$ must be greater than zero.' ENDIF IF ( VS_CtInSp < 0.0 ) THEN aviFAIL $\begin{array}{r l}{\mathbf{\Sigma}=}&{{}-\mathbf{1}}\end{array}$ cMessage $=$ 'VS_CtInSp must not be negative.' ENDIF IF ( VS_Rgn2Sp $\zeta=$ VS_CtInSp ) THEN aviFAIL $\begin{array}{r l}{\mathbf{\Sigma}=}&{{}-\mathbf{1}}\end{array}$ cMessage $=$ 'VS_Rgn2Sp must be greater than VS_CtInSp.' ENDIF IF ( VS_TrGnSp $\boldsymbol{<}$ VS_Rgn2Sp ) THEN aviFAIL $\begin{array}{r l}{\mathbf{\Sigma}=}&{{}-\mathbf{1}}\end{array}$ cMessage $=$ 'VS_TrGnSp must not be less than VS_Rgn2Sp.' ENDIF IF ( VS_SlPc $<=\ \Theta\,.\,\Theta$ ) THEN aviFAIL $\begin{array}{r l}{\mathbf{\Sigma}=}&{{}-\mathbf{1}}\end{array}$ cMessage $\begin{array}{r l}{\mathsf{\Pi}=}&{{}^{\prime}\mathsf{V S}\_{\mathsf{S}}\mathsf{1}\mathsf{P c}}\end{array}$ must be greater than zero.' ENDIF IF ( VS_MaxRat $<=\ \Theta\,.\,\Theta$ ) THEN aviFAIL $\begin{array}{r l r}{-1}&{{}}&{-1}\end{array}$ cMessage $=$ 'VS_MaxRat must be greater than zero.' ENDIF IF ( VS_RtPwr < 0.0 ) THEN aviFAIL $\begin{array}{r l}{\mathbf{\Sigma}=}&{{}-\mathbf{1}}\end{array}$ cMessage $=$ 'VS_RtPwr must not be negative.' ENDIF IF ( VS_Rgn2K < 0.0 ) THEN aviFAIL = -1 cMessage $=$ 'VS_Rgn2K must not be negative.' ENDIF IF ( VS_Rgn2K\*VS_RtGnSp\*VS_RtGnSp $\textgreater$ VS_RtPwr/VS_RtGnSp ) THEN aviFAIL cMessage $=$ 'VS_Rgn2K\*VS_RtGnSp^2 must not be greater than VS_RtPwr/VS_RtGnSp.' ENDIF IF ( VS_MaxTq < VS_RtPwr/VS_RtGnSp ) THEN aviFAIL $\begin{array}{r l}{\mathbf{\Sigma}=}&{{}-\mathbf{1}}\end{array}$ cMessage $=$ 'VS_RtPwr/VS_RtGnSp must not be greater than VS_MaxTq.' ENDIF IF ( PC_DT $<=0.\theta$ ) THEN aviFAIL $\begin{array}{r l}{\mathbf{\chi}=}&{{}-1}\end{array}$ cMessage $\begin{array}{r l}{=}&{{}^{\cdot}\mathsf{P C}\_\mathsf{D T}}\end{array}$ must be greater than zero.' ENDIF IF ( PC_KI $<=0.\theta$ ) THEN aviFAIL $\begin{array}{r l}{\mathbf{\chi}=}&{{}-1}\end{array}$ cMessage $\begin{array}{r l}{=}&{{}^{\cdot}\mathsf{P C}_{-}\mathsf{K I}}\end{array}$ must be greater than zero.' ENDIF IF ( PC_KK $<=0.\theta$ ) THEN aviFAIL $\begin{array}{r l}{\mathbf{\chi}=}&{{}-1}\end{array}$ cMessage $=\because P C\_K K$ must be greater than zero.' ENDIF IF ( PC_RefSpd $<=0.\theta$ ) THEN aviFAIL $\begin{array}{r l}{=}&{{}-1}\end{array}$ cMessage $=$ 'PC_RefSpd must be greater than zero.' ENDIF IF ( PC_MaxRat $<=0.\theta$ ) THEN aviFAIL $\begin{array}{r l}{=}&{{}-1}\end{array}$ cMessage $=$ 'PC_MaxRat must be greater than zero.' ENDIF IF ( PC_MinPit $>=$ PC_MaxPit ) THEN aviFAIL $\begin{array}{r l}{=}&{{}-1}\end{array}$ cMessage $\begin{array}{r l}{=}&{{}\cdot\mathsf{P C}_{\mathrm{s}}}\end{array}$ _MinPit must be less than PC_MaxPit.' ENDIF
header:
IF ( PC_DbgOut ) THEN
OPEN ( UnDb, FILE=TRIM( cOutName )//'.dbg', STATUS $,=$ 'REPLACE' )
WRITE (UnDb,'(/////)')
WRITE (UnDb,'(A)') 'Time '//Tab//'ElapTime'//Tab//'HorWindV'//Tab//'GenSpeed'//Tab//'GenSpeedF'//Tab//'RelSpdErr'//Tab 'SpdErr '//Tab//'IntSpdErr'//Tab//'GK '//Tab//'PitComP'//Tab//'PitComI'//Tab//'PitComT'//Tab// 'PitRate1'//Tab//'PitCom1'
WRITE (UnDb,'(A)') '(sec)'//Tab//'(sec) '//Tab//'(m/sec) '//Tab//'(rpm) '//Tab//'(rpm) '//Tab//'(%) '//Tab '(rad/s)'//Tab//'(rad) '//Tab//'(-)'//Tab//'(deg) '//Tab//'(deg) '//Tab//'(deg) '//Tab// '(deg/s) '//Tab//'(deg)
# ENDIF
! Initialize the SAVEd variables:
! NOTE: LastGenTrq, though SAVEd, is initialized in the torque controller ! below for simplicity, not here.
GenSpeedF $=$ GenSpeed ! This will ensure that generator speed filter will use the initial value of PitCom $=$ BlPitch ! This will ensure that the variable speed controller picks the correct contr GK $=\ 1.\theta/\left(\ \ 1.\theta\ +\ \mathsf{P i t C o m}(1)/\mathsf{P C}\_\mathsf{K K}\ \ \right)$ ) ! This will ensure that the pitch angle is unchanged if the initial SpdErr is IntSpdErr $=$ PitCom(1)/( GK\*PC_KI ) ! This will ensure that the pitch angle is unchanged if the initial SpdErr is LastTime $=$ Time ! This will ensure that generator speed filter will use the initial value of LastTimePC $=$ Time - PC_DT ! This will ensure that the pitch controller is called on the first pass LastTimeVS $=$ Time - VS_DT ! This will ensure that the torque controller is called on the first pass
# ENDIF
! Main control calculations:
IF ( ( iStatus $b=~\theta$ ) .AND. ( aviFAIL $b=~\theta$ ) ) THEN ! Only compute control calculations if no error has occured and we are
! Abort if the user has not requested a pitch angle actuator (See Appendix A
! of Bladed User's Guide):
IF ( NINT(avrSWAP(10)) $/=\theta$ ) THEN ! .TRUE. if a pitch angle actuator hasn't been requested aviFAIL $\begin{array}{r l}{\mathbf{\Sigma}=}&{{}-\mathbf{1}}\end{array}$ cMessage $=$ 'Pitch angle actuator not requested.'
ENDIF
! Set unused outputs to zero (See Appendix A of Bladed User's Guide):
avrSWAP(36) $=6.6$ ! Shaft brake status: 0=off avrSWAP(41) $=6.6$ ! Demanded yaw actuator torque avrSWAP(46) $=0.01$ ! Demanded pitch rate (Collective pitch) avrSWAP(48) $=0.01$ Demanded nacelle yaw rate avrSWAP(65) $=6.6$ ! Number of variables returned for logging avrSWAP(72) $=0.01$ ! Generator startup resistance avrSWAP(79) $=0.01$ Request for loads: 0=none avrSWAP(80) $=6.6$ ! Variable slip current status avrSWAP(81) $=\theta.\theta!$ ! Variable slip current demand
! Compute the elapsed time since the last call to the controller:
ElapTime $=$ Time - LastTimeVS
! Only perform the control calculations if the elapsed time is greater than ! or equal to the communication interval of the torque controller: ! NOTE: Time is scaled by OnePlusEps to ensure that the contoller is called ! at every time step when $\mathsf{V S\_D T}\ =\ \mathsf{D T}$ , even in the presence of ! numerical precision errors.
IF ( ( Time\*OnePlusEps - LastTimeVS ) $>=\mathsf{V S}\_\mathsf{D T}$ ) THEN ! Compute the generator torque, which depends on which region we are in:
IF ( ( GenSpeedF $>=$ VS_RtGnSp ) .OR. ( PitCom(1) $>=$ VS_Rgn3MP ) ) THEN ! We are in region 3 - power is constant GenTrq $=$ VS_RtPwr/GenSpeedF
ELSEIF ( GenSpeedF $\zeta\!=$ VS_CtInSp ) THEN ! We are in region 1 - torque is zero GenTrq $=6.6$
ELSEIF ( GenSpeedF $\varsigma$ VS_Rgn2Sp ) THEN ! We are in region 1 1/2 - linear ramp in to GenTrq $=$ VS_Slope15\*( GenSpeedF - VS_CtInSp )
ELSEIF ( GenSpeedF < VS_TrGnSp ) THEN ! We are in region 2 - optimal torque is pro GenTrq $=$ VS_Rgn2K\*GenSpeedF\*GenSpeedF
ELSE ! We are in region 2 1/2 - simple induction GenTrq $=$ VS_Slope25\*( GenSpeedF - VS_SySp )
ENDIF
! Saturate the commanded torque using the maximum torque limit:
GenTrq $=$ MIN( GenTrq , VS_MaxTq ) ! Saturate the command using the maximum torque limit ! Saturate the commanded torque using the torque rate limit:
IF ( iStatus $==6$ ) LastGenTrq $=$ GenTrq ! Initialize the value of LastGenTrq on the first pass only TrqRate $=$ ( GenTrq - LastGenTrq )/ElapTime ! Torque rate (unsaturated) TrqRate $=$ MIN( MAX( TrqRate, -VS_MaxRat ), VS_MaxRat ) ! Saturate the torque rate using its maximum absolute value GenTrq $=$ LastGenTrq $^+$ TrqRate\*ElapTime ! Saturate the command using the torque rate limit
! Reset the values of LastTimeVS and LastGenTrq to the current values:
LastTimeVS $=$ Time LastGenTrq $=$ GenTrq
ENDIF
! Set the generator contactor status, avrSWAP(35), to main (high speed)
! variable-speed generator, the torque override to yes, and command the
! generator torque (See Appendix A of Bladed User's Guide):
avrSWAP(35) $=~1,\theta$ ! Generator contactor status: 1=main (high speed) variable-speed generator
avrSWAP(56) $=6.8$ ! Torque override: 0=yes
avrSWAP(47) $=$ LastGenTrq ! Demanded generator torque
! Pitch control:
! Compute the elapsed time since the last call to the controller:
ElapTime $=$ Time - LastTimePC
! Only perform the control calculations if the elapsed time is greater than ! or equal to the communication interval of the pitch controller: ! NOTE: Time is scaled by OnePlusEps to ensure that the contoller is called ! at every time step when ${\mathsf{P C}}\_{\mathsf{D T}}\ =\ {\mathsf{D T}}$ , even in the presence of ! numerical precision errors.
IF ( ( Time\*OnePlusEps - LastTimePC ) $>={\mathsf{P C}}\_{\mathsf{D T}}$ ) THEN ! Compute the gain scheduling correction factor based on the previously ! commanded pitch angle for blade 1:
$6\mathsf{K}~=~1.6/$ ( 1.0 + PitCom(1)/PC_KK )
! Compute the current speed error and its integral w.r.t. time; saturate the integral term using the pitch angle limits:
SpdErr $=$ GenSpeedF - PC_RefSpd
IntSpdErr $=$ IntSpdErr $^+$ SpdErr\*ElapTime
IntSpdErr $=$ MIN( MAX( IntSpdErr, PC_MinPit/( GK\*PC_KI ) ), &
PC_MaxPit/( GK\*PC_KI )
! Compute the pitch commands associated with the proportional and integral gains:
PitComP $\mathsf{\Omega}=\mathsf{\ G K}^{*}\mathsf{P C}\mathsf{\Pi}_{-}\mathsf{K P}^{*}$ SpdErr ! Proportional term PitComI $\texttt{=}\mathsf{G K}^{*}\mathsf{P C}\_\mathsf{K I}^{*}$ IntSpdErr ! Integral term (saturated)
! Superimpose the individual commands to get the total pitch command; ! saturate the overall command using the pitch angle limits:
PitComT $=$ PitComP $^+$ PitComI ! Overall command (unsaturated) PitComT $=$ MIN( MAX( PitComT, PC_MinPit ), PC_MaxPit ) ! Saturate the overall command using the pitch angle ! Saturate the overall commanded pitch using the pitch rate limit: ! NOTE: Since the current pitch angle may be different for each blade ! (depending on the type of actuator implemented in the structural ! dynamics model), this pitch rate limit calculation and the ! resulting overall pitch angle command may be different for each ! blade.
DO $\smash{\mathrm{~K~}=\,1}$ ,NumBl ! Loop through all blades
ENDDO ! K - all blades ! Reset the value of LastTimePC to the current value:
LastTimePC $=$ Time
! Output debugging information if requested:
IF ( PC_DbgOut ) WRITE (UnDb,FmtDat) Time, ElapTime, HorWindV, GenSpeed\*RPS2RPM, GenSpeedF\*RPS2RPM, & 100.0\*SpdErr/PC_RefSpd, SpdErr, IntSpdErr, GK, PitComP\*R2D, PitComI $\approx\mathsf{R}2\mathsf{D}$ , & PitComT\*R2D, PitRate(1) $\ast\mathtt{R}_{2\mathsf{D}}$ , PitCom(1) $\ast\mathtt{R}_{2\mathsf{D}}$
ENDIF
! Set the pitch override to yes and command the pitch demanded from the last ! call to the controller (See Appendix A of Bladed User's Guide):
avrSWAP(55) $=6.6$ ! Pitch override: 0=yes
avrSWAP(42) $=$ PitCom(1) ! Use the command angles of all blades if using individual pitch
avrSWAP(43) $=$ PitCom(2) ! "
avrSWAP(44) $=$ PitCom(3) ! "
avrSWAP(45) $=$ PitCom(1) ! Use the command angle of blade 1 if using collective pitch ! Reset the value of LastTime to the current value:
LastTime $=$ Time
ENDIF
! Convert CHARACTER string to byte array for the return message:
DO $\texttt{T}=\texttt{1}$ ,MIN( 256, NINT( avrSWAP(49) ) ) avcMSG(I) $=$ iMessage(I) ! Same as cMessage by EQUIVALENCE
ENDDO
FormApproved REPORTDOCUMENTATIONPAGE OMB No.0704-0188 | Thepublicreportingburdenfor thiscollectionof informationisestimated toaverage1hourperresponse,including thetimeforreviewinginstructions,searching existingdatasources, collectionofinformation,includingsuggestionsforreducingtheburden,toDepartmentofDefense,ExecutiveServicesandCommunicationsDirectorate(0704-0188).Respondents should be aware that notwithstanding any other provision of law, no person shall be subject to any penalty for failing to comply with a collection of information if it does not display a currentlyvalidOMBcontrolnumber. | PLEASEDONOTRETURNYOURFORMTOTHEABOVEORGANIZATION. 1.REPORT DATE (DD-MM-YYYY) February2009 | 2.REPORTTYPE technical report | 3.DATES COVERED(From-To) | 4.TITLE AND SUBTITLE Development | Definition of a 5-MW ReferenceWind Turbine for OffshoreSystem | 5a.CONTRACT NUMBER DE-AC36-08-GO28308 | | | | 5b.GRANTNUMBER 5c.PROGRAMELEMENTNUMBER | 6.AUTHOR(S) J. Jonkman, S. Butterfield, W. Musial, and G. Scott | 5d.PROJECTNUMBER NREL/TP-500-38060 5e.TASKNUMBER | | | WER5.3301 5f.WORKUNITNUMBER | | 7.PERFORMINGORGANIZATIONNAME(S)ANDADDRESS(ES) National Renewable Energy Laboratory 1617 ColeBlvd. Golden,CO80401-3393 | | 8.PERFORMINGORGANIZATION REPORTNUMBER NREL/TP-500-38060 | 9.SPONSORING/MONITORINGAGENCYNAME(S)ANDADDRESS(ES) | | 10.SPONSOR/MONITOR'SACRONYM(S) NREL | 12.DISTRIBUTIONAVAILABILITYSTATEMENT National TechnicalInformationService U.S.Departmentof Commerce | | 11.SPONSORING/MONITORING AGENCYREPORTNUMBER | 5285 Port Royal Road Springfield,VA 22161 13.SUPPLEMENTARYNOTES | 14.ABSTRACT(Maximum200Words) This report describes a three-bladed, upwind, variable-speed, variable blade-pitch-to-feather-controlled | technology. | 15.SUBJECTTERMS offshore wind energy development; wind turbine design model; wind turbine specifications | 16. SECURITY CLASSIFICATION OF: | a. REPORT Unclassified | b.ABSTRACT Unclassified | c.THIS PAGE Unclassified | 17. LIMITATION OFABSTRACT UL | 18.NUMBER 19a.NAMEOFRESPONSIBLEPERSON OFPAGES 19b.TELEPHONE NUMBER (Include area code) | | | |
Standard Form 298 (Rev. 8/98) Prescribed by ANSI Std. Z39.18 |