From 42c1421c71ec8912a427de6a07a584e24aa0a618 Mon Sep 17 00:00:00 2001 From: Nikhar Abbas Date: Wed, 2 Oct 2019 00:39:32 -0600 Subject: [PATCH 01/10] Include test cases I/O --- Tune_Cases/Cp_Ct_Cq.txt | 105 ++++++++++++++++++++++++++++++++++ Tune_Cases/DISCON.IN | 103 +++++++++++++++++++++++++++++++++ Tune_Cases/DISCON_NREL15MW.IN | 103 +++++++++++++++++++++++++++++++++ Tune_Cases/NREL15MW_turbine.p | Bin 0 -> 139770 bytes Tune_Cases/tune_NREL15MW.py | 92 +++++++++++++++++++++++++++++ 5 files changed, 403 insertions(+) create mode 100644 Tune_Cases/Cp_Ct_Cq.txt create mode 100644 Tune_Cases/DISCON.IN create mode 100644 Tune_Cases/DISCON_NREL15MW.IN create mode 100644 Tune_Cases/NREL15MW_turbine.p create mode 100644 Tune_Cases/tune_NREL15MW.py diff --git a/Tune_Cases/Cp_Ct_Cq.txt b/Tune_Cases/Cp_Ct_Cq.txt new file mode 100644 index 000000000..01972f4f2 --- /dev/null +++ b/Tune_Cases/Cp_Ct_Cq.txt @@ -0,0 +1,105 @@ +# Pitch angle vector - x axis (matrix columns) (deg) +-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 5.50 6.00 6.50 7.00 7.50 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 20.50 21.00 21.50 22.00 22.50 23.00 23.50 24.00 24.50 +# TSR vector - y axis (matrix rows) (-) +0.50 1.00 1.50 2.00 2.50 3.00 3.50 4.00 4.50 5.00 5.50 6.00 6.50 7.00 7.50 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 +# Wind speed vector - z axis (m/s) +3.00 + +# Power coefficient + +0.00192 0.00206 0.00220 0.00234 0.00248 0.00262 0.00276 0.00290 0.00304 0.00318 0.00331 0.00345 0.00358 0.00372 0.00385 0.00398 0.00411 0.00424 0.00437 0.00449 0.00462 0.00474 0.00486 0.00498 0.00510 0.00522 0.00534 0.00545 0.00556 0.00567 0.00578 0.00589 0.00600 0.00610 0.00621 0.00631 0.00641 0.00650 0.00660 0.00670 0.00679 0.00688 0.00697 0.00706 0.00714 0.00723 0.00731 0.00740 0.00748 0.00756 0.00764 0.00772 +0.00415 0.00448 0.00480 0.00512 0.00544 0.00576 0.00607 0.00638 0.00669 0.00700 0.00731 0.00761 0.00791 0.00821 0.00851 0.00880 0.00910 0.00939 0.00969 0.00998 0.01027 0.01057 0.01087 0.01117 0.01147 0.01178 0.01209 0.01240 0.01273 0.01306 0.01340 0.01374 0.01410 0.01447 0.01485 0.01523 0.01564 0.01605 0.01648 0.01692 0.01737 0.01784 0.01831 0.01880 0.01930 0.01981 0.02033 0.02086 0.02139 0.02193 0.02247 0.02301 +0.00743 0.00811 0.00880 0.00950 0.01021 0.01094 0.01167 0.01243 0.01319 0.01398 0.01479 0.01561 0.01646 0.01733 0.01823 0.01915 0.02009 0.02106 0.02205 0.02306 0.02410 0.02516 0.02624 0.02733 0.02844 0.02956 0.03069 0.03183 0.03297 0.03410 0.03523 0.03635 0.03746 0.03855 0.03962 0.04067 0.04169 0.04268 0.04363 0.04454 0.04541 0.04623 0.04700 0.04772 0.04838 0.04898 0.04953 0.05001 0.05043 0.05079 0.05107 0.05130 +0.01726 0.01902 0.02082 0.02267 0.02457 0.02650 0.02846 0.03047 0.03250 0.03455 0.03662 0.03870 0.04079 0.04288 0.04496 0.04702 0.04907 0.05109 0.05307 0.05501 0.05690 0.05875 0.06053 0.06225 0.06390 0.06547 0.06696 0.06837 0.06969 0.07091 0.07203 0.07305 0.07396 0.07476 0.07545 0.07602 0.07648 0.07683 0.07706 0.07718 0.07718 0.07707 0.07684 0.07649 0.07604 0.07548 0.07483 0.07407 0.07322 0.07228 0.07125 0.07013 +0.04260 0.04607 0.04954 0.05300 0.05644 0.05983 0.06318 0.06648 0.06970 0.07285 0.07592 0.07889 0.08177 0.08453 0.08718 0.08971 0.09211 0.09438 0.09650 0.09846 0.10026 0.10189 0.10335 0.10463 0.10572 0.10664 0.10737 0.10791 0.10827 0.10845 0.10843 0.10824 0.10787 0.10733 0.10663 0.10577 0.10476 0.10360 0.10230 0.10084 0.09924 0.09747 0.09554 0.09344 0.09116 0.08869 0.08603 0.08318 0.08016 0.07696 0.07359 0.07007 +0.08322 0.08806 0.09277 0.09734 0.10177 0.10604 0.11014 0.11407 0.11782 0.12137 0.12471 0.12784 0.13073 0.13338 0.13578 0.13791 0.13977 0.14135 0.14266 0.14370 0.14446 0.14494 0.14516 0.14511 0.14480 0.14424 0.14344 0.14240 0.14113 0.13963 0.13789 0.13592 0.13370 0.13123 0.12848 0.12544 0.12212 0.11852 0.11465 0.11051 0.10613 0.10150 0.09665 0.09158 0.08630 0.08081 0.07513 0.06927 0.06325 0.05711 0.05084 0.04446 +0.13323 0.13894 0.14440 0.14959 0.15452 0.15915 0.16347 0.16747 0.17112 0.17440 0.17730 0.17983 0.18198 0.18375 0.18515 0.18617 0.18681 0.18707 0.18694 0.18643 0.18556 0.18434 0.18278 0.18086 0.17859 0.17593 0.17286 0.16937 0.16548 0.16119 0.15652 0.15147 0.14607 0.14032 0.13423 0.12781 0.12107 0.11404 0.10676 0.09924 0.09151 0.08359 0.07550 0.06725 0.05887 0.05036 0.04174 0.03302 0.02420 0.01530 0.00631 -0.00274 +0.18876 0.19502 0.20088 0.20631 0.21128 0.21579 0.21983 0.22338 0.22644 0.22900 0.23103 0.23251 0.23344 0.23380 0.23362 0.23290 0.23164 0.22982 0.22744 0.22447 0.22092 0.21684 0.21220 0.20704 0.20137 0.19521 0.18857 0.18145 0.17387 0.16589 0.15754 0.14884 0.13982 0.13050 0.12089 0.11103 0.10093 0.09061 0.08009 0.06940 0.05853 0.04751 0.03636 0.02507 0.01367 0.00214 -0.00950 -0.02125 -0.03309 -0.04501 -0.05698 -0.06898 +0.24795 0.25464 0.26077 0.26629 0.27116 0.27536 0.27882 0.28152 0.28341 0.28446 0.28465 0.28396 0.28238 0.27996 0.27676 0.27280 0.26812 0.26278 0.25677 0.25011 0.24281 0.23493 0.22652 0.21760 0.20822 0.19839 0.18814 0.17747 0.16642 0.15499 0.14320 0.13107 0.11862 0.10589 0.09289 0.07964 0.06618 0.05251 0.03866 0.02465 0.01046 -0.00388 -0.01839 -0.03308 -0.04792 -0.06292 -0.07803 -0.09322 -0.10843 -0.12361 -0.13873 -0.15373 +0.31164 0.31867 0.32473 0.32970 0.33348 0.33597 0.33710 0.33692 0.33551 0.33295 0.32937 0.32487 0.31950 0.31329 0.30631 0.29862 0.29027 0.28131 0.27176 0.26165 0.25099 0.23980 0.22809 0.21586 0.20312 0.18989 0.17617 0.16200 0.14739 0.13237 0.11697 0.10124 0.08519 0.06886 0.05227 0.03544 0.01838 0.00110 -0.01641 -0.03415 -0.05214 -0.07039 -0.08887 -0.10756 -0.12640 -0.14529 -0.16416 -0.18290 -0.20145 -0.21973 -0.23774 -0.25550 +0.37693 0.38214 0.38555 0.38711 0.38693 0.38520 0.38209 0.37776 0.37239 0.36613 0.35907 0.35125 0.34272 0.33348 0.32358 0.31301 0.30179 0.28992 0.27739 0.26422 0.25040 0.23594 0.22084 0.20513 0.18882 0.17193 0.15450 0.13657 0.11817 0.09934 0.08012 0.06054 0.04063 0.02041 -0.00012 -0.02095 -0.04210 -0.06358 -0.08542 -0.10762 -0.13016 -0.15298 -0.17599 -0.19906 -0.22203 -0.24475 -0.26713 -0.28907 -0.31059 -0.33176 -0.35278 -0.37390 +0.42841 0.42925 0.42814 0.42545 0.42149 0.41647 0.41054 0.40377 0.39617 0.38776 0.37855 0.36854 0.35775 0.34616 0.33379 0.32062 0.30665 0.29188 0.27629 0.25990 0.24271 0.22473 0.20599 0.18652 0.16634 0.14551 0.12408 0.10209 0.07959 0.05662 0.03322 0.00939 -0.01483 -0.03947 -0.06453 -0.09005 -0.11604 -0.14253 -0.16949 -0.19684 -0.22447 -0.25220 -0.27980 -0.30706 -0.33382 -0.35998 -0.38551 -0.41052 -0.43526 -0.46009 -0.48538 -0.51139 +0.45558 0.45407 0.45129 0.44740 0.44249 0.43658 0.42967 0.42176 0.41288 0.40302 0.39219 0.38038 0.36758 0.35379 0.33899 0.32317 0.30633 0.28846 0.26956 0.24966 0.22877 0.20693 0.18418 0.16057 0.13617 0.11104 0.08522 0.05879 0.03177 0.00421 -0.02388 -0.05251 -0.08168 -0.11145 -0.14184 -0.17286 -0.20451 -0.23672 -0.26937 -0.30223 -0.33505 -0.36753 -0.39940 -0.43048 -0.46070 -0.49013 -0.51902 -0.54782 -0.57705 -0.60724 -0.63871 -0.67140 +0.46594 0.46532 0.46348 0.46037 0.45593 0.45018 0.44311 0.43475 0.42510 0.41418 0.40197 0.38847 0.37369 0.35760 0.34020 0.32149 0.30147 0.28017 0.25759 0.23378 0.20879 0.18268 0.15553 0.12740 0.09836 0.06850 0.03787 0.00652 -0.02551 -0.05823 -0.09164 -0.12578 -0.16071 -0.19643 -0.23295 -0.27024 -0.30819 -0.34657 -0.38513 -0.42351 -0.46132 -0.49821 -0.53401 -0.56869 -0.60241 -0.63565 -0.66905 -0.70331 -0.73912 -0.77686 -0.81641 -0.85729 +0.46660 0.46835 0.46864 0.46730 0.46426 0.45943 0.45280 0.44440 0.43424 0.42236 0.40878 0.39352 0.37657 0.35796 0.33767 0.31574 0.29219 0.26705 0.24039 0.21227 0.18277 0.15200 0.12002 0.08693 0.05282 0.01777 -0.01817 -0.05498 -0.09265 -0.13122 -0.17073 -0.21122 -0.25270 -0.29516 -0.33854 -0.38268 -0.42730 -0.47209 -0.51659 -0.56028 -0.60273 -0.64377 -0.68340 -0.72193 -0.76004 -0.79857 -0.83838 -0.88036 -0.92508 -0.97245 -1.02186 -1.07203 +0.46121 0.46588 0.46883 0.46984 0.46868 0.46524 0.45942 0.45121 0.44067 0.42785 0.41283 0.39564 0.37632 0.35489 0.33140 0.30589 0.27842 0.24907 0.21792 0.18510 0.15069 0.11481 0.07756 0.03906 -0.00061 -0.04138 -0.08323 -0.12615 -0.17020 -0.21542 -0.26184 -0.30948 -0.35829 -0.40819 -0.45900 -0.51040 -0.56199 -0.61323 -0.66346 -0.71215 -0.75907 -0.80429 -0.84824 -0.89178 -0.93590 -0.98163 -1.03016 -1.08237 -1.13832 -1.19729 -1.25762 -1.31711 +0.45175 0.45925 0.46502 0.46860 0.46962 0.46784 0.46310 0.45530 0.44448 0.43072 0.41415 0.39486 0.37291 0.34839 0.32136 0.29191 0.26015 0.22620 0.19018 0.15222 0.11245 0.07101 0.02802 -0.01640 -0.06219 -0.10929 -0.15772 -0.20752 -0.25875 -0.31144 -0.36558 -0.42113 -0.47798 -0.53594 -0.59465 -0.65365 -0.71231 -0.76984 -0.82555 -0.87917 -0.93075 -0.98082 -1.03035 -1.08043 -1.13235 -1.18762 -1.24755 -1.31258 -1.38206 -1.45391 -1.52519 -1.59322 +0.44026 0.44977 0.45793 0.46400 0.46732 0.46739 0.46391 0.45670 0.44569 0.43098 0.41275 0.39116 0.36635 0.33843 0.30753 0.27379 0.23737 0.19842 0.15709 0.11355 0.06795 0.02046 -0.02880 -0.07972 -0.13224 -0.18636 -0.24214 -0.29964 -0.35887 -0.41985 -0.48249 -0.54669 -0.61223 -0.67877 -0.74578 -0.81257 -0.87822 -0.94190 -1.00317 -1.06205 -1.11903 -1.17511 -1.23154 -1.28985 -1.35186 -1.41951 -1.49385 -1.57439 -1.65884 -1.74349 -1.82493 -1.90097 +0.42765 0.43872 0.44855 0.45662 0.46208 0.46404 0.46194 0.45541 0.44430 0.42862 0.40862 0.38455 0.35660 0.32499 0.28989 0.25150 0.21002 0.16564 0.11856 0.06896 0.01703 -0.03705 -0.09314 -0.15118 -0.21114 -0.27306 -0.33702 -0.40304 -0.47111 -0.54117 -0.61306 -0.68661 -0.76145 -0.83704 -0.91264 -0.98727 -1.05993 -1.12994 -1.19719 -1.26201 -1.32534 -1.38857 -1.45346 -1.52222 -1.59738 -1.68081 -1.77243 -1.87010 -1.96954 -2.06638 -2.15758 -2.24220 +0.41382 0.42649 0.43766 0.44717 0.45430 0.45800 0.45726 0.45149 0.44031 0.42366 0.40176 0.37499 0.34366 0.30805 0.26841 0.22499 0.17803 0.12778 0.07445 0.01828 -0.04051 -0.10174 -0.16531 -0.23116 -0.29933 -0.36988 -0.44285 -0.51824 -0.59597 -0.67588 -0.75778 -0.84134 -0.92602 -1.01106 -1.09549 -1.17815 -1.25809 -1.33492 -1.40870 -1.48017 -1.55079 -1.62258 -1.69814 -1.78051 -1.87239 -1.97455 -2.08537 -2.20056 -2.31465 -2.42343 -2.52484 -2.61933 +0.39858 0.41296 0.42549 0.43611 0.44445 0.44951 0.45001 0.44496 0.43373 0.41606 0.39215 0.36249 0.32751 0.28758 0.24303 0.19417 0.14129 0.08468 0.02461 -0.03865 -0.10488 -0.17390 -0.24563 -0.32007 -0.39728 -0.47730 -0.56015 -0.64574 -0.73392 -0.82447 -0.91709 -1.01129 -1.10633 -1.20126 -1.29486 -1.38595 -1.47369 -1.55776 -1.63853 -1.71740 -1.79660 -1.87913 -1.96847 -2.06797 -2.17961 -2.30272 -2.43374 -2.56642 -2.69507 -2.81609 -2.92890 -3.03469 +0.38179 0.39801 0.41193 0.42361 0.43282 0.43885 0.44029 0.43585 0.42453 0.40581 0.37976 0.34700 0.30810 0.26352 0.21368 0.15895 0.09968 0.03621 -0.03114 -0.10206 -0.17635 -0.25383 -0.33448 -0.41833 -0.50543 -0.59579 -0.68937 -0.78599 -0.88543 -0.98739 -1.09144 -1.19692 -1.30292 -1.40825 -1.51156 -1.61160 -1.70748 -1.79906 -1.88738 -1.97480 -2.06467 -2.16088 -2.26730 -2.38704 -2.52092 -2.66665 -2.81831 -2.96862 -3.11209 -3.24634 -3.37192 -3.49051 +0.36331 0.38148 0.39686 0.40962 0.41955 0.42622 0.42826 0.42421 0.41272 0.39288 0.36457 0.32849 0.28537 0.23578 0.18024 0.11919 0.05305 -0.01780 -0.09298 -0.17218 -0.25519 -0.34189 -0.43226 -0.52636 -0.62422 -0.72581 -0.83096 -0.93945 -1.05097 -1.16512 -1.28134 -1.39881 -1.51645 -1.63286 -1.74648 -1.85580 -1.95997 -2.05939 -2.15625 -2.25414 -2.35738 -2.47034 -2.59689 -2.73956 -2.89783 -3.06732 -3.24004 -3.40835 -3.56739 -3.71617 -3.85601 -3.98895 +0.34306 0.36328 0.38018 0.39402 0.40461 0.41171 0.41406 0.41011 0.39829 0.37723 0.34654 0.30690 0.25925 0.20429 0.14263 0.07478 0.00125 -0.07752 -0.16113 -0.24927 -0.34172 -0.43841 -0.53935 -0.64459 -0.75411 -0.86778 -0.98537 -1.10658 -1.23100 -1.35815 -1.48736 -1.61766 -1.74776 -1.87598 -2.00029 -2.11900 -2.23158 -2.33962 -2.44669 -2.55750 -2.67694 -2.80952 -2.95901 -3.12705 -3.31156 -3.50572 -3.70011 -3.88706 -4.06282 -4.22759 -4.38323 -4.53215 +0.32095 0.34328 0.36179 0.37673 0.38795 0.39534 0.39774 0.39361 0.38123 0.35884 0.32560 0.28218 0.22967 0.16894 0.10070 0.02558 -0.05588 -0.14316 -0.23584 -0.33360 -0.43626 -0.54377 -0.65615 -0.77342 -0.89549 -1.02214 -1.15305 -1.28784 -1.42604 -1.56709 -1.71022 -1.85431 -1.99775 -2.13829 -2.27343 -2.40152 -2.52304 -2.64109 -2.76053 -2.88683 -3.02519 -3.18012 -3.35516 -3.55090 -3.76327 -3.98306 -4.19989 -4.40641 -4.60026 -4.78255 -4.95561 -5.12216 +0.29704 0.32142 0.34158 0.35764 0.36950 0.37707 0.37934 0.37476 0.36154 0.33766 0.30172 0.25424 0.19653 0.12962 0.05435 -0.02857 -0.11851 -0.21492 -0.31734 -0.42547 -0.53914 -0.65833 -0.78305 -0.91327 -1.04879 -1.18932 -1.33446 -1.48374 -1.63664 -1.79259 -1.95072 -2.10962 -2.26712 -2.42026 -2.56619 -2.70394 -2.83546 -2.96535 -3.09948 -3.24382 -3.40369 -3.58361 -3.78674 -4.01243 -4.25419 -4.50066 -4.74080 -4.96812 -5.18157 -5.38301 -5.57514 -5.76104 +0.27144 0.29765 0.31946 0.33666 0.34916 0.35683 0.35884 0.35356 0.33923 0.31365 0.27482 0.22300 0.15974 0.08623 0.00344 -0.08782 -0.18684 -0.29303 -0.40591 -0.52517 -0.65069 -0.78245 -0.92044 -1.06452 -1.21443 -1.36977 -1.53007 -1.69479 -1.86345 -2.03544 -2.20971 -2.38437 -2.55642 -2.72217 -2.87900 -3.02714 -3.17017 -3.31391 -3.46509 -3.62996 -3.81384 -4.02136 -4.25516 -4.51295 -4.78563 -5.05990 -5.32441 -5.57393 -5.80861 -6.03086 -6.24376 -6.45082 +0.24428 0.27207 0.29537 0.31371 0.32686 0.33457 0.33620 0.33000 0.31430 0.28677 0.24484 0.18840 0.11919 0.03863 -0.05219 -0.15235 -0.26107 -0.37772 -0.50179 -0.63301 -0.77125 -0.91650 -1.06869 -1.22759 -1.39283 -1.56395 -1.74037 -1.92160 -2.10717 -2.29643 -2.48798 -2.67914 -2.86596 -3.04439 -3.21257 -3.37225 -3.52845 -3.68819 -3.85879 -4.04660 -4.25699 -4.49473 -4.76178 -5.05383 -5.35896 -5.66215 -5.95230 -6.22561 -6.48321 -6.72799 -6.96343 -7.19363 +0.21596 0.24474 0.26929 0.28873 0.30251 0.31023 0.31138 0.30409 0.28673 0.25695 0.21170 0.15033 0.07480 -0.01328 -0.11267 -0.22233 -0.34141 -0.46922 -0.60527 -0.74928 -0.90116 -1.06085 -1.22820 -1.40288 -1.58444 -1.77230 -1.96590 -2.16478 -2.36855 -2.57637 -2.78622 -2.99440 -3.19607 -3.38744 -3.56780 -3.74038 -3.91158 -4.08953 -4.28189 -4.49498 -4.73442 -5.00507 -5.30801 -5.63645 -5.97553 -6.30884 -6.62610 -6.92490 -7.20719 -7.47626 -7.73613 -7.99166 + + +# Thrust coefficient + +0.06742 0.06741 0.06739 0.06736 0.06732 0.06727 0.06721 0.06714 0.06706 0.06696 0.06686 0.06674 0.06662 0.06648 0.06633 0.06617 0.06600 0.06582 0.06563 0.06543 0.06522 0.06500 0.06476 0.06452 0.06427 0.06400 0.06373 0.06345 0.06315 0.06285 0.06253 0.06221 0.06188 0.06153 0.06118 0.06082 0.06045 0.06007 0.05968 0.05929 0.05888 0.05846 0.05804 0.05761 0.05717 0.05673 0.05628 0.05582 0.05535 0.05488 0.05440 0.05391 +0.07812 0.07796 0.07779 0.07760 0.07741 0.07720 0.07698 0.07675 0.07650 0.07625 0.07598 0.07571 0.07542 0.07513 0.07482 0.07450 0.07418 0.07385 0.07351 0.07316 0.07281 0.07245 0.07209 0.07172 0.07135 0.07099 0.07062 0.07025 0.06988 0.06951 0.06915 0.06880 0.06845 0.06811 0.06777 0.06744 0.06712 0.06681 0.06651 0.06622 0.06594 0.06566 0.06539 0.06513 0.06487 0.06462 0.06437 0.06412 0.06388 0.06363 0.06337 0.06311 +0.09346 0.09320 0.09295 0.09269 0.09244 0.09220 0.09197 0.09174 0.09153 0.09134 0.09116 0.09100 0.09085 0.09073 0.09062 0.09054 0.09047 0.09043 0.09040 0.09039 0.09040 0.09042 0.09045 0.09049 0.09053 0.09058 0.09062 0.09066 0.09069 0.09071 0.09070 0.09068 0.09063 0.09056 0.09045 0.09031 0.09013 0.08990 0.08964 0.08933 0.08897 0.08856 0.08811 0.08760 0.08703 0.08642 0.08575 0.08503 0.08426 0.08344 0.08257 0.08166 +0.11855 0.11879 0.11907 0.11939 0.11975 0.12013 0.12055 0.12098 0.12144 0.12190 0.12237 0.12283 0.12328 0.12371 0.12412 0.12449 0.12482 0.12510 0.12533 0.12550 0.12561 0.12564 0.12561 0.12549 0.12530 0.12502 0.12466 0.12422 0.12369 0.12307 0.12236 0.12157 0.12069 0.11973 0.11869 0.11758 0.11639 0.11513 0.11381 0.11243 0.11100 0.10950 0.10795 0.10634 0.10468 0.10297 0.10120 0.09937 0.09748 0.09554 0.09353 0.09147 +0.16154 0.16257 0.16356 0.16451 0.16541 0.16624 0.16700 0.16766 0.16823 0.16870 0.16905 0.16928 0.16940 0.16938 0.16924 0.16896 0.16855 0.16800 0.16732 0.16651 0.16557 0.16450 0.16330 0.16199 0.16057 0.15905 0.15743 0.15571 0.15391 0.15203 0.15007 0.14804 0.14593 0.14374 0.14147 0.13911 0.13666 0.13412 0.13148 0.12873 0.12586 0.12286 0.11974 0.11647 0.11307 0.10950 0.10578 0.10191 0.09789 0.09373 0.08945 0.08507 +0.21940 0.22030 0.22103 0.22158 0.22194 0.22212 0.22209 0.22187 0.22146 0.22084 0.22004 0.21904 0.21786 0.21650 0.21498 0.21330 0.21147 0.20951 0.20742 0.20522 0.20293 0.20053 0.19805 0.19548 0.19280 0.19002 0.18712 0.18409 0.18091 0.17757 0.17405 0.17035 0.16644 0.16232 0.15797 0.15337 0.14852 0.14344 0.13815 0.13265 0.12696 0.12110 0.11508 0.10891 0.10261 0.09617 0.08961 0.08293 0.07617 0.06933 0.06244 0.05549 +0.28388 0.28364 0.28314 0.28236 0.28132 0.28002 0.27849 0.27673 0.27475 0.27259 0.27024 0.26776 0.26515 0.26243 0.25962 0.25672 0.25371 0.25058 0.24731 0.24388 0.24025 0.23643 0.23236 0.22803 0.22341 0.21845 0.21312 0.20741 0.20135 0.19495 0.18823 0.18122 0.17393 0.16639 0.15861 0.15061 0.14240 0.13400 0.12544 0.11675 0.10794 0.09903 0.09004 0.08098 0.07186 0.06270 0.05350 0.04428 0.03505 0.02582 0.01659 0.00737 +0.34990 0.34797 0.34576 0.34331 0.34064 0.33782 0.33487 0.33182 0.32869 0.32548 0.32215 0.31869 0.31507 0.31124 0.30718 0.30284 0.29817 0.29309 0.28753 0.28143 0.27480 0.26767 0.26004 0.25195 0.24344 0.23455 0.22528 0.21566 0.20571 0.19550 0.18504 0.17439 0.16355 0.15255 0.14142 0.13016 0.11880 0.10734 0.09581 0.08421 0.07256 0.06086 0.04914 0.03741 0.02566 0.01393 0.00220 -0.00951 -0.02119 -0.03284 -0.04443 -0.05595 +0.41659 0.41337 0.41007 0.40673 0.40332 0.39981 0.39616 0.39233 0.38825 0.38385 0.37906 0.37373 0.36775 0.36106 0.35367 0.34557 0.33678 0.32738 0.31741 0.30687 0.29580 0.28427 0.27235 0.26009 0.24752 0.23469 0.22161 0.20832 0.19485 0.18120 0.16739 0.15345 0.13938 0.12520 0.11093 0.09659 0.08217 0.06772 0.05322 0.03871 0.02420 0.00968 -0.00482 -0.01931 -0.03377 -0.04819 -0.06255 -0.07684 -0.09102 -0.10505 -0.11890 -0.13252 +0.48931 0.48578 0.48207 0.47809 0.47374 0.46885 0.46324 0.45683 0.44955 0.44133 0.43219 0.42221 0.41139 0.39978 0.38746 0.37451 0.36102 0.34706 0.33268 0.31793 0.30284 0.28744 0.27177 0.25585 0.23969 0.22332 0.20675 0.19001 0.17311 0.15607 0.13891 0.12165 0.10430 0.08688 0.06941 0.05190 0.03437 0.01683 -0.00071 -0.01824 -0.03576 -0.05325 -0.07070 -0.08809 -0.10538 -0.12254 -0.13951 -0.15624 -0.17267 -0.18871 -0.20432 -0.21940 +0.57079 0.56550 0.55935 0.55217 0.54387 0.53445 0.52391 0.51227 0.49962 0.48609 0.47180 0.45682 0.44124 0.42511 0.40850 0.39144 0.37397 0.35614 0.33796 0.31945 0.30065 0.28158 0.26225 0.24270 0.22293 0.20298 0.18286 0.16259 0.14219 0.12168 0.10107 0.08040 0.05967 0.03890 0.01811 -0.00269 -0.02350 -0.04431 -0.06511 -0.08588 -0.10660 -0.12722 -0.14770 -0.16798 -0.18798 -0.20763 -0.22686 -0.24558 -0.26372 -0.28120 -0.29791 -0.31369 +0.64958 0.63945 0.62793 0.61515 0.60129 0.58645 0.57074 0.55423 0.53701 0.51913 0.50065 0.48162 0.46208 0.44206 0.42161 0.40075 0.37950 0.35789 0.33594 0.31369 0.29115 0.26834 0.24530 0.22203 0.19857 0.17494 0.15115 0.12723 0.10320 0.07908 0.05489 0.03065 0.00637 -0.01794 -0.04227 -0.06661 -0.09095 -0.11527 -0.13953 -0.16367 -0.18763 -0.21131 -0.23464 -0.25753 -0.27988 -0.30162 -0.32267 -0.34292 -0.36226 -0.38053 -0.39753 -0.41304 +0.71352 0.69827 0.68202 0.66483 0.64676 0.62786 0.60820 0.58782 0.56677 0.54511 0.52288 0.50010 0.47681 0.45304 0.42882 0.40417 0.37912 0.35370 0.32794 0.30185 0.27547 0.24882 0.22193 0.19482 0.16751 0.14003 0.11240 0.08466 0.05682 0.02890 0.00092 -0.02711 -0.05518 -0.08329 -0.11143 -0.13956 -0.16763 -0.19559 -0.22333 -0.25076 -0.27777 -0.30426 -0.33014 -0.35531 -0.37967 -0.40314 -0.42557 -0.44682 -0.46667 -0.48489 -0.50118 -0.51525 +0.76495 0.74631 0.72675 0.70629 0.68492 0.66269 0.63965 0.61585 0.59133 0.56613 0.54029 0.51386 0.48685 0.45932 0.43128 0.40278 0.37384 0.34450 0.31478 0.28472 0.25434 0.22367 0.19275 0.16161 0.13026 0.09875 0.06709 0.03532 0.00346 -0.02850 -0.06052 -0.09262 -0.12478 -0.15696 -0.18911 -0.22116 -0.25301 -0.28454 -0.31561 -0.34612 -0.37595 -0.40499 -0.43315 -0.46030 -0.48633 -0.51108 -0.53437 -0.55595 -0.57556 -0.59287 -0.60753 -0.61913 +0.80848 0.78721 0.76507 0.74198 0.71792 0.69285 0.66681 0.63983 0.61198 0.58332 0.55391 0.52379 0.49302 0.46164 0.42968 0.39720 0.36423 0.33080 0.29696 0.26274 0.22818 0.19330 0.15816 0.12277 0.08719 0.05143 0.01552 -0.02052 -0.05667 -0.09294 -0.12931 -0.16575 -0.20221 -0.23863 -0.27488 -0.31084 -0.34636 -0.38130 -0.41553 -0.44892 -0.48135 -0.51270 -0.54285 -0.57166 -0.59896 -0.62454 -0.64816 -0.66952 -0.68825 -0.70393 -0.71608 -0.72431 +0.84679 0.82318 0.79875 0.77338 0.74691 0.71930 0.69048 0.66049 0.62941 0.59731 0.56429 0.53044 0.49580 0.46046 0.42445 0.38783 0.35065 0.31297 0.27481 0.23624 0.19729 0.15800 0.11841 0.07858 0.03853 -0.00172 -0.04214 -0.08271 -0.12344 -0.16431 -0.20528 -0.24626 -0.28717 -0.32786 -0.36817 -0.40794 -0.44700 -0.48521 -0.52242 -0.55850 -0.59332 -0.62674 -0.65862 -0.68877 -0.71701 -0.74308 -0.76665 -0.78730 -0.80453 -0.81780 -0.82661 -0.83068 +0.88156 0.85551 0.82883 0.80125 0.77254 0.74252 0.71110 0.67824 0.64399 0.60847 0.57182 0.53414 0.49553 0.45609 0.41587 0.37495 0.33339 0.29125 0.24858 0.20544 0.16189 0.11797 0.07373 0.02921 -0.01556 -0.06055 -0.10576 -0.15117 -0.19675 -0.24246 -0.28820 -0.33384 -0.37922 -0.42415 -0.46844 -0.51191 -0.55439 -0.59572 -0.63576 -0.67436 -0.71139 -0.74668 -0.78009 -0.81141 -0.84040 -0.86669 -0.88981 -0.90918 -0.92419 -0.93423 -0.93895 -0.93825 +0.91442 0.88532 0.85606 0.82617 0.79524 0.76291 0.72898 0.69337 0.65603 0.61710 0.57675 0.53516 0.49246 0.44876 0.40417 0.35877 0.31263 0.26583 0.21845 0.17054 0.12216 0.07339 0.02425 -0.02520 -0.07495 -0.12497 -0.17526 -0.22577 -0.27644 -0.32715 -0.37777 -0.42810 -0.47793 -0.52705 -0.57524 -0.62232 -0.66810 -0.71244 -0.75519 -0.79619 -0.83531 -0.87239 -0.90726 -0.93965 -0.96919 -0.99537 -1.01751 -1.03494 -1.04697 -1.05312 -1.05319 -1.04733 +0.94638 0.91378 0.88134 0.84874 0.81543 0.78078 0.74441 0.70609 0.66574 0.62339 0.57930 0.53370 0.48678 0.43868 0.38954 0.33946 0.28855 0.23689 0.18457 0.13166 0.07824 0.02437 -0.02992 -0.08457 -0.13958 -0.19491 -0.25054 -0.30637 -0.36228 -0.41812 -0.47367 -0.52869 -0.58294 -0.63619 -0.68821 -0.73881 -0.78782 -0.83510 -0.88050 -0.92387 -0.96508 -1.00396 -1.04027 -1.07360 -1.10341 -1.12897 -1.14955 -1.16439 -1.17284 -1.17457 -1.16960 -1.15850 +0.97776 0.94146 0.90544 0.86965 0.83356 0.79645 0.75760 0.71662 0.67328 0.62754 0.57965 0.52994 0.47865 0.42599 0.37212 0.31718 0.26128 0.20454 0.14707 0.08894 0.03023 -0.02900 -0.08869 -0.14882 -0.20937 -0.27027 -0.33145 -0.39277 -0.45406 -0.51509 -0.57560 -0.63531 -0.69396 -0.75129 -0.80708 -0.86116 -0.91339 -0.96361 -1.01169 -1.05749 -1.10087 -1.14158 -1.17923 -1.21325 -1.24289 -1.26735 -1.28582 -1.29752 -1.30190 -1.29881 -1.28861 -1.27230 +1.00869 0.96856 0.92879 0.88940 0.85015 0.81026 0.76882 0.72514 0.67882 0.62969 0.57794 0.52400 0.46821 0.41081 0.35203 0.29201 0.23093 0.16889 0.10603 0.04244 -0.02180 -0.08663 -0.15201 -0.21789 -0.28422 -0.35091 -0.41784 -0.48480 -0.55156 -0.61783 -0.68332 -0.74771 -0.81072 -0.87211 -0.93168 -0.98928 -1.04477 -1.09801 -1.14889 -1.19724 -1.24285 -1.28532 -1.32411 -1.35847 -1.38754 -1.41045 -1.42633 -1.43442 -1.43431 -1.42611 -1.41063 -1.38920 +1.03929 0.99521 0.95150 0.90834 0.86555 0.82255 0.77828 0.73181 0.68249 0.62995 0.57429 0.51601 0.45556 0.39325 0.32936 0.26407 0.19758 0.13003 0.06155 -0.00774 -0.07777 -0.14848 -0.21980 -0.29168 -0.36403 -0.43672 -0.50956 -0.58227 -0.65458 -0.72614 -0.79662 -0.86569 -0.93308 -0.99856 -1.06198 -1.12318 -1.18205 -1.23846 -1.29227 -1.34326 -1.39107 -1.43516 -1.47483 -1.50920 -1.53733 -1.55829 -1.57115 -1.57521 -1.57025 -1.55677 -1.53600 -1.50960 +1.06966 1.02148 0.97370 0.92660 0.88002 0.83361 0.78622 0.73679 0.68441 0.62843 0.56880 0.50606 0.44079 0.37340 0.30420 0.23343 0.16131 0.08802 0.01369 -0.06156 -0.13763 -0.21447 -0.29199 -0.37012 -0.44871 -0.52758 -0.60646 -0.68503 -0.76295 -0.83985 -0.91535 -0.98913 -1.06095 -1.13063 -1.19800 -1.26295 -1.32536 -1.38512 -1.44197 -1.49561 -1.54552 -1.59105 -1.63134 -1.66542 -1.69229 -1.71092 -1.72034 -1.71998 -1.70990 -1.69106 -1.66502 -1.63378 +1.09984 1.04744 0.99545 0.94426 0.89372 0.84363 0.79288 0.74027 0.68470 0.62523 0.56155 0.49423 0.42399 0.35133 0.27662 0.20016 0.12220 0.04292 -0.03750 -0.11895 -0.20134 -0.28456 -0.36853 -0.45313 -0.53816 -0.62337 -0.70842 -0.79294 -0.87655 -0.95882 -1.03940 -1.11798 -1.19435 -1.26835 -1.33983 -1.40872 -1.47487 -1.53809 -1.59804 -1.65427 -1.70618 -1.75296 -1.79364 -1.82717 -1.85244 -1.86835 -1.87394 -1.86882 -1.85345 -1.82918 -1.79794 -1.76199 +1.12984 1.07314 1.01682 0.96138 0.90674 0.85277 0.79840 0.74237 0.68346 0.62041 0.55262 0.48060 0.40522 0.32710 0.24668 0.16432 0.08028 -0.00521 -0.09198 -0.17989 -0.26883 -0.35869 -0.44935 -0.54064 -0.63230 -0.72399 -0.81533 -0.90590 -0.99526 -1.08299 -1.16874 -1.25224 -1.33331 -1.41180 -1.48760 -1.56062 -1.63067 -1.69744 -1.76047 -1.81924 -1.87301 -1.92086 -1.96173 -1.99444 -2.01781 -2.03062 -2.03202 -2.02186 -2.00106 -1.97133 -1.93492 -1.89440 +1.15951 1.09859 1.03782 0.97800 0.91913 0.86109 0.80291 0.74325 0.68078 0.61407 0.54209 0.46522 0.38454 0.30077 0.21444 0.12595 0.03561 -0.05634 -0.14970 -0.24432 -0.34007 -0.43682 -0.53440 -0.63259 -0.73103 -0.82935 -0.92709 -1.02381 -1.11903 -1.21232 -1.30338 -1.39197 -1.47791 -1.56108 -1.64142 -1.71876 -1.79281 -1.86315 -1.92926 -1.99048 -2.04600 -2.09478 -2.13563 -2.16727 -2.18839 -2.19775 -2.19462 -2.17922 -2.15287 -2.11765 -2.07612 -2.03113 +1.18862 1.12373 1.05850 0.99416 0.93093 0.86866 0.80651 0.74299 0.67677 0.60626 0.52999 0.44816 0.36200 0.27239 0.17993 0.08509 -0.01179 -0.11043 -0.21063 -0.31222 -0.41502 -0.51890 -0.62363 -0.72890 -0.83429 -0.93937 -1.04366 -1.14664 -1.24783 -1.34683 -1.44336 -1.53720 -1.62821 -1.71631 -1.80138 -1.88318 -1.96131 -2.03524 -2.10438 -2.16801 -2.22517 -2.27473 -2.31535 -2.34563 -2.36418 -2.36975 -2.36181 -2.34099 -2.30900 -2.26827 -2.22163 -2.17230 +1.21694 1.14839 1.07885 1.00990 0.94219 0.87554 0.80925 0.74168 0.67151 0.59704 0.51639 0.42945 0.33764 0.24199 0.14319 0.04178 -0.06187 -0.16746 -0.27475 -0.38354 -0.49366 -0.60490 -0.71699 -0.82952 -0.94203 -1.05403 -1.16498 -1.27435 -1.38166 -1.48653 -1.58871 -1.68801 -1.78432 -1.87756 -1.96754 -2.05390 -2.13615 -2.21368 -2.28584 -2.35180 -2.41052 -2.46070 -2.50088 -2.52955 -2.54521 -2.54667 -2.53367 -2.50727 -2.46954 -2.42325 -2.37156 -2.31804 +1.24397 1.17246 1.09881 1.02523 0.95292 0.88177 0.81120 0.73941 0.66507 0.58646 0.50132 0.40914 0.31150 0.20960 0.10425 -0.00396 -0.11462 -0.22739 -0.34202 -0.45827 -0.57595 -0.69479 -0.81444 -0.93441 -1.05421 -1.17327 -1.29104 -1.40695 -1.52054 -1.63147 -1.73950 -1.84447 -1.94631 -2.04489 -2.13991 -2.23092 -2.31732 -2.39846 -2.47362 -2.54187 -2.60205 -2.65269 -2.69222 -2.71901 -2.73147 -2.72853 -2.71026 -2.67812 -2.63458 -2.58267 -2.52599 -2.46851 + + +# Torque coefficient + +0.00384 0.00412 0.00441 0.00469 0.00497 0.00525 0.00553 0.00581 0.00609 0.00636 0.00664 0.00691 0.00718 0.00744 0.00771 0.00797 0.00823 0.00849 0.00874 0.00899 0.00924 0.00949 0.00973 0.00998 0.01021 0.01045 0.01068 0.01091 0.01114 0.01136 0.01158 0.01179 0.01201 0.01222 0.01242 0.01263 0.01283 0.01302 0.01321 0.01340 0.01359 0.01377 0.01395 0.01413 0.01430 0.01447 0.01464 0.01481 0.01497 0.01514 0.01530 0.01546 +0.00416 0.00448 0.00481 0.00513 0.00545 0.00576 0.00608 0.00639 0.00670 0.00701 0.00731 0.00762 0.00792 0.00822 0.00851 0.00881 0.00911 0.00940 0.00969 0.00999 0.01028 0.01058 0.01088 0.01118 0.01148 0.01179 0.01210 0.01242 0.01274 0.01307 0.01341 0.01376 0.01411 0.01448 0.01486 0.01525 0.01565 0.01607 0.01649 0.01693 0.01739 0.01785 0.01833 0.01882 0.01932 0.01983 0.02035 0.02088 0.02141 0.02195 0.02249 0.02304 +0.00496 0.00541 0.00587 0.00634 0.00682 0.00730 0.00779 0.00829 0.00880 0.00933 0.00987 0.01042 0.01098 0.01157 0.01216 0.01278 0.01341 0.01405 0.01471 0.01539 0.01608 0.01679 0.01751 0.01824 0.01898 0.01973 0.02048 0.02124 0.02200 0.02276 0.02351 0.02426 0.02500 0.02573 0.02644 0.02714 0.02782 0.02848 0.02911 0.02972 0.03030 0.03085 0.03136 0.03184 0.03228 0.03269 0.03305 0.03337 0.03365 0.03389 0.03408 0.03423 +0.00864 0.00952 0.01042 0.01135 0.01229 0.01326 0.01425 0.01525 0.01626 0.01729 0.01833 0.01937 0.02042 0.02146 0.02250 0.02353 0.02456 0.02557 0.02656 0.02753 0.02848 0.02940 0.03029 0.03115 0.03198 0.03277 0.03351 0.03422 0.03488 0.03549 0.03605 0.03656 0.03702 0.03742 0.03776 0.03805 0.03828 0.03845 0.03857 0.03863 0.03863 0.03857 0.03845 0.03828 0.03806 0.03778 0.03745 0.03707 0.03665 0.03617 0.03566 0.03510 +0.01705 0.01845 0.01984 0.02122 0.02260 0.02396 0.02530 0.02662 0.02791 0.02917 0.03040 0.03159 0.03274 0.03385 0.03491 0.03592 0.03688 0.03779 0.03864 0.03942 0.04014 0.04080 0.04138 0.04189 0.04233 0.04270 0.04299 0.04321 0.04335 0.04342 0.04341 0.04334 0.04319 0.04297 0.04269 0.04235 0.04194 0.04148 0.04096 0.04038 0.03973 0.03903 0.03825 0.03741 0.03650 0.03551 0.03444 0.03330 0.03209 0.03081 0.02946 0.02806 +0.02777 0.02938 0.03095 0.03248 0.03396 0.03538 0.03675 0.03806 0.03931 0.04049 0.04161 0.04265 0.04362 0.04450 0.04530 0.04601 0.04663 0.04716 0.04760 0.04795 0.04820 0.04836 0.04843 0.04842 0.04831 0.04813 0.04786 0.04751 0.04709 0.04659 0.04601 0.04535 0.04461 0.04378 0.04287 0.04185 0.04075 0.03954 0.03825 0.03687 0.03541 0.03387 0.03225 0.03056 0.02879 0.02696 0.02507 0.02311 0.02111 0.01905 0.01696 0.01483 +0.03810 0.03974 0.04130 0.04278 0.04419 0.04551 0.04675 0.04789 0.04894 0.04988 0.05071 0.05143 0.05204 0.05255 0.05295 0.05324 0.05343 0.05350 0.05346 0.05332 0.05307 0.05272 0.05227 0.05172 0.05107 0.05031 0.04944 0.04844 0.04732 0.04610 0.04476 0.04332 0.04177 0.04013 0.03839 0.03655 0.03462 0.03261 0.03053 0.02838 0.02617 0.02391 0.02159 0.01923 0.01684 0.01440 0.01194 0.00944 0.00692 0.00437 0.00181 -0.00078 +0.04723 0.04880 0.05027 0.05163 0.05287 0.05400 0.05501 0.05590 0.05666 0.05730 0.05781 0.05818 0.05842 0.05851 0.05846 0.05828 0.05796 0.05751 0.05691 0.05617 0.05528 0.05426 0.05310 0.05181 0.05039 0.04885 0.04719 0.04540 0.04351 0.04151 0.03942 0.03725 0.03499 0.03266 0.03025 0.02778 0.02526 0.02267 0.02004 0.01737 0.01465 0.01189 0.00910 0.00627 0.00342 0.00054 -0.00238 -0.00532 -0.00828 -0.01126 -0.01426 -0.01726 +0.05515 0.05664 0.05800 0.05923 0.06032 0.06125 0.06202 0.06262 0.06304 0.06327 0.06332 0.06316 0.06281 0.06227 0.06156 0.06068 0.05964 0.05845 0.05712 0.05563 0.05401 0.05226 0.05038 0.04840 0.04632 0.04413 0.04185 0.03948 0.03702 0.03447 0.03185 0.02915 0.02639 0.02355 0.02066 0.01772 0.01472 0.01168 0.00860 0.00548 0.00233 -0.00086 -0.00409 -0.00736 -0.01066 -0.01400 -0.01736 -0.02073 -0.02412 -0.02750 -0.03086 -0.03420 +0.06239 0.06379 0.06501 0.06600 0.06676 0.06726 0.06748 0.06745 0.06717 0.06665 0.06594 0.06504 0.06396 0.06272 0.06132 0.05978 0.05811 0.05631 0.05440 0.05238 0.05025 0.04801 0.04566 0.04321 0.04066 0.03801 0.03527 0.03243 0.02951 0.02650 0.02342 0.02027 0.01705 0.01379 0.01046 0.00709 0.00368 0.00022 -0.00329 -0.00684 -0.01044 -0.01409 -0.01779 -0.02153 -0.02530 -0.02909 -0.03286 -0.03662 -0.04033 -0.04399 -0.04759 -0.05115 +0.06860 0.06955 0.07017 0.07045 0.07042 0.07010 0.06954 0.06875 0.06777 0.06663 0.06535 0.06393 0.06237 0.06069 0.05889 0.05696 0.05492 0.05276 0.05048 0.04809 0.04557 0.04294 0.04019 0.03733 0.03436 0.03129 0.02812 0.02485 0.02151 0.01808 0.01458 0.01102 0.00739 0.00371 -0.00002 -0.00381 -0.00766 -0.01157 -0.01555 -0.01959 -0.02369 -0.02784 -0.03203 -0.03623 -0.04041 -0.04454 -0.04861 -0.05261 -0.05652 -0.06038 -0.06420 -0.06805 +0.07147 0.07161 0.07143 0.07098 0.07031 0.06948 0.06849 0.06736 0.06609 0.06469 0.06315 0.06148 0.05968 0.05775 0.05568 0.05349 0.05116 0.04869 0.04609 0.04336 0.04049 0.03749 0.03437 0.03112 0.02775 0.02428 0.02070 0.01703 0.01328 0.00945 0.00554 0.00157 -0.00247 -0.00658 -0.01077 -0.01502 -0.01936 -0.02378 -0.02827 -0.03284 -0.03745 -0.04207 -0.04668 -0.05123 -0.05569 -0.06005 -0.06431 -0.06849 -0.07261 -0.07675 -0.08097 -0.08531 +0.07016 0.06992 0.06949 0.06890 0.06814 0.06723 0.06617 0.06495 0.06358 0.06206 0.06039 0.05858 0.05660 0.05448 0.05220 0.04977 0.04717 0.04442 0.04151 0.03845 0.03523 0.03187 0.02836 0.02473 0.02097 0.01710 0.01312 0.00905 0.00489 0.00065 -0.00368 -0.00809 -0.01258 -0.01716 -0.02184 -0.02662 -0.03149 -0.03645 -0.04148 -0.04654 -0.05159 -0.05660 -0.06150 -0.06629 -0.07094 -0.07548 -0.07992 -0.08436 -0.08886 -0.09351 -0.09836 -0.10339 +0.06663 0.06654 0.06627 0.06583 0.06519 0.06437 0.06336 0.06217 0.06079 0.05922 0.05748 0.05555 0.05343 0.05113 0.04865 0.04597 0.04311 0.04006 0.03683 0.03343 0.02986 0.02612 0.02224 0.01822 0.01407 0.00979 0.00542 0.00093 -0.00365 -0.00833 -0.01310 -0.01799 -0.02298 -0.02809 -0.03331 -0.03864 -0.04407 -0.04956 -0.05507 -0.06056 -0.06597 -0.07124 -0.07636 -0.08132 -0.08614 -0.09089 -0.09567 -0.10057 -0.10569 -0.11109 -0.11674 -0.12259 +0.06227 0.06251 0.06255 0.06237 0.06196 0.06132 0.06043 0.05931 0.05795 0.05637 0.05456 0.05252 0.05026 0.04777 0.04507 0.04214 0.03900 0.03564 0.03208 0.02833 0.02439 0.02029 0.01602 0.01160 0.00705 0.00237 -0.00243 -0.00734 -0.01237 -0.01751 -0.02279 -0.02819 -0.03373 -0.03939 -0.04518 -0.05107 -0.05703 -0.06300 -0.06894 -0.07477 -0.08044 -0.08592 -0.09121 -0.09635 -0.10144 -0.10658 -0.11189 -0.11749 -0.12346 -0.12978 -0.13638 -0.14307 +0.05771 0.05829 0.05866 0.05879 0.05864 0.05821 0.05748 0.05646 0.05514 0.05353 0.05165 0.04950 0.04708 0.04440 0.04146 0.03827 0.03484 0.03116 0.02727 0.02316 0.01885 0.01436 0.00970 0.00489 -0.00008 -0.00518 -0.01041 -0.01578 -0.02129 -0.02695 -0.03276 -0.03872 -0.04483 -0.05107 -0.05743 -0.06386 -0.07032 -0.07673 -0.08301 -0.08910 -0.09497 -0.10063 -0.10613 -0.11158 -0.11710 -0.12282 -0.12889 -0.13542 -0.14243 -0.14980 -0.15735 -0.16480 +0.05320 0.05408 0.05476 0.05518 0.05530 0.05509 0.05453 0.05362 0.05234 0.05072 0.04877 0.04650 0.04391 0.04103 0.03784 0.03438 0.03064 0.02664 0.02240 0.01793 0.01324 0.00836 0.00330 -0.00193 -0.00732 -0.01287 -0.01857 -0.02444 -0.03047 -0.03667 -0.04305 -0.04959 -0.05629 -0.06311 -0.07003 -0.07697 -0.08388 -0.09066 -0.09722 -0.10353 -0.10960 -0.11550 -0.12133 -0.12723 -0.13334 -0.13985 -0.14691 -0.15457 -0.16275 -0.17121 -0.17960 -0.18762 +0.04896 0.05002 0.05093 0.05160 0.05197 0.05198 0.05159 0.05079 0.04957 0.04793 0.04590 0.04350 0.04074 0.03764 0.03420 0.03045 0.02640 0.02207 0.01747 0.01263 0.00756 0.00228 -0.00320 -0.00887 -0.01471 -0.02073 -0.02693 -0.03332 -0.03991 -0.04669 -0.05366 -0.06080 -0.06809 -0.07549 -0.08294 -0.09037 -0.09767 -0.10476 -0.11157 -0.11812 -0.12446 -0.13069 -0.13697 -0.14345 -0.15035 -0.15787 -0.16614 -0.17510 -0.18449 -0.19391 -0.20296 -0.21142 +0.04506 0.04623 0.04726 0.04811 0.04869 0.04889 0.04867 0.04798 0.04681 0.04516 0.04305 0.04052 0.03757 0.03424 0.03054 0.02650 0.02213 0.01745 0.01249 0.00727 0.00179 -0.00390 -0.00981 -0.01593 -0.02225 -0.02877 -0.03551 -0.04247 -0.04964 -0.05702 -0.06459 -0.07234 -0.08023 -0.08819 -0.09616 -0.10402 -0.11168 -0.11905 -0.12614 -0.13297 -0.13964 -0.14630 -0.15314 -0.16039 -0.16831 -0.17710 -0.18675 -0.19704 -0.20752 -0.21772 -0.22733 -0.23625 +0.04142 0.04269 0.04381 0.04476 0.04547 0.04584 0.04577 0.04519 0.04407 0.04241 0.04021 0.03754 0.03440 0.03083 0.02687 0.02252 0.01782 0.01279 0.00745 0.00183 -0.00405 -0.01018 -0.01655 -0.02314 -0.02996 -0.03702 -0.04433 -0.05187 -0.05965 -0.06765 -0.07585 -0.08421 -0.09269 -0.10120 -0.10965 -0.11793 -0.12593 -0.13362 -0.14100 -0.14816 -0.15523 -0.16241 -0.16998 -0.17822 -0.18742 -0.19764 -0.20874 -0.22027 -0.23169 -0.24257 -0.25272 -0.26218 +0.03800 0.03937 0.04056 0.04157 0.04237 0.04285 0.04290 0.04242 0.04135 0.03966 0.03738 0.03456 0.03122 0.02741 0.02317 0.01851 0.01347 0.00807 0.00235 -0.00368 -0.01000 -0.01658 -0.02342 -0.03051 -0.03787 -0.04550 -0.05340 -0.06156 -0.06996 -0.07860 -0.08743 -0.09641 -0.10547 -0.11451 -0.12344 -0.13212 -0.14048 -0.14850 -0.15620 -0.16372 -0.17127 -0.17914 -0.18765 -0.19714 -0.20778 -0.21952 -0.23201 -0.24465 -0.25692 -0.26845 -0.27921 -0.28929 +0.03474 0.03622 0.03748 0.03855 0.03939 0.03993 0.04006 0.03966 0.03863 0.03693 0.03456 0.03158 0.02804 0.02398 0.01944 0.01446 0.00907 0.00329 -0.00283 -0.00929 -0.01605 -0.02310 -0.03044 -0.03807 -0.04599 -0.05421 -0.06273 -0.07152 -0.08057 -0.08985 -0.09932 -0.10891 -0.11856 -0.12814 -0.13755 -0.14665 -0.15537 -0.16371 -0.17174 -0.17970 -0.18788 -0.19663 -0.20631 -0.21721 -0.22939 -0.24265 -0.25645 -0.27013 -0.28319 -0.29540 -0.30683 -0.31762 +0.03162 0.03320 0.03454 0.03565 0.03652 0.03710 0.03728 0.03692 0.03592 0.03420 0.03173 0.02859 0.02484 0.02052 0.01569 0.01037 0.00462 -0.00155 -0.00809 -0.01499 -0.02221 -0.02976 -0.03762 -0.04581 -0.05433 -0.06317 -0.07233 -0.08177 -0.09148 -0.10141 -0.11153 -0.12175 -0.13199 -0.14212 -0.15201 -0.16153 -0.17059 -0.17925 -0.18768 -0.19620 -0.20518 -0.21502 -0.22603 -0.23845 -0.25223 -0.26698 -0.28201 -0.29666 -0.31050 -0.32345 -0.33562 -0.34720 +0.02862 0.03030 0.03171 0.03287 0.03375 0.03434 0.03454 0.03421 0.03322 0.03147 0.02891 0.02560 0.02162 0.01704 0.01190 0.00624 0.00010 -0.00647 -0.01344 -0.02079 -0.02850 -0.03657 -0.04499 -0.05377 -0.06290 -0.07238 -0.08219 -0.09230 -0.10268 -0.11329 -0.12406 -0.13493 -0.14579 -0.15648 -0.16685 -0.17675 -0.18614 -0.19515 -0.20409 -0.21333 -0.22329 -0.23435 -0.24682 -0.26084 -0.27623 -0.29242 -0.30864 -0.32423 -0.33889 -0.35263 -0.36562 -0.37804 +0.02570 0.02749 0.02897 0.03017 0.03107 0.03166 0.03185 0.03152 0.03053 0.02873 0.02607 0.02260 0.01839 0.01353 0.00806 0.00205 -0.00447 -0.01146 -0.01889 -0.02671 -0.03493 -0.04354 -0.05254 -0.06193 -0.07171 -0.08185 -0.09233 -0.10313 -0.11419 -0.12549 -0.13695 -0.14849 -0.15997 -0.17123 -0.18205 -0.19230 -0.20204 -0.21149 -0.22105 -0.23117 -0.24225 -0.25465 -0.26867 -0.28434 -0.30135 -0.31895 -0.33631 -0.35285 -0.36837 -0.38297 -0.39683 -0.41016 +0.02287 0.02475 0.02630 0.02754 0.02845 0.02903 0.02921 0.02885 0.02784 0.02600 0.02323 0.01958 0.01513 0.00998 0.00418 -0.00220 -0.00912 -0.01655 -0.02443 -0.03276 -0.04151 -0.05069 -0.06029 -0.07032 -0.08075 -0.09157 -0.10275 -0.11424 -0.12602 -0.13802 -0.15020 -0.16243 -0.17456 -0.18635 -0.19759 -0.20819 -0.21832 -0.22832 -0.23865 -0.24976 -0.26207 -0.27592 -0.29157 -0.30894 -0.32756 -0.34653 -0.36502 -0.38253 -0.39896 -0.41447 -0.42927 -0.44358 +0.02013 0.02207 0.02369 0.02496 0.02589 0.02646 0.02661 0.02621 0.02515 0.02326 0.02038 0.01653 0.01184 0.00639 0.00025 -0.00651 -0.01385 -0.02173 -0.03010 -0.03894 -0.04825 -0.05801 -0.06825 -0.07893 -0.09004 -0.10156 -0.11345 -0.12566 -0.13817 -0.15092 -0.16384 -0.17679 -0.18954 -0.20183 -0.21346 -0.22445 -0.23505 -0.24571 -0.25692 -0.26914 -0.28278 -0.29816 -0.31550 -0.33461 -0.35483 -0.37516 -0.39478 -0.41328 -0.43068 -0.44716 -0.46294 -0.47829 +0.01747 0.01945 0.02112 0.02243 0.02337 0.02392 0.02404 0.02359 0.02247 0.02050 0.01751 0.01347 0.00852 0.00276 -0.00373 -0.01089 -0.01867 -0.02701 -0.03588 -0.04526 -0.05514 -0.06553 -0.07641 -0.08777 -0.09958 -0.11182 -0.12443 -0.13739 -0.15066 -0.16419 -0.17788 -0.19155 -0.20491 -0.21766 -0.22969 -0.24110 -0.25227 -0.26369 -0.27589 -0.28932 -0.30436 -0.32136 -0.34045 -0.36133 -0.38315 -0.40482 -0.42557 -0.44511 -0.46353 -0.48103 -0.49786 -0.51432 +0.01491 0.01689 0.01859 0.01993 0.02088 0.02142 0.02150 0.02099 0.01979 0.01774 0.01461 0.01038 0.00516 -0.00092 -0.00778 -0.01535 -0.02357 -0.03239 -0.04178 -0.05172 -0.06221 -0.07323 -0.08478 -0.09684 -0.10938 -0.12234 -0.13571 -0.14944 -0.16350 -0.17785 -0.19234 -0.20671 -0.22063 -0.23384 -0.24629 -0.25820 -0.27002 -0.28231 -0.29558 -0.31029 -0.32682 -0.34551 -0.36642 -0.38909 -0.41250 -0.43551 -0.45741 -0.47803 -0.49752 -0.51610 -0.53403 -0.55167 + diff --git a/Tune_Cases/DISCON.IN b/Tune_Cases/DISCON.IN new file mode 100644 index 000000000..1684aa6dd --- /dev/null +++ b/Tune_Cases/DISCON.IN @@ -0,0 +1,103 @@ +! Controller parameter input file for the 5MW_Land wind turbine +! - File written using NREL Baseline Controller tuning logic on 10/02/19 + +!------- DEBUG ------------------------------------------------------------ +1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file + +!------- CONTROLLER FLAGS ------------------------------------------------- +1 ! F_LPFType - {1: first-order low-pass filter, 2: second-order low-pass filter}, [rad/s] (currently filters generator speed and pitch control signals) +0 ! F_NotchType - Notch on the measured generator speed {0: disable, 1: enable} +0 ! IPC_ControlMode - Turn Individual Pitch Control (IPC) for fatigue load reductions (pitch contribution) {0: off, 1: 1P reductions, 2: 1P+2P reductions} +2 ! VS_ControlMode - Generator torque control mode in above rated conditions {0: constant torque, 1: constant power, 2: TSR tracking PI control} +1 ! PC_ControlMode - Blade pitch control mode {0: No pitch, fix to fine pitch, 1: active PI blade pitch control} +0 ! Y_ControlMode - Yaw control mode {0: no yaw control, 1: yaw rate control, 2: yaw-by-IPC} +1 ! SS_Mode - Setpoint Smoother mode {0: no setpoint smoothing, 1: introduce setpoint smoothing} +2 ! WE_Mode - Wind speed estimator mode {0: One-second low pass filtered hub height wind speed, 1: Imersion and Invariance Estimator (Ortega et al.)} +1 ! PS_Mode - Peak shaving mode {0: no peak shaving, 1: implement peak shaving} + +!------- FILTERS ---------------------------------------------------------- +4.630253480546613 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] +0 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2] +0 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] +0 0 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] +0.5 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [Hz]. + +!------- BLADE PITCH CONTROL ---------------------------------------------- +136 ! PC_GS_n - Amount of gain-scheduling table entries +0. 0.02213546 0.03529397 0.04532979 0.05390455 0.06152115 0.06834772 0.07463941 0.0805748 0.0861644 0.09140002 0.09649561 0.10126524 0.10593769 0.11038267 0.11473751 0.11890645 0.12302122 0.12695386 0.13088595 0.13461563 0.13834687 0.14196041 0.14551431 0.14903823 0.1524332 0.15583161 0.15913855 0.16239386 0.16565304 0.16878668 0.1719182 0.17503408 0.17805189 0.18107507 0.18407263 0.18699401 0.18992101 0.1928231 0.19565677 0.1984955 0.20131828 0.20407024 0.2068263 0.20958195 0.21225736 0.21493607 0.21761843 0.2202399 0.22284822 0.22546056 0.22804367 0.23058995 0.2331405 0.2356938 0.23818454 0.2406792 0.2431782 0.24564725 0.24808951 0.25053514 0.25298442 0.25537868 0.25777304 0.26016986 0.2625513 0.2648963 0.26724271 0.26959085 0.27190982 0.27420946 0.27651057 0.27881363 0.28108029 0.28333948 0.28560068 0.28786443 0.29008857 0.29231251 0.29453891 0.29676708 0.29895701 0.30114904 0.30334354 0.30553887 0.30769817 0.30985921 0.31202215 0.31418655 0.31631398 0.31844196 0.32057064 0.32270018 0.32479655 0.32688959 0.32898275 0.33107635 0.33314453 0.33520364 0.33726287 0.33932258 0.34136653 0.34339459 0.34542303 0.34745227 0.34947646 0.35147715 0.35347864 0.35548136 0.35748577 0.35946701 0.36144502 0.36342469 0.36540647 0.36737816 0.36933562 0.37129481 0.37325592 0.37521913 0.37715585 0.37909299 0.38103103 0.38297013 0.38489667 0.38680872 0.38872069 0.39063275 0.39254504 0.39443197 0.39631595 0.39819934 0.40008235 0.40195758 0.40381318 0.4056679 0.40752199 ! PC_GS_angles - Gain-schedule table: pitch angles +-0.02253679 -0.02175039 -0.02101063 -0.02031347 -0.01965535 -0.01903307 -0.01844378 -0.01788493 -0.01735422 -0.01684957 -0.01636911 -0.01591114 -0.01547412 -0.01505665 -0.01465744 -0.01427531 -0.0139092 -0.01355812 -0.01322116 -0.01289748 -0.01258633 -0.01228697 -0.01199876 -0.01172108 -0.01145337 -0.0111951 -0.01094578 -0.01070495 -0.01047218 -0.01024708 -0.01002927 -0.00981841 -0.00961417 -0.00941624 -0.00922433 -0.00903818 -0.00885752 -0.00868212 -0.00851175 -0.0083462 -0.00818526 -0.00802875 -0.00787649 -0.0077283 -0.00758403 -0.00744352 -0.00730662 -0.0071732 -0.00704313 -0.00691628 -0.00679253 -0.00667178 -0.00655391 -0.00643882 -0.00632642 -0.00621662 -0.00610931 -0.00600442 -0.00590187 -0.00580159 -0.00570349 -0.0056075 -0.00551356 -0.00542161 -0.00533158 -0.00524341 -0.00515704 -0.00507243 -0.00498951 -0.00490824 -0.00482856 -0.00475044 -0.00467382 -0.00459867 -0.00452493 -0.00445258 -0.00438158 -0.00431188 -0.00424344 -0.00417625 -0.00411026 -0.00404544 -0.00398176 -0.00391919 -0.0038577 -0.00379726 -0.00373785 -0.00367945 -0.00362201 -0.00356553 -0.00350998 -0.00345533 -0.00340157 -0.00334867 -0.00329661 -0.00324537 -0.00319493 -0.00314528 -0.00309639 -0.00304825 -0.00300084 -0.00295415 -0.00290815 -0.00286284 -0.0028182 -0.0027742 -0.00273085 -0.00268812 -0.00264601 -0.00260449 -0.00256356 -0.0025232 -0.0024834 -0.00244415 -0.00240545 -0.00236727 -0.0023296 -0.00229245 -0.00225578 -0.00221961 -0.00218391 -0.00214868 -0.00211391 -0.00207959 -0.00204571 -0.00201226 -0.00197923 -0.00194663 -0.00191443 -0.00188263 -0.00185122 -0.0018202 -0.00178956 -0.00175929 -0.00172938 -0.00169984 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains +-0.00978033 -0.00948145 -0.00920029 -0.00893533 -0.0086852 -0.00844869 -0.00822472 -0.00801232 -0.00781062 -0.00761882 -0.00743621 -0.00726216 -0.00709606 -0.00693739 -0.00678566 -0.00664043 -0.00650129 -0.00636785 -0.00623979 -0.00611677 -0.00599851 -0.00588473 -0.00577519 -0.00566966 -0.00556791 -0.00546975 -0.00537499 -0.00528346 -0.00519499 -0.00510944 -0.00502666 -0.00494652 -0.00486889 -0.00479367 -0.00472073 -0.00464998 -0.00458132 -0.00451465 -0.0044499 -0.00438698 -0.00432582 -0.00426633 -0.00420846 -0.00415214 -0.00409731 -0.0040439 -0.00399187 -0.00394117 -0.00389173 -0.00384352 -0.00379649 -0.00375059 -0.0037058 -0.00366206 -0.00361934 -0.0035776 -0.00353682 -0.00349695 -0.00345798 -0.00341986 -0.00338258 -0.0033461 -0.0033104 -0.00327545 -0.00324123 -0.00320772 -0.00317489 -0.00314273 -0.00311122 -0.00308033 -0.00305005 -0.00302036 -0.00299124 -0.00296267 -0.00293465 -0.00290715 -0.00288017 -0.00285368 -0.00282767 -0.00280213 -0.00277705 -0.00275241 -0.00272821 -0.00270443 -0.00268106 -0.00265809 -0.00263551 -0.00261331 -0.00259148 -0.00257002 -0.0025489 -0.00252813 -0.0025077 -0.00248759 -0.00246781 -0.00244833 -0.00242916 -0.00241029 -0.00239171 -0.00237342 -0.0023554 -0.00233765 -0.00232017 -0.00230295 -0.00228598 -0.00226926 -0.00225278 -0.00223654 -0.00222054 -0.00220476 -0.0021892 -0.00217386 -0.00215874 -0.00214382 -0.00212911 -0.0021146 -0.00210028 -0.00208616 -0.00207223 -0.00205848 -0.00204491 -0.00203152 -0.00201831 -0.00200526 -0.00199238 -0.00197967 -0.00196712 -0.00195473 -0.00194249 -0.0019304 -0.00191847 -0.00190668 -0.00189503 -0.00188353 -0.00187216 -0.00186093 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +1.5707 ! PC_MaxPit - Maximum physical pitch limit, [rad]. +-0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. +0.13962 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. +-0.13962 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. +122.90957658394467 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +0.0 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] +0.003490658 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] +0 ! Z_EnableSine - Enable/disable sine pitch excitation, used to validate for dynamic induction control, will be removed later, [-] +0.0349066 ! Z_PitchAmplitude - Amplitude of sine pitch excitation, [rad] +0 ! Z_PitchFrequency - Frequency of sine pitch excitation, [rad/s] + +!------- INDIVIDUAL PITCH CONTROL ----------------------------------------- +0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] + +!------- VS TORQUE CONTROL ------------------------------------------------ +100.0 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] +40680.312624664395 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +150000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +44748.34388713084 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +0.0 ! VS_MinTq - Minimum generator (HSS side), [Nm]. +0.0 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] +0.0 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] +5000000 ! VS_RtPwr - Wind turbine rated power [W] +40680.312624664395 ! VS_RtTq - Rated torque, [Nm]. +122.90957658394467 ! VS_RefSpd - Rated generator speed [rad/s] +1 ! VS_n - Number of generator PI torque controller gains +-1545.1137906906267 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-387.1039217727707 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) + +!------- SETPOINT SMOOTHER --------------------------------------------- +30 ! SS_VSGainBias - Variable speed torque controller gain bias, [(rad/s)/rad]. +0.001 ! SS_PCGainBias - Collective pitch controller gain bias, [(rad/s)/Nm]. + +!------- WIND SPEED ESTIMATOR --------------------------------------------- +63.0 ! WE_BladeRadius - Blade length [m] +4 ! WE_CP_n - Amount of parameters in the Cp array +0.0 0.0 0.0 0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function +0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +97.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +40469564.444 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +1.225 ! WE_RhoAir - Air density, [kg m^-3] +"Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) +52 29 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +210 ! WE_FOPoles_N - Number of first-order system poles used in EKF + 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13. 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16. 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17. 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18. 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21. 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22. 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23. 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24. 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.02151068 -0.02204845 -0.02258622 -0.02312398 -0.02366175 -0.02419952 -0.02473728 -0.02527505 -0.02581282 -0.02635059 -0.02688835 -0.02742612 -0.02796389 -0.02850165 -0.02903942 -0.02957719 -0.03011495 -0.03065272 -0.03119049 -0.03172826 -0.03226602 -0.03280379 -0.03334156 -0.03387932 -0.03441709 -0.03495486 -0.03549263 -0.03603039 -0.03656816 -0.03710593 -0.03764369 -0.03818146 -0.03871923 -0.03925699 -0.03979476 -0.04033253 -0.0408703 -0.04140806 -0.04194583 -0.0424836 -0.04302136 -0.04355913 -0.0440969 -0.04463467 -0.04517243 -0.0457102 -0.04624797 -0.04678573 -0.0473235 -0.04786127 -0.04839903 -0.0489368 -0.04947457 -0.05001234 -0.0505501 -0.05108787 -0.05162564 -0.0521634 -0.05270117 -0.05323894 -0.05377671 -0.05431447 -0.05485224 -0.05539001 -0.05592777 -0.05646554 -0.05700331 -0.05754107 -0.05807884 -0.05861661 -0.05915438 -0.05969214 -0.06022991 -0.06076768 -0.05963612 -0.05145035 -0.04909405 -0.0485834 -0.04902569 -0.05005874 -0.05144802 -0.05311374 -0.05502931 -0.05711571 -0.05929327 -0.06166595 -0.06405049 -0.06660033 -0.06917487 -0.07187559 -0.07458689 -0.07742473 -0.08023317 -0.08319769 -0.08606723 -0.08906988 -0.09205042 -0.09507362 -0.0981755 -0.10121676 -0.10437601 -0.10751541 -0.11068545 -0.11396523 -0.11715034 -0.12042454 -0.12376312 -0.12702382 -0.1303688 -0.13374267 -0.13705361 -0.14043952 -0.14384645 -0.14719472 -0.15061701 -0.15407716 -0.15747246 -0.16094386 -0.1644846 -0.16793784 -0.1714649 -0.17506487 -0.17860157 -0.18216573 -0.18578893 -0.18939841 -0.19297407 -0.1966009 -0.2002752 -0.20385363 -0.20748051 -0.21115806 -0.21481043 -0.21844447 -0.22212957 -0.22586827 -0.22952503 -0.23322878 -0.23698715 -0.24075826 -0.2444901 -0.24827307 -0.25210748 -0.25591535 -0.25971844 -0.26356709 -0.26746119 -0.27130046 -0.27515629 -0.27905147 -0.28298579 -0.28684611 -0.29073464 -0.29465827 -0.29861516 -0.30249672 -0.30641233 -0.31036412 -0.31434897 -0.31826506 -0.32221836 -0.32621119 -0.3302442 -0.33420809 -0.3382106 -0.34225298 -0.34633637 -0.35036028 -0.35441217 -0.35850248 -0.36263212 -0.36672218 -0.37082111 -0.37495654 -0.37912941 -0.38328856 -0.38743211 -0.39161008 -0.39582301 -0.40005114 -0.40423353 -0.40844727 -0.41269335 -0.41697296 -0.42120348 -0.42544951 -0.42972681 -0.43403657 -0.43833714 -0.44261364 -0.44692107 -0.45126129 -0.45563597 -0.45994653 -0.46428732 -0.46866181 -0.47307211 -0.47747123 -0.48185249 -0.48626774 -0.49071804 -0.49520442 -0.49963345 -0.50408588 -0.50856997 -0.51308593 -0.51760547 -0.5220828 -0.52658674 -0.53111728 ! WE_FOPoles - First order system poles + +!------- YAW CONTROL ------------------------------------------------------ +0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] +0.0 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC) +0.0 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp +0.0 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki +0.0 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. +0.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. +0.0 ! Y_MErrSet - Yaw alignment error, set point [rad] +0.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] +0.0 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] +0.0 ! Y_Rate - Yaw rate [rad/s] + +!------- TOWER FORE-AFT DAMPING ------------------------------------------- +-1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag +0.0 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] +0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] + +!------- PEAK SHAVING ------------------------------------------- +210 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) + 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13. 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16. 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17. 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18. 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21. 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22. 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23. 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24. 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +-0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01745329 -0.01481359 -0.00852004 -0.00261207 0.00300263 0.00835639 0.01335417 0.01816144 0.02266468 0.02700407 0.03107901 0.03503503 0.03873668 0.04233691 0.04576122 0.0490487 0.05224851 0.05526934 0.04650657 0.04921601 0.05191682 0.05454926 0.05716279 0.05977029 0.06234054 0.06487328 0.06740249 0.0699266 0.07239142 0.07485469 0.0773173 0.07975141 0.08215689 0.08456229 0.08696831 0.08932766 0.09168042 0.09403387 0.09638001 0.09868437 0.10098989 0.10329739 0.10558875 0.107852 0.11011795 0.11238745 0.11463538 0.11686407 0.11909634 0.12133285 0.12354431 0.12574081 0.12793997 0.13014217 0.13231708 0.1344781 0.13664176 0.13880903 0.14095272 0.14308312 0.14521797 0.14735847 0.14948186 0.15159016 0.15370444 0.15582544 0.15793469 0.16002168 0.16211269 0.16420811 0.16629762 0.16835609 0.17041755 0.17248274 0.17455211 0.17658169 0.17861473 0.1806522 0.1826952 0.18471218 0.18672192 0.18873761 0.1907605 0.19277392 0.19476714 0.19676698 0.19877416 0.20078773 0.20276435 0.20474671 0.20673544 0.20873123 0.2107031 0.21266276 0.21462751 0.21659806 0.21856498 0.22049786 0.22243509 0.22437749 0.22632594 0.2282473 0.23015988 0.23207809 0.23400295 0.23592811 0.23782196 0.23972214 0.24162947 0.24354474 0.24544163 0.2473258 0.24921658 0.25111458 0.2530204 0.25488953 0.25676337 0.2586437 0.26053106 0.26241124 0.26426775 0.2661302 0.26799913 0.2698751 0.2717283 0.27357125 0.27542013 0.27727554 0.2791381 0.28096271 0.28278987 0.28462312 0.2864631 0.28830169 0.29010619 0.29191673 0.29373402 0.29555876 0.29737371 0.29916551 0.30096387 0.30276933 0.30458242 0.30637934 0.30816157 0.30995024 0.31174576 0.31354853 0.31532916 0.31710053 0.31887775 0.32066115 0.32245108 0.32421484 ! PS_BldPitchMin - Minimum blade pitch angles [rad] diff --git a/Tune_Cases/DISCON_NREL15MW.IN b/Tune_Cases/DISCON_NREL15MW.IN new file mode 100644 index 000000000..e06c1c9bb --- /dev/null +++ b/Tune_Cases/DISCON_NREL15MW.IN @@ -0,0 +1,103 @@ +! Controller parameter input file for the NREL15mw_OpenFAST_prelim_v4 wind turbine +! - File written using NREL Baseline Controller tuning logic on 10/01/19 + +!------- DEBUG ------------------------------------------------------------ +1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file + +!------- CONTROLLER FLAGS ------------------------------------------------- +1 ! F_LPFType - {1: first-order low-pass filter, 2: second-order low-pass filter}, [rad/s] (currently filters generator speed and pitch control signals) +0 ! F_NotchType - Notch on the measured generator speed {0: disable, 1: enable} +0 ! IPC_ControlMode - Turn Individual Pitch Control (IPC) for fatigue load reductions (pitch contribution) {0: off, 1: 1P reductions, 2: 1P+2P reductions} +2 ! VS_ControlMode - Generator torque control mode in above rated conditions {0: constant torque, 1: constant power, 2: TSR tracking PI control} +1 ! PC_ControlMode - Blade pitch control mode {0: No pitch, fix to fine pitch, 1: active PI blade pitch control} +0 ! Y_ControlMode - Yaw control mode {0: no yaw control, 1: yaw rate control, 2: yaw-by-IPC} +1 ! SS_Mode - Setpoint Smoother mode {0: no setpoint smoothing, 1: introduce setpoint smoothing} +2 ! WE_Mode - Wind speed estimator mode {0: One-second low pass filtered hub height wind speed, 1: Imersion and Invariance Estimator (Ortega et al.)} +1 ! PS_Mode - Peak shaving mode {0: no peak shaving, 1: implement peak shaving} + +!------- FILTERS ---------------------------------------------------------- +1.570796326 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] +0 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2] +0 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] +0 0 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] +0.5 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [Hz]. + +!------- BLADE PITCH CONTROL ---------------------------------------------- +136 ! PC_GS_n - Amount of gain-scheduling table entries +0. 0.020256 0.03332726 0.04384533 0.05285897 0.06098095 0.0683739 0.07527681 0.08180782 0.08804439 0.09393203 0.09959529 0.10510496 0.11035197 0.11548427 0.12046262 0.12529554 0.13003978 0.13462978 0.13916723 0.14355684 0.14791037 0.15213125 0.15631919 0.16039651 0.1644349 0.1683878 0.17228887 0.17613395 0.17990923 0.18366134 0.18732062 0.19096834 0.19454319 0.19808351 0.20159304 0.20503245 0.20846304 0.21183023 0.21516765 0.21849054 0.22174071 0.22498441 0.22819373 0.23135658 0.23451421 0.23762464 0.2407075 0.24378595 0.2468094 0.24981721 0.25282098 0.25576684 0.25870376 0.26163702 0.26451402 0.26738435 0.2702515 0.27306798 0.27587635 0.27868204 0.28144576 0.28419677 0.28694553 0.28966309 0.29236066 0.29505604 0.29773223 0.30037881 0.303023 0.3056614 0.30825919 0.31085446 0.3134475 0.31600991 0.31855897 0.32110571 0.32363936 0.32614484 0.32864796 0.33114905 0.33361989 0.33608194 0.33854196 0.34099154 0.34341533 0.3458371 0.34825716 0.35065537 0.35304125 0.35542509 0.35780697 0.36015841 0.36250745 0.36485432 0.3671914 0.36950687 0.3718198 0.37413044 0.37642575 0.37870606 0.38098377 0.38325913 0.38551585 0.38776234 0.39000628 0.39224794 0.39446964 0.39668423 0.39889642 0.40110649 0.40329679 0.40548162 0.40766422 0.40984486 0.41200694 0.41416387 0.41631855 0.41847115 0.42060682 0.42273639 0.42486345 0.42698821 0.42760567 0.42760567 0.42760567 0.42760567 0.42760567 0.42760567 0.42760567 0.42760567 0.42760567 0.42760567 0.42760567 0.42760567 0.42760567 ! PC_GS_angles - Gain-schedule table: pitch angles +-4.46003791 -4.32216423 -4.19157647 -4.06771197 -3.95006453 -3.83817755 -3.73163805 -3.63007161 -3.53313798 -3.44052725 -3.35195655 -3.26716715 -3.18592198 -3.10800334 -3.03321105 -2.96136063 -2.89228187 -2.82581742 -2.76182163 -2.70015946 -2.64070557 -2.58334341 -2.52796449 -2.47446773 -2.42275876 -2.37274944 -2.32435732 -2.27750521 -2.23212075 -2.18813604 -2.1454873 -2.10411458 -2.06396146 -2.02497479 -1.98710447 -1.95030323 -1.91452643 -1.87973187 -1.84587967 -1.81293204 -1.78085321 -1.74960926 -1.71916801 -1.68949893 -1.66057299 -1.63236264 -1.60484163 -1.57798501 -1.551769 -1.52617095 -1.50116927 -1.47674335 -1.45287354 -1.42954106 -1.40672796 -1.3844171 -1.36259206 -1.34123715 -1.32033735 -1.29987826 -1.27984607 -1.26022758 -1.24101009 -1.22218144 -1.20372994 -1.18564437 -1.16791395 -1.15052832 -1.13347753 -1.116752 -1.10034249 -1.08424015 -1.06843642 -1.05292307 -1.03769218 -1.0227361 -1.00804746 -0.99361915 -0.97944431 -0.96551632 -0.95182878 -0.93837553 -0.92515059 -0.91214821 -0.89936281 -0.88678901 -0.8744216 -0.86225553 -0.85028593 -0.83850809 -0.82691742 -0.8155095 -0.80428004 -0.79322489 -0.78234002 -0.77162153 -0.76106563 -0.75066864 -0.74042702 -0.73033729 -0.72039611 -0.71060022 -0.70094645 -0.69143175 -0.68205311 -0.67280765 -0.66369255 -0.65470508 -0.64584256 -0.63710241 -0.62848211 -0.61997922 -0.61159136 -0.60331619 -0.59515148 -0.58709502 -0.57914467 -0.57129835 -0.56355404 -0.55590975 -0.54836356 -0.54091359 -0.53355802 -0.52629506 -0.51912298 -0.51204007 -0.50504469 -0.49813523 -0.4913101 -0.48456778 -0.47790677 -0.47132561 -0.46482286 -0.45839714 -0.45204708 -0.44577136 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains +-1.89116623 -1.83984083 -1.79122773 -1.74511744 -1.70132155 -1.65967006 -1.62000925 -1.58219973 -1.54611484 -1.51163921 -1.47866753 -1.4471035 -1.41685886 -1.38785256 -1.36001009 -1.33326277 -1.30754724 -1.28280493 -1.2589816 -1.23602701 -1.21389447 -1.19254061 -1.17192504 -1.15201012 -1.13276074 -1.11414407 -1.09612943 -1.07868809 -1.06179309 -1.04541917 -1.02954258 -1.01414101 -0.99919345 -0.98468012 -0.97058237 -0.9568826 -0.94356419 -0.93061143 -0.91800948 -0.90574426 -0.89380247 -0.88217148 -0.8708393 -0.85979457 -0.84902649 -0.83852479 -0.82827971 -0.81828196 -0.80852269 -0.79899346 -0.78968624 -0.78059335 -0.77170748 -0.76302164 -0.75452915 -0.74622362 -0.73809894 -0.73014928 -0.72236904 -0.71475286 -0.7072956 -0.69999234 -0.69283837 -0.68582914 -0.67896031 -0.6722277 -0.66562731 -0.65915527 -0.65280788 -0.64658156 -0.6404729 -0.63447857 -0.62859542 -0.62282036 -0.61715045 -0.61158284 -0.60611479 -0.60074365 -0.59546687 -0.59028198 -0.5851866 -0.58017844 -0.57525528 -0.57041496 -0.56565542 -0.56097464 -0.5563707 -0.55184171 -0.54738587 -0.5430014 -0.53868661 -0.53443985 -0.53025953 -0.5261441 -0.52209206 -0.51810195 -0.51417237 -0.51030194 -0.50648936 -0.50273332 -0.49903257 -0.49538592 -0.49179217 -0.48825019 -0.48475886 -0.48131711 -0.47792389 -0.47457817 -0.47127898 -0.46802533 -0.46481631 -0.46165099 -0.45852849 -0.45544795 -0.45240852 -0.44940939 -0.44644976 -0.44352886 -0.44064593 -0.43780024 -0.43499106 -0.43221771 -0.4294795 -0.42677576 -0.42410585 -0.42146914 -0.41886501 -0.41629287 -0.41375212 -0.4112422 -0.40876254 -0.40631261 -0.40389188 -0.40149981 -0.39913592 -0.39679969 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +1.5707 ! PC_MaxPit - Maximum physical pitch limit, [rad]. +-0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. +0.13962 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. +-0.13962 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. +122.90957 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +0.0 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] +0.003490658 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] +0 ! Z_EnableSine - Enable/disable sine pitch excitation, used to validate for dynamic induction control, will be removed later, [-] +0.0349066 ! Z_PitchAmplitude - Amplitude of sine pitch excitation, [rad] +0 ! Z_PitchFrequency - Frequency of sine pitch excitation, [rad/s] + +!------- INDIVIDUAL PITCH CONTROL ----------------------------------------- +0.087266 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +1E-8 0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.436332313 0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +2.5 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] + +!------- VS TORQUE CONTROL ------------------------------------------------ +0.944 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] +43093.55 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +150000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +48000.00 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +0.0 ! VS_MinTq - Minimum generator (HSS side), [Nm]. +91.2109 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] +2.33228 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] +5.0E+06 ! VS_RtPwr - Wind turbine rated power [W] +43093.55 ! VS_RtTq - Rated torque, [Nm]. +120.113 ! VS_RefSpd - Rated generator speed [rad/s] +1 ! VS_n - Number of generator PI torque controller gains +-835 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-164 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) + +!------- SETPOINT SMOOTHER --------------------------------------------- +30 ! SS_VSGainBias - Variable speed torque controller gain bias, [(rad/s)/rad]. +0.001 ! SS_PCGainBias - Collective pitch controller gain bias, [(rad/s)/Nm]. + +!------- WIND SPEED ESTIMATOR --------------------------------------------- +63.0 ! WE_BladeRadius - Blade length [m] +4 ! WE_CP_n - Amount of parameters in the Cp array +14.571319658214513 42.809556250371465 2.456512501523107 0.003127994078720 ! WE_CP - Parameters that define the parameterized CP(lambda) function +20 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +97 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +4.0469564E+07 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +1.225 ! WE_RhoAir - Air density, [kg m^-3] +"../5MW_Baseline/Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) +320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +23 ! WE_FOPoles_N - Number of first-order system poles used in EKF +3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.0203 -0.0270 -0.0338 -0.0405 -0.0473 -0.0540 -0.0608 -0.0675 -0.0743 -0.0671 -0.0939 -0.1257 -0.1601 -0.1973 -0.2364 -0.2783 -0.3223 -0.3678 -0.4153 -0.4632 -0.5122 -0.5629 -0.6194 ! WE_FOPoles - First order system poles + +!------- YAW CONTROL ------------------------------------------------------ +1.745329252 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] +0.17453 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC) +-0.064 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp +-0.0008 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki +0.6283185 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. +1.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. +0.00000 ! Y_MErrSet - Yaw alignment error, set point [rad] +1.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] +0.016667 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] +0.0034906 ! Y_Rate - Yaw rate [rad/s] + +!------- TOWER FORE-AFT DAMPING ------------------------------------------- +-1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag +0.1 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] +0.087266 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] + +!------- PEAK SHAVING ------------------------------------------- +210 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) + 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13. 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16. 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17. 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18. 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21. 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22. 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23. 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24. 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.00210969 0.00829863 0.01412672 0.01969173 0.02498447 0.02996603 0.03475996 0.03922425 0.04355892 0.0476194 0.05156694 0.05530958 0.05892744 0.06241098 0. 0. 0. 0. 0. 0. 0.00083802 0.00375952 0.00669792 0.00960784 0.01242754 0.01526655 0.01809319 0.02082473 0.02357686 0.02634414 0.02899762 0.03167203 0.03437059 0.03698078 0.03958414 0.04221122 0.04480093 0.04733897 0.0499 0.05248032 0.05495785 0.05745744 0.05998167 0.06245845 0.06490078 0.06736653 0.06985598 0.07224489 0.07465609 0.07709188 0.07950281 0.08186268 0.08424543 0.08665316 0.08899472 0.09132689 0.09368224 0.09605936 0.09834389 0.10065008 0.10297987 0.10530466 0.10756529 0.10984822 0.11215534 0.1144365 0.11667541 0.11893661 0.12122177 0.12346473 0.12568171 0.12792057 0.13018287 0.13239229 0.13458701 0.13680324 0.13904252 0.14122376 0.14339678 0.14559122 0.14780877 0.14996817 0.15212176 0.15429696 0.15649522 0.1586386 0.16077418 0.16293093 0.16511013 0.1672407 0.16935778 0.17149525 0.1736543 0.17577418 0.17787164 0.17998863 0.18212628 0.18423762 0.18631464 0.18841046 0.19052617 0.19263176 0.19468874 0.19676436 0.19885985 0.20096441 0.20300387 0.20506181 0.20713929 0.20923738 0.2112696 0.21331071 0.21537071 0.21745054 0.21948885 0.22151272 0.22355459 0.22561531 0.22766021 0.22966583 0.23168844 0.23372885 0.23578053 0.23776673 0.23976895 0.24178795 0.2438245 0.24581279 0.247794 0.24979116 0.25180516 0.25380442 0.25576558 0.2577425 0.259736 0.26174694 0.26369244 0.26565116 0.26762603 0.26961781 0.27158165 0.27352338 0.27548063 0.27745407 0.2794366 0.28136146 0.28330104 0.28525593 0.28722677 0.28916414 ! PS_BldPitchMin - Minimum blade pitch angles [rad] diff --git a/Tune_Cases/NREL15MW_turbine.p b/Tune_Cases/NREL15MW_turbine.p new file mode 100644 index 0000000000000000000000000000000000000000..78e22dc544b4343bb1a6d4739f4015af03e58b53 GIT binary patch literal 139770 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�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

@MLhAsbQJrnMG}Un* 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 Date: Wed, 2 Oct 2019 00:40:03 -0600 Subject: [PATCH 02/10] Cleanup --- WTC_toolbox/controller.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/WTC_toolbox/controller.py b/WTC_toolbox/controller.py index b8fedd3e2..ea6d4fcf8 100644 --- a/WTC_toolbox/controller.py +++ b/WTC_toolbox/controller.py @@ -31,7 +31,7 @@ class Controller(): def __init__(self): pass - def controller_params(self): + def controller_params(self,turbine): # Hard coded controller parameters for turbine. Using this until read_param_file is good to go # - Coded for NREL 5MW @@ -44,8 +44,9 @@ def controller_params(self): self.omega_vs = 0.3 # Torque controller natural frequency (rad/s) # Other basic parameters - self.v_rated = 11.4 # Rated wind speed (m/s) - + # self.v_rated = turbine.RRspeed * turbine.RotorRad / turbine.TSR_initial[turbine.Cp.max_ind[0]] # Rated wind speed (m/s) + self.v_rated = 11.4 + def tune_controller(self, turbine): """ Given a turbine model, tune the controller parameters @@ -61,7 +62,7 @@ def tune_controller(self, turbine): # Load controller parameters # - should be self.read_param_file() eventually, hard coded for now - self.controller_params() + self.controller_params(turbine) # Re-define controller tuning parameters for shorthand zeta_pc = self.zeta_pc # Pitch controller damping ratio @@ -126,7 +127,7 @@ def tune_controller(self, turbine): # Wind Disturbance Input dlambda_dv = -(TSR_op/v) dtau_dv = dtau_dlambda*dlambda_dv - B_v = dtau_dv/J # wind speed input - currently unused + # B_v = dtau_dv/J # wind speed input - currently unused # separate and define below and above rated parameters @@ -259,9 +260,9 @@ def read_param_file(self, param_file): # Setpoint Smoother Parameters self.Kss_PC = param_file.Kss_PC # Pitch controller reference gain bias self.Kss_VS = param_file.Kss_VS # Torque controller reference gain bias - self.v_min = turbine.VS_Vmin # Cut-in wind speed (m/s) - self.v_rated = turbine.PC_Vrated # Rated wind speed (m/s) - self.v_max = turbine.PC_Vmax # Cut-out wind speed (m/s), -- Does not need to be exact + self.v_min = turbine.v_min # Cut-in wind speed (m/s) + self.v_rated = turbine.v_rated # Rated wind speed (m/s) + self.v_max = turbine.v_max # Cut-out wind speed (m/s), -- Does not need to be exact def write_param_file(self, param_file, turbine, controller, new_file=True): From 79c849353a6ff5d0e30a900bf9cfa7d7acadb706 Mon Sep 17 00:00:00 2001 From: Nikhar Abbas Date: Wed, 2 Oct 2019 00:40:13 -0600 Subject: [PATCH 03/10] Automate write file --- WTC_toolbox/controller.py | 80 +++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/WTC_toolbox/controller.py b/WTC_toolbox/controller.py index ea6d4fcf8..cb8216e51 100644 --- a/WTC_toolbox/controller.py +++ b/WTC_toolbox/controller.py @@ -299,7 +299,7 @@ class containing file.write('1 ! PS_Mode - Peak shaving mode {0: no peak shaving, 1: implement peak shaving}\n') file.write('\n') file.write('!------- FILTERS ----------------------------------------------------------\n') - file.write('1.570796326 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz]\n') # this needs to be included as an input file + file.write('{} ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz]\n'.format(str(turbine.omega_dt))) # this needs to be included as an input file file.write('0 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2]\n') file.write('0 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s]\n') file.write('0 0 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-]\n') @@ -312,11 +312,11 @@ class containing file.write('{} ! PC_GS_KI - Gain-schedule table: pitch controller ki gains\n'.format(str(controller.pc_gain_schedule.Ki).strip('[]').replace('\n',''))) file.write('{} ! PC_GS_KD - Gain-schedule table: pitch controller kd gains\n'.format(str(np.zeros(len(controller.pitch_op_pc))).strip('[]').replace('\n',''))) file.write('{} ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter)\n'.format(str(np.zeros(len(controller.pitch_op_pc))).strip('[]').replace('\n',''))) - file.write('1.5707 ! PC_MaxPit - Maximum physical pitch limit, [rad].\n') - file.write('-0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad].\n') + file.write('{} ! PC_MaxPit - Maximum physical pitch limit, [rad].\n'.format(str(turbine.PC_MaxPit))) + file.write('{} ! PC_MinPit - Minimum physical pitch limit, [rad].\n'.format(str(turbine.PC_MinPit))) file.write('0.13962 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s].\n') file.write('-0.13962 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s].\n') - file.write('122.90957 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s].\n') + file.write('{} ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s].\n'.format(str(turbine.RRspeed*turbine.Ng))) file.write('0.0 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad]\n') file.write('0.003490658 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad]\n') file.write('0 ! Z_EnableSine - Enable/disable sine pitch excitation, used to validate for dynamic induction control, will be removed later, [-]\n') @@ -324,61 +324,61 @@ class containing file.write('0 ! Z_PitchFrequency - Frequency of sine pitch excitation, [rad/s]\n') file.write('\n') file.write('!------- INDIVIDUAL PITCH CONTROL -----------------------------------------\n') - file.write('0.087266 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad]\n') - file.write('1E-8 0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-]\n') - file.write('0.436332313 0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. \n') - file.write('2.5 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s]\n') + file.write('0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad]\n') + file.write('0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-]\n') + file.write('0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. \n') + file.write('0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s]\n') file.write('\n') file.write('!------- VS TORQUE CONTROL ------------------------------------------------\n') - file.write('0.944 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-]\n') - file.write('43093.55 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm]\n') + file.write('{} ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-]\n'.format(str(turbine.GenEff))) + file.write('{} ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm]\n'.format(str(turbine.RatedTorque))) file.write('150000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s].\n') - file.write('48000.00 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm].\n') + file.write('{} ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm].\n'.format(str(turbine.RatedTorque*1.1))) file.write('0.0 ! VS_MinTq - Minimum generator (HSS side), [Nm].\n') - file.write('91.2109 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s]\n') - file.write('2.33228 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2]\n') - file.write('5.0E+06 ! VS_RtPwr - Wind turbine rated power [W]\n') - file.write('43093.55 ! VS_RtTq - Rated torque, [Nm].\n') - file.write('120.113 ! VS_RefSpd - Rated generator speed [rad/s]\n') + file.write('0.0 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s]\n') + file.write('0.0 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2]\n') + file.write('{} ! VS_RtPwr - Wind turbine rated power [W]\n'.format(str(turbine.RatedPower))) + file.write('{} ! VS_RtTq - Rated torque, [Nm].\n'.format(str(turbine.RatedTorque))) + file.write('{} ! VS_RefSpd - Rated generator speed [rad/s]\n'.format(str(turbine.RRspeed*turbine.Ng))) file.write('1 ! VS_n - Number of generator PI torque controller gains\n') - file.write('-835 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2)\n') - file.write('-164 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2)\n') + file.write('{} ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2)\n'.format(str(controller.vs_gain_schedule.Kp[-1]))) + file.write('{} ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2)\n'.format(str(controller.vs_gain_schedule.Ki[-1]))) file.write('\n') file.write('!------- SETPOINT SMOOTHER ---------------------------------------------\n') file.write('30 ! SS_VSGainBias - Variable speed torque controller gain bias, [(rad/s)/rad].\n') file.write('0.001 ! SS_PCGainBias - Collective pitch controller gain bias, [(rad/s)/Nm].\n') file.write('\n') file.write('!------- WIND SPEED ESTIMATOR ---------------------------------------------\n') - file.write('63.0 ! WE_BladeRadius - Blade length [m]\n') + file.write('{} ! WE_BladeRadius - Blade length [m]\n'.format(str(turbine.RotorRad))) file.write('4 ! WE_CP_n - Amount of parameters in the Cp array\n') - file.write('14.571319658214513 42.809556250371465 2.456512501523107 0.003127994078720 ! WE_CP - Parameters that define the parameterized CP(lambda) function\n') - file.write('20 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad]\n') - file.write('97 ! WE_GearboxRatio - Gearbox ratio [>=1], [-]\n') - file.write('4.0469564E+07 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2]\n') + file.write('0.0 0.0 0.0 0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function\n') + file.write('0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad]\n') + file.write('{} ! WE_GearboxRatio - Gearbox ratio [>=1], [-]\n'.format(str(turbine.Ng))) + file.write('{} ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2]\n'.format(str(turbine.J))) file.write('1.225 ! WE_RhoAir - Air density, [kg m^-3]\n') - file.write('"../5MW_Baseline/Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq)\n') - file.write('320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios\n') - file.write('23 ! WE_FOPoles_N - Number of first-order system poles used in EKF\n') - file.write('3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s]\n') - file.write('-0.0203 -0.0270 -0.0338 -0.0405 -0.0473 -0.0540 -0.0608 -0.0675 -0.0743 -0.0671 -0.0939 -0.1257 -0.1601 -0.1973 -0.2364 -0.2783 -0.3223 -0.3678 -0.4153 -0.4632 -0.5122 -0.5629 -0.6194 ! WE_FOPoles - First order system poles\n') + file.write('"Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq)\n') + file.write('{} {} ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios\n'.format(str(len(turbine.Cp.pitch_initial_rad)),str(len(turbine.Cp.TSR_initial)))) + file.write('{} ! WE_FOPoles_N - Number of first-order system poles used in EKF\n'.format(str(len(controller.A)))) + file.write('{} ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s]\n'.format(str(controller.v).strip('[]').replace('\n',''))) + file.write('{} ! WE_FOPoles - First order system poles\n'.format(str(controller.A).strip('[]').replace('\n',''))) file.write('\n') file.write('!------- YAW CONTROL ------------------------------------------------------\n') - file.write('1.745329252 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s]\n') - file.write('0.17453 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad]\n') + file.write('0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s]\n') + file.write('0.0 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad]\n') file.write('1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC)\n') - file.write('-0.064 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp\n') - file.write('-0.0008 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki\n') - file.write('0.6283185 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s].\n') - file.write('1.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-].\n') - file.write('0.00000 ! Y_MErrSet - Yaw alignment error, set point [rad]\n') - file.write('1.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz]\n') - file.write('0.016667 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz]\n') - file.write('0.0034906 ! Y_Rate - Yaw rate [rad/s]\n') + file.write('0.0 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp\n') + file.write('0.0 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki\n') + file.write('0.0 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s].\n') + file.write('0.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-].\n') + file.write('0.0 ! Y_MErrSet - Yaw alignment error, set point [rad]\n') + file.write('0.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz]\n') + file.write('0.0 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz]\n') + file.write('0.0 ! Y_Rate - Yaw rate [rad/s]\n') file.write('\n') file.write('!------- TOWER FORE-AFT DAMPING -------------------------------------------\n') file.write('-1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag\n') - file.write('0.1 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s]\n') - file.write('0.087266 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad]\n') + file.write('0.0 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s]\n') + file.write('0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad]\n') file.write('\n') file.write('!------- PEAK SHAVING -------------------------------------------\n') file.write('{} ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin)\n'.format(len(controller.ps.pitch_min))) From 838b1b547225d3a444131d57a612396bbf9e47f0 Mon Sep 17 00:00:00 2001 From: Nikhar Abbas Date: Wed, 2 Oct 2019 00:40:53 -0600 Subject: [PATCH 04/10] Cleanup, include some NREL15MW hard code --- WTC_toolbox/turbine.py | 122 ++++++++++++++++++++++++++++------------- 1 file changed, 84 insertions(+), 38 deletions(-) diff --git a/WTC_toolbox/turbine.py b/WTC_toolbox/turbine.py index b554ede75..bb0242162 100644 --- a/WTC_toolbox/turbine.py +++ b/WTC_toolbox/turbine.py @@ -33,22 +33,29 @@ def __init__(self): This also lists what will need to be defined """ + # ------ Turbine Parameters------ + # Some of this should be loaded from a dictionary and cleaned up... + # self.J = None # Total rotor inertial (kg-m^2) + # self.rho = None # Air density (kg/m^3) + # self.RotorRad = None # Rotor radius (m) + # self.Ng = None # Gearbox ratio (-) + # self.RRspeed = 7.49*rpm2RadSec # Rated rotor speed (rad/s) + self.RRspeed = 12.1*rpm2RadSec # Rated rotor speed (rad/s) - # Turbine Parameters - self.J = None # Total rotor inertial (kg-m^2) - self.rho = None # Air density (kg/m^3) - self.RotorRad = None # Rotor radius (m) - self.Ng = None # Gearbox ratio (-) - self.RRspeed = None # Rated rotor speed (rad/s) self.v_min = 4. # Cut-in wind speed (m/s) (JUST ASSUME FOR NOW) self.v_rated = None # Rated wind speed (m/s) self.v_max = 25. # Cut-out wind speed (m/s), -- Does not need to be exact (JUST ASSUME FOR NOW) + # self.GenEff = None + # self.RatedPower = 15000000 + self.RatedPower = 5000000 + # Pitch controller + self.PC_MaxPit = 1.5707 # Maximum pitch angle (rad) + self.PC_MinPit = -0.087266 # Minimum pitch angle (rad) # Init the cc-blade rotor self.cc_rotor = None - # Pitch controller - self.PC_MinPit = -0.087266 # Minimum pitch angle (rad) + # Interp function versions self.cp_interp = None @@ -68,7 +75,7 @@ def __str__(self): # Save function def save(self,filename): - tuple_to_save = (self.J,self.rho,self.RotorRad, self.Ng,self.RRspeed,self.v_min,self.v_rated,self.v_max,self.cc_rotor,self.Cp,self.Ct,self.Cq ) + tuple_to_save = (self.J,self.rho,self.RotorRad, self.Ng,self.RRspeed,self.v_min,self.v_rated,self.v_max,self.cc_rotor,self.Cp_table,self.Ct_table,self.Cq_table,self.Cp,self.Ct,self.Cq ) pickle.dump( tuple_to_save, open( filename, "wb" ) ) # Load function @@ -115,16 +122,24 @@ def load_from_fast(self, FAST_InputFile,FAST_directory,drivetrain_inertia, FAST_ self.TipRad = fast.fst_vt['ElastoDyn']['TipRad'] self.Rhub = fast.fst_vt['ElastoDyn']['HubRad'] self.hubHt = fast.fst_vt['ElastoDyn']['TowerHt'] - self.shearExp = 0.2 #HARD CODED UNTIL FIND A SOLUTION TO READ OUTPUT + self.shearExp = 0.2 #HARD CODED FOR NOW self.rho = fast.fst_vt['AeroDyn15']['AirDens'] self.mu = fast.fst_vt['AeroDyn15']['KinVisc'] self.Ng = fast.fst_vt['ElastoDyn']['GBRatio'] - + self.GenEff = fast.fst_vt['ElastoDyn']['GBoxEff'] + self.DTTorSpr = fast.fst_vt['ElastoDyn']['DTTorSpr'] + self.RatedTorque = self.RatedPower/(self.RRspeed*self.Ng) + + # Some additional parameters to save self.RotorRad = self.TipRad + self.omega_dt = np.sqrt(self.DTTorSpr/self.J) + if self.RRspeed: + pass + else: + # Calculate rated rotor speed by scaling from NREL 5MW + self.RRspeed = (63. / self.TipRad) * 12.1 * rpm2RadSec - # Calculate rated rotor speed for now by scaling from NREL 5MW - self.RRspeed = (63. / self.TipRad) * 12.1 * rpm2RadSec # Load Cp, Ct, Cq tables if rot_source == 'txt': @@ -149,19 +164,6 @@ def load_from_ccblade(self,fast): af_idx = np.array(fast.fst_vt['AeroDynBlade']['BlAFID']).astype(int) - 1 #Reset to 0 index AFNames = fast.fst_vt['AeroDyn15']['AFNames'] - # # NEED A PRETTY SERIOUS HACK TO POINT AT OLD AIRFOIL TABLES - # ad14path = '/Users/pfleming/Desktop/git_tools/FLORIS/examples/5MW_AFFiles' - # AFNames_14 = [] - # for airfoil in AFNames: - # a_name = os.path.basename(airfoil) - # AFNames_14.append(os.path.join(ad14path,a_name)) - # print(fast.FAST_directory) - - # # Load in the airfoils - # afinit = CCAirfoil.initFromAerodynFile # just for shorthand - # airfoil_types = [] - # for airfoil in AFNames: - # airfoil_types.append(afinit(airfoil)) # Used airfoil data from FAST file read, assumes AeroDyn 15, assumes 1 Re num per airfoil af_dict = {} @@ -197,7 +199,7 @@ def load_from_ccblade(self,fast): fixed_rpm = 10 # RPM TSR_initial = np.arange(0.5,15,0.5) - pitch_initial = np.arange(0,25,0.5) + pitch_initial = np.arange(-1,25,0.5) pitch_initial_rad = pitch_initial * deg2rad ws_array = (fixed_rpm * (np.pi / 30.) * self.TipRad) / TSR_initial ws_mesh, pitch_mesh = np.meshgrid(ws_array, pitch_initial) @@ -207,7 +209,7 @@ def load_from_ccblade(self,fast): tsr_flat = (fixed_rpm * (np.pi / 30.) * self.TipRad) / ws_flat # Get values from cc-blade - print('Running cc_rotor aerodynamic analysis...') + print('Running cc_rotor aerodynamic analysis, this may take a second...') P, T, Q, M, CP, CT, CQ, CM = self.cc_rotor.evaluate(ws_flat, omega_flat, pitch_flat, coefficients=True) # Reshape Cp, Ct and Cq @@ -267,7 +269,52 @@ def load_from_txt(self,fast,txt_filename): self.Cp_table = Cp self.Ct_table = Ct self.Cq_table = Cq + + + def write_rotorperformance(self,txt_filename='Cp_Ct_Cq.txt'): + ''' + Write text file containing rotor performance data + Parameters: + ------------ + Fill this out... + ''' + + file = open(txt_filename,'w') + file.write('# Pitch angle vector - x axis (matrix columns) (deg)\n') + for i in range(len(self.Cp.pitch_initial_rad)): + file.write('%.2f ' % (self.Cp.pitch_initial_rad[i] * rad2deg)) + file.write('\n# TSR vector - y axis (matrix rows) (-)\n') + for i in range(len(self.TSR_initial)): + file.write('%.2f ' % self.Cp.TSR_initial[i]) + file.write('\n# Wind speed vector - z axis (m/s)\n') + # for i in range(n_U): + # --- write arbitrary wind speed for now... + file.write('%.2f ' % 3.0) + file.write('\n') + + file.write('\n# Power coefficient\n\n') + for i in range(len(self.Cp.TSR_initial)): + for j in range(len(self.Cp.pitch_initial_rad)): + file.write('%.5f ' % self.Cp_table[i,j]) + file.write('\n') + file.write('\n') + + file.write('\n# Thrust coefficient\n\n') + for i in range(len(self.Ct.TSR_initial)): + for j in range(len(self.Ct.pitch_initial_rad)): + file.write('%.5f ' % self.Ct_table[i,j]) + file.write('\n') + file.write('\n') + + file.write('\n# Torque coefficient\n\n') + for i in range(len(self.Cq.TSR_initial)): + for j in range(len(self.Cq.pitch_initial_rad)): + file.write('%.5f ' % self.Cq_table[i,j]) + file.write('\n') + file.write('\n') + + file.close() class RotorPerformance(): def __init__(self,performance_table, pitch_initial_rad, TSR_initial): @@ -304,14 +351,13 @@ def interp_gradient(self,pitch,TSR): return np.ndarray.flatten(grad) +# # NOT CERTAIN OF THESE ALTERNATIVES YET +# def load_from_sowfa(self, fast_folder): +# """ +# Load the parameter files directly from a SOWFA directory +# """ - # # NOT CERTAIN OF THESE ALTERNATIVES YET - # def load_from_sowfa(self, fast_folder): - # """ - # Load the parameter files directly from a SOWFA directory - # """ - - # def load_from_csv(self, fast_folder): - # """ - # Load from a simple CSV file containing the parameters - # """ \ No newline at end of file +# def load_from_csv(self, fast_folder): +# """ +# Load from a simple CSV file containing the parameters +# """ \ No newline at end of file From a385a6753c49df6466a19923e081e32c1aa10491 Mon Sep 17 00:00:00 2001 From: Nikhar Abbas Date: Tue, 8 Oct 2019 00:47:01 -0600 Subject: [PATCH 05/10] Ignore matlab temp files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 5195983e3..72d12a0ca 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ _build # MATLAB files *.m~ +*slprj* # ide settings and files .idea From aedcc085f26d301db29f0cc91df4934a6d5d35bf Mon Sep 17 00:00:00 2001 From: Nikhar Abbas Date: Tue, 8 Oct 2019 00:47:38 -0600 Subject: [PATCH 06/10] Update DRC_Fortran from Nikhar's repo --- DRC_Fortran/Source/ControllerBlocks.f90 | 9 +-- DRC_Fortran/Source/Controllers.f90 | 4 +- DRC_Fortran/Source/DISCON.f90 | 3 +- DRC_Fortran/Source/DRC_Types.f90 | 1 + DRC_Fortran/Source/ReadSetParameters.f90 | 73 +++++++++++++----------- 5 files changed, 50 insertions(+), 40 deletions(-) diff --git a/DRC_Fortran/Source/ControllerBlocks.f90 b/DRC_Fortran/Source/ControllerBlocks.f90 index 1b7861cfc..fee3d326f 100644 --- a/DRC_Fortran/Source/ControllerBlocks.f90 +++ b/DRC_Fortran/Source/ControllerBlocks.f90 @@ -148,7 +148,7 @@ SUBROUTINE WindSpeedEstimator(LocalVar, CntrPar, objInst, PerfData) ! Extended Kalman Filter (EKF) implementation ELSEIF (CntrPar%WE_Mode == 2) THEN ! Define contant values - L = 2.0 * CntrPar%WE_BladeRadius + L = 4.0 * CntrPar%WE_BladeRadius Ti = 0.2 R_m = 0.02 H = RESHAPE((/1.0 , 0.0 , 0.0/),(/1,3/)) @@ -185,10 +185,10 @@ SUBROUTINE WindSpeedEstimator(LocalVar, CntrPar, objInst, PerfData) F(2,3) = PI * v_t/(2.0*L) ! Update process noise covariance - Q(1,1) = 0.0001 + Q(1,1) = 0.00001 Q(2,2) =(PI * (v_m**3.0) * (Ti**2.0)) / L Q(3,3) = (2.0**2.0)/600.0 -\ + ! Prediction update ! Tau_r = 0.5 * CntrPar%WE_RhoAir * PI *CntrPar%WE_BladeRadius**3 * Cp_op * v_h**2 * 1.0/(lambda) Tau_r = AeroDynTorque(LocalVar,CntrPar,PerfData) @@ -215,6 +215,7 @@ SUBROUTINE WindSpeedEstimator(LocalVar, CntrPar, objInst, PerfData) v_h = v_t + v_m LocalVar%TestType = v_m + v_t LocalVar%WE_Vw = v_m + v_t + ! LocalVar%WE_Vw = LPFilter(v_m + v_t,LocalVar%DT,0.5,LocalVar%iStatus,.FALSE.,objInst%instLPF) ENDIF ELSE @@ -274,7 +275,7 @@ REAL FUNCTION PeakShaving(LocalVar, CntrPar, objInst) ! V_towertop = PIController(LocalVar%FA_Acc, 0.0, 1.0, -100.00, 100.00, LocalVar%DT, 0.0, .FALSE., objInst%instPI) Vhat = LocalVar%WE_Vw - Vhatf = LPFilter(Vhat,LocalVar%DT,0.04,LocalVar%iStatus,.FALSE.,objInst%instLPF) + Vhatf = LPFilter(Vhat,LocalVar%DT,0.2,LocalVar%iStatus,.FALSE.,objInst%instLPF) LocalVar%TestType = Vhatf ! Define minimum blade pitch angle as a function of estimated wind speed PeakShaving = interp1d(CntrPar%PS_WindSpeeds, CntrPar%PS_BldPitchMin, Vhatf) diff --git a/DRC_Fortran/Source/Controllers.f90 b/DRC_Fortran/Source/Controllers.f90 index 855d1bb2d..2c2169be1 100644 --- a/DRC_Fortran/Source/Controllers.f90 +++ b/DRC_Fortran/Source/Controllers.f90 @@ -118,12 +118,12 @@ SUBROUTINE VariableSpeedControl(avrSWAP, CntrPar, LocalVar, objInst) IF (LocalVar%VS_State >= 4) THEN VS_MaxTq = CntrPar%VS_RtTq ELSE - ! VS_MaxTq = CntrPar%VS_MaxTq + ! VS_MaxTq = CntrPar%VS_MaxTq ! NJA: May want to boost max torque VS_MaxTq = CntrPar%VS_RtTq ENDIF LocalVar%GenTq = PIController(LocalVar%VS_SpdErr, CntrPar%VS_KP(1), CntrPar%VS_KI(1), CntrPar%VS_MinTq, VS_MaxTq, LocalVar%DT, CntrPar%VS_MaxOMTq, .FALSE., objInst%instPI) - ! K*Omega^2 control law with PI torque control in transition regions + ! K*Omega^2 control law with PI torque control in transition regions ELSE ! Update PI loops for region 1.5 and 2.5 PI control ! LocalVar%GenArTq = PIController(LocalVar%VS_SpdErrAr, CntrPar%VS_KP(1), CntrPar%VS_KI(1), CntrPar%VS_MaxOMTq, CntrPar%VS_ArSatTq, LocalVar%DT, CntrPar%VS_RtTq, .TRUE., objInst%instPI) diff --git a/DRC_Fortran/Source/DISCON.f90 b/DRC_Fortran/Source/DISCON.f90 index 67f162149..de8df7b77 100644 --- a/DRC_Fortran/Source/DISCON.f90 +++ b/DRC_Fortran/Source/DISCON.f90 @@ -39,6 +39,7 @@ SUBROUTINE DISCON(avrSWAP, aviFAIL, accINFILE, avcOUTNAME, avcMSG) BIND (C, NAME TYPE(LocalVariables), SAVE :: LocalVar TYPE(ObjectInstances), SAVE :: objInst TYPE(PerformanceData), SAVE :: PerfData + !------------------------------------------------------------------------------------------------------------------------------ ! Main control calculations !------------------------------------------------------------------------------------------------------------------------------ @@ -48,7 +49,7 @@ SUBROUTINE DISCON(avrSWAP, aviFAIL, accINFILE, avcOUTNAME, avcMSG) BIND (C, NAME CALL PreFilterMeasuredSignals(CntrPar, LocalVar, objInst) IF ((LocalVar%iStatus >= 0) .AND. (aviFAIL >= 0)) THEN ! Only compute control calculations if no error has occurred and we are not on the last time step - CALL ComputeVariablesSetpoints(CntrPar, LocalVar) + CALL ComputeVariablesSetpoints(CntrPar, LocalVar, objInst) CALL StateMachine(CntrPar, LocalVar) CALL WindSpeedEstimator(LocalVar, CntrPar, objInst, PerfData) diff --git a/DRC_Fortran/Source/DRC_Types.f90 b/DRC_Fortran/Source/DRC_Types.f90 index 69b8af80f..325fffc3e 100644 --- a/DRC_Fortran/Source/DRC_Types.f90 +++ b/DRC_Fortran/Source/DRC_Types.f90 @@ -52,6 +52,7 @@ MODULE DRC_Types INTEGER(4) :: VS_n ! Number of controller gains REAL(4), DIMENSION(:), ALLOCATABLE :: VS_KP ! Proportional gain for generator PI torque controller, used in the transitional 2.5 region REAL(4), DIMENSION(:), ALLOCATABLE :: VS_KI ! Integral gain for generator PI torque controller, used in the transitional 2.5 region + REAL(4) :: VS_TSRopt ! Power-maximizing region 2 tip-speed ratio [rad] INTEGER(4) :: SS_Mode ! Setpoint Smoother mode {0: no setpoint smoothing, 1: introduce setpoint smoothing} REAL(4) :: SS_VSGainBias ! Variable speed torque controller gain bias, [(rad/s)/rad]. diff --git a/DRC_Fortran/Source/ReadSetParameters.f90 b/DRC_Fortran/Source/ReadSetParameters.f90 index 8d7a43720..fd97fe76e 100644 --- a/DRC_Fortran/Source/ReadSetParameters.f90 +++ b/DRC_Fortran/Source/ReadSetParameters.f90 @@ -104,6 +104,7 @@ SUBROUTINE ReadControlParameterFileSub(CntrPar) READ(UnControllerParameters,*) CntrPar%VS_KP ALLOCATE(CntrPar%VS_KI(CntrPar%VS_n)) READ(UnControllerParameters,*) CntrPar%VS_KI + READ(UnControllerParameters,*) CntrPar%VS_TSRopt READ(UnControllerParameters, *) !------- Setpoint Smoother -------------------------------- @@ -179,17 +180,20 @@ SUBROUTINE ReadControlParameterFileSub(CntrPar) END SUBROUTINE ReadControlParameterFileSub ! ----------------------------------------------------------------------------------- ! Calculate setpoints for primary control actions - SUBROUTINE ComputeVariablesSetpoints(CntrPar, LocalVar) - USE DRC_Types, ONLY : ControlParameters, LocalVariables + SUBROUTINE ComputeVariablesSetpoints(CntrPar, LocalVar, objInst) + USE DRC_Types, ONLY : ControlParameters, LocalVariables, ObjectInstances ! Allocate variables TYPE(ControlParameters), INTENT(INOUT) :: CntrPar TYPE(LocalVariables), INTENT(INOUT) :: LocalVar + TYPE(ObjectInstances), INTENT(INOUT) :: objInst + REAL(4) :: VS_RefSpd ! Referece speed for variable speed torque controller, [rad/s] REAL(4) :: PC_RefSpd ! Referece speed for pitch controller, [rad/s] REAL(4) :: Omega_op ! Optimal TSR-tracking generator speed, [rad/s] + REAL(4) :: WE_Vw_f ! Filtered Wind Speed Estimate ! temp - REAL(4) :: VS_TSRop = 7.5 + ! REAL(4) :: VS_TSRop = 7.5 ! ----- Calculate yaw misalignment error ----- LocalVar%Y_MErr = LocalVar%Y_M + CntrPar%Y_MErrSet ! Yaw-alignment error @@ -207,7 +211,8 @@ SUBROUTINE ComputeVariablesSetpoints(CntrPar, LocalVar) ! ----- Torque controller reference errors ----- ! Define VS reference generator speed [rad/s] IF (CntrPar%VS_ControlMode == 2) THEN - VS_RefSpd = (VS_TSRop * LocalVar%WE_Vw / CntrPar%WE_BladeRadius) * CntrPar%WE_GearboxRatio + WE_Vw_f = LPFilter(LocalVar%We_Vw, LocalVar%DT, 0.1, LocalVar%iStatus, .FALSE., objInst%instLPF) + VS_RefSpd = (CntrPar%VS_TSRopt * WE_Vw_f / CntrPar%WE_BladeRadius) * CntrPar%WE_GearboxRatio VS_RefSpd = saturate(VS_RefSpd,CntrPar%VS_MinOMSpd, CntrPar%PC_RefSpd) ELSE VS_RefSpd = CntrPar%VS_RefSpd @@ -366,36 +371,38 @@ SUBROUTINE Assert(LocalVar, CntrPar, avrSWAP, aviFAIL, ErrMsg, size_avcMSG) ErrMsg = 'IPC_KI(2) must be zero or greater than zero.' ENDIF - IF (CntrPar%Y_IPC_omegaLP <= 0.0) THEN - aviFAIL = -1 - ErrMsg = 'Y_IPC_omegaLP must be greater than zero.' - ENDIF - - IF (CntrPar%Y_IPC_zetaLP <= 0.0) THEN - aviFAIL = -1 - ErrMsg = 'Y_IPC_zetaLP must be greater than zero.' - ENDIF - - IF (CntrPar%Y_ErrThresh <= 0.0) THEN - aviFAIL = -1 - ErrMsg = 'Y_ErrThresh must be greater than zero.' - ENDIF - - IF (CntrPar%Y_Rate <= 0.0) THEN - aviFAIL = -1 - ErrMsg = 'CntrPar%Y_Rate must be greater than zero.' - ENDIF - - IF (CntrPar%Y_omegaLPFast <= 0.0) THEN - aviFAIL = -1 - ErrMsg = 'Y_omegaLPFast must be greater than zero.' - ENDIF - - IF (CntrPar%Y_omegaLPSlow <= 0.0) THEN - aviFAIL = -1 - ErrMsg = 'Y_omegaLPSlow must be greater than zero.' + ! ---- Yaw Control ---- + IF (CntrPar%Y_ControlMode > 0) THEN + IF (CntrPar%Y_IPC_omegaLP <= 0.0) THEN + aviFAIL = -1 + ErrMsg = 'Y_IPC_omegaLP must be greater than zero.' + ENDIF + + IF (CntrPar%Y_IPC_zetaLP <= 0.0) THEN + aviFAIL = -1 + ErrMsg = 'Y_IPC_zetaLP must be greater than zero.' + ENDIF + + IF (CntrPar%Y_ErrThresh <= 0.0) THEN + aviFAIL = -1 + ErrMsg = 'Y_ErrThresh must be greater than zero.' + ENDIF + + IF (CntrPar%Y_Rate <= 0.0) THEN + aviFAIL = -1 + ErrMsg = 'CntrPar%Y_Rate must be greater than zero.' + ENDIF + + IF (CntrPar%Y_omegaLPFast <= 0.0) THEN + aviFAIL = -1 + ErrMsg = 'Y_omegaLPFast must be greater than zero.' + ENDIF + + IF (CntrPar%Y_omegaLPSlow <= 0.0) THEN + aviFAIL = -1 + ErrMsg = 'Y_omegaLPSlow must be greater than zero.' + ENDIF ENDIF - ! Abort if the user has not requested a pitch angle actuator (See Appendix A ! of Bladed User's Guide): IF (NINT(avrSWAP(10)) /= 0) THEN ! .TRUE. if a pitch angle actuator hasn't been requested From 4036f66325b37bf7335ebe27a04229ab3955ef7b Mon Sep 17 00:00:00 2001 From: Nikhar Abbas Date: Tue, 8 Oct 2019 00:48:02 -0600 Subject: [PATCH 07/10] Add above rated --- Matlab_Toolbox/Post_TestCases.m | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Matlab_Toolbox/Post_TestCases.m b/Matlab_Toolbox/Post_TestCases.m index 561af2487..3ff488a0a 100644 --- a/Matlab_Toolbox/Post_TestCases.m +++ b/Matlab_Toolbox/Post_TestCases.m @@ -44,8 +44,8 @@ % Will want to (un)comment desired cases to plot % Usable Plot types: - % - Step, Below Rated, Near Rated, Above Rated, Floating Steady, Floating Near Rated, Floating Mexican Hat -plottype = 'Floating Near Rated'; + % - Step, Below Rated, Near Rated, Above Rated, Floating Steady, Floating Near Rated, Floating Above Rated, Floating Mexican Hat +plottype = 'Near Rated'; close all % Below Rated @@ -62,6 +62,8 @@ Pl_FastPlots(fo.OC4_ARsteady_Legacy, fo.OC4_ARsteady_Baseline) case 'Floating Near Rated' Pl_FastPlots(fo.OC4_NR_Legacy, fo.OC4_NR_Baseline) + case 'Floating Above Rated' + Pl_FastPlots(fo.OC4_AR_Legacy, fo.OC4_AR_Baseline) case 'Floating Mexican Hat' Pl_FastPlots(fo.OC4_MH_Legacy, fo.OC4_MH_Baseline) end From 63b39d706a7c8d945b36e974b9acf4da2bd318c6 Mon Sep 17 00:00:00 2001 From: Nikhar Abbas Date: Tue, 8 Oct 2019 00:49:22 -0600 Subject: [PATCH 08/10] Some housekeeping, hard-code NREL 15MW for now --- WTC_toolbox/controller.py | 19 ++++---- WTC_toolbox/sim.py | 2 +- WTC_toolbox/turbine.py | 21 ++++----- examples/DISCON.IN | 88 +++++++++++++++++----------------- examples/DISCON_TEST.IN | 99 ++++++++++++++++++++------------------- examples/Example_07.py | 4 +- examples/Run_TestCases.py | 18 +++---- 7 files changed, 125 insertions(+), 126 deletions(-) diff --git a/WTC_toolbox/controller.py b/WTC_toolbox/controller.py index cb8216e51..22e726d22 100644 --- a/WTC_toolbox/controller.py +++ b/WTC_toolbox/controller.py @@ -41,10 +41,11 @@ def controller_params(self,turbine): # Torque Controller Parameters self.zeta_vs = 0.7 # Torque controller damping ratio (-) - self.omega_vs = 0.3 # Torque controller natural frequency (rad/s) + self.omega_vs = 0.2 # Torque controller natural frequency (rad/s) # Other basic parameters # self.v_rated = turbine.RRspeed * turbine.RotorRad / turbine.TSR_initial[turbine.Cp.max_ind[0]] # Rated wind speed (m/s) + # self.v_rated = 10.75 self.v_rated = 11.4 def tune_controller(self, turbine): @@ -77,8 +78,8 @@ def tune_controller(self, turbine): TSR_rated = RRspeed*R/v_rated # TSR at rated # separate wind speeds by operation regions - v_below_rated = np.arange(v_min,v_rated,0.1) # below rated - v_above_rated = np.arange(v_rated,v_max,0.1) # above rated + v_below_rated = np.arange(v_min,v_rated,0.5) # below rated + v_above_rated = np.arange(v_rated+0.5,v_max,0.5) # above rated v = np.concatenate((v_below_rated, v_above_rated)) # separate TSRs by operations regions @@ -152,6 +153,7 @@ def tune_controller(self, turbine): self.TSR_op = TSR_op self.A = A self.B_beta = B_beta + self.B_tau = B_tau # Peak Shaving self.ps = ControllerBlocks() @@ -295,11 +297,11 @@ class containing file.write('1 ! PC_ControlMode - Blade pitch control mode {0: No pitch, fix to fine pitch, 1: active PI blade pitch control}\n') file.write('0 ! Y_ControlMode - Yaw control mode {0: no yaw control, 1: yaw rate control, 2: yaw-by-IPC}\n') file.write('1 ! SS_Mode - Setpoint Smoother mode {0: no setpoint smoothing, 1: introduce setpoint smoothing}\n') - file.write('2 ! WE_Mode - Wind speed estimator mode {0: One-second low pass filtered hub height wind speed, 1: Imersion and Invariance Estimator (Ortega et al.)}\n') + file.write('0 ! WE_Mode - Wind speed estimator mode {0: One-second low pass filtered hub height wind speed, 1: Imersion and Invariance Estimator (Ortega et al.)}\n') file.write('1 ! PS_Mode - Peak shaving mode {0: no peak shaving, 1: implement peak shaving}\n') file.write('\n') file.write('!------- FILTERS ----------------------------------------------------------\n') - file.write('{} ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz]\n'.format(str(turbine.omega_dt))) # this needs to be included as an input file + file.write('{} ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz]\n'.format(str(turbine.omega_dt * 1/3))) # this needs to be included as an input file file.write('0 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2]\n') file.write('0 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s]\n') file.write('0 0 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-]\n') @@ -330,9 +332,9 @@ class containing file.write('0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s]\n') file.write('\n') file.write('!------- VS TORQUE CONTROL ------------------------------------------------\n') - file.write('{} ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-]\n'.format(str(turbine.GenEff))) - file.write('{} ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm]\n'.format(str(turbine.RatedTorque))) - file.write('150000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s].\n') + file.write('{} ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-]\n'.format(turbine.GenEff)) + file.write('{} ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm]\n'.format(turbine.RatedTorque)) + file.write('1500000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s].\n') file.write('{} ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm].\n'.format(str(turbine.RatedTorque*1.1))) file.write('0.0 ! VS_MinTq - Minimum generator (HSS side), [Nm].\n') file.write('0.0 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s]\n') @@ -343,6 +345,7 @@ class containing file.write('1 ! VS_n - Number of generator PI torque controller gains\n') file.write('{} ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2)\n'.format(str(controller.vs_gain_schedule.Kp[-1]))) file.write('{} ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2)\n'.format(str(controller.vs_gain_schedule.Ki[-1]))) + file.write('{} ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad].\n'.format(str(turbine.Cp.TSR_opt).strip('[]'))) file.write('\n') file.write('!------- SETPOINT SMOOTHER ---------------------------------------------\n') file.write('30 ! SS_VSGainBias - Variable speed torque controller gain bias, [(rad/s)/rad].\n') diff --git a/WTC_toolbox/sim.py b/WTC_toolbox/sim.py index bc5cc12a4..4cce3a52b 100644 --- a/WTC_toolbox/sim.py +++ b/WTC_toolbox/sim.py @@ -105,7 +105,7 @@ def sim_ws_series(self,t_array,ws_array,rotor_rpm_init=10,init_pitch=0.0, make_p gen_speed[i] = rot_speed[i] * self.turbine.Ng # Call the controller - gen_torque[i], bld_pitch[i] = self.controller_int.call_controller(t,dt,bld_pitch[i-1],gen_speed[i],rot_speed[i],ws) + gen_torque[i], bld_pitch[i] = self.controller_int.call_controller(t,dt,bld_pitch[i-1],gen_torque[i-1],gen_speed[i],rot_speed[i],ws) # Calculate the power gen_power[i] = gen_speed[i] * np.pi/30.0 * gen_torque[i] * self.gen_eff diff --git a/WTC_toolbox/turbine.py b/WTC_toolbox/turbine.py index bb0242162..6a56d34e2 100644 --- a/WTC_toolbox/turbine.py +++ b/WTC_toolbox/turbine.py @@ -20,6 +20,7 @@ deg2rad = np.deg2rad(1) rad2deg = np.rad2deg(1) rpm2RadSec = 2.0*(np.pi)/60.0 +RadSec2rpm = 60/(2.0 * np.pi) class Turbine(): """ @@ -34,20 +35,14 @@ def __init__(self): """ # ------ Turbine Parameters------ - # Some of this should be loaded from a dictionary and cleaned up... - # self.J = None # Total rotor inertial (kg-m^2) - # self.rho = None # Air density (kg/m^3) - # self.RotorRad = None # Rotor radius (m) - # self.Ng = None # Gearbox ratio (-) - # self.RRspeed = 7.49*rpm2RadSec # Rated rotor speed (rad/s) self.RRspeed = 12.1*rpm2RadSec # Rated rotor speed (rad/s) + # self.RRspeed = 7.5*rpm2RadSec # Rated rotor speed (rad/s) self.v_min = 4. # Cut-in wind speed (m/s) (JUST ASSUME FOR NOW) self.v_rated = None # Rated wind speed (m/s) self.v_max = 25. # Cut-out wind speed (m/s), -- Does not need to be exact (JUST ASSUME FOR NOW) - # self.GenEff = None - # self.RatedPower = 15000000 self.RatedPower = 5000000 + # self.RatedPower = 15000000 # Pitch controller self.PC_MaxPit = 1.5707 # Maximum pitch angle (rad) @@ -126,9 +121,9 @@ def load_from_fast(self, FAST_InputFile,FAST_directory,drivetrain_inertia, FAST_ self.rho = fast.fst_vt['AeroDyn15']['AirDens'] self.mu = fast.fst_vt['AeroDyn15']['KinVisc'] self.Ng = fast.fst_vt['ElastoDyn']['GBRatio'] - self.GenEff = fast.fst_vt['ElastoDyn']['GBoxEff'] + self.GenEff = fast.fst_vt['ServoDyn']['GenEff'] self.DTTorSpr = fast.fst_vt['ElastoDyn']['DTTorSpr'] - self.RatedTorque = self.RatedPower/(self.RRspeed*self.Ng) + self.RatedTorque = self.RatedPower/(self.GenEff/100*self.RRspeed*self.Ng) # Some additional parameters to save @@ -196,17 +191,17 @@ def load_from_ccblade(self,fast): print('CCBlade run succesfully') # Generate the look-up tables # Mesh the grid and flatten the arrays - fixed_rpm = 10 # RPM + fixed_rpm = self.RRspeed*RadSec2rpm # RPM TSR_initial = np.arange(0.5,15,0.5) pitch_initial = np.arange(-1,25,0.5) pitch_initial_rad = pitch_initial * deg2rad - ws_array = (fixed_rpm * (np.pi / 30.) * self.TipRad) / TSR_initial + ws_array = (fixed_rpm * rpm2RadSec * self.TipRad) / TSR_initial ws_mesh, pitch_mesh = np.meshgrid(ws_array, pitch_initial) ws_flat = ws_mesh.flatten() pitch_flat = pitch_mesh.flatten() omega_flat = np.ones_like(pitch_flat) * fixed_rpm - tsr_flat = (fixed_rpm * (np.pi / 30.) * self.TipRad) / ws_flat + tsr_flat = (fixed_rpm * rpm2RadSec * self.TipRad) / ws_flat # Get values from cc-blade print('Running cc_rotor aerodynamic analysis, this may take a second...') diff --git a/examples/DISCON.IN b/examples/DISCON.IN index 6093abeac..2026db1bb 100644 --- a/examples/DISCON.IN +++ b/examples/DISCON.IN @@ -1,5 +1,5 @@ ! Controller parameter input file for the 5MW_Land wind turbine -! - File written using NREL Baseline Controller tuning logic on 09/26/19 +! - File written using NREL Baseline Controller tuning logic on 10/02/19 !------- DEBUG ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file @@ -12,11 +12,11 @@ 1 ! PC_ControlMode - Blade pitch control mode {0: No pitch, fix to fine pitch, 1: active PI blade pitch control} 0 ! Y_ControlMode - Yaw control mode {0: no yaw control, 1: yaw rate control, 2: yaw-by-IPC} 1 ! SS_Mode - Setpoint Smoother mode {0: no setpoint smoothing, 1: introduce setpoint smoothing} -2 ! WE_Mode - Wind speed estimator mode {0: One-second low pass filtered hub height wind speed, 1: Imersion and Invariance Estimator (Ortega et al.)} +0 ! WE_Mode - Wind speed estimator mode {0: One-second low pass filtered hub height wind speed, 1: Imersion and Invariance Estimator (Ortega et al.)} 1 ! PS_Mode - Peak shaving mode {0: no peak shaving, 1: implement peak shaving} !------- FILTERS ---------------------------------------------------------- -1.570796326 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] +4.630253480546613 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] 0 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2] 0 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] 0 0 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] @@ -30,10 +30,10 @@ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.5707 ! PC_MaxPit - Maximum physical pitch limit, [rad]. --0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. +-0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. 0.13962 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. -0.13962 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. -122.90957 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +122.90957658394467 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. 0.0 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] 0.003490658 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] 0 ! Z_EnableSine - Enable/disable sine pitch excitation, used to validate for dynamic induction control, will be removed later, [-] @@ -41,63 +41,63 @@ 0 ! Z_PitchFrequency - Frequency of sine pitch excitation, [rad/s] !------- INDIVIDUAL PITCH CONTROL ----------------------------------------- -0.087266 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] -1E-8 0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] -0.436332313 0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. -2.5 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] +0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] !------- VS TORQUE CONTROL ------------------------------------------------ -0.944 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] -43093.55 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +100.0 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] +40680.312624664395 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] 150000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. -48000.00 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +44748.34388713084 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. 0.0 ! VS_MinTq - Minimum generator (HSS side), [Nm]. -91.2109 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] -2.33228 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] -5.0E+06 ! VS_RtPwr - Wind turbine rated power [W] -43093.55 ! VS_RtTq - Rated torque, [Nm]. -120.113 ! VS_RefSpd - Rated generator speed [rad/s] +0.0 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] +0.0 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] +5000000 ! VS_RtPwr - Wind turbine rated power [W] +40680.312624664395 ! VS_RtTq - Rated torque, [Nm]. +122.90957658394467 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --835 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) --164 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-880.4968862680173 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-172.0461874545648 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) !------- SETPOINT SMOOTHER --------------------------------------------- 30 ! SS_VSGainBias - Variable speed torque controller gain bias, [(rad/s)/rad]. 0.001 ! SS_PCGainBias - Collective pitch controller gain bias, [(rad/s)/Nm]. !------- WIND SPEED ESTIMATOR --------------------------------------------- -63.0 ! WE_BladeRadius - Blade length [m] +63.0 ! WE_BladeRadius - Blade length [m] 4 ! WE_CP_n - Amount of parameters in the Cp array -14.571319658214513 42.809556250371465 2.456512501523107 0.003127994078720 ! WE_CP - Parameters that define the parameterized CP(lambda) function -20 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] -97 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] -4.0469564E+07 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +0.0 0.0 0.0 0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function +0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +97.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +40469564.444 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] 1.225 ! WE_RhoAir - Air density, [kg m^-3] -"../5MW_Baseline/Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) -320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios -23 ! WE_FOPoles_N - Number of first-order system poles used in EKF -3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.0203 -0.0270 -0.0338 -0.0405 -0.0473 -0.0540 -0.0608 -0.0675 -0.0743 -0.0671 -0.0939 -0.1257 -0.1601 -0.1973 -0.2364 -0.2783 -0.3223 -0.3678 -0.4153 -0.4632 -0.5122 -0.5629 -0.6194 ! WE_FOPoles - First order system poles +"Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) +320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +210 ! WE_FOPoles_N - Number of first-order system poles used in EKF + 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13. 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16. 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17. 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18. 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21. 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22. 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23. 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24. 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.02665071 -0.02731698 -0.02798324 -0.02864951 -0.02931578 -0.02998205 -0.03064832 -0.03131458 -0.03198085 -0.03264712 -0.03331339 -0.03397965 -0.03464592 -0.03531219 -0.03597846 -0.03664473 -0.03731099 -0.03797726 -0.03864353 -0.0393098 -0.03997606 -0.04064233 -0.0413086 -0.04197487 -0.04264113 -0.0433074 -0.04397367 -0.04463994 -0.04530621 -0.04597247 -0.04663874 -0.04730501 -0.04797128 -0.04863754 -0.04930381 -0.04997008 -0.05063635 -0.05130262 -0.05196888 -0.05263515 -0.05330142 -0.05396769 -0.05463395 -0.05530022 -0.05596649 -0.05663276 -0.05729903 -0.05796529 -0.05863156 -0.05929783 -0.0599641 -0.06063036 -0.06129663 -0.0619629 -0.06262917 -0.06329543 -0.0639617 -0.06462797 -0.06529424 -0.06596051 -0.06662677 -0.06729304 -0.06795931 -0.06862558 -0.06929184 -0.06995811 -0.07062438 -0.07129065 -0.07195692 -0.07262318 -0.07328945 -0.07395572 -0.07462199 -0.07528825 -0.06255511 -0.0590773 -0.05859702 -0.059213 -0.06046682 -0.06210984 -0.0640096 -0.06610529 -0.0683423 -0.070758 -0.07323646 -0.07579478 -0.07844852 -0.08117774 -0.08390076 -0.0867106 -0.08960184 -0.09248232 -0.09541253 -0.098372 -0.10140157 -0.10441711 -0.10750085 -0.11060438 -0.11367099 -0.11685112 -0.12002054 -0.12321879 -0.12640235 -0.12966799 -0.132903 -0.13621668 -0.1395384 -0.14281439 -0.14622953 -0.14958941 -0.15298377 -0.15638507 -0.15988069 -0.16329676 -0.16679199 -0.17037944 -0.17386309 -0.17745208 -0.18104322 -0.18466857 -0.18833013 -0.19198735 -0.19568612 -0.19938387 -0.20312384 -0.20690115 -0.21071128 -0.21450157 -0.21833127 -0.2222106 -0.22609574 -0.23000997 -0.23388144 -0.23778483 -0.24176819 -0.24576589 -0.24973822 -0.25381357 -0.25781468 -0.26187556 -0.26596023 -0.27007274 -0.27414513 -0.27829259 -0.28244011 -0.28663449 -0.29083777 -0.29504553 -0.29918656 -0.3034999 -0.30774012 -0.31201069 -0.31631541 -0.32066906 -0.32494706 -0.32937838 -0.33369654 -0.33813863 -0.34246103 -0.34692865 -0.35132272 -0.35584844 -0.36020693 -0.36470127 -0.36923585 -0.37376641 -0.37830693 -0.38281532 -0.38739609 -0.39195619 -0.39652309 -0.40114189 -0.40572653 -0.41034746 -0.41492639 -0.41950114 -0.42416759 -0.4288811 -0.43362846 -0.43828853 -0.44309586 -0.44791123 -0.45279619 -0.45764192 -0.46246564 -0.46734167 -0.47229982 -0.47714309 -0.48207132 -0.48696157 -0.49182628 -0.49668803 -0.5014653 -0.50621343 -0.51084796 -0.5155572 -0.5200901 -0.52468282 -0.52919625 -0.53370923 -0.53826826 -0.54301653 -0.54771549 -0.55247836 -0.55745576 -0.56258965 -0.5677368 -0.57324153 -0.57870428 -0.58462774 ! WE_FOPoles - First order system poles !------- YAW CONTROL ------------------------------------------------------ -1.745329252 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] -0.17453 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] +0.0 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] 1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC) --0.064 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp --0.0008 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki -0.6283185 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. -1.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. -0.00000 ! Y_MErrSet - Yaw alignment error, set point [rad] -1.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] -0.016667 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] -0.0034906 ! Y_Rate - Yaw rate [rad/s] +0.0 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp +0.0 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki +0.0 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. +0.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. +0.0 ! Y_MErrSet - Yaw alignment error, set point [rad] +0.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] +0.0 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] +0.0 ! Y_Rate - Yaw rate [rad/s] !------- TOWER FORE-AFT DAMPING ------------------------------------------- -1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag -0.1 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] -0.087266 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] +0.0 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] +0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] !------- PEAK SHAVING ------------------------------------------- -23 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) -3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] - -0.0349 -0.0349 -0.0349 -0.0349 -0.0349 -0.0349 -0.0349 -0.0114 0.0356 0.0577 0.0825 0.1058 0.1282 0.1499 0.1708 0.1913 0.2114 0.2310 0.2502 0.2690 0.2874 0.3056 0.3239 ! PS_BldPitchMin - Minimum blade pitch angles [rad] +210 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) + 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13. 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16. 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17. 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18. 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21. 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22. 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23. 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24. 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +-0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.02962541 -0.02230897 -0.01548946 -0.00915689 -0.00323985 0.00231633 0.00755924 0.01252064 0.01723337 0.02171883 0.02600713 0.03010809 0.03403543 0.03780094 0.04141197 0.0448834 0.04301121 0.04572902 0.04841563 0.05107257 0.05370175 0.05630738 0.05888727 0.06144604 0.06398009 0.06649806 0.06899513 0.07147461 0.07393783 0.0763848 0.07881322 0.08122765 0.08363032 0.08601684 0.0883911 0.09075519 0.09310191 0.09543925 0.09776725 0.10008031 0.1023843 0.10467939 0.10696282 0.10923552 0.11150342 0.11375564 0.11600427 0.118243 0.12047296 0.12269376 0.12490488 0.12711415 0.12931036 0.13150096 0.13368154 0.13585982 0.13803009 0.14018961 0.14234359 0.14449503 0.14663648 0.14877236 0.15089947 0.15302471 0.155141 0.15725402 0.15935959 0.16145813 0.16355132 0.16563963 0.16772494 0.1698033 0.17187555 0.17394191 0.17600722 0.17806499 0.18011745 0.18216164 0.18420446 0.18624091 0.18827655 0.19030833 0.19233052 0.19434885 0.19636357 0.19837593 0.20037883 0.20238383 0.20438058 0.20637502 0.20836358 0.21034732 0.21232885 0.21430571 0.21627763 0.21824694 0.22021326 0.22217222 0.22412743 0.22608217 0.22803347 0.22998291 0.23192295 0.23385759 0.23579759 0.23772869 0.23965799 0.24157841 0.24349944 0.24541689 0.24733152 0.24924241 0.25115108 0.25305646 0.25495687 0.25685379 0.25874221 0.26063593 0.26252242 0.26440664 0.26628698 0.26816398 0.27004031 0.27191147 0.27377527 0.27564404 0.27750921 0.27935984 0.28121741 0.28306997 0.2849209 0.28676631 0.28860828 0.29045122 0.29229007 0.29412417 0.29595331 0.29778415 0.29960719 0.30142759 0.30324755 0.30506054 0.30687771 0.30869136 0.31049896 0.31230004 0.31410149 0.3159051 0.3177027 0.31949741 0.32128578 0.32306955 ! PS_BldPitchMin - Minimum blade pitch angles [rad] diff --git a/examples/DISCON_TEST.IN b/examples/DISCON_TEST.IN index 99dee3c36..ef7726c15 100644 --- a/examples/DISCON_TEST.IN +++ b/examples/DISCON_TEST.IN @@ -1,5 +1,5 @@ ! Controller parameter input file for the 5MW_Land wind turbine -! - File written using NREL Baseline Controller tuning logic on 10/01/19 +! - File written using NREL Baseline Controller tuning logic on 10/07/19 !------- DEBUG ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file @@ -16,24 +16,24 @@ 1 ! PS_Mode - Peak shaving mode {0: no peak shaving, 1: implement peak shaving} !------- FILTERS ---------------------------------------------------------- -1.570796326 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] +1.543417826848871 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] 0 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2] 0 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] 0 0 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] 0.5 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [Hz]. !------- BLADE PITCH CONTROL ---------------------------------------------- -136 ! PC_GS_n - Amount of gain-scheduling table entries -0. 0.01843267 0.03012466 0.03938211 0.0473159 0.05438725 0.0608399 0.06682165 0.07243603 0.07774601 0.08280179 0.08764533 0.0922973 0.09678511 0.10113084 0.10534505 0.10944741 0.11344459 0.11734245 0.12115249 0.12488383 0.12853954 0.13212927 0.13565125 0.13911823 0.1425236 0.14587973 0.1491875 0.15244657 0.15566288 0.15883986 0.16197375 0.16506986 0.16813214 0.17115907 0.17415428 0.17711497 0.18004808 0.18295399 0.1858281 0.1886768 0.19150248 0.19430239 0.19707534 0.19983015 0.2025582 0.20526628 0.20795513 0.21062023 0.21326861 0.2158935 0.21850484 0.2210941 0.22366803 0.22622254 0.22876498 0.2312836 0.23379345 0.23628255 0.23875941 0.24122279 0.24366729 0.24610036 0.24852176 0.25092855 0.25332325 0.2557023 0.25807209 0.26042559 0.26276748 0.26510036 0.26742092 0.26973036 0.27202782 0.27431492 0.27658881 0.27885401 0.28110964 0.28336045 0.2855962 0.28782076 0.29003745 0.29224346 0.29444004 0.29663204 0.2988061 0.30097858 0.30314198 0.30529447 0.30743825 0.30958 0.31170708 0.31382687 0.31593631 0.3180419 0.32013786 0.32222978 0.32431029 0.32638663 0.32845309 0.33051357 0.33256802 0.33461455 0.33665611 0.33868284 0.34071023 0.34272963 0.34474196 0.34674528 0.34875073 0.35074041 0.35272695 0.35470654 0.35668277 0.35864961 0.36061312 0.36256798 0.36452117 0.36646633 0.36840178 0.37033735 0.3722649 0.37418622 0.37609996 0.37801477 0.37991806 0.38181864 0.38371323 0.38560453 0.38749153 0.38937202 0.39124103 0.39310673 0.39497577 0.39683082 0.39868511 ! PC_GS_angles - Gain-schedule table: pitch angles --0.02019147 -0.01950333 -0.01885443 -0.0182415 -0.01766165 -0.01711225 -0.01659098 -0.01609573 -0.01562459 -0.01517585 -0.01474794 -0.01433946 -0.0139491 -0.01357569 -0.01321814 -0.01287547 -0.01254676 -0.01223119 -0.01192797 -0.0116364 -0.01135581 -0.01108561 -0.01082521 -0.01057411 -0.0103318 -0.01009784 -0.00987181 -0.00965329 -0.00944194 -0.00923739 -0.00903933 -0.00884745 -0.00866147 -0.00848112 -0.00830614 -0.00813631 -0.0079714 -0.00781119 -0.00765549 -0.00750411 -0.00735688 -0.00721362 -0.00707417 -0.0069384 -0.00680614 -0.00667728 -0.00655167 -0.0064292 -0.00630975 -0.00619322 -0.00607949 -0.00596846 -0.00586005 -0.00575415 -0.00565069 -0.00554957 -0.00545073 -0.00535408 -0.00525955 -0.00516708 -0.00507659 -0.00498803 -0.00490133 -0.00481644 -0.00473329 -0.00465184 -0.00457204 -0.00449383 -0.00441716 -0.004342 -0.0042683 -0.00419602 -0.00412511 -0.00405553 -0.00398726 -0.00392025 -0.00385447 -0.00378988 -0.00372646 -0.00366417 -0.00360298 -0.00354286 -0.00348379 -0.00342574 -0.00336868 -0.00331258 -0.00325743 -0.00320319 -0.00314985 -0.00309739 -0.00304578 -0.002995 -0.00294503 -0.00289585 -0.00284745 -0.00279981 -0.0027529 -0.00270671 -0.00266123 -0.00261644 -0.00257232 -0.00252886 -0.00248604 -0.00244385 -0.00240228 -0.00236131 -0.00232093 -0.00228112 -0.00224188 -0.0022032 -0.00216505 -0.00212743 -0.00209033 -0.00205374 -0.00201765 -0.00198204 -0.00194691 -0.00191225 -0.00187805 -0.0018443 -0.00181099 -0.00177811 -0.00174566 -0.00171362 -0.00168199 -0.00165076 -0.00161992 -0.00158947 -0.00155939 -0.00152969 -0.00150035 -0.00147137 -0.00144274 -0.00141446 -0.00138651 -0.0013589 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains --0.00882307 -0.00856411 -0.00831992 -0.00808927 -0.00787106 -0.00766432 -0.00746816 -0.00728178 -0.00710449 -0.00693562 -0.0067746 -0.00662088 -0.00647398 -0.00633346 -0.00619891 -0.00606996 -0.00594626 -0.00582751 -0.0057134 -0.00560368 -0.00549809 -0.00539641 -0.00529842 -0.00520393 -0.00511274 -0.0050247 -0.00493964 -0.00485741 -0.00477787 -0.0047009 -0.00462637 -0.00455416 -0.00448417 -0.0044163 -0.00435046 -0.00428655 -0.00422449 -0.0041642 -0.00410561 -0.00404864 -0.00399324 -0.00393933 -0.00388685 -0.00383576 -0.00378599 -0.00373749 -0.00369023 -0.00364414 -0.00359919 -0.00355534 -0.00351254 -0.00347076 -0.00342996 -0.00339011 -0.00335117 -0.00331312 -0.00327593 -0.00323956 -0.00320399 -0.00316919 -0.00313514 -0.00310181 -0.00306918 -0.00303724 -0.00300595 -0.0029753 -0.00294526 -0.00291583 -0.00288698 -0.0028587 -0.00283096 -0.00280376 -0.00277708 -0.0027509 -0.0027252 -0.00269999 -0.00267523 -0.00265093 -0.00262706 -0.00260362 -0.00258059 -0.00255797 -0.00253574 -0.0025139 -0.00249242 -0.00247131 -0.00245056 -0.00243015 -0.00241008 -0.00239033 -0.00237091 -0.0023518 -0.002333 -0.00231449 -0.00229628 -0.00227835 -0.0022607 -0.00224332 -0.0022262 -0.00220935 -0.00219274 -0.00217639 -0.00216028 -0.0021444 -0.00212876 -0.00211334 -0.00209814 -0.00208316 -0.0020684 -0.00205384 -0.00203948 -0.00202533 -0.00201136 -0.00199759 -0.00198401 -0.00197061 -0.00195739 -0.00194435 -0.00193148 -0.00191878 -0.00190624 -0.00189387 -0.00188166 -0.0018696 -0.0018577 -0.00184595 -0.00183434 -0.00182288 -0.00181157 -0.00180039 -0.00178935 -0.00177844 -0.00176767 -0.00175702 -0.00174651 -0.00173612 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +27 ! PC_GS_n - Amount of gain-scheduling table entries +0.05852874 0.08586931 0.10789716 0.1271165 0.14453395 0.16067791 0.17585826 0.19027256 0.20405942 0.21730904 0.23010311 0.24249689 0.2545414 0.26626371 0.27770397 0.28889173 0.29983774 0.31057221 0.32109644 0.33144053 0.34160524 0.35160739 0.36145513 0.37115299 0.38071093 0.3901412 0.39943831 ! PC_GS_angles - Gain-schedule table: pitch angles +-0.01603382 -0.01396602 -0.01229584 -0.01091865 -0.00976358 -0.00878088 -0.00793467 -0.00719835 -0.00655181 -0.00597959 -0.00546956 -0.00501211 -0.00459951 -0.00422546 -0.00388481 -0.00357328 -0.00328728 -0.0030238 -0.00278028 -0.00255453 -0.00234468 -0.00214911 -0.0019664 -0.00179533 -0.00163481 -0.00148391 -0.00134179 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains +-0.00715561 -0.00639445 -0.00577965 -0.00527271 -0.00484752 -0.00448579 -0.0041743 -0.00390326 -0.00366527 -0.00345463 -0.00326689 -0.0030985 -0.00294662 -0.00280893 -0.00268354 -0.00256886 -0.00246359 -0.0023666 -0.00227696 -0.00219386 -0.00211661 -0.00204462 -0.00197737 -0.0019144 -0.00185531 -0.00179976 -0.00174745 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.5707 ! PC_MaxPit - Maximum physical pitch limit, [rad]. --0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. +-0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. 0.13962 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. -0.13962 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. -122.90957 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +122.90957658394467 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. 0.0 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] 0.003490658 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] 0 ! Z_EnableSine - Enable/disable sine pitch excitation, used to validate for dynamic induction control, will be removed later, [-] @@ -41,63 +41,64 @@ 0 ! Z_PitchFrequency - Frequency of sine pitch excitation, [rad/s] !------- INDIVIDUAL PITCH CONTROL ----------------------------------------- -0.087266 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] -1E-8 0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] -0.436332313 0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. -2.5 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] +0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] !------- VS TORQUE CONTROL ------------------------------------------------ -0.944 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] -43093.55 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] -150000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. -48000.00 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +94.4 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] +43093.55150917838 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +1500000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +47402.906660096225 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. 0.0 ! VS_MinTq - Minimum generator (HSS side), [Nm]. -91.2109 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] -2.33228 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] -5.0E+06 ! VS_RtPwr - Wind turbine rated power [W] -43093.55 ! VS_RtTq - Rated torque, [Nm]. -120.113 ! VS_RefSpd - Rated generator speed [rad/s] +0.0 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] +0.0 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] +5000000 ! VS_RtPwr - Wind turbine rated power [W] +43093.55150917838 ! VS_RtTq - Rated torque, [Nm]. +122.90957658394467 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --835 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) --164 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-889.094048017944 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-172.0461874545648 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +7.4 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad]. !------- SETPOINT SMOOTHER --------------------------------------------- 30 ! SS_VSGainBias - Variable speed torque controller gain bias, [(rad/s)/rad]. 0.001 ! SS_PCGainBias - Collective pitch controller gain bias, [(rad/s)/Nm]. !------- WIND SPEED ESTIMATOR --------------------------------------------- -63.0 ! WE_BladeRadius - Blade length [m] +63.0 ! WE_BladeRadius - Blade length [m] 4 ! WE_CP_n - Amount of parameters in the Cp array -14.571319658214513 42.809556250371465 2.456512501523107 0.003127994078720 ! WE_CP - Parameters that define the parameterized CP(lambda) function -20 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] -97 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] -4.0469564E+07 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +0.0 0.0 0.0 0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function +0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +97.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +40469564.444 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] 1.225 ! WE_RhoAir - Air density, [kg m^-3] "../5MW_Baseline/Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) -320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios -23 ! WE_FOPoles_N - Number of first-order system poles used in EKF -3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.0203 -0.0270 -0.0338 -0.0405 -0.0473 -0.0540 -0.0608 -0.0675 -0.0743 -0.0671 -0.0939 -0.1257 -0.1601 -0.1973 -0.2364 -0.2783 -0.3223 -0.3678 -0.4153 -0.4632 -0.5122 -0.5629 -0.6194 ! WE_FOPoles - First order system poles +320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +42 ! WE_FOPoles_N - Number of first-order system poles used in EKF + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.02665071 -0.02998205 -0.03331339 -0.03664473 -0.03997606 -0.0433074 -0.04663874 -0.04997008 -0.05330142 -0.05663276 -0.0599641 -0.06329543 -0.06662677 -0.06995811 -0.07328945 -0.06321278 -0.07469151 -0.08828579 -0.10297822 -0.11842623 -0.13448765 -0.15120764 -0.168455 -0.18635293 -0.20483641 -0.22395323 -0.24348262 -0.26365771 -0.2842596 -0.30535287 -0.32683352 -0.3487705 -0.37113879 -0.39376001 -0.41675049 -0.44017539 -0.46432564 -0.4888057 -0.51273708 -0.53554138 -0.55932133 -0.58645605 ! WE_FOPoles - First order system poles !------- YAW CONTROL ------------------------------------------------------ -1.745329252 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] -0.17453 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] +0.0 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] 1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC) --0.064 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp --0.0008 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki -0.6283185 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. -1.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. -0.00000 ! Y_MErrSet - Yaw alignment error, set point [rad] -1.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] -0.016667 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] -0.0034906 ! Y_Rate - Yaw rate [rad/s] +0.0 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp +0.0 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki +0.0 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. +0.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. +0.0 ! Y_MErrSet - Yaw alignment error, set point [rad] +0.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] +0.0 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] +0.0 ! Y_Rate - Yaw rate [rad/s] !------- TOWER FORE-AFT DAMPING ------------------------------------------- -1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag -0.1 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] -0.087266 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] +0.0 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] +0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] !------- PEAK SHAVING ------------------------------------------- -210 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) - 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13. 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16. 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17. 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18. 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21. 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22. 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23. 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24. 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] --0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.02962541 -0.02230897 -0.01548946 -0.00915689 -0.00323985 0.00231633 0.00755924 0.01252064 0.01723337 0.02171883 0.02600713 0.03010809 0.03403543 0.03780094 0.04141197 0.0448834 0.04301121 0.04572902 0.04841563 0.05107257 0.05370175 0.05630738 0.05888727 0.06144604 0.06398009 0.06649806 0.06899513 0.07147461 0.07393783 0.0763848 0.07881322 0.08122765 0.08363032 0.08601684 0.0883911 0.09075519 0.09310191 0.09543925 0.09776725 0.10008031 0.1023843 0.10467939 0.10696282 0.10923552 0.11150342 0.11375564 0.11600427 0.118243 0.12047296 0.12269376 0.12490488 0.12711415 0.12931036 0.13150096 0.13368154 0.13585982 0.13803009 0.14018961 0.14234359 0.14449503 0.14663648 0.14877236 0.15089947 0.15302471 0.155141 0.15725402 0.15935959 0.16145813 0.16355132 0.16563963 0.16772494 0.1698033 0.17187555 0.17394191 0.17600722 0.17806499 0.18011745 0.18216164 0.18420446 0.18624091 0.18827655 0.19030833 0.19233052 0.19434885 0.19636357 0.19837593 0.20037883 0.20238383 0.20438058 0.20637502 0.20836358 0.21034732 0.21232885 0.21430571 0.21627763 0.21824694 0.22021326 0.22217222 0.22412743 0.22608217 0.22803347 0.22998291 0.23192295 0.23385759 0.23579759 0.23772869 0.23965799 0.24157841 0.24349944 0.24541689 0.24733152 0.24924241 0.25115108 0.25305646 0.25495687 0.25685379 0.25874221 0.26063593 0.26252242 0.26440664 0.26628698 0.26816398 0.27004031 0.27191147 0.27377527 0.27564404 0.27750921 0.27935984 0.28121741 0.28306997 0.2849209 0.28676631 0.28860828 0.29045122 0.29229007 0.29412417 0.29595331 0.29778415 0.29960719 0.30142759 0.30324755 0.30506054 0.30687771 0.30869136 0.31049896 0.31230004 0.31410149 0.3159051 0.3177027 0.31949741 0.32128578 0.32306955 ! PS_BldPitchMin - Minimum blade pitch angles [rad] +42 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +-0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03275873 0.00083377 0.02543348 0.0448834 0.0667768 0.07915202 0.09113854 0.10280435 0.11420819 0.12538567 0.13636556 0.14716567 0.15780447 0.1683014 0.178663 0.18889865 0.19901765 0.20902392 0.21892797 0.22873221 0.23844548 0.24806675 0.25759734 0.26705022 0.27641741 0.2857055 0.29491896 0.3040543 0.31311378 0.32210299 0.33103247 ! PS_BldPitchMin - Minimum blade pitch angles [rad] diff --git a/examples/Example_07.py b/examples/Example_07.py index e346543e7..8319260c4 100644 --- a/examples/Example_07.py +++ b/examples/Example_07.py @@ -1,7 +1,7 @@ # Example_07 # Load gain schedules, write_paramter input file, plot gains - +#%% import numpy as np from scipy import interpolate @@ -47,4 +47,4 @@ pl.ylabel('Integral Gain') pl.show() -#%% + diff --git a/examples/Run_TestCases.py b/examples/Run_TestCases.py index 959ce7e11..d8f459ff0 100644 --- a/examples/Run_TestCases.py +++ b/examples/Run_TestCases.py @@ -10,21 +10,21 @@ # define folder names in Test_Cases to run testcases = [ - '5MW_Step_Legacy', # Below Rated - '5MW_Step_Baseline', - '5MW_BR_Legacy', # Below Rated + # '5MW_Step_Legacy', # Below Rated + # '5MW_Step_Baseline', + # '5MW_BR_Legacy', # Below Rated '5MW_BR_Baseline', - '5MW_NR_Legacy', # Near Rated + # '5MW_NR_Legacy', # Near Rated '5MW_NR_Baseline', - '5MW_AR_Legacy', # Above Rated + # '5MW_AR_Legacy', # Above Rated '5MW_AR_Baseline', - '5MW_OC4_ARsteady_Legacy', # OC4 Hywind + # '5MW_OC4_ARsteady_Legacy', # OC4 Hywind '5MW_OC4_ARsteady_Baseline', # OC4 Hywind - '5MW_OC4_NR_Legacy', # OC4 Hywind + # '5MW_OC4_NR_Legacy', # OC4 Hywind '5MW_OC4_NR_Baseline', # OC4 Hywind - '5MW_OC4_AR_Legacy', # OC4 Hywind + # '5MW_OC4_AR_Legacy', # OC4 Hywind '5MW_OC4_AR_Baseline', # OC4 Hywind - '5MW_OC4_MH_Legacy', # OC4 Hywind + # '5MW_OC4_MH_Legacy', # OC4 Hywind '5MW_OC4_MH_Baseline', # OC4 Hywind ] From 6accfe5c47d3698647e01232a81e728ae374e556 Mon Sep 17 00:00:00 2001 From: Nikhar Abbas Date: Tue, 8 Oct 2019 00:50:31 -0600 Subject: [PATCH 09/10] Update Test Case I/O --- Test_Cases/5MW_AR_Baseline/DISCON.IN | 99 ++++++++++--------- Test_Cases/5MW_BR_Baseline/DISCON.IN | 99 ++++++++++--------- Test_Cases/5MW_Baseline/DISCON.IN | 99 ++++++++++--------- Test_Cases/5MW_NR_Baseline/DISCON.IN | 99 ++++++++++--------- Test_Cases/5MW_OC4_AR_Baseline/DISCON.IN | 99 ++++++++++--------- .../5MW_OC4_ARsteady_Baseline/DISCON.IN | 99 ++++++++++--------- ...shrBsline5MW_OC4DeepCwindSemi_ServoDyn.dat | 2 +- Test_Cases/5MW_OC4_MH_Baseline/DISCON.IN | 99 ++++++++++--------- ...shrBsline5MW_OC4DeepCwindSemi_ServoDyn.dat | 2 +- Test_Cases/5MW_OC4_NR_Baseline/DISCON.IN | 99 ++++++++++--------- ...shrBsline5MW_OC4DeepCwindSemi_ServoDyn.dat | 2 +- Test_Cases/5MW_Step_Baseline/DISCON.IN | 99 ++++++++++--------- 12 files changed, 453 insertions(+), 444 deletions(-) diff --git a/Test_Cases/5MW_AR_Baseline/DISCON.IN b/Test_Cases/5MW_AR_Baseline/DISCON.IN index 99dee3c36..ef7726c15 100644 --- a/Test_Cases/5MW_AR_Baseline/DISCON.IN +++ b/Test_Cases/5MW_AR_Baseline/DISCON.IN @@ -1,5 +1,5 @@ ! Controller parameter input file for the 5MW_Land wind turbine -! - File written using NREL Baseline Controller tuning logic on 10/01/19 +! - File written using NREL Baseline Controller tuning logic on 10/07/19 !------- DEBUG ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file @@ -16,24 +16,24 @@ 1 ! PS_Mode - Peak shaving mode {0: no peak shaving, 1: implement peak shaving} !------- FILTERS ---------------------------------------------------------- -1.570796326 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] +1.543417826848871 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] 0 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2] 0 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] 0 0 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] 0.5 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [Hz]. !------- BLADE PITCH CONTROL ---------------------------------------------- -136 ! PC_GS_n - Amount of gain-scheduling table entries -0. 0.01843267 0.03012466 0.03938211 0.0473159 0.05438725 0.0608399 0.06682165 0.07243603 0.07774601 0.08280179 0.08764533 0.0922973 0.09678511 0.10113084 0.10534505 0.10944741 0.11344459 0.11734245 0.12115249 0.12488383 0.12853954 0.13212927 0.13565125 0.13911823 0.1425236 0.14587973 0.1491875 0.15244657 0.15566288 0.15883986 0.16197375 0.16506986 0.16813214 0.17115907 0.17415428 0.17711497 0.18004808 0.18295399 0.1858281 0.1886768 0.19150248 0.19430239 0.19707534 0.19983015 0.2025582 0.20526628 0.20795513 0.21062023 0.21326861 0.2158935 0.21850484 0.2210941 0.22366803 0.22622254 0.22876498 0.2312836 0.23379345 0.23628255 0.23875941 0.24122279 0.24366729 0.24610036 0.24852176 0.25092855 0.25332325 0.2557023 0.25807209 0.26042559 0.26276748 0.26510036 0.26742092 0.26973036 0.27202782 0.27431492 0.27658881 0.27885401 0.28110964 0.28336045 0.2855962 0.28782076 0.29003745 0.29224346 0.29444004 0.29663204 0.2988061 0.30097858 0.30314198 0.30529447 0.30743825 0.30958 0.31170708 0.31382687 0.31593631 0.3180419 0.32013786 0.32222978 0.32431029 0.32638663 0.32845309 0.33051357 0.33256802 0.33461455 0.33665611 0.33868284 0.34071023 0.34272963 0.34474196 0.34674528 0.34875073 0.35074041 0.35272695 0.35470654 0.35668277 0.35864961 0.36061312 0.36256798 0.36452117 0.36646633 0.36840178 0.37033735 0.3722649 0.37418622 0.37609996 0.37801477 0.37991806 0.38181864 0.38371323 0.38560453 0.38749153 0.38937202 0.39124103 0.39310673 0.39497577 0.39683082 0.39868511 ! PC_GS_angles - Gain-schedule table: pitch angles --0.02019147 -0.01950333 -0.01885443 -0.0182415 -0.01766165 -0.01711225 -0.01659098 -0.01609573 -0.01562459 -0.01517585 -0.01474794 -0.01433946 -0.0139491 -0.01357569 -0.01321814 -0.01287547 -0.01254676 -0.01223119 -0.01192797 -0.0116364 -0.01135581 -0.01108561 -0.01082521 -0.01057411 -0.0103318 -0.01009784 -0.00987181 -0.00965329 -0.00944194 -0.00923739 -0.00903933 -0.00884745 -0.00866147 -0.00848112 -0.00830614 -0.00813631 -0.0079714 -0.00781119 -0.00765549 -0.00750411 -0.00735688 -0.00721362 -0.00707417 -0.0069384 -0.00680614 -0.00667728 -0.00655167 -0.0064292 -0.00630975 -0.00619322 -0.00607949 -0.00596846 -0.00586005 -0.00575415 -0.00565069 -0.00554957 -0.00545073 -0.00535408 -0.00525955 -0.00516708 -0.00507659 -0.00498803 -0.00490133 -0.00481644 -0.00473329 -0.00465184 -0.00457204 -0.00449383 -0.00441716 -0.004342 -0.0042683 -0.00419602 -0.00412511 -0.00405553 -0.00398726 -0.00392025 -0.00385447 -0.00378988 -0.00372646 -0.00366417 -0.00360298 -0.00354286 -0.00348379 -0.00342574 -0.00336868 -0.00331258 -0.00325743 -0.00320319 -0.00314985 -0.00309739 -0.00304578 -0.002995 -0.00294503 -0.00289585 -0.00284745 -0.00279981 -0.0027529 -0.00270671 -0.00266123 -0.00261644 -0.00257232 -0.00252886 -0.00248604 -0.00244385 -0.00240228 -0.00236131 -0.00232093 -0.00228112 -0.00224188 -0.0022032 -0.00216505 -0.00212743 -0.00209033 -0.00205374 -0.00201765 -0.00198204 -0.00194691 -0.00191225 -0.00187805 -0.0018443 -0.00181099 -0.00177811 -0.00174566 -0.00171362 -0.00168199 -0.00165076 -0.00161992 -0.00158947 -0.00155939 -0.00152969 -0.00150035 -0.00147137 -0.00144274 -0.00141446 -0.00138651 -0.0013589 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains --0.00882307 -0.00856411 -0.00831992 -0.00808927 -0.00787106 -0.00766432 -0.00746816 -0.00728178 -0.00710449 -0.00693562 -0.0067746 -0.00662088 -0.00647398 -0.00633346 -0.00619891 -0.00606996 -0.00594626 -0.00582751 -0.0057134 -0.00560368 -0.00549809 -0.00539641 -0.00529842 -0.00520393 -0.00511274 -0.0050247 -0.00493964 -0.00485741 -0.00477787 -0.0047009 -0.00462637 -0.00455416 -0.00448417 -0.0044163 -0.00435046 -0.00428655 -0.00422449 -0.0041642 -0.00410561 -0.00404864 -0.00399324 -0.00393933 -0.00388685 -0.00383576 -0.00378599 -0.00373749 -0.00369023 -0.00364414 -0.00359919 -0.00355534 -0.00351254 -0.00347076 -0.00342996 -0.00339011 -0.00335117 -0.00331312 -0.00327593 -0.00323956 -0.00320399 -0.00316919 -0.00313514 -0.00310181 -0.00306918 -0.00303724 -0.00300595 -0.0029753 -0.00294526 -0.00291583 -0.00288698 -0.0028587 -0.00283096 -0.00280376 -0.00277708 -0.0027509 -0.0027252 -0.00269999 -0.00267523 -0.00265093 -0.00262706 -0.00260362 -0.00258059 -0.00255797 -0.00253574 -0.0025139 -0.00249242 -0.00247131 -0.00245056 -0.00243015 -0.00241008 -0.00239033 -0.00237091 -0.0023518 -0.002333 -0.00231449 -0.00229628 -0.00227835 -0.0022607 -0.00224332 -0.0022262 -0.00220935 -0.00219274 -0.00217639 -0.00216028 -0.0021444 -0.00212876 -0.00211334 -0.00209814 -0.00208316 -0.0020684 -0.00205384 -0.00203948 -0.00202533 -0.00201136 -0.00199759 -0.00198401 -0.00197061 -0.00195739 -0.00194435 -0.00193148 -0.00191878 -0.00190624 -0.00189387 -0.00188166 -0.0018696 -0.0018577 -0.00184595 -0.00183434 -0.00182288 -0.00181157 -0.00180039 -0.00178935 -0.00177844 -0.00176767 -0.00175702 -0.00174651 -0.00173612 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +27 ! PC_GS_n - Amount of gain-scheduling table entries +0.05852874 0.08586931 0.10789716 0.1271165 0.14453395 0.16067791 0.17585826 0.19027256 0.20405942 0.21730904 0.23010311 0.24249689 0.2545414 0.26626371 0.27770397 0.28889173 0.29983774 0.31057221 0.32109644 0.33144053 0.34160524 0.35160739 0.36145513 0.37115299 0.38071093 0.3901412 0.39943831 ! PC_GS_angles - Gain-schedule table: pitch angles +-0.01603382 -0.01396602 -0.01229584 -0.01091865 -0.00976358 -0.00878088 -0.00793467 -0.00719835 -0.00655181 -0.00597959 -0.00546956 -0.00501211 -0.00459951 -0.00422546 -0.00388481 -0.00357328 -0.00328728 -0.0030238 -0.00278028 -0.00255453 -0.00234468 -0.00214911 -0.0019664 -0.00179533 -0.00163481 -0.00148391 -0.00134179 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains +-0.00715561 -0.00639445 -0.00577965 -0.00527271 -0.00484752 -0.00448579 -0.0041743 -0.00390326 -0.00366527 -0.00345463 -0.00326689 -0.0030985 -0.00294662 -0.00280893 -0.00268354 -0.00256886 -0.00246359 -0.0023666 -0.00227696 -0.00219386 -0.00211661 -0.00204462 -0.00197737 -0.0019144 -0.00185531 -0.00179976 -0.00174745 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.5707 ! PC_MaxPit - Maximum physical pitch limit, [rad]. --0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. +-0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. 0.13962 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. -0.13962 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. -122.90957 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +122.90957658394467 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. 0.0 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] 0.003490658 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] 0 ! Z_EnableSine - Enable/disable sine pitch excitation, used to validate for dynamic induction control, will be removed later, [-] @@ -41,63 +41,64 @@ 0 ! Z_PitchFrequency - Frequency of sine pitch excitation, [rad/s] !------- INDIVIDUAL PITCH CONTROL ----------------------------------------- -0.087266 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] -1E-8 0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] -0.436332313 0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. -2.5 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] +0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] !------- VS TORQUE CONTROL ------------------------------------------------ -0.944 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] -43093.55 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] -150000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. -48000.00 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +94.4 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] +43093.55150917838 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +1500000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +47402.906660096225 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. 0.0 ! VS_MinTq - Minimum generator (HSS side), [Nm]. -91.2109 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] -2.33228 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] -5.0E+06 ! VS_RtPwr - Wind turbine rated power [W] -43093.55 ! VS_RtTq - Rated torque, [Nm]. -120.113 ! VS_RefSpd - Rated generator speed [rad/s] +0.0 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] +0.0 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] +5000000 ! VS_RtPwr - Wind turbine rated power [W] +43093.55150917838 ! VS_RtTq - Rated torque, [Nm]. +122.90957658394467 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --835 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) --164 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-889.094048017944 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-172.0461874545648 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +7.4 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad]. !------- SETPOINT SMOOTHER --------------------------------------------- 30 ! SS_VSGainBias - Variable speed torque controller gain bias, [(rad/s)/rad]. 0.001 ! SS_PCGainBias - Collective pitch controller gain bias, [(rad/s)/Nm]. !------- WIND SPEED ESTIMATOR --------------------------------------------- -63.0 ! WE_BladeRadius - Blade length [m] +63.0 ! WE_BladeRadius - Blade length [m] 4 ! WE_CP_n - Amount of parameters in the Cp array -14.571319658214513 42.809556250371465 2.456512501523107 0.003127994078720 ! WE_CP - Parameters that define the parameterized CP(lambda) function -20 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] -97 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] -4.0469564E+07 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +0.0 0.0 0.0 0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function +0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +97.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +40469564.444 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] 1.225 ! WE_RhoAir - Air density, [kg m^-3] "../5MW_Baseline/Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) -320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios -23 ! WE_FOPoles_N - Number of first-order system poles used in EKF -3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.0203 -0.0270 -0.0338 -0.0405 -0.0473 -0.0540 -0.0608 -0.0675 -0.0743 -0.0671 -0.0939 -0.1257 -0.1601 -0.1973 -0.2364 -0.2783 -0.3223 -0.3678 -0.4153 -0.4632 -0.5122 -0.5629 -0.6194 ! WE_FOPoles - First order system poles +320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +42 ! WE_FOPoles_N - Number of first-order system poles used in EKF + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.02665071 -0.02998205 -0.03331339 -0.03664473 -0.03997606 -0.0433074 -0.04663874 -0.04997008 -0.05330142 -0.05663276 -0.0599641 -0.06329543 -0.06662677 -0.06995811 -0.07328945 -0.06321278 -0.07469151 -0.08828579 -0.10297822 -0.11842623 -0.13448765 -0.15120764 -0.168455 -0.18635293 -0.20483641 -0.22395323 -0.24348262 -0.26365771 -0.2842596 -0.30535287 -0.32683352 -0.3487705 -0.37113879 -0.39376001 -0.41675049 -0.44017539 -0.46432564 -0.4888057 -0.51273708 -0.53554138 -0.55932133 -0.58645605 ! WE_FOPoles - First order system poles !------- YAW CONTROL ------------------------------------------------------ -1.745329252 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] -0.17453 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] +0.0 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] 1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC) --0.064 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp --0.0008 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki -0.6283185 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. -1.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. -0.00000 ! Y_MErrSet - Yaw alignment error, set point [rad] -1.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] -0.016667 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] -0.0034906 ! Y_Rate - Yaw rate [rad/s] +0.0 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp +0.0 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki +0.0 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. +0.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. +0.0 ! Y_MErrSet - Yaw alignment error, set point [rad] +0.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] +0.0 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] +0.0 ! Y_Rate - Yaw rate [rad/s] !------- TOWER FORE-AFT DAMPING ------------------------------------------- -1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag -0.1 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] -0.087266 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] +0.0 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] +0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] !------- PEAK SHAVING ------------------------------------------- -210 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) - 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13. 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16. 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17. 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18. 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21. 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22. 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23. 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24. 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] --0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.02962541 -0.02230897 -0.01548946 -0.00915689 -0.00323985 0.00231633 0.00755924 0.01252064 0.01723337 0.02171883 0.02600713 0.03010809 0.03403543 0.03780094 0.04141197 0.0448834 0.04301121 0.04572902 0.04841563 0.05107257 0.05370175 0.05630738 0.05888727 0.06144604 0.06398009 0.06649806 0.06899513 0.07147461 0.07393783 0.0763848 0.07881322 0.08122765 0.08363032 0.08601684 0.0883911 0.09075519 0.09310191 0.09543925 0.09776725 0.10008031 0.1023843 0.10467939 0.10696282 0.10923552 0.11150342 0.11375564 0.11600427 0.118243 0.12047296 0.12269376 0.12490488 0.12711415 0.12931036 0.13150096 0.13368154 0.13585982 0.13803009 0.14018961 0.14234359 0.14449503 0.14663648 0.14877236 0.15089947 0.15302471 0.155141 0.15725402 0.15935959 0.16145813 0.16355132 0.16563963 0.16772494 0.1698033 0.17187555 0.17394191 0.17600722 0.17806499 0.18011745 0.18216164 0.18420446 0.18624091 0.18827655 0.19030833 0.19233052 0.19434885 0.19636357 0.19837593 0.20037883 0.20238383 0.20438058 0.20637502 0.20836358 0.21034732 0.21232885 0.21430571 0.21627763 0.21824694 0.22021326 0.22217222 0.22412743 0.22608217 0.22803347 0.22998291 0.23192295 0.23385759 0.23579759 0.23772869 0.23965799 0.24157841 0.24349944 0.24541689 0.24733152 0.24924241 0.25115108 0.25305646 0.25495687 0.25685379 0.25874221 0.26063593 0.26252242 0.26440664 0.26628698 0.26816398 0.27004031 0.27191147 0.27377527 0.27564404 0.27750921 0.27935984 0.28121741 0.28306997 0.2849209 0.28676631 0.28860828 0.29045122 0.29229007 0.29412417 0.29595331 0.29778415 0.29960719 0.30142759 0.30324755 0.30506054 0.30687771 0.30869136 0.31049896 0.31230004 0.31410149 0.3159051 0.3177027 0.31949741 0.32128578 0.32306955 ! PS_BldPitchMin - Minimum blade pitch angles [rad] +42 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +-0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03275873 0.00083377 0.02543348 0.0448834 0.0667768 0.07915202 0.09113854 0.10280435 0.11420819 0.12538567 0.13636556 0.14716567 0.15780447 0.1683014 0.178663 0.18889865 0.19901765 0.20902392 0.21892797 0.22873221 0.23844548 0.24806675 0.25759734 0.26705022 0.27641741 0.2857055 0.29491896 0.3040543 0.31311378 0.32210299 0.33103247 ! PS_BldPitchMin - Minimum blade pitch angles [rad] diff --git a/Test_Cases/5MW_BR_Baseline/DISCON.IN b/Test_Cases/5MW_BR_Baseline/DISCON.IN index 99dee3c36..ef7726c15 100644 --- a/Test_Cases/5MW_BR_Baseline/DISCON.IN +++ b/Test_Cases/5MW_BR_Baseline/DISCON.IN @@ -1,5 +1,5 @@ ! Controller parameter input file for the 5MW_Land wind turbine -! - File written using NREL Baseline Controller tuning logic on 10/01/19 +! - File written using NREL Baseline Controller tuning logic on 10/07/19 !------- DEBUG ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file @@ -16,24 +16,24 @@ 1 ! PS_Mode - Peak shaving mode {0: no peak shaving, 1: implement peak shaving} !------- FILTERS ---------------------------------------------------------- -1.570796326 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] +1.543417826848871 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] 0 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2] 0 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] 0 0 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] 0.5 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [Hz]. !------- BLADE PITCH CONTROL ---------------------------------------------- -136 ! PC_GS_n - Amount of gain-scheduling table entries -0. 0.01843267 0.03012466 0.03938211 0.0473159 0.05438725 0.0608399 0.06682165 0.07243603 0.07774601 0.08280179 0.08764533 0.0922973 0.09678511 0.10113084 0.10534505 0.10944741 0.11344459 0.11734245 0.12115249 0.12488383 0.12853954 0.13212927 0.13565125 0.13911823 0.1425236 0.14587973 0.1491875 0.15244657 0.15566288 0.15883986 0.16197375 0.16506986 0.16813214 0.17115907 0.17415428 0.17711497 0.18004808 0.18295399 0.1858281 0.1886768 0.19150248 0.19430239 0.19707534 0.19983015 0.2025582 0.20526628 0.20795513 0.21062023 0.21326861 0.2158935 0.21850484 0.2210941 0.22366803 0.22622254 0.22876498 0.2312836 0.23379345 0.23628255 0.23875941 0.24122279 0.24366729 0.24610036 0.24852176 0.25092855 0.25332325 0.2557023 0.25807209 0.26042559 0.26276748 0.26510036 0.26742092 0.26973036 0.27202782 0.27431492 0.27658881 0.27885401 0.28110964 0.28336045 0.2855962 0.28782076 0.29003745 0.29224346 0.29444004 0.29663204 0.2988061 0.30097858 0.30314198 0.30529447 0.30743825 0.30958 0.31170708 0.31382687 0.31593631 0.3180419 0.32013786 0.32222978 0.32431029 0.32638663 0.32845309 0.33051357 0.33256802 0.33461455 0.33665611 0.33868284 0.34071023 0.34272963 0.34474196 0.34674528 0.34875073 0.35074041 0.35272695 0.35470654 0.35668277 0.35864961 0.36061312 0.36256798 0.36452117 0.36646633 0.36840178 0.37033735 0.3722649 0.37418622 0.37609996 0.37801477 0.37991806 0.38181864 0.38371323 0.38560453 0.38749153 0.38937202 0.39124103 0.39310673 0.39497577 0.39683082 0.39868511 ! PC_GS_angles - Gain-schedule table: pitch angles --0.02019147 -0.01950333 -0.01885443 -0.0182415 -0.01766165 -0.01711225 -0.01659098 -0.01609573 -0.01562459 -0.01517585 -0.01474794 -0.01433946 -0.0139491 -0.01357569 -0.01321814 -0.01287547 -0.01254676 -0.01223119 -0.01192797 -0.0116364 -0.01135581 -0.01108561 -0.01082521 -0.01057411 -0.0103318 -0.01009784 -0.00987181 -0.00965329 -0.00944194 -0.00923739 -0.00903933 -0.00884745 -0.00866147 -0.00848112 -0.00830614 -0.00813631 -0.0079714 -0.00781119 -0.00765549 -0.00750411 -0.00735688 -0.00721362 -0.00707417 -0.0069384 -0.00680614 -0.00667728 -0.00655167 -0.0064292 -0.00630975 -0.00619322 -0.00607949 -0.00596846 -0.00586005 -0.00575415 -0.00565069 -0.00554957 -0.00545073 -0.00535408 -0.00525955 -0.00516708 -0.00507659 -0.00498803 -0.00490133 -0.00481644 -0.00473329 -0.00465184 -0.00457204 -0.00449383 -0.00441716 -0.004342 -0.0042683 -0.00419602 -0.00412511 -0.00405553 -0.00398726 -0.00392025 -0.00385447 -0.00378988 -0.00372646 -0.00366417 -0.00360298 -0.00354286 -0.00348379 -0.00342574 -0.00336868 -0.00331258 -0.00325743 -0.00320319 -0.00314985 -0.00309739 -0.00304578 -0.002995 -0.00294503 -0.00289585 -0.00284745 -0.00279981 -0.0027529 -0.00270671 -0.00266123 -0.00261644 -0.00257232 -0.00252886 -0.00248604 -0.00244385 -0.00240228 -0.00236131 -0.00232093 -0.00228112 -0.00224188 -0.0022032 -0.00216505 -0.00212743 -0.00209033 -0.00205374 -0.00201765 -0.00198204 -0.00194691 -0.00191225 -0.00187805 -0.0018443 -0.00181099 -0.00177811 -0.00174566 -0.00171362 -0.00168199 -0.00165076 -0.00161992 -0.00158947 -0.00155939 -0.00152969 -0.00150035 -0.00147137 -0.00144274 -0.00141446 -0.00138651 -0.0013589 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains --0.00882307 -0.00856411 -0.00831992 -0.00808927 -0.00787106 -0.00766432 -0.00746816 -0.00728178 -0.00710449 -0.00693562 -0.0067746 -0.00662088 -0.00647398 -0.00633346 -0.00619891 -0.00606996 -0.00594626 -0.00582751 -0.0057134 -0.00560368 -0.00549809 -0.00539641 -0.00529842 -0.00520393 -0.00511274 -0.0050247 -0.00493964 -0.00485741 -0.00477787 -0.0047009 -0.00462637 -0.00455416 -0.00448417 -0.0044163 -0.00435046 -0.00428655 -0.00422449 -0.0041642 -0.00410561 -0.00404864 -0.00399324 -0.00393933 -0.00388685 -0.00383576 -0.00378599 -0.00373749 -0.00369023 -0.00364414 -0.00359919 -0.00355534 -0.00351254 -0.00347076 -0.00342996 -0.00339011 -0.00335117 -0.00331312 -0.00327593 -0.00323956 -0.00320399 -0.00316919 -0.00313514 -0.00310181 -0.00306918 -0.00303724 -0.00300595 -0.0029753 -0.00294526 -0.00291583 -0.00288698 -0.0028587 -0.00283096 -0.00280376 -0.00277708 -0.0027509 -0.0027252 -0.00269999 -0.00267523 -0.00265093 -0.00262706 -0.00260362 -0.00258059 -0.00255797 -0.00253574 -0.0025139 -0.00249242 -0.00247131 -0.00245056 -0.00243015 -0.00241008 -0.00239033 -0.00237091 -0.0023518 -0.002333 -0.00231449 -0.00229628 -0.00227835 -0.0022607 -0.00224332 -0.0022262 -0.00220935 -0.00219274 -0.00217639 -0.00216028 -0.0021444 -0.00212876 -0.00211334 -0.00209814 -0.00208316 -0.0020684 -0.00205384 -0.00203948 -0.00202533 -0.00201136 -0.00199759 -0.00198401 -0.00197061 -0.00195739 -0.00194435 -0.00193148 -0.00191878 -0.00190624 -0.00189387 -0.00188166 -0.0018696 -0.0018577 -0.00184595 -0.00183434 -0.00182288 -0.00181157 -0.00180039 -0.00178935 -0.00177844 -0.00176767 -0.00175702 -0.00174651 -0.00173612 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +27 ! PC_GS_n - Amount of gain-scheduling table entries +0.05852874 0.08586931 0.10789716 0.1271165 0.14453395 0.16067791 0.17585826 0.19027256 0.20405942 0.21730904 0.23010311 0.24249689 0.2545414 0.26626371 0.27770397 0.28889173 0.29983774 0.31057221 0.32109644 0.33144053 0.34160524 0.35160739 0.36145513 0.37115299 0.38071093 0.3901412 0.39943831 ! PC_GS_angles - Gain-schedule table: pitch angles +-0.01603382 -0.01396602 -0.01229584 -0.01091865 -0.00976358 -0.00878088 -0.00793467 -0.00719835 -0.00655181 -0.00597959 -0.00546956 -0.00501211 -0.00459951 -0.00422546 -0.00388481 -0.00357328 -0.00328728 -0.0030238 -0.00278028 -0.00255453 -0.00234468 -0.00214911 -0.0019664 -0.00179533 -0.00163481 -0.00148391 -0.00134179 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains +-0.00715561 -0.00639445 -0.00577965 -0.00527271 -0.00484752 -0.00448579 -0.0041743 -0.00390326 -0.00366527 -0.00345463 -0.00326689 -0.0030985 -0.00294662 -0.00280893 -0.00268354 -0.00256886 -0.00246359 -0.0023666 -0.00227696 -0.00219386 -0.00211661 -0.00204462 -0.00197737 -0.0019144 -0.00185531 -0.00179976 -0.00174745 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.5707 ! PC_MaxPit - Maximum physical pitch limit, [rad]. --0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. +-0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. 0.13962 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. -0.13962 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. -122.90957 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +122.90957658394467 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. 0.0 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] 0.003490658 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] 0 ! Z_EnableSine - Enable/disable sine pitch excitation, used to validate for dynamic induction control, will be removed later, [-] @@ -41,63 +41,64 @@ 0 ! Z_PitchFrequency - Frequency of sine pitch excitation, [rad/s] !------- INDIVIDUAL PITCH CONTROL ----------------------------------------- -0.087266 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] -1E-8 0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] -0.436332313 0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. -2.5 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] +0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] !------- VS TORQUE CONTROL ------------------------------------------------ -0.944 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] -43093.55 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] -150000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. -48000.00 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +94.4 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] +43093.55150917838 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +1500000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +47402.906660096225 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. 0.0 ! VS_MinTq - Minimum generator (HSS side), [Nm]. -91.2109 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] -2.33228 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] -5.0E+06 ! VS_RtPwr - Wind turbine rated power [W] -43093.55 ! VS_RtTq - Rated torque, [Nm]. -120.113 ! VS_RefSpd - Rated generator speed [rad/s] +0.0 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] +0.0 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] +5000000 ! VS_RtPwr - Wind turbine rated power [W] +43093.55150917838 ! VS_RtTq - Rated torque, [Nm]. +122.90957658394467 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --835 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) --164 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-889.094048017944 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-172.0461874545648 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +7.4 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad]. !------- SETPOINT SMOOTHER --------------------------------------------- 30 ! SS_VSGainBias - Variable speed torque controller gain bias, [(rad/s)/rad]. 0.001 ! SS_PCGainBias - Collective pitch controller gain bias, [(rad/s)/Nm]. !------- WIND SPEED ESTIMATOR --------------------------------------------- -63.0 ! WE_BladeRadius - Blade length [m] +63.0 ! WE_BladeRadius - Blade length [m] 4 ! WE_CP_n - Amount of parameters in the Cp array -14.571319658214513 42.809556250371465 2.456512501523107 0.003127994078720 ! WE_CP - Parameters that define the parameterized CP(lambda) function -20 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] -97 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] -4.0469564E+07 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +0.0 0.0 0.0 0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function +0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +97.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +40469564.444 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] 1.225 ! WE_RhoAir - Air density, [kg m^-3] "../5MW_Baseline/Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) -320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios -23 ! WE_FOPoles_N - Number of first-order system poles used in EKF -3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.0203 -0.0270 -0.0338 -0.0405 -0.0473 -0.0540 -0.0608 -0.0675 -0.0743 -0.0671 -0.0939 -0.1257 -0.1601 -0.1973 -0.2364 -0.2783 -0.3223 -0.3678 -0.4153 -0.4632 -0.5122 -0.5629 -0.6194 ! WE_FOPoles - First order system poles +320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +42 ! WE_FOPoles_N - Number of first-order system poles used in EKF + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.02665071 -0.02998205 -0.03331339 -0.03664473 -0.03997606 -0.0433074 -0.04663874 -0.04997008 -0.05330142 -0.05663276 -0.0599641 -0.06329543 -0.06662677 -0.06995811 -0.07328945 -0.06321278 -0.07469151 -0.08828579 -0.10297822 -0.11842623 -0.13448765 -0.15120764 -0.168455 -0.18635293 -0.20483641 -0.22395323 -0.24348262 -0.26365771 -0.2842596 -0.30535287 -0.32683352 -0.3487705 -0.37113879 -0.39376001 -0.41675049 -0.44017539 -0.46432564 -0.4888057 -0.51273708 -0.53554138 -0.55932133 -0.58645605 ! WE_FOPoles - First order system poles !------- YAW CONTROL ------------------------------------------------------ -1.745329252 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] -0.17453 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] +0.0 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] 1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC) --0.064 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp --0.0008 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki -0.6283185 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. -1.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. -0.00000 ! Y_MErrSet - Yaw alignment error, set point [rad] -1.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] -0.016667 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] -0.0034906 ! Y_Rate - Yaw rate [rad/s] +0.0 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp +0.0 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki +0.0 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. +0.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. +0.0 ! Y_MErrSet - Yaw alignment error, set point [rad] +0.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] +0.0 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] +0.0 ! Y_Rate - Yaw rate [rad/s] !------- TOWER FORE-AFT DAMPING ------------------------------------------- -1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag -0.1 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] -0.087266 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] +0.0 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] +0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] !------- PEAK SHAVING ------------------------------------------- -210 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) - 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13. 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16. 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17. 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18. 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21. 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22. 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23. 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24. 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] --0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.02962541 -0.02230897 -0.01548946 -0.00915689 -0.00323985 0.00231633 0.00755924 0.01252064 0.01723337 0.02171883 0.02600713 0.03010809 0.03403543 0.03780094 0.04141197 0.0448834 0.04301121 0.04572902 0.04841563 0.05107257 0.05370175 0.05630738 0.05888727 0.06144604 0.06398009 0.06649806 0.06899513 0.07147461 0.07393783 0.0763848 0.07881322 0.08122765 0.08363032 0.08601684 0.0883911 0.09075519 0.09310191 0.09543925 0.09776725 0.10008031 0.1023843 0.10467939 0.10696282 0.10923552 0.11150342 0.11375564 0.11600427 0.118243 0.12047296 0.12269376 0.12490488 0.12711415 0.12931036 0.13150096 0.13368154 0.13585982 0.13803009 0.14018961 0.14234359 0.14449503 0.14663648 0.14877236 0.15089947 0.15302471 0.155141 0.15725402 0.15935959 0.16145813 0.16355132 0.16563963 0.16772494 0.1698033 0.17187555 0.17394191 0.17600722 0.17806499 0.18011745 0.18216164 0.18420446 0.18624091 0.18827655 0.19030833 0.19233052 0.19434885 0.19636357 0.19837593 0.20037883 0.20238383 0.20438058 0.20637502 0.20836358 0.21034732 0.21232885 0.21430571 0.21627763 0.21824694 0.22021326 0.22217222 0.22412743 0.22608217 0.22803347 0.22998291 0.23192295 0.23385759 0.23579759 0.23772869 0.23965799 0.24157841 0.24349944 0.24541689 0.24733152 0.24924241 0.25115108 0.25305646 0.25495687 0.25685379 0.25874221 0.26063593 0.26252242 0.26440664 0.26628698 0.26816398 0.27004031 0.27191147 0.27377527 0.27564404 0.27750921 0.27935984 0.28121741 0.28306997 0.2849209 0.28676631 0.28860828 0.29045122 0.29229007 0.29412417 0.29595331 0.29778415 0.29960719 0.30142759 0.30324755 0.30506054 0.30687771 0.30869136 0.31049896 0.31230004 0.31410149 0.3159051 0.3177027 0.31949741 0.32128578 0.32306955 ! PS_BldPitchMin - Minimum blade pitch angles [rad] +42 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +-0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03275873 0.00083377 0.02543348 0.0448834 0.0667768 0.07915202 0.09113854 0.10280435 0.11420819 0.12538567 0.13636556 0.14716567 0.15780447 0.1683014 0.178663 0.18889865 0.19901765 0.20902392 0.21892797 0.22873221 0.23844548 0.24806675 0.25759734 0.26705022 0.27641741 0.2857055 0.29491896 0.3040543 0.31311378 0.32210299 0.33103247 ! PS_BldPitchMin - Minimum blade pitch angles [rad] diff --git a/Test_Cases/5MW_Baseline/DISCON.IN b/Test_Cases/5MW_Baseline/DISCON.IN index 99dee3c36..ef7726c15 100644 --- a/Test_Cases/5MW_Baseline/DISCON.IN +++ b/Test_Cases/5MW_Baseline/DISCON.IN @@ -1,5 +1,5 @@ ! Controller parameter input file for the 5MW_Land wind turbine -! - File written using NREL Baseline Controller tuning logic on 10/01/19 +! - File written using NREL Baseline Controller tuning logic on 10/07/19 !------- DEBUG ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file @@ -16,24 +16,24 @@ 1 ! PS_Mode - Peak shaving mode {0: no peak shaving, 1: implement peak shaving} !------- FILTERS ---------------------------------------------------------- -1.570796326 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] +1.543417826848871 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] 0 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2] 0 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] 0 0 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] 0.5 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [Hz]. !------- BLADE PITCH CONTROL ---------------------------------------------- -136 ! PC_GS_n - Amount of gain-scheduling table entries -0. 0.01843267 0.03012466 0.03938211 0.0473159 0.05438725 0.0608399 0.06682165 0.07243603 0.07774601 0.08280179 0.08764533 0.0922973 0.09678511 0.10113084 0.10534505 0.10944741 0.11344459 0.11734245 0.12115249 0.12488383 0.12853954 0.13212927 0.13565125 0.13911823 0.1425236 0.14587973 0.1491875 0.15244657 0.15566288 0.15883986 0.16197375 0.16506986 0.16813214 0.17115907 0.17415428 0.17711497 0.18004808 0.18295399 0.1858281 0.1886768 0.19150248 0.19430239 0.19707534 0.19983015 0.2025582 0.20526628 0.20795513 0.21062023 0.21326861 0.2158935 0.21850484 0.2210941 0.22366803 0.22622254 0.22876498 0.2312836 0.23379345 0.23628255 0.23875941 0.24122279 0.24366729 0.24610036 0.24852176 0.25092855 0.25332325 0.2557023 0.25807209 0.26042559 0.26276748 0.26510036 0.26742092 0.26973036 0.27202782 0.27431492 0.27658881 0.27885401 0.28110964 0.28336045 0.2855962 0.28782076 0.29003745 0.29224346 0.29444004 0.29663204 0.2988061 0.30097858 0.30314198 0.30529447 0.30743825 0.30958 0.31170708 0.31382687 0.31593631 0.3180419 0.32013786 0.32222978 0.32431029 0.32638663 0.32845309 0.33051357 0.33256802 0.33461455 0.33665611 0.33868284 0.34071023 0.34272963 0.34474196 0.34674528 0.34875073 0.35074041 0.35272695 0.35470654 0.35668277 0.35864961 0.36061312 0.36256798 0.36452117 0.36646633 0.36840178 0.37033735 0.3722649 0.37418622 0.37609996 0.37801477 0.37991806 0.38181864 0.38371323 0.38560453 0.38749153 0.38937202 0.39124103 0.39310673 0.39497577 0.39683082 0.39868511 ! PC_GS_angles - Gain-schedule table: pitch angles --0.02019147 -0.01950333 -0.01885443 -0.0182415 -0.01766165 -0.01711225 -0.01659098 -0.01609573 -0.01562459 -0.01517585 -0.01474794 -0.01433946 -0.0139491 -0.01357569 -0.01321814 -0.01287547 -0.01254676 -0.01223119 -0.01192797 -0.0116364 -0.01135581 -0.01108561 -0.01082521 -0.01057411 -0.0103318 -0.01009784 -0.00987181 -0.00965329 -0.00944194 -0.00923739 -0.00903933 -0.00884745 -0.00866147 -0.00848112 -0.00830614 -0.00813631 -0.0079714 -0.00781119 -0.00765549 -0.00750411 -0.00735688 -0.00721362 -0.00707417 -0.0069384 -0.00680614 -0.00667728 -0.00655167 -0.0064292 -0.00630975 -0.00619322 -0.00607949 -0.00596846 -0.00586005 -0.00575415 -0.00565069 -0.00554957 -0.00545073 -0.00535408 -0.00525955 -0.00516708 -0.00507659 -0.00498803 -0.00490133 -0.00481644 -0.00473329 -0.00465184 -0.00457204 -0.00449383 -0.00441716 -0.004342 -0.0042683 -0.00419602 -0.00412511 -0.00405553 -0.00398726 -0.00392025 -0.00385447 -0.00378988 -0.00372646 -0.00366417 -0.00360298 -0.00354286 -0.00348379 -0.00342574 -0.00336868 -0.00331258 -0.00325743 -0.00320319 -0.00314985 -0.00309739 -0.00304578 -0.002995 -0.00294503 -0.00289585 -0.00284745 -0.00279981 -0.0027529 -0.00270671 -0.00266123 -0.00261644 -0.00257232 -0.00252886 -0.00248604 -0.00244385 -0.00240228 -0.00236131 -0.00232093 -0.00228112 -0.00224188 -0.0022032 -0.00216505 -0.00212743 -0.00209033 -0.00205374 -0.00201765 -0.00198204 -0.00194691 -0.00191225 -0.00187805 -0.0018443 -0.00181099 -0.00177811 -0.00174566 -0.00171362 -0.00168199 -0.00165076 -0.00161992 -0.00158947 -0.00155939 -0.00152969 -0.00150035 -0.00147137 -0.00144274 -0.00141446 -0.00138651 -0.0013589 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains --0.00882307 -0.00856411 -0.00831992 -0.00808927 -0.00787106 -0.00766432 -0.00746816 -0.00728178 -0.00710449 -0.00693562 -0.0067746 -0.00662088 -0.00647398 -0.00633346 -0.00619891 -0.00606996 -0.00594626 -0.00582751 -0.0057134 -0.00560368 -0.00549809 -0.00539641 -0.00529842 -0.00520393 -0.00511274 -0.0050247 -0.00493964 -0.00485741 -0.00477787 -0.0047009 -0.00462637 -0.00455416 -0.00448417 -0.0044163 -0.00435046 -0.00428655 -0.00422449 -0.0041642 -0.00410561 -0.00404864 -0.00399324 -0.00393933 -0.00388685 -0.00383576 -0.00378599 -0.00373749 -0.00369023 -0.00364414 -0.00359919 -0.00355534 -0.00351254 -0.00347076 -0.00342996 -0.00339011 -0.00335117 -0.00331312 -0.00327593 -0.00323956 -0.00320399 -0.00316919 -0.00313514 -0.00310181 -0.00306918 -0.00303724 -0.00300595 -0.0029753 -0.00294526 -0.00291583 -0.00288698 -0.0028587 -0.00283096 -0.00280376 -0.00277708 -0.0027509 -0.0027252 -0.00269999 -0.00267523 -0.00265093 -0.00262706 -0.00260362 -0.00258059 -0.00255797 -0.00253574 -0.0025139 -0.00249242 -0.00247131 -0.00245056 -0.00243015 -0.00241008 -0.00239033 -0.00237091 -0.0023518 -0.002333 -0.00231449 -0.00229628 -0.00227835 -0.0022607 -0.00224332 -0.0022262 -0.00220935 -0.00219274 -0.00217639 -0.00216028 -0.0021444 -0.00212876 -0.00211334 -0.00209814 -0.00208316 -0.0020684 -0.00205384 -0.00203948 -0.00202533 -0.00201136 -0.00199759 -0.00198401 -0.00197061 -0.00195739 -0.00194435 -0.00193148 -0.00191878 -0.00190624 -0.00189387 -0.00188166 -0.0018696 -0.0018577 -0.00184595 -0.00183434 -0.00182288 -0.00181157 -0.00180039 -0.00178935 -0.00177844 -0.00176767 -0.00175702 -0.00174651 -0.00173612 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +27 ! PC_GS_n - Amount of gain-scheduling table entries +0.05852874 0.08586931 0.10789716 0.1271165 0.14453395 0.16067791 0.17585826 0.19027256 0.20405942 0.21730904 0.23010311 0.24249689 0.2545414 0.26626371 0.27770397 0.28889173 0.29983774 0.31057221 0.32109644 0.33144053 0.34160524 0.35160739 0.36145513 0.37115299 0.38071093 0.3901412 0.39943831 ! PC_GS_angles - Gain-schedule table: pitch angles +-0.01603382 -0.01396602 -0.01229584 -0.01091865 -0.00976358 -0.00878088 -0.00793467 -0.00719835 -0.00655181 -0.00597959 -0.00546956 -0.00501211 -0.00459951 -0.00422546 -0.00388481 -0.00357328 -0.00328728 -0.0030238 -0.00278028 -0.00255453 -0.00234468 -0.00214911 -0.0019664 -0.00179533 -0.00163481 -0.00148391 -0.00134179 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains +-0.00715561 -0.00639445 -0.00577965 -0.00527271 -0.00484752 -0.00448579 -0.0041743 -0.00390326 -0.00366527 -0.00345463 -0.00326689 -0.0030985 -0.00294662 -0.00280893 -0.00268354 -0.00256886 -0.00246359 -0.0023666 -0.00227696 -0.00219386 -0.00211661 -0.00204462 -0.00197737 -0.0019144 -0.00185531 -0.00179976 -0.00174745 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.5707 ! PC_MaxPit - Maximum physical pitch limit, [rad]. --0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. +-0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. 0.13962 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. -0.13962 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. -122.90957 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +122.90957658394467 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. 0.0 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] 0.003490658 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] 0 ! Z_EnableSine - Enable/disable sine pitch excitation, used to validate for dynamic induction control, will be removed later, [-] @@ -41,63 +41,64 @@ 0 ! Z_PitchFrequency - Frequency of sine pitch excitation, [rad/s] !------- INDIVIDUAL PITCH CONTROL ----------------------------------------- -0.087266 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] -1E-8 0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] -0.436332313 0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. -2.5 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] +0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] !------- VS TORQUE CONTROL ------------------------------------------------ -0.944 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] -43093.55 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] -150000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. -48000.00 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +94.4 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] +43093.55150917838 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +1500000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +47402.906660096225 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. 0.0 ! VS_MinTq - Minimum generator (HSS side), [Nm]. -91.2109 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] -2.33228 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] -5.0E+06 ! VS_RtPwr - Wind turbine rated power [W] -43093.55 ! VS_RtTq - Rated torque, [Nm]. -120.113 ! VS_RefSpd - Rated generator speed [rad/s] +0.0 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] +0.0 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] +5000000 ! VS_RtPwr - Wind turbine rated power [W] +43093.55150917838 ! VS_RtTq - Rated torque, [Nm]. +122.90957658394467 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --835 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) --164 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-889.094048017944 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-172.0461874545648 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +7.4 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad]. !------- SETPOINT SMOOTHER --------------------------------------------- 30 ! SS_VSGainBias - Variable speed torque controller gain bias, [(rad/s)/rad]. 0.001 ! SS_PCGainBias - Collective pitch controller gain bias, [(rad/s)/Nm]. !------- WIND SPEED ESTIMATOR --------------------------------------------- -63.0 ! WE_BladeRadius - Blade length [m] +63.0 ! WE_BladeRadius - Blade length [m] 4 ! WE_CP_n - Amount of parameters in the Cp array -14.571319658214513 42.809556250371465 2.456512501523107 0.003127994078720 ! WE_CP - Parameters that define the parameterized CP(lambda) function -20 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] -97 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] -4.0469564E+07 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +0.0 0.0 0.0 0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function +0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +97.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +40469564.444 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] 1.225 ! WE_RhoAir - Air density, [kg m^-3] "../5MW_Baseline/Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) -320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios -23 ! WE_FOPoles_N - Number of first-order system poles used in EKF -3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.0203 -0.0270 -0.0338 -0.0405 -0.0473 -0.0540 -0.0608 -0.0675 -0.0743 -0.0671 -0.0939 -0.1257 -0.1601 -0.1973 -0.2364 -0.2783 -0.3223 -0.3678 -0.4153 -0.4632 -0.5122 -0.5629 -0.6194 ! WE_FOPoles - First order system poles +320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +42 ! WE_FOPoles_N - Number of first-order system poles used in EKF + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.02665071 -0.02998205 -0.03331339 -0.03664473 -0.03997606 -0.0433074 -0.04663874 -0.04997008 -0.05330142 -0.05663276 -0.0599641 -0.06329543 -0.06662677 -0.06995811 -0.07328945 -0.06321278 -0.07469151 -0.08828579 -0.10297822 -0.11842623 -0.13448765 -0.15120764 -0.168455 -0.18635293 -0.20483641 -0.22395323 -0.24348262 -0.26365771 -0.2842596 -0.30535287 -0.32683352 -0.3487705 -0.37113879 -0.39376001 -0.41675049 -0.44017539 -0.46432564 -0.4888057 -0.51273708 -0.53554138 -0.55932133 -0.58645605 ! WE_FOPoles - First order system poles !------- YAW CONTROL ------------------------------------------------------ -1.745329252 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] -0.17453 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] +0.0 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] 1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC) --0.064 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp --0.0008 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki -0.6283185 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. -1.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. -0.00000 ! Y_MErrSet - Yaw alignment error, set point [rad] -1.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] -0.016667 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] -0.0034906 ! Y_Rate - Yaw rate [rad/s] +0.0 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp +0.0 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki +0.0 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. +0.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. +0.0 ! Y_MErrSet - Yaw alignment error, set point [rad] +0.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] +0.0 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] +0.0 ! Y_Rate - Yaw rate [rad/s] !------- TOWER FORE-AFT DAMPING ------------------------------------------- -1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag -0.1 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] -0.087266 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] +0.0 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] +0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] !------- PEAK SHAVING ------------------------------------------- -210 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) - 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13. 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16. 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17. 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18. 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21. 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22. 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23. 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24. 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] --0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.02962541 -0.02230897 -0.01548946 -0.00915689 -0.00323985 0.00231633 0.00755924 0.01252064 0.01723337 0.02171883 0.02600713 0.03010809 0.03403543 0.03780094 0.04141197 0.0448834 0.04301121 0.04572902 0.04841563 0.05107257 0.05370175 0.05630738 0.05888727 0.06144604 0.06398009 0.06649806 0.06899513 0.07147461 0.07393783 0.0763848 0.07881322 0.08122765 0.08363032 0.08601684 0.0883911 0.09075519 0.09310191 0.09543925 0.09776725 0.10008031 0.1023843 0.10467939 0.10696282 0.10923552 0.11150342 0.11375564 0.11600427 0.118243 0.12047296 0.12269376 0.12490488 0.12711415 0.12931036 0.13150096 0.13368154 0.13585982 0.13803009 0.14018961 0.14234359 0.14449503 0.14663648 0.14877236 0.15089947 0.15302471 0.155141 0.15725402 0.15935959 0.16145813 0.16355132 0.16563963 0.16772494 0.1698033 0.17187555 0.17394191 0.17600722 0.17806499 0.18011745 0.18216164 0.18420446 0.18624091 0.18827655 0.19030833 0.19233052 0.19434885 0.19636357 0.19837593 0.20037883 0.20238383 0.20438058 0.20637502 0.20836358 0.21034732 0.21232885 0.21430571 0.21627763 0.21824694 0.22021326 0.22217222 0.22412743 0.22608217 0.22803347 0.22998291 0.23192295 0.23385759 0.23579759 0.23772869 0.23965799 0.24157841 0.24349944 0.24541689 0.24733152 0.24924241 0.25115108 0.25305646 0.25495687 0.25685379 0.25874221 0.26063593 0.26252242 0.26440664 0.26628698 0.26816398 0.27004031 0.27191147 0.27377527 0.27564404 0.27750921 0.27935984 0.28121741 0.28306997 0.2849209 0.28676631 0.28860828 0.29045122 0.29229007 0.29412417 0.29595331 0.29778415 0.29960719 0.30142759 0.30324755 0.30506054 0.30687771 0.30869136 0.31049896 0.31230004 0.31410149 0.3159051 0.3177027 0.31949741 0.32128578 0.32306955 ! PS_BldPitchMin - Minimum blade pitch angles [rad] +42 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +-0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03275873 0.00083377 0.02543348 0.0448834 0.0667768 0.07915202 0.09113854 0.10280435 0.11420819 0.12538567 0.13636556 0.14716567 0.15780447 0.1683014 0.178663 0.18889865 0.19901765 0.20902392 0.21892797 0.22873221 0.23844548 0.24806675 0.25759734 0.26705022 0.27641741 0.2857055 0.29491896 0.3040543 0.31311378 0.32210299 0.33103247 ! PS_BldPitchMin - Minimum blade pitch angles [rad] diff --git a/Test_Cases/5MW_NR_Baseline/DISCON.IN b/Test_Cases/5MW_NR_Baseline/DISCON.IN index 99dee3c36..ef7726c15 100644 --- a/Test_Cases/5MW_NR_Baseline/DISCON.IN +++ b/Test_Cases/5MW_NR_Baseline/DISCON.IN @@ -1,5 +1,5 @@ ! Controller parameter input file for the 5MW_Land wind turbine -! - File written using NREL Baseline Controller tuning logic on 10/01/19 +! - File written using NREL Baseline Controller tuning logic on 10/07/19 !------- DEBUG ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file @@ -16,24 +16,24 @@ 1 ! PS_Mode - Peak shaving mode {0: no peak shaving, 1: implement peak shaving} !------- FILTERS ---------------------------------------------------------- -1.570796326 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] +1.543417826848871 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] 0 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2] 0 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] 0 0 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] 0.5 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [Hz]. !------- BLADE PITCH CONTROL ---------------------------------------------- -136 ! PC_GS_n - Amount of gain-scheduling table entries -0. 0.01843267 0.03012466 0.03938211 0.0473159 0.05438725 0.0608399 0.06682165 0.07243603 0.07774601 0.08280179 0.08764533 0.0922973 0.09678511 0.10113084 0.10534505 0.10944741 0.11344459 0.11734245 0.12115249 0.12488383 0.12853954 0.13212927 0.13565125 0.13911823 0.1425236 0.14587973 0.1491875 0.15244657 0.15566288 0.15883986 0.16197375 0.16506986 0.16813214 0.17115907 0.17415428 0.17711497 0.18004808 0.18295399 0.1858281 0.1886768 0.19150248 0.19430239 0.19707534 0.19983015 0.2025582 0.20526628 0.20795513 0.21062023 0.21326861 0.2158935 0.21850484 0.2210941 0.22366803 0.22622254 0.22876498 0.2312836 0.23379345 0.23628255 0.23875941 0.24122279 0.24366729 0.24610036 0.24852176 0.25092855 0.25332325 0.2557023 0.25807209 0.26042559 0.26276748 0.26510036 0.26742092 0.26973036 0.27202782 0.27431492 0.27658881 0.27885401 0.28110964 0.28336045 0.2855962 0.28782076 0.29003745 0.29224346 0.29444004 0.29663204 0.2988061 0.30097858 0.30314198 0.30529447 0.30743825 0.30958 0.31170708 0.31382687 0.31593631 0.3180419 0.32013786 0.32222978 0.32431029 0.32638663 0.32845309 0.33051357 0.33256802 0.33461455 0.33665611 0.33868284 0.34071023 0.34272963 0.34474196 0.34674528 0.34875073 0.35074041 0.35272695 0.35470654 0.35668277 0.35864961 0.36061312 0.36256798 0.36452117 0.36646633 0.36840178 0.37033735 0.3722649 0.37418622 0.37609996 0.37801477 0.37991806 0.38181864 0.38371323 0.38560453 0.38749153 0.38937202 0.39124103 0.39310673 0.39497577 0.39683082 0.39868511 ! PC_GS_angles - Gain-schedule table: pitch angles --0.02019147 -0.01950333 -0.01885443 -0.0182415 -0.01766165 -0.01711225 -0.01659098 -0.01609573 -0.01562459 -0.01517585 -0.01474794 -0.01433946 -0.0139491 -0.01357569 -0.01321814 -0.01287547 -0.01254676 -0.01223119 -0.01192797 -0.0116364 -0.01135581 -0.01108561 -0.01082521 -0.01057411 -0.0103318 -0.01009784 -0.00987181 -0.00965329 -0.00944194 -0.00923739 -0.00903933 -0.00884745 -0.00866147 -0.00848112 -0.00830614 -0.00813631 -0.0079714 -0.00781119 -0.00765549 -0.00750411 -0.00735688 -0.00721362 -0.00707417 -0.0069384 -0.00680614 -0.00667728 -0.00655167 -0.0064292 -0.00630975 -0.00619322 -0.00607949 -0.00596846 -0.00586005 -0.00575415 -0.00565069 -0.00554957 -0.00545073 -0.00535408 -0.00525955 -0.00516708 -0.00507659 -0.00498803 -0.00490133 -0.00481644 -0.00473329 -0.00465184 -0.00457204 -0.00449383 -0.00441716 -0.004342 -0.0042683 -0.00419602 -0.00412511 -0.00405553 -0.00398726 -0.00392025 -0.00385447 -0.00378988 -0.00372646 -0.00366417 -0.00360298 -0.00354286 -0.00348379 -0.00342574 -0.00336868 -0.00331258 -0.00325743 -0.00320319 -0.00314985 -0.00309739 -0.00304578 -0.002995 -0.00294503 -0.00289585 -0.00284745 -0.00279981 -0.0027529 -0.00270671 -0.00266123 -0.00261644 -0.00257232 -0.00252886 -0.00248604 -0.00244385 -0.00240228 -0.00236131 -0.00232093 -0.00228112 -0.00224188 -0.0022032 -0.00216505 -0.00212743 -0.00209033 -0.00205374 -0.00201765 -0.00198204 -0.00194691 -0.00191225 -0.00187805 -0.0018443 -0.00181099 -0.00177811 -0.00174566 -0.00171362 -0.00168199 -0.00165076 -0.00161992 -0.00158947 -0.00155939 -0.00152969 -0.00150035 -0.00147137 -0.00144274 -0.00141446 -0.00138651 -0.0013589 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains --0.00882307 -0.00856411 -0.00831992 -0.00808927 -0.00787106 -0.00766432 -0.00746816 -0.00728178 -0.00710449 -0.00693562 -0.0067746 -0.00662088 -0.00647398 -0.00633346 -0.00619891 -0.00606996 -0.00594626 -0.00582751 -0.0057134 -0.00560368 -0.00549809 -0.00539641 -0.00529842 -0.00520393 -0.00511274 -0.0050247 -0.00493964 -0.00485741 -0.00477787 -0.0047009 -0.00462637 -0.00455416 -0.00448417 -0.0044163 -0.00435046 -0.00428655 -0.00422449 -0.0041642 -0.00410561 -0.00404864 -0.00399324 -0.00393933 -0.00388685 -0.00383576 -0.00378599 -0.00373749 -0.00369023 -0.00364414 -0.00359919 -0.00355534 -0.00351254 -0.00347076 -0.00342996 -0.00339011 -0.00335117 -0.00331312 -0.00327593 -0.00323956 -0.00320399 -0.00316919 -0.00313514 -0.00310181 -0.00306918 -0.00303724 -0.00300595 -0.0029753 -0.00294526 -0.00291583 -0.00288698 -0.0028587 -0.00283096 -0.00280376 -0.00277708 -0.0027509 -0.0027252 -0.00269999 -0.00267523 -0.00265093 -0.00262706 -0.00260362 -0.00258059 -0.00255797 -0.00253574 -0.0025139 -0.00249242 -0.00247131 -0.00245056 -0.00243015 -0.00241008 -0.00239033 -0.00237091 -0.0023518 -0.002333 -0.00231449 -0.00229628 -0.00227835 -0.0022607 -0.00224332 -0.0022262 -0.00220935 -0.00219274 -0.00217639 -0.00216028 -0.0021444 -0.00212876 -0.00211334 -0.00209814 -0.00208316 -0.0020684 -0.00205384 -0.00203948 -0.00202533 -0.00201136 -0.00199759 -0.00198401 -0.00197061 -0.00195739 -0.00194435 -0.00193148 -0.00191878 -0.00190624 -0.00189387 -0.00188166 -0.0018696 -0.0018577 -0.00184595 -0.00183434 -0.00182288 -0.00181157 -0.00180039 -0.00178935 -0.00177844 -0.00176767 -0.00175702 -0.00174651 -0.00173612 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +27 ! PC_GS_n - Amount of gain-scheduling table entries +0.05852874 0.08586931 0.10789716 0.1271165 0.14453395 0.16067791 0.17585826 0.19027256 0.20405942 0.21730904 0.23010311 0.24249689 0.2545414 0.26626371 0.27770397 0.28889173 0.29983774 0.31057221 0.32109644 0.33144053 0.34160524 0.35160739 0.36145513 0.37115299 0.38071093 0.3901412 0.39943831 ! PC_GS_angles - Gain-schedule table: pitch angles +-0.01603382 -0.01396602 -0.01229584 -0.01091865 -0.00976358 -0.00878088 -0.00793467 -0.00719835 -0.00655181 -0.00597959 -0.00546956 -0.00501211 -0.00459951 -0.00422546 -0.00388481 -0.00357328 -0.00328728 -0.0030238 -0.00278028 -0.00255453 -0.00234468 -0.00214911 -0.0019664 -0.00179533 -0.00163481 -0.00148391 -0.00134179 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains +-0.00715561 -0.00639445 -0.00577965 -0.00527271 -0.00484752 -0.00448579 -0.0041743 -0.00390326 -0.00366527 -0.00345463 -0.00326689 -0.0030985 -0.00294662 -0.00280893 -0.00268354 -0.00256886 -0.00246359 -0.0023666 -0.00227696 -0.00219386 -0.00211661 -0.00204462 -0.00197737 -0.0019144 -0.00185531 -0.00179976 -0.00174745 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.5707 ! PC_MaxPit - Maximum physical pitch limit, [rad]. --0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. +-0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. 0.13962 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. -0.13962 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. -122.90957 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +122.90957658394467 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. 0.0 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] 0.003490658 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] 0 ! Z_EnableSine - Enable/disable sine pitch excitation, used to validate for dynamic induction control, will be removed later, [-] @@ -41,63 +41,64 @@ 0 ! Z_PitchFrequency - Frequency of sine pitch excitation, [rad/s] !------- INDIVIDUAL PITCH CONTROL ----------------------------------------- -0.087266 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] -1E-8 0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] -0.436332313 0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. -2.5 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] +0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] !------- VS TORQUE CONTROL ------------------------------------------------ -0.944 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] -43093.55 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] -150000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. -48000.00 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +94.4 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] +43093.55150917838 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +1500000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +47402.906660096225 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. 0.0 ! VS_MinTq - Minimum generator (HSS side), [Nm]. -91.2109 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] -2.33228 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] -5.0E+06 ! VS_RtPwr - Wind turbine rated power [W] -43093.55 ! VS_RtTq - Rated torque, [Nm]. -120.113 ! VS_RefSpd - Rated generator speed [rad/s] +0.0 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] +0.0 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] +5000000 ! VS_RtPwr - Wind turbine rated power [W] +43093.55150917838 ! VS_RtTq - Rated torque, [Nm]. +122.90957658394467 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --835 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) --164 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-889.094048017944 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-172.0461874545648 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +7.4 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad]. !------- SETPOINT SMOOTHER --------------------------------------------- 30 ! SS_VSGainBias - Variable speed torque controller gain bias, [(rad/s)/rad]. 0.001 ! SS_PCGainBias - Collective pitch controller gain bias, [(rad/s)/Nm]. !------- WIND SPEED ESTIMATOR --------------------------------------------- -63.0 ! WE_BladeRadius - Blade length [m] +63.0 ! WE_BladeRadius - Blade length [m] 4 ! WE_CP_n - Amount of parameters in the Cp array -14.571319658214513 42.809556250371465 2.456512501523107 0.003127994078720 ! WE_CP - Parameters that define the parameterized CP(lambda) function -20 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] -97 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] -4.0469564E+07 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +0.0 0.0 0.0 0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function +0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +97.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +40469564.444 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] 1.225 ! WE_RhoAir - Air density, [kg m^-3] "../5MW_Baseline/Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) -320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios -23 ! WE_FOPoles_N - Number of first-order system poles used in EKF -3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.0203 -0.0270 -0.0338 -0.0405 -0.0473 -0.0540 -0.0608 -0.0675 -0.0743 -0.0671 -0.0939 -0.1257 -0.1601 -0.1973 -0.2364 -0.2783 -0.3223 -0.3678 -0.4153 -0.4632 -0.5122 -0.5629 -0.6194 ! WE_FOPoles - First order system poles +320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +42 ! WE_FOPoles_N - Number of first-order system poles used in EKF + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.02665071 -0.02998205 -0.03331339 -0.03664473 -0.03997606 -0.0433074 -0.04663874 -0.04997008 -0.05330142 -0.05663276 -0.0599641 -0.06329543 -0.06662677 -0.06995811 -0.07328945 -0.06321278 -0.07469151 -0.08828579 -0.10297822 -0.11842623 -0.13448765 -0.15120764 -0.168455 -0.18635293 -0.20483641 -0.22395323 -0.24348262 -0.26365771 -0.2842596 -0.30535287 -0.32683352 -0.3487705 -0.37113879 -0.39376001 -0.41675049 -0.44017539 -0.46432564 -0.4888057 -0.51273708 -0.53554138 -0.55932133 -0.58645605 ! WE_FOPoles - First order system poles !------- YAW CONTROL ------------------------------------------------------ -1.745329252 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] -0.17453 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] +0.0 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] 1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC) --0.064 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp --0.0008 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki -0.6283185 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. -1.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. -0.00000 ! Y_MErrSet - Yaw alignment error, set point [rad] -1.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] -0.016667 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] -0.0034906 ! Y_Rate - Yaw rate [rad/s] +0.0 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp +0.0 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki +0.0 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. +0.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. +0.0 ! Y_MErrSet - Yaw alignment error, set point [rad] +0.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] +0.0 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] +0.0 ! Y_Rate - Yaw rate [rad/s] !------- TOWER FORE-AFT DAMPING ------------------------------------------- -1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag -0.1 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] -0.087266 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] +0.0 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] +0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] !------- PEAK SHAVING ------------------------------------------- -210 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) - 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13. 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16. 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17. 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18. 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21. 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22. 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23. 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24. 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] --0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.02962541 -0.02230897 -0.01548946 -0.00915689 -0.00323985 0.00231633 0.00755924 0.01252064 0.01723337 0.02171883 0.02600713 0.03010809 0.03403543 0.03780094 0.04141197 0.0448834 0.04301121 0.04572902 0.04841563 0.05107257 0.05370175 0.05630738 0.05888727 0.06144604 0.06398009 0.06649806 0.06899513 0.07147461 0.07393783 0.0763848 0.07881322 0.08122765 0.08363032 0.08601684 0.0883911 0.09075519 0.09310191 0.09543925 0.09776725 0.10008031 0.1023843 0.10467939 0.10696282 0.10923552 0.11150342 0.11375564 0.11600427 0.118243 0.12047296 0.12269376 0.12490488 0.12711415 0.12931036 0.13150096 0.13368154 0.13585982 0.13803009 0.14018961 0.14234359 0.14449503 0.14663648 0.14877236 0.15089947 0.15302471 0.155141 0.15725402 0.15935959 0.16145813 0.16355132 0.16563963 0.16772494 0.1698033 0.17187555 0.17394191 0.17600722 0.17806499 0.18011745 0.18216164 0.18420446 0.18624091 0.18827655 0.19030833 0.19233052 0.19434885 0.19636357 0.19837593 0.20037883 0.20238383 0.20438058 0.20637502 0.20836358 0.21034732 0.21232885 0.21430571 0.21627763 0.21824694 0.22021326 0.22217222 0.22412743 0.22608217 0.22803347 0.22998291 0.23192295 0.23385759 0.23579759 0.23772869 0.23965799 0.24157841 0.24349944 0.24541689 0.24733152 0.24924241 0.25115108 0.25305646 0.25495687 0.25685379 0.25874221 0.26063593 0.26252242 0.26440664 0.26628698 0.26816398 0.27004031 0.27191147 0.27377527 0.27564404 0.27750921 0.27935984 0.28121741 0.28306997 0.2849209 0.28676631 0.28860828 0.29045122 0.29229007 0.29412417 0.29595331 0.29778415 0.29960719 0.30142759 0.30324755 0.30506054 0.30687771 0.30869136 0.31049896 0.31230004 0.31410149 0.3159051 0.3177027 0.31949741 0.32128578 0.32306955 ! PS_BldPitchMin - Minimum blade pitch angles [rad] +42 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +-0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03275873 0.00083377 0.02543348 0.0448834 0.0667768 0.07915202 0.09113854 0.10280435 0.11420819 0.12538567 0.13636556 0.14716567 0.15780447 0.1683014 0.178663 0.18889865 0.19901765 0.20902392 0.21892797 0.22873221 0.23844548 0.24806675 0.25759734 0.26705022 0.27641741 0.2857055 0.29491896 0.3040543 0.31311378 0.32210299 0.33103247 ! PS_BldPitchMin - Minimum blade pitch angles [rad] diff --git a/Test_Cases/5MW_OC4_AR_Baseline/DISCON.IN b/Test_Cases/5MW_OC4_AR_Baseline/DISCON.IN index 99dee3c36..ef7726c15 100644 --- a/Test_Cases/5MW_OC4_AR_Baseline/DISCON.IN +++ b/Test_Cases/5MW_OC4_AR_Baseline/DISCON.IN @@ -1,5 +1,5 @@ ! Controller parameter input file for the 5MW_Land wind turbine -! - File written using NREL Baseline Controller tuning logic on 10/01/19 +! - File written using NREL Baseline Controller tuning logic on 10/07/19 !------- DEBUG ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file @@ -16,24 +16,24 @@ 1 ! PS_Mode - Peak shaving mode {0: no peak shaving, 1: implement peak shaving} !------- FILTERS ---------------------------------------------------------- -1.570796326 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] +1.543417826848871 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] 0 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2] 0 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] 0 0 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] 0.5 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [Hz]. !------- BLADE PITCH CONTROL ---------------------------------------------- -136 ! PC_GS_n - Amount of gain-scheduling table entries -0. 0.01843267 0.03012466 0.03938211 0.0473159 0.05438725 0.0608399 0.06682165 0.07243603 0.07774601 0.08280179 0.08764533 0.0922973 0.09678511 0.10113084 0.10534505 0.10944741 0.11344459 0.11734245 0.12115249 0.12488383 0.12853954 0.13212927 0.13565125 0.13911823 0.1425236 0.14587973 0.1491875 0.15244657 0.15566288 0.15883986 0.16197375 0.16506986 0.16813214 0.17115907 0.17415428 0.17711497 0.18004808 0.18295399 0.1858281 0.1886768 0.19150248 0.19430239 0.19707534 0.19983015 0.2025582 0.20526628 0.20795513 0.21062023 0.21326861 0.2158935 0.21850484 0.2210941 0.22366803 0.22622254 0.22876498 0.2312836 0.23379345 0.23628255 0.23875941 0.24122279 0.24366729 0.24610036 0.24852176 0.25092855 0.25332325 0.2557023 0.25807209 0.26042559 0.26276748 0.26510036 0.26742092 0.26973036 0.27202782 0.27431492 0.27658881 0.27885401 0.28110964 0.28336045 0.2855962 0.28782076 0.29003745 0.29224346 0.29444004 0.29663204 0.2988061 0.30097858 0.30314198 0.30529447 0.30743825 0.30958 0.31170708 0.31382687 0.31593631 0.3180419 0.32013786 0.32222978 0.32431029 0.32638663 0.32845309 0.33051357 0.33256802 0.33461455 0.33665611 0.33868284 0.34071023 0.34272963 0.34474196 0.34674528 0.34875073 0.35074041 0.35272695 0.35470654 0.35668277 0.35864961 0.36061312 0.36256798 0.36452117 0.36646633 0.36840178 0.37033735 0.3722649 0.37418622 0.37609996 0.37801477 0.37991806 0.38181864 0.38371323 0.38560453 0.38749153 0.38937202 0.39124103 0.39310673 0.39497577 0.39683082 0.39868511 ! PC_GS_angles - Gain-schedule table: pitch angles --0.02019147 -0.01950333 -0.01885443 -0.0182415 -0.01766165 -0.01711225 -0.01659098 -0.01609573 -0.01562459 -0.01517585 -0.01474794 -0.01433946 -0.0139491 -0.01357569 -0.01321814 -0.01287547 -0.01254676 -0.01223119 -0.01192797 -0.0116364 -0.01135581 -0.01108561 -0.01082521 -0.01057411 -0.0103318 -0.01009784 -0.00987181 -0.00965329 -0.00944194 -0.00923739 -0.00903933 -0.00884745 -0.00866147 -0.00848112 -0.00830614 -0.00813631 -0.0079714 -0.00781119 -0.00765549 -0.00750411 -0.00735688 -0.00721362 -0.00707417 -0.0069384 -0.00680614 -0.00667728 -0.00655167 -0.0064292 -0.00630975 -0.00619322 -0.00607949 -0.00596846 -0.00586005 -0.00575415 -0.00565069 -0.00554957 -0.00545073 -0.00535408 -0.00525955 -0.00516708 -0.00507659 -0.00498803 -0.00490133 -0.00481644 -0.00473329 -0.00465184 -0.00457204 -0.00449383 -0.00441716 -0.004342 -0.0042683 -0.00419602 -0.00412511 -0.00405553 -0.00398726 -0.00392025 -0.00385447 -0.00378988 -0.00372646 -0.00366417 -0.00360298 -0.00354286 -0.00348379 -0.00342574 -0.00336868 -0.00331258 -0.00325743 -0.00320319 -0.00314985 -0.00309739 -0.00304578 -0.002995 -0.00294503 -0.00289585 -0.00284745 -0.00279981 -0.0027529 -0.00270671 -0.00266123 -0.00261644 -0.00257232 -0.00252886 -0.00248604 -0.00244385 -0.00240228 -0.00236131 -0.00232093 -0.00228112 -0.00224188 -0.0022032 -0.00216505 -0.00212743 -0.00209033 -0.00205374 -0.00201765 -0.00198204 -0.00194691 -0.00191225 -0.00187805 -0.0018443 -0.00181099 -0.00177811 -0.00174566 -0.00171362 -0.00168199 -0.00165076 -0.00161992 -0.00158947 -0.00155939 -0.00152969 -0.00150035 -0.00147137 -0.00144274 -0.00141446 -0.00138651 -0.0013589 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains --0.00882307 -0.00856411 -0.00831992 -0.00808927 -0.00787106 -0.00766432 -0.00746816 -0.00728178 -0.00710449 -0.00693562 -0.0067746 -0.00662088 -0.00647398 -0.00633346 -0.00619891 -0.00606996 -0.00594626 -0.00582751 -0.0057134 -0.00560368 -0.00549809 -0.00539641 -0.00529842 -0.00520393 -0.00511274 -0.0050247 -0.00493964 -0.00485741 -0.00477787 -0.0047009 -0.00462637 -0.00455416 -0.00448417 -0.0044163 -0.00435046 -0.00428655 -0.00422449 -0.0041642 -0.00410561 -0.00404864 -0.00399324 -0.00393933 -0.00388685 -0.00383576 -0.00378599 -0.00373749 -0.00369023 -0.00364414 -0.00359919 -0.00355534 -0.00351254 -0.00347076 -0.00342996 -0.00339011 -0.00335117 -0.00331312 -0.00327593 -0.00323956 -0.00320399 -0.00316919 -0.00313514 -0.00310181 -0.00306918 -0.00303724 -0.00300595 -0.0029753 -0.00294526 -0.00291583 -0.00288698 -0.0028587 -0.00283096 -0.00280376 -0.00277708 -0.0027509 -0.0027252 -0.00269999 -0.00267523 -0.00265093 -0.00262706 -0.00260362 -0.00258059 -0.00255797 -0.00253574 -0.0025139 -0.00249242 -0.00247131 -0.00245056 -0.00243015 -0.00241008 -0.00239033 -0.00237091 -0.0023518 -0.002333 -0.00231449 -0.00229628 -0.00227835 -0.0022607 -0.00224332 -0.0022262 -0.00220935 -0.00219274 -0.00217639 -0.00216028 -0.0021444 -0.00212876 -0.00211334 -0.00209814 -0.00208316 -0.0020684 -0.00205384 -0.00203948 -0.00202533 -0.00201136 -0.00199759 -0.00198401 -0.00197061 -0.00195739 -0.00194435 -0.00193148 -0.00191878 -0.00190624 -0.00189387 -0.00188166 -0.0018696 -0.0018577 -0.00184595 -0.00183434 -0.00182288 -0.00181157 -0.00180039 -0.00178935 -0.00177844 -0.00176767 -0.00175702 -0.00174651 -0.00173612 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +27 ! PC_GS_n - Amount of gain-scheduling table entries +0.05852874 0.08586931 0.10789716 0.1271165 0.14453395 0.16067791 0.17585826 0.19027256 0.20405942 0.21730904 0.23010311 0.24249689 0.2545414 0.26626371 0.27770397 0.28889173 0.29983774 0.31057221 0.32109644 0.33144053 0.34160524 0.35160739 0.36145513 0.37115299 0.38071093 0.3901412 0.39943831 ! PC_GS_angles - Gain-schedule table: pitch angles +-0.01603382 -0.01396602 -0.01229584 -0.01091865 -0.00976358 -0.00878088 -0.00793467 -0.00719835 -0.00655181 -0.00597959 -0.00546956 -0.00501211 -0.00459951 -0.00422546 -0.00388481 -0.00357328 -0.00328728 -0.0030238 -0.00278028 -0.00255453 -0.00234468 -0.00214911 -0.0019664 -0.00179533 -0.00163481 -0.00148391 -0.00134179 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains +-0.00715561 -0.00639445 -0.00577965 -0.00527271 -0.00484752 -0.00448579 -0.0041743 -0.00390326 -0.00366527 -0.00345463 -0.00326689 -0.0030985 -0.00294662 -0.00280893 -0.00268354 -0.00256886 -0.00246359 -0.0023666 -0.00227696 -0.00219386 -0.00211661 -0.00204462 -0.00197737 -0.0019144 -0.00185531 -0.00179976 -0.00174745 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.5707 ! PC_MaxPit - Maximum physical pitch limit, [rad]. --0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. +-0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. 0.13962 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. -0.13962 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. -122.90957 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +122.90957658394467 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. 0.0 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] 0.003490658 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] 0 ! Z_EnableSine - Enable/disable sine pitch excitation, used to validate for dynamic induction control, will be removed later, [-] @@ -41,63 +41,64 @@ 0 ! Z_PitchFrequency - Frequency of sine pitch excitation, [rad/s] !------- INDIVIDUAL PITCH CONTROL ----------------------------------------- -0.087266 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] -1E-8 0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] -0.436332313 0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. -2.5 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] +0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] !------- VS TORQUE CONTROL ------------------------------------------------ -0.944 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] -43093.55 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] -150000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. -48000.00 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +94.4 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] +43093.55150917838 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +1500000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +47402.906660096225 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. 0.0 ! VS_MinTq - Minimum generator (HSS side), [Nm]. -91.2109 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] -2.33228 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] -5.0E+06 ! VS_RtPwr - Wind turbine rated power [W] -43093.55 ! VS_RtTq - Rated torque, [Nm]. -120.113 ! VS_RefSpd - Rated generator speed [rad/s] +0.0 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] +0.0 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] +5000000 ! VS_RtPwr - Wind turbine rated power [W] +43093.55150917838 ! VS_RtTq - Rated torque, [Nm]. +122.90957658394467 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --835 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) --164 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-889.094048017944 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-172.0461874545648 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +7.4 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad]. !------- SETPOINT SMOOTHER --------------------------------------------- 30 ! SS_VSGainBias - Variable speed torque controller gain bias, [(rad/s)/rad]. 0.001 ! SS_PCGainBias - Collective pitch controller gain bias, [(rad/s)/Nm]. !------- WIND SPEED ESTIMATOR --------------------------------------------- -63.0 ! WE_BladeRadius - Blade length [m] +63.0 ! WE_BladeRadius - Blade length [m] 4 ! WE_CP_n - Amount of parameters in the Cp array -14.571319658214513 42.809556250371465 2.456512501523107 0.003127994078720 ! WE_CP - Parameters that define the parameterized CP(lambda) function -20 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] -97 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] -4.0469564E+07 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +0.0 0.0 0.0 0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function +0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +97.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +40469564.444 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] 1.225 ! WE_RhoAir - Air density, [kg m^-3] "../5MW_Baseline/Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) -320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios -23 ! WE_FOPoles_N - Number of first-order system poles used in EKF -3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.0203 -0.0270 -0.0338 -0.0405 -0.0473 -0.0540 -0.0608 -0.0675 -0.0743 -0.0671 -0.0939 -0.1257 -0.1601 -0.1973 -0.2364 -0.2783 -0.3223 -0.3678 -0.4153 -0.4632 -0.5122 -0.5629 -0.6194 ! WE_FOPoles - First order system poles +320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +42 ! WE_FOPoles_N - Number of first-order system poles used in EKF + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.02665071 -0.02998205 -0.03331339 -0.03664473 -0.03997606 -0.0433074 -0.04663874 -0.04997008 -0.05330142 -0.05663276 -0.0599641 -0.06329543 -0.06662677 -0.06995811 -0.07328945 -0.06321278 -0.07469151 -0.08828579 -0.10297822 -0.11842623 -0.13448765 -0.15120764 -0.168455 -0.18635293 -0.20483641 -0.22395323 -0.24348262 -0.26365771 -0.2842596 -0.30535287 -0.32683352 -0.3487705 -0.37113879 -0.39376001 -0.41675049 -0.44017539 -0.46432564 -0.4888057 -0.51273708 -0.53554138 -0.55932133 -0.58645605 ! WE_FOPoles - First order system poles !------- YAW CONTROL ------------------------------------------------------ -1.745329252 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] -0.17453 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] +0.0 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] 1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC) --0.064 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp --0.0008 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki -0.6283185 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. -1.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. -0.00000 ! Y_MErrSet - Yaw alignment error, set point [rad] -1.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] -0.016667 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] -0.0034906 ! Y_Rate - Yaw rate [rad/s] +0.0 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp +0.0 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki +0.0 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. +0.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. +0.0 ! Y_MErrSet - Yaw alignment error, set point [rad] +0.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] +0.0 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] +0.0 ! Y_Rate - Yaw rate [rad/s] !------- TOWER FORE-AFT DAMPING ------------------------------------------- -1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag -0.1 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] -0.087266 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] +0.0 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] +0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] !------- PEAK SHAVING ------------------------------------------- -210 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) - 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13. 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16. 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17. 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18. 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21. 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22. 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23. 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24. 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] --0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.02962541 -0.02230897 -0.01548946 -0.00915689 -0.00323985 0.00231633 0.00755924 0.01252064 0.01723337 0.02171883 0.02600713 0.03010809 0.03403543 0.03780094 0.04141197 0.0448834 0.04301121 0.04572902 0.04841563 0.05107257 0.05370175 0.05630738 0.05888727 0.06144604 0.06398009 0.06649806 0.06899513 0.07147461 0.07393783 0.0763848 0.07881322 0.08122765 0.08363032 0.08601684 0.0883911 0.09075519 0.09310191 0.09543925 0.09776725 0.10008031 0.1023843 0.10467939 0.10696282 0.10923552 0.11150342 0.11375564 0.11600427 0.118243 0.12047296 0.12269376 0.12490488 0.12711415 0.12931036 0.13150096 0.13368154 0.13585982 0.13803009 0.14018961 0.14234359 0.14449503 0.14663648 0.14877236 0.15089947 0.15302471 0.155141 0.15725402 0.15935959 0.16145813 0.16355132 0.16563963 0.16772494 0.1698033 0.17187555 0.17394191 0.17600722 0.17806499 0.18011745 0.18216164 0.18420446 0.18624091 0.18827655 0.19030833 0.19233052 0.19434885 0.19636357 0.19837593 0.20037883 0.20238383 0.20438058 0.20637502 0.20836358 0.21034732 0.21232885 0.21430571 0.21627763 0.21824694 0.22021326 0.22217222 0.22412743 0.22608217 0.22803347 0.22998291 0.23192295 0.23385759 0.23579759 0.23772869 0.23965799 0.24157841 0.24349944 0.24541689 0.24733152 0.24924241 0.25115108 0.25305646 0.25495687 0.25685379 0.25874221 0.26063593 0.26252242 0.26440664 0.26628698 0.26816398 0.27004031 0.27191147 0.27377527 0.27564404 0.27750921 0.27935984 0.28121741 0.28306997 0.2849209 0.28676631 0.28860828 0.29045122 0.29229007 0.29412417 0.29595331 0.29778415 0.29960719 0.30142759 0.30324755 0.30506054 0.30687771 0.30869136 0.31049896 0.31230004 0.31410149 0.3159051 0.3177027 0.31949741 0.32128578 0.32306955 ! PS_BldPitchMin - Minimum blade pitch angles [rad] +42 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +-0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03275873 0.00083377 0.02543348 0.0448834 0.0667768 0.07915202 0.09113854 0.10280435 0.11420819 0.12538567 0.13636556 0.14716567 0.15780447 0.1683014 0.178663 0.18889865 0.19901765 0.20902392 0.21892797 0.22873221 0.23844548 0.24806675 0.25759734 0.26705022 0.27641741 0.2857055 0.29491896 0.3040543 0.31311378 0.32210299 0.33103247 ! PS_BldPitchMin - Minimum blade pitch angles [rad] diff --git a/Test_Cases/5MW_OC4_ARsteady_Baseline/DISCON.IN b/Test_Cases/5MW_OC4_ARsteady_Baseline/DISCON.IN index 99dee3c36..ef7726c15 100644 --- a/Test_Cases/5MW_OC4_ARsteady_Baseline/DISCON.IN +++ b/Test_Cases/5MW_OC4_ARsteady_Baseline/DISCON.IN @@ -1,5 +1,5 @@ ! Controller parameter input file for the 5MW_Land wind turbine -! - File written using NREL Baseline Controller tuning logic on 10/01/19 +! - File written using NREL Baseline Controller tuning logic on 10/07/19 !------- DEBUG ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file @@ -16,24 +16,24 @@ 1 ! PS_Mode - Peak shaving mode {0: no peak shaving, 1: implement peak shaving} !------- FILTERS ---------------------------------------------------------- -1.570796326 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] +1.543417826848871 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] 0 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2] 0 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] 0 0 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] 0.5 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [Hz]. !------- BLADE PITCH CONTROL ---------------------------------------------- -136 ! PC_GS_n - Amount of gain-scheduling table entries -0. 0.01843267 0.03012466 0.03938211 0.0473159 0.05438725 0.0608399 0.06682165 0.07243603 0.07774601 0.08280179 0.08764533 0.0922973 0.09678511 0.10113084 0.10534505 0.10944741 0.11344459 0.11734245 0.12115249 0.12488383 0.12853954 0.13212927 0.13565125 0.13911823 0.1425236 0.14587973 0.1491875 0.15244657 0.15566288 0.15883986 0.16197375 0.16506986 0.16813214 0.17115907 0.17415428 0.17711497 0.18004808 0.18295399 0.1858281 0.1886768 0.19150248 0.19430239 0.19707534 0.19983015 0.2025582 0.20526628 0.20795513 0.21062023 0.21326861 0.2158935 0.21850484 0.2210941 0.22366803 0.22622254 0.22876498 0.2312836 0.23379345 0.23628255 0.23875941 0.24122279 0.24366729 0.24610036 0.24852176 0.25092855 0.25332325 0.2557023 0.25807209 0.26042559 0.26276748 0.26510036 0.26742092 0.26973036 0.27202782 0.27431492 0.27658881 0.27885401 0.28110964 0.28336045 0.2855962 0.28782076 0.29003745 0.29224346 0.29444004 0.29663204 0.2988061 0.30097858 0.30314198 0.30529447 0.30743825 0.30958 0.31170708 0.31382687 0.31593631 0.3180419 0.32013786 0.32222978 0.32431029 0.32638663 0.32845309 0.33051357 0.33256802 0.33461455 0.33665611 0.33868284 0.34071023 0.34272963 0.34474196 0.34674528 0.34875073 0.35074041 0.35272695 0.35470654 0.35668277 0.35864961 0.36061312 0.36256798 0.36452117 0.36646633 0.36840178 0.37033735 0.3722649 0.37418622 0.37609996 0.37801477 0.37991806 0.38181864 0.38371323 0.38560453 0.38749153 0.38937202 0.39124103 0.39310673 0.39497577 0.39683082 0.39868511 ! PC_GS_angles - Gain-schedule table: pitch angles --0.02019147 -0.01950333 -0.01885443 -0.0182415 -0.01766165 -0.01711225 -0.01659098 -0.01609573 -0.01562459 -0.01517585 -0.01474794 -0.01433946 -0.0139491 -0.01357569 -0.01321814 -0.01287547 -0.01254676 -0.01223119 -0.01192797 -0.0116364 -0.01135581 -0.01108561 -0.01082521 -0.01057411 -0.0103318 -0.01009784 -0.00987181 -0.00965329 -0.00944194 -0.00923739 -0.00903933 -0.00884745 -0.00866147 -0.00848112 -0.00830614 -0.00813631 -0.0079714 -0.00781119 -0.00765549 -0.00750411 -0.00735688 -0.00721362 -0.00707417 -0.0069384 -0.00680614 -0.00667728 -0.00655167 -0.0064292 -0.00630975 -0.00619322 -0.00607949 -0.00596846 -0.00586005 -0.00575415 -0.00565069 -0.00554957 -0.00545073 -0.00535408 -0.00525955 -0.00516708 -0.00507659 -0.00498803 -0.00490133 -0.00481644 -0.00473329 -0.00465184 -0.00457204 -0.00449383 -0.00441716 -0.004342 -0.0042683 -0.00419602 -0.00412511 -0.00405553 -0.00398726 -0.00392025 -0.00385447 -0.00378988 -0.00372646 -0.00366417 -0.00360298 -0.00354286 -0.00348379 -0.00342574 -0.00336868 -0.00331258 -0.00325743 -0.00320319 -0.00314985 -0.00309739 -0.00304578 -0.002995 -0.00294503 -0.00289585 -0.00284745 -0.00279981 -0.0027529 -0.00270671 -0.00266123 -0.00261644 -0.00257232 -0.00252886 -0.00248604 -0.00244385 -0.00240228 -0.00236131 -0.00232093 -0.00228112 -0.00224188 -0.0022032 -0.00216505 -0.00212743 -0.00209033 -0.00205374 -0.00201765 -0.00198204 -0.00194691 -0.00191225 -0.00187805 -0.0018443 -0.00181099 -0.00177811 -0.00174566 -0.00171362 -0.00168199 -0.00165076 -0.00161992 -0.00158947 -0.00155939 -0.00152969 -0.00150035 -0.00147137 -0.00144274 -0.00141446 -0.00138651 -0.0013589 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains --0.00882307 -0.00856411 -0.00831992 -0.00808927 -0.00787106 -0.00766432 -0.00746816 -0.00728178 -0.00710449 -0.00693562 -0.0067746 -0.00662088 -0.00647398 -0.00633346 -0.00619891 -0.00606996 -0.00594626 -0.00582751 -0.0057134 -0.00560368 -0.00549809 -0.00539641 -0.00529842 -0.00520393 -0.00511274 -0.0050247 -0.00493964 -0.00485741 -0.00477787 -0.0047009 -0.00462637 -0.00455416 -0.00448417 -0.0044163 -0.00435046 -0.00428655 -0.00422449 -0.0041642 -0.00410561 -0.00404864 -0.00399324 -0.00393933 -0.00388685 -0.00383576 -0.00378599 -0.00373749 -0.00369023 -0.00364414 -0.00359919 -0.00355534 -0.00351254 -0.00347076 -0.00342996 -0.00339011 -0.00335117 -0.00331312 -0.00327593 -0.00323956 -0.00320399 -0.00316919 -0.00313514 -0.00310181 -0.00306918 -0.00303724 -0.00300595 -0.0029753 -0.00294526 -0.00291583 -0.00288698 -0.0028587 -0.00283096 -0.00280376 -0.00277708 -0.0027509 -0.0027252 -0.00269999 -0.00267523 -0.00265093 -0.00262706 -0.00260362 -0.00258059 -0.00255797 -0.00253574 -0.0025139 -0.00249242 -0.00247131 -0.00245056 -0.00243015 -0.00241008 -0.00239033 -0.00237091 -0.0023518 -0.002333 -0.00231449 -0.00229628 -0.00227835 -0.0022607 -0.00224332 -0.0022262 -0.00220935 -0.00219274 -0.00217639 -0.00216028 -0.0021444 -0.00212876 -0.00211334 -0.00209814 -0.00208316 -0.0020684 -0.00205384 -0.00203948 -0.00202533 -0.00201136 -0.00199759 -0.00198401 -0.00197061 -0.00195739 -0.00194435 -0.00193148 -0.00191878 -0.00190624 -0.00189387 -0.00188166 -0.0018696 -0.0018577 -0.00184595 -0.00183434 -0.00182288 -0.00181157 -0.00180039 -0.00178935 -0.00177844 -0.00176767 -0.00175702 -0.00174651 -0.00173612 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +27 ! PC_GS_n - Amount of gain-scheduling table entries +0.05852874 0.08586931 0.10789716 0.1271165 0.14453395 0.16067791 0.17585826 0.19027256 0.20405942 0.21730904 0.23010311 0.24249689 0.2545414 0.26626371 0.27770397 0.28889173 0.29983774 0.31057221 0.32109644 0.33144053 0.34160524 0.35160739 0.36145513 0.37115299 0.38071093 0.3901412 0.39943831 ! PC_GS_angles - Gain-schedule table: pitch angles +-0.01603382 -0.01396602 -0.01229584 -0.01091865 -0.00976358 -0.00878088 -0.00793467 -0.00719835 -0.00655181 -0.00597959 -0.00546956 -0.00501211 -0.00459951 -0.00422546 -0.00388481 -0.00357328 -0.00328728 -0.0030238 -0.00278028 -0.00255453 -0.00234468 -0.00214911 -0.0019664 -0.00179533 -0.00163481 -0.00148391 -0.00134179 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains +-0.00715561 -0.00639445 -0.00577965 -0.00527271 -0.00484752 -0.00448579 -0.0041743 -0.00390326 -0.00366527 -0.00345463 -0.00326689 -0.0030985 -0.00294662 -0.00280893 -0.00268354 -0.00256886 -0.00246359 -0.0023666 -0.00227696 -0.00219386 -0.00211661 -0.00204462 -0.00197737 -0.0019144 -0.00185531 -0.00179976 -0.00174745 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.5707 ! PC_MaxPit - Maximum physical pitch limit, [rad]. --0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. +-0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. 0.13962 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. -0.13962 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. -122.90957 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +122.90957658394467 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. 0.0 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] 0.003490658 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] 0 ! Z_EnableSine - Enable/disable sine pitch excitation, used to validate for dynamic induction control, will be removed later, [-] @@ -41,63 +41,64 @@ 0 ! Z_PitchFrequency - Frequency of sine pitch excitation, [rad/s] !------- INDIVIDUAL PITCH CONTROL ----------------------------------------- -0.087266 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] -1E-8 0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] -0.436332313 0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. -2.5 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] +0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] !------- VS TORQUE CONTROL ------------------------------------------------ -0.944 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] -43093.55 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] -150000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. -48000.00 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +94.4 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] +43093.55150917838 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +1500000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +47402.906660096225 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. 0.0 ! VS_MinTq - Minimum generator (HSS side), [Nm]. -91.2109 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] -2.33228 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] -5.0E+06 ! VS_RtPwr - Wind turbine rated power [W] -43093.55 ! VS_RtTq - Rated torque, [Nm]. -120.113 ! VS_RefSpd - Rated generator speed [rad/s] +0.0 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] +0.0 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] +5000000 ! VS_RtPwr - Wind turbine rated power [W] +43093.55150917838 ! VS_RtTq - Rated torque, [Nm]. +122.90957658394467 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --835 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) --164 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-889.094048017944 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-172.0461874545648 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +7.4 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad]. !------- SETPOINT SMOOTHER --------------------------------------------- 30 ! SS_VSGainBias - Variable speed torque controller gain bias, [(rad/s)/rad]. 0.001 ! SS_PCGainBias - Collective pitch controller gain bias, [(rad/s)/Nm]. !------- WIND SPEED ESTIMATOR --------------------------------------------- -63.0 ! WE_BladeRadius - Blade length [m] +63.0 ! WE_BladeRadius - Blade length [m] 4 ! WE_CP_n - Amount of parameters in the Cp array -14.571319658214513 42.809556250371465 2.456512501523107 0.003127994078720 ! WE_CP - Parameters that define the parameterized CP(lambda) function -20 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] -97 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] -4.0469564E+07 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +0.0 0.0 0.0 0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function +0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +97.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +40469564.444 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] 1.225 ! WE_RhoAir - Air density, [kg m^-3] "../5MW_Baseline/Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) -320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios -23 ! WE_FOPoles_N - Number of first-order system poles used in EKF -3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.0203 -0.0270 -0.0338 -0.0405 -0.0473 -0.0540 -0.0608 -0.0675 -0.0743 -0.0671 -0.0939 -0.1257 -0.1601 -0.1973 -0.2364 -0.2783 -0.3223 -0.3678 -0.4153 -0.4632 -0.5122 -0.5629 -0.6194 ! WE_FOPoles - First order system poles +320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +42 ! WE_FOPoles_N - Number of first-order system poles used in EKF + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.02665071 -0.02998205 -0.03331339 -0.03664473 -0.03997606 -0.0433074 -0.04663874 -0.04997008 -0.05330142 -0.05663276 -0.0599641 -0.06329543 -0.06662677 -0.06995811 -0.07328945 -0.06321278 -0.07469151 -0.08828579 -0.10297822 -0.11842623 -0.13448765 -0.15120764 -0.168455 -0.18635293 -0.20483641 -0.22395323 -0.24348262 -0.26365771 -0.2842596 -0.30535287 -0.32683352 -0.3487705 -0.37113879 -0.39376001 -0.41675049 -0.44017539 -0.46432564 -0.4888057 -0.51273708 -0.53554138 -0.55932133 -0.58645605 ! WE_FOPoles - First order system poles !------- YAW CONTROL ------------------------------------------------------ -1.745329252 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] -0.17453 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] +0.0 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] 1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC) --0.064 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp --0.0008 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki -0.6283185 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. -1.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. -0.00000 ! Y_MErrSet - Yaw alignment error, set point [rad] -1.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] -0.016667 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] -0.0034906 ! Y_Rate - Yaw rate [rad/s] +0.0 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp +0.0 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki +0.0 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. +0.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. +0.0 ! Y_MErrSet - Yaw alignment error, set point [rad] +0.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] +0.0 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] +0.0 ! Y_Rate - Yaw rate [rad/s] !------- TOWER FORE-AFT DAMPING ------------------------------------------- -1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag -0.1 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] -0.087266 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] +0.0 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] +0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] !------- PEAK SHAVING ------------------------------------------- -210 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) - 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13. 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16. 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17. 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18. 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21. 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22. 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23. 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24. 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] --0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.02962541 -0.02230897 -0.01548946 -0.00915689 -0.00323985 0.00231633 0.00755924 0.01252064 0.01723337 0.02171883 0.02600713 0.03010809 0.03403543 0.03780094 0.04141197 0.0448834 0.04301121 0.04572902 0.04841563 0.05107257 0.05370175 0.05630738 0.05888727 0.06144604 0.06398009 0.06649806 0.06899513 0.07147461 0.07393783 0.0763848 0.07881322 0.08122765 0.08363032 0.08601684 0.0883911 0.09075519 0.09310191 0.09543925 0.09776725 0.10008031 0.1023843 0.10467939 0.10696282 0.10923552 0.11150342 0.11375564 0.11600427 0.118243 0.12047296 0.12269376 0.12490488 0.12711415 0.12931036 0.13150096 0.13368154 0.13585982 0.13803009 0.14018961 0.14234359 0.14449503 0.14663648 0.14877236 0.15089947 0.15302471 0.155141 0.15725402 0.15935959 0.16145813 0.16355132 0.16563963 0.16772494 0.1698033 0.17187555 0.17394191 0.17600722 0.17806499 0.18011745 0.18216164 0.18420446 0.18624091 0.18827655 0.19030833 0.19233052 0.19434885 0.19636357 0.19837593 0.20037883 0.20238383 0.20438058 0.20637502 0.20836358 0.21034732 0.21232885 0.21430571 0.21627763 0.21824694 0.22021326 0.22217222 0.22412743 0.22608217 0.22803347 0.22998291 0.23192295 0.23385759 0.23579759 0.23772869 0.23965799 0.24157841 0.24349944 0.24541689 0.24733152 0.24924241 0.25115108 0.25305646 0.25495687 0.25685379 0.25874221 0.26063593 0.26252242 0.26440664 0.26628698 0.26816398 0.27004031 0.27191147 0.27377527 0.27564404 0.27750921 0.27935984 0.28121741 0.28306997 0.2849209 0.28676631 0.28860828 0.29045122 0.29229007 0.29412417 0.29595331 0.29778415 0.29960719 0.30142759 0.30324755 0.30506054 0.30687771 0.30869136 0.31049896 0.31230004 0.31410149 0.3159051 0.3177027 0.31949741 0.32128578 0.32306955 ! PS_BldPitchMin - Minimum blade pitch angles [rad] +42 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +-0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03275873 0.00083377 0.02543348 0.0448834 0.0667768 0.07915202 0.09113854 0.10280435 0.11420819 0.12538567 0.13636556 0.14716567 0.15780447 0.1683014 0.178663 0.18889865 0.19901765 0.20902392 0.21892797 0.22873221 0.23844548 0.24806675 0.25759734 0.26705022 0.27641741 0.2857055 0.29491896 0.3040543 0.31311378 0.32210299 0.33103247 ! PS_BldPitchMin - Minimum blade pitch angles [rad] diff --git a/Test_Cases/5MW_OC4_ARsteady_Legacy/NRELOffshrBsline5MW_OC4DeepCwindSemi_ServoDyn.dat b/Test_Cases/5MW_OC4_ARsteady_Legacy/NRELOffshrBsline5MW_OC4DeepCwindSemi_ServoDyn.dat index cf8909fc0..26d16dbeb 100644 --- a/Test_Cases/5MW_OC4_ARsteady_Legacy/NRELOffshrBsline5MW_OC4DeepCwindSemi_ServoDyn.dat +++ b/Test_Cases/5MW_OC4_ARsteady_Legacy/NRELOffshrBsline5MW_OC4DeepCwindSemi_ServoDyn.dat @@ -63,7 +63,7 @@ False CompNTMD - Compute nacelle tuned mass damper {true/false} (fla False CompTTMD - Compute tower tuned mass damper {true/false} (flag) "unused" TTMDfile - Name of the file for tower tuned mass damper (quoted string) [unused when CompTTMD is false] ---------------------- BLADED INTERFACE ---------------------------------------- [used only with Bladed Interface] -"../5MW_Baseline/DISCON/DISCON_OC3Hywind.dll" DLL_FileName - Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface] +"../5MW_Baseline/DISCON/DISCON.dll" DLL_FileName - Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface] "DISCON.IN" DLL_InFile - Name of input file sent to the DLL (-) [used only with Bladed Interface] "DISCON" DLL_ProcName - Name of procedure in DLL to be called (-) [case sensitive; used only with DLL Interface] "default" DLL_DT - Communication interval for dynamic library (s) (or "default") [used only with Bladed Interface] diff --git a/Test_Cases/5MW_OC4_MH_Baseline/DISCON.IN b/Test_Cases/5MW_OC4_MH_Baseline/DISCON.IN index 99dee3c36..ef7726c15 100644 --- a/Test_Cases/5MW_OC4_MH_Baseline/DISCON.IN +++ b/Test_Cases/5MW_OC4_MH_Baseline/DISCON.IN @@ -1,5 +1,5 @@ ! Controller parameter input file for the 5MW_Land wind turbine -! - File written using NREL Baseline Controller tuning logic on 10/01/19 +! - File written using NREL Baseline Controller tuning logic on 10/07/19 !------- DEBUG ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file @@ -16,24 +16,24 @@ 1 ! PS_Mode - Peak shaving mode {0: no peak shaving, 1: implement peak shaving} !------- FILTERS ---------------------------------------------------------- -1.570796326 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] +1.543417826848871 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] 0 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2] 0 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] 0 0 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] 0.5 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [Hz]. !------- BLADE PITCH CONTROL ---------------------------------------------- -136 ! PC_GS_n - Amount of gain-scheduling table entries -0. 0.01843267 0.03012466 0.03938211 0.0473159 0.05438725 0.0608399 0.06682165 0.07243603 0.07774601 0.08280179 0.08764533 0.0922973 0.09678511 0.10113084 0.10534505 0.10944741 0.11344459 0.11734245 0.12115249 0.12488383 0.12853954 0.13212927 0.13565125 0.13911823 0.1425236 0.14587973 0.1491875 0.15244657 0.15566288 0.15883986 0.16197375 0.16506986 0.16813214 0.17115907 0.17415428 0.17711497 0.18004808 0.18295399 0.1858281 0.1886768 0.19150248 0.19430239 0.19707534 0.19983015 0.2025582 0.20526628 0.20795513 0.21062023 0.21326861 0.2158935 0.21850484 0.2210941 0.22366803 0.22622254 0.22876498 0.2312836 0.23379345 0.23628255 0.23875941 0.24122279 0.24366729 0.24610036 0.24852176 0.25092855 0.25332325 0.2557023 0.25807209 0.26042559 0.26276748 0.26510036 0.26742092 0.26973036 0.27202782 0.27431492 0.27658881 0.27885401 0.28110964 0.28336045 0.2855962 0.28782076 0.29003745 0.29224346 0.29444004 0.29663204 0.2988061 0.30097858 0.30314198 0.30529447 0.30743825 0.30958 0.31170708 0.31382687 0.31593631 0.3180419 0.32013786 0.32222978 0.32431029 0.32638663 0.32845309 0.33051357 0.33256802 0.33461455 0.33665611 0.33868284 0.34071023 0.34272963 0.34474196 0.34674528 0.34875073 0.35074041 0.35272695 0.35470654 0.35668277 0.35864961 0.36061312 0.36256798 0.36452117 0.36646633 0.36840178 0.37033735 0.3722649 0.37418622 0.37609996 0.37801477 0.37991806 0.38181864 0.38371323 0.38560453 0.38749153 0.38937202 0.39124103 0.39310673 0.39497577 0.39683082 0.39868511 ! PC_GS_angles - Gain-schedule table: pitch angles --0.02019147 -0.01950333 -0.01885443 -0.0182415 -0.01766165 -0.01711225 -0.01659098 -0.01609573 -0.01562459 -0.01517585 -0.01474794 -0.01433946 -0.0139491 -0.01357569 -0.01321814 -0.01287547 -0.01254676 -0.01223119 -0.01192797 -0.0116364 -0.01135581 -0.01108561 -0.01082521 -0.01057411 -0.0103318 -0.01009784 -0.00987181 -0.00965329 -0.00944194 -0.00923739 -0.00903933 -0.00884745 -0.00866147 -0.00848112 -0.00830614 -0.00813631 -0.0079714 -0.00781119 -0.00765549 -0.00750411 -0.00735688 -0.00721362 -0.00707417 -0.0069384 -0.00680614 -0.00667728 -0.00655167 -0.0064292 -0.00630975 -0.00619322 -0.00607949 -0.00596846 -0.00586005 -0.00575415 -0.00565069 -0.00554957 -0.00545073 -0.00535408 -0.00525955 -0.00516708 -0.00507659 -0.00498803 -0.00490133 -0.00481644 -0.00473329 -0.00465184 -0.00457204 -0.00449383 -0.00441716 -0.004342 -0.0042683 -0.00419602 -0.00412511 -0.00405553 -0.00398726 -0.00392025 -0.00385447 -0.00378988 -0.00372646 -0.00366417 -0.00360298 -0.00354286 -0.00348379 -0.00342574 -0.00336868 -0.00331258 -0.00325743 -0.00320319 -0.00314985 -0.00309739 -0.00304578 -0.002995 -0.00294503 -0.00289585 -0.00284745 -0.00279981 -0.0027529 -0.00270671 -0.00266123 -0.00261644 -0.00257232 -0.00252886 -0.00248604 -0.00244385 -0.00240228 -0.00236131 -0.00232093 -0.00228112 -0.00224188 -0.0022032 -0.00216505 -0.00212743 -0.00209033 -0.00205374 -0.00201765 -0.00198204 -0.00194691 -0.00191225 -0.00187805 -0.0018443 -0.00181099 -0.00177811 -0.00174566 -0.00171362 -0.00168199 -0.00165076 -0.00161992 -0.00158947 -0.00155939 -0.00152969 -0.00150035 -0.00147137 -0.00144274 -0.00141446 -0.00138651 -0.0013589 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains --0.00882307 -0.00856411 -0.00831992 -0.00808927 -0.00787106 -0.00766432 -0.00746816 -0.00728178 -0.00710449 -0.00693562 -0.0067746 -0.00662088 -0.00647398 -0.00633346 -0.00619891 -0.00606996 -0.00594626 -0.00582751 -0.0057134 -0.00560368 -0.00549809 -0.00539641 -0.00529842 -0.00520393 -0.00511274 -0.0050247 -0.00493964 -0.00485741 -0.00477787 -0.0047009 -0.00462637 -0.00455416 -0.00448417 -0.0044163 -0.00435046 -0.00428655 -0.00422449 -0.0041642 -0.00410561 -0.00404864 -0.00399324 -0.00393933 -0.00388685 -0.00383576 -0.00378599 -0.00373749 -0.00369023 -0.00364414 -0.00359919 -0.00355534 -0.00351254 -0.00347076 -0.00342996 -0.00339011 -0.00335117 -0.00331312 -0.00327593 -0.00323956 -0.00320399 -0.00316919 -0.00313514 -0.00310181 -0.00306918 -0.00303724 -0.00300595 -0.0029753 -0.00294526 -0.00291583 -0.00288698 -0.0028587 -0.00283096 -0.00280376 -0.00277708 -0.0027509 -0.0027252 -0.00269999 -0.00267523 -0.00265093 -0.00262706 -0.00260362 -0.00258059 -0.00255797 -0.00253574 -0.0025139 -0.00249242 -0.00247131 -0.00245056 -0.00243015 -0.00241008 -0.00239033 -0.00237091 -0.0023518 -0.002333 -0.00231449 -0.00229628 -0.00227835 -0.0022607 -0.00224332 -0.0022262 -0.00220935 -0.00219274 -0.00217639 -0.00216028 -0.0021444 -0.00212876 -0.00211334 -0.00209814 -0.00208316 -0.0020684 -0.00205384 -0.00203948 -0.00202533 -0.00201136 -0.00199759 -0.00198401 -0.00197061 -0.00195739 -0.00194435 -0.00193148 -0.00191878 -0.00190624 -0.00189387 -0.00188166 -0.0018696 -0.0018577 -0.00184595 -0.00183434 -0.00182288 -0.00181157 -0.00180039 -0.00178935 -0.00177844 -0.00176767 -0.00175702 -0.00174651 -0.00173612 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +27 ! PC_GS_n - Amount of gain-scheduling table entries +0.05852874 0.08586931 0.10789716 0.1271165 0.14453395 0.16067791 0.17585826 0.19027256 0.20405942 0.21730904 0.23010311 0.24249689 0.2545414 0.26626371 0.27770397 0.28889173 0.29983774 0.31057221 0.32109644 0.33144053 0.34160524 0.35160739 0.36145513 0.37115299 0.38071093 0.3901412 0.39943831 ! PC_GS_angles - Gain-schedule table: pitch angles +-0.01603382 -0.01396602 -0.01229584 -0.01091865 -0.00976358 -0.00878088 -0.00793467 -0.00719835 -0.00655181 -0.00597959 -0.00546956 -0.00501211 -0.00459951 -0.00422546 -0.00388481 -0.00357328 -0.00328728 -0.0030238 -0.00278028 -0.00255453 -0.00234468 -0.00214911 -0.0019664 -0.00179533 -0.00163481 -0.00148391 -0.00134179 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains +-0.00715561 -0.00639445 -0.00577965 -0.00527271 -0.00484752 -0.00448579 -0.0041743 -0.00390326 -0.00366527 -0.00345463 -0.00326689 -0.0030985 -0.00294662 -0.00280893 -0.00268354 -0.00256886 -0.00246359 -0.0023666 -0.00227696 -0.00219386 -0.00211661 -0.00204462 -0.00197737 -0.0019144 -0.00185531 -0.00179976 -0.00174745 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.5707 ! PC_MaxPit - Maximum physical pitch limit, [rad]. --0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. +-0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. 0.13962 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. -0.13962 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. -122.90957 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +122.90957658394467 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. 0.0 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] 0.003490658 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] 0 ! Z_EnableSine - Enable/disable sine pitch excitation, used to validate for dynamic induction control, will be removed later, [-] @@ -41,63 +41,64 @@ 0 ! Z_PitchFrequency - Frequency of sine pitch excitation, [rad/s] !------- INDIVIDUAL PITCH CONTROL ----------------------------------------- -0.087266 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] -1E-8 0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] -0.436332313 0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. -2.5 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] +0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] !------- VS TORQUE CONTROL ------------------------------------------------ -0.944 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] -43093.55 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] -150000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. -48000.00 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +94.4 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] +43093.55150917838 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +1500000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +47402.906660096225 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. 0.0 ! VS_MinTq - Minimum generator (HSS side), [Nm]. -91.2109 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] -2.33228 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] -5.0E+06 ! VS_RtPwr - Wind turbine rated power [W] -43093.55 ! VS_RtTq - Rated torque, [Nm]. -120.113 ! VS_RefSpd - Rated generator speed [rad/s] +0.0 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] +0.0 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] +5000000 ! VS_RtPwr - Wind turbine rated power [W] +43093.55150917838 ! VS_RtTq - Rated torque, [Nm]. +122.90957658394467 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --835 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) --164 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-889.094048017944 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-172.0461874545648 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +7.4 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad]. !------- SETPOINT SMOOTHER --------------------------------------------- 30 ! SS_VSGainBias - Variable speed torque controller gain bias, [(rad/s)/rad]. 0.001 ! SS_PCGainBias - Collective pitch controller gain bias, [(rad/s)/Nm]. !------- WIND SPEED ESTIMATOR --------------------------------------------- -63.0 ! WE_BladeRadius - Blade length [m] +63.0 ! WE_BladeRadius - Blade length [m] 4 ! WE_CP_n - Amount of parameters in the Cp array -14.571319658214513 42.809556250371465 2.456512501523107 0.003127994078720 ! WE_CP - Parameters that define the parameterized CP(lambda) function -20 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] -97 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] -4.0469564E+07 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +0.0 0.0 0.0 0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function +0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +97.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +40469564.444 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] 1.225 ! WE_RhoAir - Air density, [kg m^-3] "../5MW_Baseline/Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) -320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios -23 ! WE_FOPoles_N - Number of first-order system poles used in EKF -3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.0203 -0.0270 -0.0338 -0.0405 -0.0473 -0.0540 -0.0608 -0.0675 -0.0743 -0.0671 -0.0939 -0.1257 -0.1601 -0.1973 -0.2364 -0.2783 -0.3223 -0.3678 -0.4153 -0.4632 -0.5122 -0.5629 -0.6194 ! WE_FOPoles - First order system poles +320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +42 ! WE_FOPoles_N - Number of first-order system poles used in EKF + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.02665071 -0.02998205 -0.03331339 -0.03664473 -0.03997606 -0.0433074 -0.04663874 -0.04997008 -0.05330142 -0.05663276 -0.0599641 -0.06329543 -0.06662677 -0.06995811 -0.07328945 -0.06321278 -0.07469151 -0.08828579 -0.10297822 -0.11842623 -0.13448765 -0.15120764 -0.168455 -0.18635293 -0.20483641 -0.22395323 -0.24348262 -0.26365771 -0.2842596 -0.30535287 -0.32683352 -0.3487705 -0.37113879 -0.39376001 -0.41675049 -0.44017539 -0.46432564 -0.4888057 -0.51273708 -0.53554138 -0.55932133 -0.58645605 ! WE_FOPoles - First order system poles !------- YAW CONTROL ------------------------------------------------------ -1.745329252 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] -0.17453 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] +0.0 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] 1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC) --0.064 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp --0.0008 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki -0.6283185 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. -1.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. -0.00000 ! Y_MErrSet - Yaw alignment error, set point [rad] -1.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] -0.016667 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] -0.0034906 ! Y_Rate - Yaw rate [rad/s] +0.0 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp +0.0 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki +0.0 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. +0.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. +0.0 ! Y_MErrSet - Yaw alignment error, set point [rad] +0.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] +0.0 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] +0.0 ! Y_Rate - Yaw rate [rad/s] !------- TOWER FORE-AFT DAMPING ------------------------------------------- -1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag -0.1 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] -0.087266 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] +0.0 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] +0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] !------- PEAK SHAVING ------------------------------------------- -210 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) - 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13. 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16. 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17. 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18. 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21. 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22. 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23. 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24. 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] --0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.02962541 -0.02230897 -0.01548946 -0.00915689 -0.00323985 0.00231633 0.00755924 0.01252064 0.01723337 0.02171883 0.02600713 0.03010809 0.03403543 0.03780094 0.04141197 0.0448834 0.04301121 0.04572902 0.04841563 0.05107257 0.05370175 0.05630738 0.05888727 0.06144604 0.06398009 0.06649806 0.06899513 0.07147461 0.07393783 0.0763848 0.07881322 0.08122765 0.08363032 0.08601684 0.0883911 0.09075519 0.09310191 0.09543925 0.09776725 0.10008031 0.1023843 0.10467939 0.10696282 0.10923552 0.11150342 0.11375564 0.11600427 0.118243 0.12047296 0.12269376 0.12490488 0.12711415 0.12931036 0.13150096 0.13368154 0.13585982 0.13803009 0.14018961 0.14234359 0.14449503 0.14663648 0.14877236 0.15089947 0.15302471 0.155141 0.15725402 0.15935959 0.16145813 0.16355132 0.16563963 0.16772494 0.1698033 0.17187555 0.17394191 0.17600722 0.17806499 0.18011745 0.18216164 0.18420446 0.18624091 0.18827655 0.19030833 0.19233052 0.19434885 0.19636357 0.19837593 0.20037883 0.20238383 0.20438058 0.20637502 0.20836358 0.21034732 0.21232885 0.21430571 0.21627763 0.21824694 0.22021326 0.22217222 0.22412743 0.22608217 0.22803347 0.22998291 0.23192295 0.23385759 0.23579759 0.23772869 0.23965799 0.24157841 0.24349944 0.24541689 0.24733152 0.24924241 0.25115108 0.25305646 0.25495687 0.25685379 0.25874221 0.26063593 0.26252242 0.26440664 0.26628698 0.26816398 0.27004031 0.27191147 0.27377527 0.27564404 0.27750921 0.27935984 0.28121741 0.28306997 0.2849209 0.28676631 0.28860828 0.29045122 0.29229007 0.29412417 0.29595331 0.29778415 0.29960719 0.30142759 0.30324755 0.30506054 0.30687771 0.30869136 0.31049896 0.31230004 0.31410149 0.3159051 0.3177027 0.31949741 0.32128578 0.32306955 ! PS_BldPitchMin - Minimum blade pitch angles [rad] +42 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +-0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03275873 0.00083377 0.02543348 0.0448834 0.0667768 0.07915202 0.09113854 0.10280435 0.11420819 0.12538567 0.13636556 0.14716567 0.15780447 0.1683014 0.178663 0.18889865 0.19901765 0.20902392 0.21892797 0.22873221 0.23844548 0.24806675 0.25759734 0.26705022 0.27641741 0.2857055 0.29491896 0.3040543 0.31311378 0.32210299 0.33103247 ! PS_BldPitchMin - Minimum blade pitch angles [rad] diff --git a/Test_Cases/5MW_OC4_MH_Legacy/NRELOffshrBsline5MW_OC4DeepCwindSemi_ServoDyn.dat b/Test_Cases/5MW_OC4_MH_Legacy/NRELOffshrBsline5MW_OC4DeepCwindSemi_ServoDyn.dat index cf8909fc0..26d16dbeb 100644 --- a/Test_Cases/5MW_OC4_MH_Legacy/NRELOffshrBsline5MW_OC4DeepCwindSemi_ServoDyn.dat +++ b/Test_Cases/5MW_OC4_MH_Legacy/NRELOffshrBsline5MW_OC4DeepCwindSemi_ServoDyn.dat @@ -63,7 +63,7 @@ False CompNTMD - Compute nacelle tuned mass damper {true/false} (fla False CompTTMD - Compute tower tuned mass damper {true/false} (flag) "unused" TTMDfile - Name of the file for tower tuned mass damper (quoted string) [unused when CompTTMD is false] ---------------------- BLADED INTERFACE ---------------------------------------- [used only with Bladed Interface] -"../5MW_Baseline/DISCON/DISCON_OC3Hywind.dll" DLL_FileName - Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface] +"../5MW_Baseline/DISCON/DISCON.dll" DLL_FileName - Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface] "DISCON.IN" DLL_InFile - Name of input file sent to the DLL (-) [used only with Bladed Interface] "DISCON" DLL_ProcName - Name of procedure in DLL to be called (-) [case sensitive; used only with DLL Interface] "default" DLL_DT - Communication interval for dynamic library (s) (or "default") [used only with Bladed Interface] diff --git a/Test_Cases/5MW_OC4_NR_Baseline/DISCON.IN b/Test_Cases/5MW_OC4_NR_Baseline/DISCON.IN index 99dee3c36..ef7726c15 100644 --- a/Test_Cases/5MW_OC4_NR_Baseline/DISCON.IN +++ b/Test_Cases/5MW_OC4_NR_Baseline/DISCON.IN @@ -1,5 +1,5 @@ ! Controller parameter input file for the 5MW_Land wind turbine -! - File written using NREL Baseline Controller tuning logic on 10/01/19 +! - File written using NREL Baseline Controller tuning logic on 10/07/19 !------- DEBUG ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file @@ -16,24 +16,24 @@ 1 ! PS_Mode - Peak shaving mode {0: no peak shaving, 1: implement peak shaving} !------- FILTERS ---------------------------------------------------------- -1.570796326 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] +1.543417826848871 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] 0 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2] 0 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] 0 0 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] 0.5 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [Hz]. !------- BLADE PITCH CONTROL ---------------------------------------------- -136 ! PC_GS_n - Amount of gain-scheduling table entries -0. 0.01843267 0.03012466 0.03938211 0.0473159 0.05438725 0.0608399 0.06682165 0.07243603 0.07774601 0.08280179 0.08764533 0.0922973 0.09678511 0.10113084 0.10534505 0.10944741 0.11344459 0.11734245 0.12115249 0.12488383 0.12853954 0.13212927 0.13565125 0.13911823 0.1425236 0.14587973 0.1491875 0.15244657 0.15566288 0.15883986 0.16197375 0.16506986 0.16813214 0.17115907 0.17415428 0.17711497 0.18004808 0.18295399 0.1858281 0.1886768 0.19150248 0.19430239 0.19707534 0.19983015 0.2025582 0.20526628 0.20795513 0.21062023 0.21326861 0.2158935 0.21850484 0.2210941 0.22366803 0.22622254 0.22876498 0.2312836 0.23379345 0.23628255 0.23875941 0.24122279 0.24366729 0.24610036 0.24852176 0.25092855 0.25332325 0.2557023 0.25807209 0.26042559 0.26276748 0.26510036 0.26742092 0.26973036 0.27202782 0.27431492 0.27658881 0.27885401 0.28110964 0.28336045 0.2855962 0.28782076 0.29003745 0.29224346 0.29444004 0.29663204 0.2988061 0.30097858 0.30314198 0.30529447 0.30743825 0.30958 0.31170708 0.31382687 0.31593631 0.3180419 0.32013786 0.32222978 0.32431029 0.32638663 0.32845309 0.33051357 0.33256802 0.33461455 0.33665611 0.33868284 0.34071023 0.34272963 0.34474196 0.34674528 0.34875073 0.35074041 0.35272695 0.35470654 0.35668277 0.35864961 0.36061312 0.36256798 0.36452117 0.36646633 0.36840178 0.37033735 0.3722649 0.37418622 0.37609996 0.37801477 0.37991806 0.38181864 0.38371323 0.38560453 0.38749153 0.38937202 0.39124103 0.39310673 0.39497577 0.39683082 0.39868511 ! PC_GS_angles - Gain-schedule table: pitch angles --0.02019147 -0.01950333 -0.01885443 -0.0182415 -0.01766165 -0.01711225 -0.01659098 -0.01609573 -0.01562459 -0.01517585 -0.01474794 -0.01433946 -0.0139491 -0.01357569 -0.01321814 -0.01287547 -0.01254676 -0.01223119 -0.01192797 -0.0116364 -0.01135581 -0.01108561 -0.01082521 -0.01057411 -0.0103318 -0.01009784 -0.00987181 -0.00965329 -0.00944194 -0.00923739 -0.00903933 -0.00884745 -0.00866147 -0.00848112 -0.00830614 -0.00813631 -0.0079714 -0.00781119 -0.00765549 -0.00750411 -0.00735688 -0.00721362 -0.00707417 -0.0069384 -0.00680614 -0.00667728 -0.00655167 -0.0064292 -0.00630975 -0.00619322 -0.00607949 -0.00596846 -0.00586005 -0.00575415 -0.00565069 -0.00554957 -0.00545073 -0.00535408 -0.00525955 -0.00516708 -0.00507659 -0.00498803 -0.00490133 -0.00481644 -0.00473329 -0.00465184 -0.00457204 -0.00449383 -0.00441716 -0.004342 -0.0042683 -0.00419602 -0.00412511 -0.00405553 -0.00398726 -0.00392025 -0.00385447 -0.00378988 -0.00372646 -0.00366417 -0.00360298 -0.00354286 -0.00348379 -0.00342574 -0.00336868 -0.00331258 -0.00325743 -0.00320319 -0.00314985 -0.00309739 -0.00304578 -0.002995 -0.00294503 -0.00289585 -0.00284745 -0.00279981 -0.0027529 -0.00270671 -0.00266123 -0.00261644 -0.00257232 -0.00252886 -0.00248604 -0.00244385 -0.00240228 -0.00236131 -0.00232093 -0.00228112 -0.00224188 -0.0022032 -0.00216505 -0.00212743 -0.00209033 -0.00205374 -0.00201765 -0.00198204 -0.00194691 -0.00191225 -0.00187805 -0.0018443 -0.00181099 -0.00177811 -0.00174566 -0.00171362 -0.00168199 -0.00165076 -0.00161992 -0.00158947 -0.00155939 -0.00152969 -0.00150035 -0.00147137 -0.00144274 -0.00141446 -0.00138651 -0.0013589 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains --0.00882307 -0.00856411 -0.00831992 -0.00808927 -0.00787106 -0.00766432 -0.00746816 -0.00728178 -0.00710449 -0.00693562 -0.0067746 -0.00662088 -0.00647398 -0.00633346 -0.00619891 -0.00606996 -0.00594626 -0.00582751 -0.0057134 -0.00560368 -0.00549809 -0.00539641 -0.00529842 -0.00520393 -0.00511274 -0.0050247 -0.00493964 -0.00485741 -0.00477787 -0.0047009 -0.00462637 -0.00455416 -0.00448417 -0.0044163 -0.00435046 -0.00428655 -0.00422449 -0.0041642 -0.00410561 -0.00404864 -0.00399324 -0.00393933 -0.00388685 -0.00383576 -0.00378599 -0.00373749 -0.00369023 -0.00364414 -0.00359919 -0.00355534 -0.00351254 -0.00347076 -0.00342996 -0.00339011 -0.00335117 -0.00331312 -0.00327593 -0.00323956 -0.00320399 -0.00316919 -0.00313514 -0.00310181 -0.00306918 -0.00303724 -0.00300595 -0.0029753 -0.00294526 -0.00291583 -0.00288698 -0.0028587 -0.00283096 -0.00280376 -0.00277708 -0.0027509 -0.0027252 -0.00269999 -0.00267523 -0.00265093 -0.00262706 -0.00260362 -0.00258059 -0.00255797 -0.00253574 -0.0025139 -0.00249242 -0.00247131 -0.00245056 -0.00243015 -0.00241008 -0.00239033 -0.00237091 -0.0023518 -0.002333 -0.00231449 -0.00229628 -0.00227835 -0.0022607 -0.00224332 -0.0022262 -0.00220935 -0.00219274 -0.00217639 -0.00216028 -0.0021444 -0.00212876 -0.00211334 -0.00209814 -0.00208316 -0.0020684 -0.00205384 -0.00203948 -0.00202533 -0.00201136 -0.00199759 -0.00198401 -0.00197061 -0.00195739 -0.00194435 -0.00193148 -0.00191878 -0.00190624 -0.00189387 -0.00188166 -0.0018696 -0.0018577 -0.00184595 -0.00183434 -0.00182288 -0.00181157 -0.00180039 -0.00178935 -0.00177844 -0.00176767 -0.00175702 -0.00174651 -0.00173612 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +27 ! PC_GS_n - Amount of gain-scheduling table entries +0.05852874 0.08586931 0.10789716 0.1271165 0.14453395 0.16067791 0.17585826 0.19027256 0.20405942 0.21730904 0.23010311 0.24249689 0.2545414 0.26626371 0.27770397 0.28889173 0.29983774 0.31057221 0.32109644 0.33144053 0.34160524 0.35160739 0.36145513 0.37115299 0.38071093 0.3901412 0.39943831 ! PC_GS_angles - Gain-schedule table: pitch angles +-0.01603382 -0.01396602 -0.01229584 -0.01091865 -0.00976358 -0.00878088 -0.00793467 -0.00719835 -0.00655181 -0.00597959 -0.00546956 -0.00501211 -0.00459951 -0.00422546 -0.00388481 -0.00357328 -0.00328728 -0.0030238 -0.00278028 -0.00255453 -0.00234468 -0.00214911 -0.0019664 -0.00179533 -0.00163481 -0.00148391 -0.00134179 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains +-0.00715561 -0.00639445 -0.00577965 -0.00527271 -0.00484752 -0.00448579 -0.0041743 -0.00390326 -0.00366527 -0.00345463 -0.00326689 -0.0030985 -0.00294662 -0.00280893 -0.00268354 -0.00256886 -0.00246359 -0.0023666 -0.00227696 -0.00219386 -0.00211661 -0.00204462 -0.00197737 -0.0019144 -0.00185531 -0.00179976 -0.00174745 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.5707 ! PC_MaxPit - Maximum physical pitch limit, [rad]. --0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. +-0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. 0.13962 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. -0.13962 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. -122.90957 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +122.90957658394467 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. 0.0 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] 0.003490658 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] 0 ! Z_EnableSine - Enable/disable sine pitch excitation, used to validate for dynamic induction control, will be removed later, [-] @@ -41,63 +41,64 @@ 0 ! Z_PitchFrequency - Frequency of sine pitch excitation, [rad/s] !------- INDIVIDUAL PITCH CONTROL ----------------------------------------- -0.087266 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] -1E-8 0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] -0.436332313 0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. -2.5 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] +0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] !------- VS TORQUE CONTROL ------------------------------------------------ -0.944 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] -43093.55 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] -150000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. -48000.00 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +94.4 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] +43093.55150917838 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +1500000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +47402.906660096225 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. 0.0 ! VS_MinTq - Minimum generator (HSS side), [Nm]. -91.2109 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] -2.33228 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] -5.0E+06 ! VS_RtPwr - Wind turbine rated power [W] -43093.55 ! VS_RtTq - Rated torque, [Nm]. -120.113 ! VS_RefSpd - Rated generator speed [rad/s] +0.0 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] +0.0 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] +5000000 ! VS_RtPwr - Wind turbine rated power [W] +43093.55150917838 ! VS_RtTq - Rated torque, [Nm]. +122.90957658394467 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --835 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) --164 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-889.094048017944 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-172.0461874545648 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +7.4 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad]. !------- SETPOINT SMOOTHER --------------------------------------------- 30 ! SS_VSGainBias - Variable speed torque controller gain bias, [(rad/s)/rad]. 0.001 ! SS_PCGainBias - Collective pitch controller gain bias, [(rad/s)/Nm]. !------- WIND SPEED ESTIMATOR --------------------------------------------- -63.0 ! WE_BladeRadius - Blade length [m] +63.0 ! WE_BladeRadius - Blade length [m] 4 ! WE_CP_n - Amount of parameters in the Cp array -14.571319658214513 42.809556250371465 2.456512501523107 0.003127994078720 ! WE_CP - Parameters that define the parameterized CP(lambda) function -20 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] -97 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] -4.0469564E+07 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +0.0 0.0 0.0 0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function +0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +97.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +40469564.444 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] 1.225 ! WE_RhoAir - Air density, [kg m^-3] "../5MW_Baseline/Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) -320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios -23 ! WE_FOPoles_N - Number of first-order system poles used in EKF -3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.0203 -0.0270 -0.0338 -0.0405 -0.0473 -0.0540 -0.0608 -0.0675 -0.0743 -0.0671 -0.0939 -0.1257 -0.1601 -0.1973 -0.2364 -0.2783 -0.3223 -0.3678 -0.4153 -0.4632 -0.5122 -0.5629 -0.6194 ! WE_FOPoles - First order system poles +320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +42 ! WE_FOPoles_N - Number of first-order system poles used in EKF + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.02665071 -0.02998205 -0.03331339 -0.03664473 -0.03997606 -0.0433074 -0.04663874 -0.04997008 -0.05330142 -0.05663276 -0.0599641 -0.06329543 -0.06662677 -0.06995811 -0.07328945 -0.06321278 -0.07469151 -0.08828579 -0.10297822 -0.11842623 -0.13448765 -0.15120764 -0.168455 -0.18635293 -0.20483641 -0.22395323 -0.24348262 -0.26365771 -0.2842596 -0.30535287 -0.32683352 -0.3487705 -0.37113879 -0.39376001 -0.41675049 -0.44017539 -0.46432564 -0.4888057 -0.51273708 -0.53554138 -0.55932133 -0.58645605 ! WE_FOPoles - First order system poles !------- YAW CONTROL ------------------------------------------------------ -1.745329252 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] -0.17453 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] +0.0 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] 1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC) --0.064 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp --0.0008 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki -0.6283185 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. -1.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. -0.00000 ! Y_MErrSet - Yaw alignment error, set point [rad] -1.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] -0.016667 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] -0.0034906 ! Y_Rate - Yaw rate [rad/s] +0.0 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp +0.0 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki +0.0 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. +0.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. +0.0 ! Y_MErrSet - Yaw alignment error, set point [rad] +0.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] +0.0 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] +0.0 ! Y_Rate - Yaw rate [rad/s] !------- TOWER FORE-AFT DAMPING ------------------------------------------- -1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag -0.1 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] -0.087266 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] +0.0 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] +0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] !------- PEAK SHAVING ------------------------------------------- -210 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) - 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13. 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16. 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17. 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18. 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21. 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22. 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23. 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24. 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] --0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.02962541 -0.02230897 -0.01548946 -0.00915689 -0.00323985 0.00231633 0.00755924 0.01252064 0.01723337 0.02171883 0.02600713 0.03010809 0.03403543 0.03780094 0.04141197 0.0448834 0.04301121 0.04572902 0.04841563 0.05107257 0.05370175 0.05630738 0.05888727 0.06144604 0.06398009 0.06649806 0.06899513 0.07147461 0.07393783 0.0763848 0.07881322 0.08122765 0.08363032 0.08601684 0.0883911 0.09075519 0.09310191 0.09543925 0.09776725 0.10008031 0.1023843 0.10467939 0.10696282 0.10923552 0.11150342 0.11375564 0.11600427 0.118243 0.12047296 0.12269376 0.12490488 0.12711415 0.12931036 0.13150096 0.13368154 0.13585982 0.13803009 0.14018961 0.14234359 0.14449503 0.14663648 0.14877236 0.15089947 0.15302471 0.155141 0.15725402 0.15935959 0.16145813 0.16355132 0.16563963 0.16772494 0.1698033 0.17187555 0.17394191 0.17600722 0.17806499 0.18011745 0.18216164 0.18420446 0.18624091 0.18827655 0.19030833 0.19233052 0.19434885 0.19636357 0.19837593 0.20037883 0.20238383 0.20438058 0.20637502 0.20836358 0.21034732 0.21232885 0.21430571 0.21627763 0.21824694 0.22021326 0.22217222 0.22412743 0.22608217 0.22803347 0.22998291 0.23192295 0.23385759 0.23579759 0.23772869 0.23965799 0.24157841 0.24349944 0.24541689 0.24733152 0.24924241 0.25115108 0.25305646 0.25495687 0.25685379 0.25874221 0.26063593 0.26252242 0.26440664 0.26628698 0.26816398 0.27004031 0.27191147 0.27377527 0.27564404 0.27750921 0.27935984 0.28121741 0.28306997 0.2849209 0.28676631 0.28860828 0.29045122 0.29229007 0.29412417 0.29595331 0.29778415 0.29960719 0.30142759 0.30324755 0.30506054 0.30687771 0.30869136 0.31049896 0.31230004 0.31410149 0.3159051 0.3177027 0.31949741 0.32128578 0.32306955 ! PS_BldPitchMin - Minimum blade pitch angles [rad] +42 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +-0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03275873 0.00083377 0.02543348 0.0448834 0.0667768 0.07915202 0.09113854 0.10280435 0.11420819 0.12538567 0.13636556 0.14716567 0.15780447 0.1683014 0.178663 0.18889865 0.19901765 0.20902392 0.21892797 0.22873221 0.23844548 0.24806675 0.25759734 0.26705022 0.27641741 0.2857055 0.29491896 0.3040543 0.31311378 0.32210299 0.33103247 ! PS_BldPitchMin - Minimum blade pitch angles [rad] diff --git a/Test_Cases/5MW_OC4_NR_Legacy/NRELOffshrBsline5MW_OC4DeepCwindSemi_ServoDyn.dat b/Test_Cases/5MW_OC4_NR_Legacy/NRELOffshrBsline5MW_OC4DeepCwindSemi_ServoDyn.dat index cf8909fc0..26d16dbeb 100644 --- a/Test_Cases/5MW_OC4_NR_Legacy/NRELOffshrBsline5MW_OC4DeepCwindSemi_ServoDyn.dat +++ b/Test_Cases/5MW_OC4_NR_Legacy/NRELOffshrBsline5MW_OC4DeepCwindSemi_ServoDyn.dat @@ -63,7 +63,7 @@ False CompNTMD - Compute nacelle tuned mass damper {true/false} (fla False CompTTMD - Compute tower tuned mass damper {true/false} (flag) "unused" TTMDfile - Name of the file for tower tuned mass damper (quoted string) [unused when CompTTMD is false] ---------------------- BLADED INTERFACE ---------------------------------------- [used only with Bladed Interface] -"../5MW_Baseline/DISCON/DISCON_OC3Hywind.dll" DLL_FileName - Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface] +"../5MW_Baseline/DISCON/DISCON.dll" DLL_FileName - Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface] "DISCON.IN" DLL_InFile - Name of input file sent to the DLL (-) [used only with Bladed Interface] "DISCON" DLL_ProcName - Name of procedure in DLL to be called (-) [case sensitive; used only with DLL Interface] "default" DLL_DT - Communication interval for dynamic library (s) (or "default") [used only with Bladed Interface] diff --git a/Test_Cases/5MW_Step_Baseline/DISCON.IN b/Test_Cases/5MW_Step_Baseline/DISCON.IN index 99dee3c36..ef7726c15 100644 --- a/Test_Cases/5MW_Step_Baseline/DISCON.IN +++ b/Test_Cases/5MW_Step_Baseline/DISCON.IN @@ -1,5 +1,5 @@ ! Controller parameter input file for the 5MW_Land wind turbine -! - File written using NREL Baseline Controller tuning logic on 10/01/19 +! - File written using NREL Baseline Controller tuning logic on 10/07/19 !------- DEBUG ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file @@ -16,24 +16,24 @@ 1 ! PS_Mode - Peak shaving mode {0: no peak shaving, 1: implement peak shaving} !------- FILTERS ---------------------------------------------------------- -1.570796326 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] +1.543417826848871 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [Hz] 0 ! F_LPFDamping - Damping coefficient [used only when F_FilterType = 2] 0 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] 0 0 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] 0.5 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [Hz]. !------- BLADE PITCH CONTROL ---------------------------------------------- -136 ! PC_GS_n - Amount of gain-scheduling table entries -0. 0.01843267 0.03012466 0.03938211 0.0473159 0.05438725 0.0608399 0.06682165 0.07243603 0.07774601 0.08280179 0.08764533 0.0922973 0.09678511 0.10113084 0.10534505 0.10944741 0.11344459 0.11734245 0.12115249 0.12488383 0.12853954 0.13212927 0.13565125 0.13911823 0.1425236 0.14587973 0.1491875 0.15244657 0.15566288 0.15883986 0.16197375 0.16506986 0.16813214 0.17115907 0.17415428 0.17711497 0.18004808 0.18295399 0.1858281 0.1886768 0.19150248 0.19430239 0.19707534 0.19983015 0.2025582 0.20526628 0.20795513 0.21062023 0.21326861 0.2158935 0.21850484 0.2210941 0.22366803 0.22622254 0.22876498 0.2312836 0.23379345 0.23628255 0.23875941 0.24122279 0.24366729 0.24610036 0.24852176 0.25092855 0.25332325 0.2557023 0.25807209 0.26042559 0.26276748 0.26510036 0.26742092 0.26973036 0.27202782 0.27431492 0.27658881 0.27885401 0.28110964 0.28336045 0.2855962 0.28782076 0.29003745 0.29224346 0.29444004 0.29663204 0.2988061 0.30097858 0.30314198 0.30529447 0.30743825 0.30958 0.31170708 0.31382687 0.31593631 0.3180419 0.32013786 0.32222978 0.32431029 0.32638663 0.32845309 0.33051357 0.33256802 0.33461455 0.33665611 0.33868284 0.34071023 0.34272963 0.34474196 0.34674528 0.34875073 0.35074041 0.35272695 0.35470654 0.35668277 0.35864961 0.36061312 0.36256798 0.36452117 0.36646633 0.36840178 0.37033735 0.3722649 0.37418622 0.37609996 0.37801477 0.37991806 0.38181864 0.38371323 0.38560453 0.38749153 0.38937202 0.39124103 0.39310673 0.39497577 0.39683082 0.39868511 ! PC_GS_angles - Gain-schedule table: pitch angles --0.02019147 -0.01950333 -0.01885443 -0.0182415 -0.01766165 -0.01711225 -0.01659098 -0.01609573 -0.01562459 -0.01517585 -0.01474794 -0.01433946 -0.0139491 -0.01357569 -0.01321814 -0.01287547 -0.01254676 -0.01223119 -0.01192797 -0.0116364 -0.01135581 -0.01108561 -0.01082521 -0.01057411 -0.0103318 -0.01009784 -0.00987181 -0.00965329 -0.00944194 -0.00923739 -0.00903933 -0.00884745 -0.00866147 -0.00848112 -0.00830614 -0.00813631 -0.0079714 -0.00781119 -0.00765549 -0.00750411 -0.00735688 -0.00721362 -0.00707417 -0.0069384 -0.00680614 -0.00667728 -0.00655167 -0.0064292 -0.00630975 -0.00619322 -0.00607949 -0.00596846 -0.00586005 -0.00575415 -0.00565069 -0.00554957 -0.00545073 -0.00535408 -0.00525955 -0.00516708 -0.00507659 -0.00498803 -0.00490133 -0.00481644 -0.00473329 -0.00465184 -0.00457204 -0.00449383 -0.00441716 -0.004342 -0.0042683 -0.00419602 -0.00412511 -0.00405553 -0.00398726 -0.00392025 -0.00385447 -0.00378988 -0.00372646 -0.00366417 -0.00360298 -0.00354286 -0.00348379 -0.00342574 -0.00336868 -0.00331258 -0.00325743 -0.00320319 -0.00314985 -0.00309739 -0.00304578 -0.002995 -0.00294503 -0.00289585 -0.00284745 -0.00279981 -0.0027529 -0.00270671 -0.00266123 -0.00261644 -0.00257232 -0.00252886 -0.00248604 -0.00244385 -0.00240228 -0.00236131 -0.00232093 -0.00228112 -0.00224188 -0.0022032 -0.00216505 -0.00212743 -0.00209033 -0.00205374 -0.00201765 -0.00198204 -0.00194691 -0.00191225 -0.00187805 -0.0018443 -0.00181099 -0.00177811 -0.00174566 -0.00171362 -0.00168199 -0.00165076 -0.00161992 -0.00158947 -0.00155939 -0.00152969 -0.00150035 -0.00147137 -0.00144274 -0.00141446 -0.00138651 -0.0013589 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains --0.00882307 -0.00856411 -0.00831992 -0.00808927 -0.00787106 -0.00766432 -0.00746816 -0.00728178 -0.00710449 -0.00693562 -0.0067746 -0.00662088 -0.00647398 -0.00633346 -0.00619891 -0.00606996 -0.00594626 -0.00582751 -0.0057134 -0.00560368 -0.00549809 -0.00539641 -0.00529842 -0.00520393 -0.00511274 -0.0050247 -0.00493964 -0.00485741 -0.00477787 -0.0047009 -0.00462637 -0.00455416 -0.00448417 -0.0044163 -0.00435046 -0.00428655 -0.00422449 -0.0041642 -0.00410561 -0.00404864 -0.00399324 -0.00393933 -0.00388685 -0.00383576 -0.00378599 -0.00373749 -0.00369023 -0.00364414 -0.00359919 -0.00355534 -0.00351254 -0.00347076 -0.00342996 -0.00339011 -0.00335117 -0.00331312 -0.00327593 -0.00323956 -0.00320399 -0.00316919 -0.00313514 -0.00310181 -0.00306918 -0.00303724 -0.00300595 -0.0029753 -0.00294526 -0.00291583 -0.00288698 -0.0028587 -0.00283096 -0.00280376 -0.00277708 -0.0027509 -0.0027252 -0.00269999 -0.00267523 -0.00265093 -0.00262706 -0.00260362 -0.00258059 -0.00255797 -0.00253574 -0.0025139 -0.00249242 -0.00247131 -0.00245056 -0.00243015 -0.00241008 -0.00239033 -0.00237091 -0.0023518 -0.002333 -0.00231449 -0.00229628 -0.00227835 -0.0022607 -0.00224332 -0.0022262 -0.00220935 -0.00219274 -0.00217639 -0.00216028 -0.0021444 -0.00212876 -0.00211334 -0.00209814 -0.00208316 -0.0020684 -0.00205384 -0.00203948 -0.00202533 -0.00201136 -0.00199759 -0.00198401 -0.00197061 -0.00195739 -0.00194435 -0.00193148 -0.00191878 -0.00190624 -0.00189387 -0.00188166 -0.0018696 -0.0018577 -0.00184595 -0.00183434 -0.00182288 -0.00181157 -0.00180039 -0.00178935 -0.00177844 -0.00176767 -0.00175702 -0.00174651 -0.00173612 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains -0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +27 ! PC_GS_n - Amount of gain-scheduling table entries +0.05852874 0.08586931 0.10789716 0.1271165 0.14453395 0.16067791 0.17585826 0.19027256 0.20405942 0.21730904 0.23010311 0.24249689 0.2545414 0.26626371 0.27770397 0.28889173 0.29983774 0.31057221 0.32109644 0.33144053 0.34160524 0.35160739 0.36145513 0.37115299 0.38071093 0.3901412 0.39943831 ! PC_GS_angles - Gain-schedule table: pitch angles +-0.01603382 -0.01396602 -0.01229584 -0.01091865 -0.00976358 -0.00878088 -0.00793467 -0.00719835 -0.00655181 -0.00597959 -0.00546956 -0.00501211 -0.00459951 -0.00422546 -0.00388481 -0.00357328 -0.00328728 -0.0030238 -0.00278028 -0.00255453 -0.00234468 -0.00214911 -0.0019664 -0.00179533 -0.00163481 -0.00148391 -0.00134179 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains +-0.00715561 -0.00639445 -0.00577965 -0.00527271 -0.00484752 -0.00448579 -0.0041743 -0.00390326 -0.00366527 -0.00345463 -0.00326689 -0.0030985 -0.00294662 -0.00280893 -0.00268354 -0.00256886 -0.00246359 -0.0023666 -0.00227696 -0.00219386 -0.00211661 -0.00204462 -0.00197737 -0.0019144 -0.00185531 -0.00179976 -0.00174745 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.5707 ! PC_MaxPit - Maximum physical pitch limit, [rad]. --0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. +-0.087266 ! PC_MinPit - Minimum physical pitch limit, [rad]. 0.13962 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. -0.13962 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. -122.90957 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +122.90957658394467 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. 0.0 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] 0.003490658 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] 0 ! Z_EnableSine - Enable/disable sine pitch excitation, used to validate for dynamic induction control, will be removed later, [-] @@ -41,63 +41,64 @@ 0 ! Z_PitchFrequency - Frequency of sine pitch excitation, [rad/s] !------- INDIVIDUAL PITCH CONTROL ----------------------------------------- -0.087266 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] -1E-8 0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] -0.436332313 0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. -2.5 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] +0.0 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.0 0.0 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.0 0.0 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] !------- VS TORQUE CONTROL ------------------------------------------------ -0.944 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] -43093.55 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] -150000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. -48000.00 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +94.4 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [-] +43093.55150917838 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +1500000.0 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +47402.906660096225 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. 0.0 ! VS_MinTq - Minimum generator (HSS side), [Nm]. -91.2109 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] -2.33228 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] -5.0E+06 ! VS_RtPwr - Wind turbine rated power [W] -43093.55 ! VS_RtTq - Rated torque, [Nm]. -120.113 ! VS_RefSpd - Rated generator speed [rad/s] +0.0 ! VS_MinOMSpd - Optimal mode minimum speed, cut-in speed towards optimal mode gain path, [rad/s] +0.0 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [N-m/(rad/s)^2] +5000000 ! VS_RtPwr - Wind turbine rated power [W] +43093.55150917838 ! VS_RtTq - Rated torque, [Nm]. +122.90957658394467 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --835 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) --164 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-889.094048017944 ! VS_KP - Proportional gain for generator PI torque controller [1/(rad/s) Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-172.0461874545648 ! VS_KI - Integral gain for generator PI torque controller [1/rad Nm]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +7.4 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad]. !------- SETPOINT SMOOTHER --------------------------------------------- 30 ! SS_VSGainBias - Variable speed torque controller gain bias, [(rad/s)/rad]. 0.001 ! SS_PCGainBias - Collective pitch controller gain bias, [(rad/s)/Nm]. !------- WIND SPEED ESTIMATOR --------------------------------------------- -63.0 ! WE_BladeRadius - Blade length [m] +63.0 ! WE_BladeRadius - Blade length [m] 4 ! WE_CP_n - Amount of parameters in the Cp array -14.571319658214513 42.809556250371465 2.456512501523107 0.003127994078720 ! WE_CP - Parameters that define the parameterized CP(lambda) function -20 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] -97 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] -4.0469564E+07 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +0.0 0.0 0.0 0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function +0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +97.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +40469564.444 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] 1.225 ! WE_RhoAir - Air density, [kg m^-3] "../5MW_Baseline/Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) -320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios -23 ! WE_FOPoles_N - Number of first-order system poles used in EKF -3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.0203 -0.0270 -0.0338 -0.0405 -0.0473 -0.0540 -0.0608 -0.0675 -0.0743 -0.0671 -0.0939 -0.1257 -0.1601 -0.1973 -0.2364 -0.2783 -0.3223 -0.3678 -0.4153 -0.4632 -0.5122 -0.5629 -0.6194 ! WE_FOPoles - First order system poles +320 40 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +42 ! WE_FOPoles_N - Number of first-order system poles used in EKF + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.02665071 -0.02998205 -0.03331339 -0.03664473 -0.03997606 -0.0433074 -0.04663874 -0.04997008 -0.05330142 -0.05663276 -0.0599641 -0.06329543 -0.06662677 -0.06995811 -0.07328945 -0.06321278 -0.07469151 -0.08828579 -0.10297822 -0.11842623 -0.13448765 -0.15120764 -0.168455 -0.18635293 -0.20483641 -0.22395323 -0.24348262 -0.26365771 -0.2842596 -0.30535287 -0.32683352 -0.3487705 -0.37113879 -0.39376001 -0.41675049 -0.44017539 -0.46432564 -0.4888057 -0.51273708 -0.53554138 -0.55932133 -0.58645605 ! WE_FOPoles - First order system poles !------- YAW CONTROL ------------------------------------------------------ -1.745329252 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] -0.17453 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +0.0 ! Y_ErrThresh - Yaw error threshold. Turbine begins to yaw when it passes this. [rad^2 s] +0.0 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] 1 ! Y_IPC_n - Number of controller gains (yaw-by-IPC) --0.064 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp --0.0008 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki -0.6283185 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. -1.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. -0.00000 ! Y_MErrSet - Yaw alignment error, set point [rad] -1.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] -0.016667 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] -0.0034906 ! Y_Rate - Yaw rate [rad/s] +0.0 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp +0.0 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki +0.0 ! Y_IPC_omegaLP - Low-pass filter corner frequency for the Yaw-by-IPC controller to filtering the yaw alignment error, [rad/s]. +0.0 ! Y_IPC_zetaLP - Low-pass filter damping factor for the Yaw-by-IPC controller to filtering the yaw alignment error, [-]. +0.0 ! Y_MErrSet - Yaw alignment error, set point [rad] +0.0 ! Y_omegaLPFast - Corner frequency fast low pass filter, 1.0 [Hz] +0.0 ! Y_omegaLPSlow - Corner frequency slow low pass filter, 1/60 [Hz] +0.0 ! Y_Rate - Yaw rate [rad/s] !------- TOWER FORE-AFT DAMPING ------------------------------------------- -1 ! FA_KI - Integral gain for the fore-aft tower damper controller, -1 = off / >0 = on [rad s/m] - !NJA - Make this a flag -0.1 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] -0.087266 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] +0.0 ! FA_HPF_CornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] +0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] !------- PEAK SHAVING ------------------------------------------- -210 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) - 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11. 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12. 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13. 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14. 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15. 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16. 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17. 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18. 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21. 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 22. 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23. 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24. 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] --0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.02962541 -0.02230897 -0.01548946 -0.00915689 -0.00323985 0.00231633 0.00755924 0.01252064 0.01723337 0.02171883 0.02600713 0.03010809 0.03403543 0.03780094 0.04141197 0.0448834 0.04301121 0.04572902 0.04841563 0.05107257 0.05370175 0.05630738 0.05888727 0.06144604 0.06398009 0.06649806 0.06899513 0.07147461 0.07393783 0.0763848 0.07881322 0.08122765 0.08363032 0.08601684 0.0883911 0.09075519 0.09310191 0.09543925 0.09776725 0.10008031 0.1023843 0.10467939 0.10696282 0.10923552 0.11150342 0.11375564 0.11600427 0.118243 0.12047296 0.12269376 0.12490488 0.12711415 0.12931036 0.13150096 0.13368154 0.13585982 0.13803009 0.14018961 0.14234359 0.14449503 0.14663648 0.14877236 0.15089947 0.15302471 0.155141 0.15725402 0.15935959 0.16145813 0.16355132 0.16563963 0.16772494 0.1698033 0.17187555 0.17394191 0.17600722 0.17806499 0.18011745 0.18216164 0.18420446 0.18624091 0.18827655 0.19030833 0.19233052 0.19434885 0.19636357 0.19837593 0.20037883 0.20238383 0.20438058 0.20637502 0.20836358 0.21034732 0.21232885 0.21430571 0.21627763 0.21824694 0.22021326 0.22217222 0.22412743 0.22608217 0.22803347 0.22998291 0.23192295 0.23385759 0.23579759 0.23772869 0.23965799 0.24157841 0.24349944 0.24541689 0.24733152 0.24924241 0.25115108 0.25305646 0.25495687 0.25685379 0.25874221 0.26063593 0.26252242 0.26440664 0.26628698 0.26816398 0.27004031 0.27191147 0.27377527 0.27564404 0.27750921 0.27935984 0.28121741 0.28306997 0.2849209 0.28676631 0.28860828 0.29045122 0.29229007 0.29412417 0.29595331 0.29778415 0.29960719 0.30142759 0.30324755 0.30506054 0.30687771 0.30869136 0.31049896 0.31230004 0.31410149 0.3159051 0.3177027 0.31949741 0.32128578 0.32306955 ! PS_BldPitchMin - Minimum blade pitch angles [rad] +42 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) + 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10. 10.5 11. 11.9 12.4 12.9 13.4 13.9 14.4 14.9 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9 20.4 20.9 21.4 21.9 22.4 22.9 23.4 23.9 24.4 24.9 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +-0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03490659 -0.03275873 0.00083377 0.02543348 0.0448834 0.0667768 0.07915202 0.09113854 0.10280435 0.11420819 0.12538567 0.13636556 0.14716567 0.15780447 0.1683014 0.178663 0.18889865 0.19901765 0.20902392 0.21892797 0.22873221 0.23844548 0.24806675 0.25759734 0.26705022 0.27641741 0.2857055 0.29491896 0.3040543 0.31311378 0.32210299 0.33103247 ! PS_BldPitchMin - Minimum blade pitch angles [rad] From d47c8be40447fba4ba0758072f28bb6e89725a08 Mon Sep 17 00:00:00 2001 From: Nikhar Abbas Date: Tue, 8 Oct 2019 00:50:49 -0600 Subject: [PATCH 10/10] Communicate torque to dll --- WTC_toolbox/control_interface.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/WTC_toolbox/control_interface.py b/WTC_toolbox/control_interface.py index a729a0a3b..ef3b5bf58 100644 --- a/WTC_toolbox/control_interface.py +++ b/WTC_toolbox/control_interface.py @@ -91,7 +91,7 @@ def call_discon(self): self.avrSWAP = data - def call_controller(self,t,dt,pitch,genspeed,rotspeed,ws): + def call_controller(self,t,dt,pitch,torque,genspeed,rotspeed,ws): ''' Runs the controller. Passes current turbine state to the controller, and returns control inputs back @@ -115,6 +115,7 @@ def call_controller(self,t,dt,pitch,genspeed,rotspeed,ws): self.avrSWAP[1] = t self.avrSWAP[2] = dt self.avrSWAP[3] = self.pitch + self.avrSWAP[22] = torque self.avrSWAP[19] = genspeed self.avrSWAP[20] = rotspeed self.avrSWAP[26] = ws