From 754687958a1424c3662f5cc479a0a94af6a7fec7 Mon Sep 17 00:00:00 2001 From: dzalkind Date: Mon, 1 Jul 2024 16:13:18 -0600 Subject: [PATCH 1/7] Update to latest scipy functions --- Examples/Test_Cases/BAR_10/BAR_10_DISCON.IN | 12 +++---- .../DISCON-UMaineSemi.IN | 34 +++++++++---------- Examples/Test_Cases/MHK_RM1/MHK_RM1_DISCON.IN | 14 ++++---- Examples/Test_Cases/NREL-5MW/DISCON.IN | 12 +++---- .../NREL_2p8_127/NREL-2p8-127_DISCON.IN | 12 +++---- pyproject.toml | 2 +- rosco/toolbox/__init__.py | 2 +- rosco/toolbox/controller.py | 4 +-- rosco/toolbox/turbine.py | 12 +++---- 9 files changed, 52 insertions(+), 52 deletions(-) diff --git a/Examples/Test_Cases/BAR_10/BAR_10_DISCON.IN b/Examples/Test_Cases/BAR_10/BAR_10_DISCON.IN index ebbc56f5..49d1d8be 100644 --- a/Examples/Test_Cases/BAR_10/BAR_10_DISCON.IN +++ b/Examples/Test_Cases/BAR_10/BAR_10_DISCON.IN @@ -1,10 +1,10 @@ ! Controller parameter input file for the BAR_10 wind turbine -! - File written using ROSCO version 2.8.0 controller tuning logic on 01/05/24 +! - File written using ROSCO version 2.9.4 controller tuning logic on 07/01/24 !------- SIMULATION CONTROL ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)} 0 ! DT_Out - {Time step to output .dbg* files, or 0 to match sampling period of OpenFAST} -1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) +1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) 0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) !------- CONTROLLER FLAGS ------------------------------------------------- @@ -53,8 +53,8 @@ !------- BLADE PITCH CONTROL ---------------------------------------------- 30 ! PC_GS_n - Amount of gain-scheduling table entries 0.057899 0.086034 0.108220 0.127602 0.145231 0.161628 0.177110 0.191882 0.205973 0.219605 0.232854 0.245775 0.258317 0.270576 0.282622 0.294421 0.305965 0.317359 0.328547 0.339534 0.350412 0.361066 0.371600 0.382012 0.392231 0.402383 0.412328 0.422200 0.431927 0.441532 ! PC_GS_angles - Gain-schedule table: pitch angles [rad]. --0.017460 -0.014512 -0.012235 -0.010423 -0.008947 -0.007722 -0.006689 -0.005805 -0.005042 -0.004374 -0.003787 -0.003265 -0.002799 -0.002380 -0.002002 -0.001658 -0.001344 -0.001057 -0.000793 -0.000549 -0.000324 -0.000115 0.000080 0.000261 0.000431 0.000590 0.000740 0.000880 0.001013 0.001138 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. --0.000715 -0.000623 -0.000552 -0.000496 -0.000450 -0.000412 -0.000380 -0.000352 -0.000328 -0.000307 -0.000289 -0.000273 -0.000258 -0.000245 -0.000233 -0.000223 -0.000213 -0.000204 -0.000196 -0.000188 -0.000181 -0.000175 -0.000169 -0.000163 -0.000158 -0.000153 -0.000148 -0.000144 -0.000140 -0.000136 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. +-0.017426 -0.014498 -0.012232 -0.010428 -0.008956 -0.007733 -0.006701 -0.005818 -0.005054 -0.004387 -0.003799 -0.003276 -0.002810 -0.002390 -0.002011 -0.001666 -0.001352 -0.001064 -0.000799 -0.000554 -0.000328 -0.000118 0.000077 0.000259 0.000430 0.000589 0.000739 0.000881 0.001014 0.001139 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. +-0.000714 -0.000623 -0.000552 -0.000496 -0.000450 -0.000412 -0.000380 -0.000353 -0.000329 -0.000308 -0.000290 -0.000274 -0.000259 -0.000246 -0.000234 -0.000223 -0.000214 -0.000205 -0.000196 -0.000189 -0.000182 -0.000175 -0.000169 -0.000164 -0.000158 -0.000153 -0.000149 -0.000144 -0.000140 -0.000136 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.570000000000 ! PC_MaxPit - Maximum physical pitch limit, [rad]. @@ -86,7 +86,7 @@ 63892.81326000 ! VS_RtTq - Rated torque, [Nm]. 75.83317000000 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --2452.07948000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-2454.67747000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) -332.357190000 ! VS_KI - Integral gain for generator PI torque controller [s]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) 9.76 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio. Only used in VS_ControlMode = 2. 0.314000000000 ! VS_PwrFiltF - Low pass filter on power used to determine generator speed set point. Only used in VS_ControlMode = 3. @@ -113,7 +113,7 @@ 36 26 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios 60 ! WE_FOPoles_N - Number of first-order system poles used in EKF 3.0000 3.1818 3.3637 3.5455 3.7274 3.9092 4.0911 4.2729 4.4548 4.6366 4.8185 5.0003 5.1822 5.3640 5.5459 5.7277 5.9096 6.0914 6.2732 6.4551 6.6369 6.8188 7.0006 7.1825 7.3643 7.5462 7.7280 7.9099 8.0917 8.2736 8.8311 9.3887 9.9462 10.5038 11.0613 11.6188 12.1764 12.7339 13.2915 13.8490 14.4066 14.9641 15.5217 16.0792 16.6368 17.1943 17.7519 18.3094 18.8670 19.4245 19.9821 20.5396 21.0972 21.6547 22.2123 22.7698 23.3274 23.8849 24.4425 25.0000 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.00972164 -0.01031092 -0.01090020 -0.01148948 -0.01207877 -0.01266805 -0.01325733 -0.01384662 -0.01443590 -0.01502518 -0.01561447 -0.01620375 -0.01679303 -0.01738232 -0.01797160 -0.01856088 -0.01915016 -0.01973945 -0.02032873 -0.02091801 -0.02150730 -0.02209658 -0.02268586 -0.02327515 -0.02386443 -0.02445371 -0.02504300 -0.02563228 -0.02622156 -0.02378670 -0.02062296 -0.02541485 -0.03159105 -0.03849962 -0.04595997 -0.05389417 -0.06225884 -0.07101431 -0.08016995 -0.08970426 -0.09955610 -0.10976762 -0.12028100 -0.13120419 -0.14238799 -0.15383228 -0.16572504 -0.17783697 -0.19011487 -0.20289651 -0.21593424 -0.22919262 -0.24255457 -0.25635133 -0.27049546 -0.28482651 -0.29923376 -0.31380076 -0.32862514 -0.34372726 ! WE_FOPoles - First order system poles [1/s] +-0.00969265 -0.01028018 -0.01086771 -0.01145523 -0.01204276 -0.01263029 -0.01321781 -0.01380534 -0.01439287 -0.01498039 -0.01556792 -0.01615544 -0.01674297 -0.01733050 -0.01791802 -0.01850555 -0.01909308 -0.01968060 -0.02026813 -0.02085566 -0.02144318 -0.02203071 -0.02261823 -0.02320576 -0.02379329 -0.02438081 -0.02496834 -0.02555587 -0.02614339 -0.02379613 -0.02047291 -0.02537932 -0.03151563 -0.03840840 -0.04587537 -0.05382394 -0.06221064 -0.07100937 -0.08011138 -0.08959645 -0.09946249 -0.10970584 -0.12021535 -0.13105665 -0.14226361 -0.15376640 -0.16552312 -0.17764204 -0.19004300 -0.20272586 -0.21577830 -0.22897091 -0.24242644 -0.25613739 -0.27000365 -0.28425482 -0.29866687 -0.31351260 -0.32866968 -0.34414305 ! WE_FOPoles - First order system poles [1/s] !------- YAW CONTROL ------------------------------------------------------ 0.00000 ! Y_uSwitch - Wind speed to switch between Y_ErrThresh. If zero, only the second value of Y_ErrThresh is used [m/s] diff --git a/Examples/Test_Cases/IEA-15-240-RWT-UMaineSemi/DISCON-UMaineSemi.IN b/Examples/Test_Cases/IEA-15-240-RWT-UMaineSemi/DISCON-UMaineSemi.IN index cd58ccf8..a55a49d0 100644 --- a/Examples/Test_Cases/IEA-15-240-RWT-UMaineSemi/DISCON-UMaineSemi.IN +++ b/Examples/Test_Cases/IEA-15-240-RWT-UMaineSemi/DISCON-UMaineSemi.IN @@ -1,10 +1,10 @@ ! Controller parameter input file for the IEA-15-240-RWT-UMaineSemi wind turbine -! - File written using ROSCO version 2.8.0 controller tuning logic on 01/05/24 +! - File written using ROSCO version 2.9.4 controller tuning logic on 07/01/24 !------- SIMULATION CONTROL ------------------------------------------------------------ 2 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)} 0 ! DT_Out - {Time step to output .dbg* files, or 0 to match sampling period of OpenFAST} -1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) +1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) 0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) !------- CONTROLLER FLAGS ------------------------------------------------- @@ -52,9 +52,9 @@ !------- BLADE PITCH CONTROL ---------------------------------------------- 30 ! PC_GS_n - Amount of gain-scheduling table entries -0.061311 0.088116 0.108942 0.126990 0.143219 0.158161 0.172040 0.185119 0.197612 0.209635 0.221066 0.232181 0.242992 0.253405 0.263647 0.273567 0.283313 0.292848 0.302185 0.311386 0.320385 0.329291 0.338004 0.346643 0.355108 0.363504 0.371761 0.379937 0.388011 0.395981 ! PC_GS_angles - Gain-schedule table: pitch angles [rad]. --1.206456 -1.044724 -0.911403 -0.799610 -0.704521 -0.622652 -0.551426 -0.488893 -0.433554 -0.384235 -0.340004 -0.300113 -0.263952 -0.231022 -0.200909 -0.173265 -0.147799 -0.124263 -0.102447 -0.082167 -0.063268 -0.045612 -0.029082 -0.013573 0.001008 0.014740 0.027696 0.039940 0.051529 0.062514 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. --0.125868 -0.113748 -0.103758 -0.095380 -0.088255 -0.082120 -0.076782 -0.072096 -0.067949 -0.064253 -0.060939 -0.057949 -0.055240 -0.052772 -0.050515 -0.048444 -0.046536 -0.044772 -0.043137 -0.041617 -0.040201 -0.038878 -0.037639 -0.036477 -0.035384 -0.034355 -0.033384 -0.032467 -0.031599 -0.030775 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. +0.062094 0.088628 0.109270 0.127148 0.143223 0.158025 0.171764 0.184722 0.197105 0.209011 0.220338 0.231364 0.242063 0.252399 0.262569 0.272384 0.282068 0.291504 0.300785 0.309890 0.318839 0.327654 0.336324 0.344874 0.353301 0.361612 0.369834 0.377928 0.385970 0.393863 ! PC_GS_angles - Gain-schedule table: pitch angles [rad]. +-1.142777 -0.987724 -0.859824 -0.752519 -0.661205 -0.582556 -0.514107 -0.453995 -0.400785 -0.353352 -0.310803 -0.272422 -0.237625 -0.205931 -0.176944 -0.150331 -0.125812 -0.103149 -0.082139 -0.062607 -0.044403 -0.027396 -0.011472 0.003470 0.017518 0.030750 0.043234 0.055033 0.066202 0.076789 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. +-0.119556 -0.108083 -0.098619 -0.090679 -0.083922 -0.078102 -0.073038 -0.068590 -0.064652 -0.061143 -0.057994 -0.055154 -0.052579 -0.050234 -0.048089 -0.046120 -0.044306 -0.042629 -0.041074 -0.039629 -0.038282 -0.037024 -0.035845 -0.034740 -0.033700 -0.032721 -0.031797 -0.030924 -0.030098 -0.029315 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.570000000000 ! PC_MaxPit - Maximum physical pitch limit, [rad]. @@ -75,19 +75,19 @@ 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 ------------------------------------------------ -96.55000000000 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [%] -19624046.66639 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +95.75600000000 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [%] +19786767.46773 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] 4500000.000000 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. -21586451.33303 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +21765444.21450 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. 0.000000000000 ! VS_MinTq - Minimum generator torque (HSS side), [Nm]. 0.523600000000 ! VS_MinOMSpd - Minimum generator speed [rad/s] -31393135.82403 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side). Only used in VS_ControlMode = 1,3 +32413847.90763 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side). Only used in VS_ControlMode = 1,3 15000000.00000 ! VS_RtPwr - Wind turbine rated power [W] -19624046.66639 ! VS_RtTq - Rated torque, [Nm]. +19786767.46773 ! VS_RtTq - Rated torque, [Nm]. 0.791680000000 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --37877315.85935 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) --4588245.18720 ! VS_KI - Integral gain for generator PI torque controller [s]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-35730593.18196 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-4499370.31680 ! VS_KI - Integral gain for generator PI torque controller [s]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) 9.00 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio. Only used in VS_ControlMode = 2. 0.314000000000 ! VS_PwrFiltF - Low pass filter on power used to determine generator speed set point. Only used in VS_ControlMode = 3. @@ -102,18 +102,18 @@ 0.7917 0.7917 ! PRC_GenSpeeds - Array of generator speeds corresponding to PRC_WindSpeeds [rad/s] !------- WIND SPEED ESTIMATOR --------------------------------------------- -120.000 ! WE_BladeRadius - Blade length (distance from hub center to blade tip), [m] +120.970 ! WE_BladeRadius - Blade length (distance from hub center to blade tip), [m] 1 ! WE_CP_n - Amount of parameters in the Cp array 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] 1.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] -318628138.00000 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +312456272.00000 ! 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.IEA15MW.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) (absolute path or relative to this file) 36 26 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios 60 ! WE_FOPoles_N - Number of first-order system poles used in EKF 3.0000 3.2669 3.5338 3.8007 4.0676 4.3345 4.6014 4.8683 5.1352 5.4021 5.6690 5.9359 6.2028 6.4697 6.7366 7.0034 7.2703 7.5372 7.8041 8.0710 8.3379 8.6048 8.8717 9.1386 9.4055 9.6724 9.9393 10.2062 10.4731 10.7400 11.2153 11.6907 12.1660 12.6413 13.1167 13.5920 14.0673 14.5427 15.0180 15.4933 15.9687 16.4440 16.9193 17.3947 17.8700 18.3453 18.8207 19.2960 19.7713 20.2467 20.7220 21.1973 21.6727 22.1480 22.6233 23.0987 23.5740 24.0493 24.5247 25.0000 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.02438353 -0.02655283 -0.02872212 -0.03089141 -0.03306071 -0.03523000 -0.03739930 -0.03956859 -0.04173788 -0.04390718 -0.04607647 -0.04824576 -0.05041506 -0.05258435 -0.05475365 -0.05692294 -0.05909223 -0.06126153 -0.06343082 -0.06560011 -0.06776941 -0.06993870 -0.07210800 -0.07427729 -0.07644658 -0.07861588 -0.08078517 -0.08295446 -0.08512376 -0.08490640 -0.05739531 -0.05967534 -0.06643664 -0.07537721 -0.08537869 -0.09664144 -0.10851650 -0.12137925 -0.13453168 -0.14834459 -0.16280188 -0.17753158 -0.19283401 -0.20862160 -0.22461456 -0.24120058 -0.25817445 -0.27538476 -0.29299882 -0.31103587 -0.32941546 -0.34807902 -0.36693717 -0.38625237 -0.40583167 -0.42579305 -0.44596365 -0.46626113 -0.48675074 -0.50756940 ! WE_FOPoles - First order system poles [1/s] +-0.02567895 -0.02796349 -0.03024803 -0.03253257 -0.03481711 -0.03710166 -0.03938620 -0.04167074 -0.04395528 -0.04623982 -0.04852436 -0.05080890 -0.05309344 -0.05537798 -0.05766253 -0.05994707 -0.06223161 -0.06451615 -0.06680069 -0.06908523 -0.07136977 -0.07365431 -0.07593885 -0.07822339 -0.08050794 -0.08279248 -0.08507702 -0.08736156 -0.08964610 -0.09072643 -0.06009903 -0.06290457 -0.06990800 -0.07913876 -0.08983236 -0.10162611 -0.11417145 -0.12741619 -0.14137334 -0.15599691 -0.17090894 -0.18647049 -0.20252854 -0.21889218 -0.23592237 -0.25309367 -0.27087557 -0.28892640 -0.30743285 -0.32627475 -0.34546793 -0.36504435 -0.38494782 -0.40520553 -0.42575368 -0.44656633 -0.46770980 -0.48900537 -0.51069324 -0.53238692 ! WE_FOPoles - First order system poles [1/s] !------- YAW CONTROL ------------------------------------------------------ 0.00000 ! Y_uSwitch - Wind speed to switch between Y_ErrThresh. If zero, only the second value of Y_ErrThresh is used [m/s] @@ -135,7 +135,7 @@ !------- MINIMUM PITCH SATURATION ------------------------------------------- 60 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) 3.000 3.267 3.534 3.801 4.068 4.334 4.601 4.868 5.135 5.402 5.669 5.936 6.203 6.470 6.737 7.003 7.270 7.537 7.804 8.071 8.338 8.605 8.872 9.139 9.406 9.672 9.939 10.206 10.473 10.740 11.215 11.691 12.166 12.641 13.117 13.592 14.067 14.543 15.018 15.493 15.969 16.444 16.919 17.395 17.870 18.345 18.821 19.296 19.771 20.247 20.722 21.197 21.673 22.148 22.623 23.099 23.574 24.049 24.525 25.000 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] -0.060 0.060 0.060 0.060 0.060 0.060 0.056 0.051 0.046 0.041 0.034 0.028 0.021 0.014 0.007 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.008 0.022 0.035 0.046 0.053 0.064 0.074 0.084 0.094 0.103 0.112 0.121 0.130 0.139 0.147 0.156 0.164 0.172 0.180 0.189 0.197 0.205 0.212 0.220 0.228 0.236 0.243 0.251 0.259 0.266 0.273 0.281 0.288 0.296 0.303 ! PS_BldPitchMin - Minimum blade pitch angles [rad] +0.060 0.060 0.060 0.060 0.060 0.060 0.056 0.052 0.047 0.041 0.036 0.029 0.022 0.015 0.008 0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.006 0.021 0.033 0.044 0.053 0.064 0.074 0.084 0.093 0.103 0.112 0.121 0.130 0.138 0.147 0.155 0.163 0.172 0.180 0.188 0.196 0.203 0.211 0.219 0.227 0.234 0.242 0.250 0.257 0.265 0.272 0.279 0.287 0.294 0.301 ! PS_BldPitchMin - Minimum blade pitch angles [rad] !------- SHUTDOWN ----------------------------------------------------------- 0.698100000000 ! SD_MaxPit - Maximum blade pitch angle to initiate shutdown, [rad] @@ -143,7 +143,7 @@ !------- Floating ----------------------------------------------------------- 1 ! Fl_n - Number of Fl_Kp gains in gain scheduling, optional with default of 1 --9.3465 ! Fl_Kp - Nacelle pitching proportional feedback gain [s] +-9.1984 ! Fl_Kp - Nacelle pitching proportional feedback gain [s] 11.2770 ! Fl_U - Wind speeds for scheduling Fl_Kp, optional if Fl_Kp is single value [m/s] !------- FLAP ACTUATION ----------------------------------------------------- diff --git a/Examples/Test_Cases/MHK_RM1/MHK_RM1_DISCON.IN b/Examples/Test_Cases/MHK_RM1/MHK_RM1_DISCON.IN index 322213ff..e23b75b5 100644 --- a/Examples/Test_Cases/MHK_RM1/MHK_RM1_DISCON.IN +++ b/Examples/Test_Cases/MHK_RM1/MHK_RM1_DISCON.IN @@ -1,10 +1,10 @@ ! Controller parameter input file for the MHK_RM1_Floating wind turbine -! - File written using ROSCO version 2.8.0 controller tuning logic on 01/05/24 +! - File written using ROSCO version 2.9.4 controller tuning logic on 07/01/24 !------- SIMULATION CONTROL ------------------------------------------------------------ 2 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)} 0 ! DT_Out - {Time step to output .dbg* files, or 0 to match sampling period of OpenFAST} -1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) +1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) 0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) !------- CONTROLLER FLAGS ------------------------------------------------- @@ -53,8 +53,8 @@ !------- BLADE PITCH CONTROL ---------------------------------------------- 30 ! PC_GS_n - Amount of gain-scheduling table entries 0.030335 0.049075 0.063610 0.076093 0.087460 0.097196 0.106672 0.115225 0.123634 0.131302 0.139019 0.146056 0.153083 0.159873 0.166338 0.172854 0.178999 0.185046 0.191143 0.196863 0.202559 0.208301 0.213742 0.219137 0.224575 0.229836 0.234972 0.240145 0.245291 0.250200 ! PC_GS_angles - Gain-schedule table: pitch angles [rad]. --0.010178 -0.008780 -0.007625 -0.006655 -0.005829 -0.005116 -0.004495 -0.003950 -0.003467 -0.003036 -0.002650 -0.002301 -0.001984 -0.001696 -0.001432 -0.001190 -0.000966 -0.000760 -0.000568 -0.000390 -0.000225 -0.000069 0.000076 0.000212 0.000340 0.000461 0.000575 0.000682 0.000784 0.000881 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. --0.005272 -0.004770 -0.004355 -0.004007 -0.003710 -0.003454 -0.003232 -0.003036 -0.002862 -0.002708 -0.002569 -0.002443 -0.002330 -0.002226 -0.002132 -0.002045 -0.001964 -0.001890 -0.001822 -0.001758 -0.001698 -0.001642 -0.001590 -0.001541 -0.001495 -0.001452 -0.001411 -0.001372 -0.001336 -0.001301 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. +-0.010207 -0.008807 -0.007650 -0.006678 -0.005849 -0.005135 -0.004512 -0.003965 -0.003481 -0.003048 -0.002661 -0.002310 -0.001993 -0.001703 -0.001438 -0.001195 -0.000971 -0.000764 -0.000572 -0.000393 -0.000226 -0.000071 0.000075 0.000212 0.000341 0.000462 0.000576 0.000685 0.000787 0.000884 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. +-0.005283 -0.004781 -0.004366 -0.004017 -0.003720 -0.003464 -0.003241 -0.003045 -0.002871 -0.002716 -0.002577 -0.002451 -0.002337 -0.002234 -0.002139 -0.002051 -0.001971 -0.001897 -0.001828 -0.001764 -0.001704 -0.001648 -0.001596 -0.001547 -0.001501 -0.001457 -0.001416 -0.001377 -0.001341 -0.001306 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.570000000000 ! PC_MaxPit - Maximum physical pitch limit, [rad]. @@ -86,7 +86,7 @@ 8300.335630000 ! VS_RtTq - Rated torque, [Nm]. 63.81200000000 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --63.8796200000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-63.3401400000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) -84.4329000000 ! VS_KI - Integral gain for generator PI torque controller [s]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) 7.17 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio. Only used in VS_ControlMode = 2. 0.314000000000 ! VS_PwrFiltF - Low pass filter on power used to determine generator speed set point. Only used in VS_ControlMode = 3. @@ -113,7 +113,7 @@ 36 26 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios 60 ! WE_FOPoles_N - Number of first-order system poles used in EKF 0.5000 0.5517 0.6034 0.6552 0.7069 0.7586 0.8103 0.8621 0.9138 0.9655 1.0172 1.0690 1.1207 1.1724 1.2241 1.2759 1.3276 1.3793 1.4310 1.4828 1.5345 1.5862 1.6379 1.6897 1.7414 1.7931 1.8448 1.8966 1.9483 2.0000 2.0333 2.0667 2.1000 2.1333 2.1667 2.2000 2.2333 2.2667 2.3000 2.3333 2.3667 2.4000 2.4333 2.4667 2.5000 2.5333 2.5667 2.6000 2.6333 2.6667 2.7000 2.7333 2.7667 2.8000 2.8333 2.8667 2.9000 2.9333 2.9667 3.0000 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.14364445 -0.15850422 -0.17336400 -0.18822377 -0.20308354 -0.21794331 -0.23280308 -0.24766285 -0.26252262 -0.27738239 -0.29224216 -0.30710193 -0.32196171 -0.33682148 -0.35168125 -0.36654102 -0.38140079 -0.39626056 -0.41112033 -0.42598010 -0.44083987 -0.45569965 -0.47055942 -0.48666545 -0.50602877 -0.52082936 -0.60274133 -0.60720589 -0.60927938 -0.55668516 0.17844923 0.15174296 0.10860051 0.05753679 0.00176535 -0.05812003 -0.11803585 -0.18146508 -0.24666701 -0.31440662 -0.38335107 -0.45418067 -0.52480063 -0.59662243 -0.67000720 -0.74481113 -0.82056059 -0.89753628 -0.97589183 -1.05446405 -1.13345094 -1.21374047 -1.29379323 -1.37507241 -1.45808464 -1.54093580 -1.62426617 -1.70957888 -1.79610923 -1.88140848 ! WE_FOPoles - First order system poles [1/s] +-0.14373366 -0.15860266 -0.17347166 -0.18834066 -0.20320966 -0.21807866 -0.23294766 -0.24781666 -0.26268566 -0.27755466 -0.29242365 -0.30729265 -0.32216165 -0.33703065 -0.35189965 -0.36676865 -0.38163765 -0.39650665 -0.41137565 -0.42624465 -0.44111365 -0.45598265 -0.47085165 -0.48688530 -0.50710708 -0.52286299 -0.60338450 -0.60991074 -0.61241025 -0.55721025 0.17998191 0.15135742 0.10945592 0.05908027 0.00104043 -0.05507169 -0.11824557 -0.18009670 -0.24756868 -0.31240541 -0.38377494 -0.45106439 -0.52304487 -0.59605008 -0.66806086 -0.74501532 -0.81929468 -0.89533886 -0.97582430 -1.05220290 -1.13115451 -1.21410608 -1.29344979 -1.37444765 -1.45900848 -1.54200828 -1.62439937 -1.70996742 -1.79715535 -1.88045193 ! WE_FOPoles - First order system poles [1/s] !------- YAW CONTROL ------------------------------------------------------ 0.00000 ! Y_uSwitch - Wind speed to switch between Y_ErrThresh. If zero, only the second value of Y_ErrThresh is used [m/s] @@ -143,7 +143,7 @@ !------- Floating ----------------------------------------------------------- 1 ! Fl_n - Number of Fl_Kp gains in gain scheduling, optional with default of 1 --0.3999 ! Fl_Kp - Nacelle velocity proportional feedback gain [s] +-0.4009 ! Fl_Kp - Nacelle velocity proportional feedback gain [s] 2.1000 ! Fl_U - Wind speeds for scheduling Fl_Kp, optional if Fl_Kp is single value [m/s] !------- FLAP ACTUATION ----------------------------------------------------- diff --git a/Examples/Test_Cases/NREL-5MW/DISCON.IN b/Examples/Test_Cases/NREL-5MW/DISCON.IN index 0d8024d1..bf86cf78 100644 --- a/Examples/Test_Cases/NREL-5MW/DISCON.IN +++ b/Examples/Test_Cases/NREL-5MW/DISCON.IN @@ -1,10 +1,10 @@ ! Controller parameter input file for the NREL-5MW wind turbine -! - File written using ROSCO version 2.8.0 controller tuning logic on 01/05/24 +! - File written using ROSCO version 2.9.4 controller tuning logic on 07/01/24 !------- SIMULATION CONTROL ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)} 0 ! DT_Out - {Time step to output .dbg* files, or 0 to match sampling period of OpenFAST} -1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) +1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) 0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) !------- CONTROLLER FLAGS ------------------------------------------------- @@ -53,8 +53,8 @@ !------- BLADE PITCH CONTROL ---------------------------------------------- 30 ! PC_GS_n - Amount of gain-scheduling table entries 0.056789 0.084492 0.106018 0.124332 0.140807 0.155903 0.169931 0.183270 0.196062 0.208354 0.220050 0.231503 0.242646 0.253377 0.263967 0.274233 0.284343 0.294292 0.303997 0.313626 0.322957 0.332260 0.341319 0.350368 0.359221 0.368059 0.376700 0.385301 0.393691 0.402050 ! PC_GS_angles - Gain-schedule table: pitch angles [rad]. --0.018995 -0.016672 -0.014787 -0.013228 -0.011916 -0.010797 -0.009831 -0.008989 -0.008248 -0.007592 -0.007006 -0.006480 -0.006005 -0.005574 -0.005182 -0.004822 -0.004492 -0.004187 -0.003906 -0.003644 -0.003402 -0.003175 -0.002963 -0.002765 -0.002579 -0.002404 -0.002239 -0.002083 -0.001936 -0.001797 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. --0.008388 -0.007514 -0.006805 -0.006218 -0.005725 -0.005304 -0.004940 -0.004624 -0.004345 -0.004098 -0.003878 -0.003680 -0.003501 -0.003339 -0.003192 -0.003056 -0.002932 -0.002817 -0.002712 -0.002613 -0.002522 -0.002437 -0.002357 -0.002283 -0.002212 -0.002147 -0.002085 -0.002026 -0.001971 -0.001918 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. +-0.019085 -0.016739 -0.014837 -0.013265 -0.011943 -0.010816 -0.009844 -0.008997 -0.008252 -0.007593 -0.007004 -0.006475 -0.005998 -0.005565 -0.005171 -0.004810 -0.004479 -0.004173 -0.003890 -0.003628 -0.003385 -0.003157 -0.002945 -0.002746 -0.002559 -0.002384 -0.002219 -0.002062 -0.001915 -0.001775 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. +-0.008417 -0.007536 -0.006822 -0.006232 -0.005735 -0.005312 -0.004947 -0.004629 -0.004350 -0.004102 -0.003881 -0.003682 -0.003503 -0.003341 -0.003192 -0.003057 -0.002932 -0.002818 -0.002712 -0.002613 -0.002522 -0.002436 -0.002357 -0.002282 -0.002212 -0.002146 -0.002084 -0.002025 -0.001970 -0.001917 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.570000000000 ! PC_MaxPit - Maximum physical pitch limit, [rad]. @@ -86,7 +86,7 @@ 43093.51876000 ! VS_RtTq - Rated torque, [Nm]. 122.9096700000 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --657.442080000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-654.312360000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) -104.507080000 ! VS_KI - Integral gain for generator PI torque controller [s]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) 7.64 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio. Only used in VS_ControlMode = 2. 0.314000000000 ! VS_PwrFiltF - Low pass filter on power used to determine generator speed set point. Only used in VS_ControlMode = 3. @@ -113,7 +113,7 @@ 36 26 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios 60 ! WE_FOPoles_N - Number of first-order system poles used in EKF 3.0000 3.2897 3.5793 3.8690 4.1586 4.4483 4.7379 5.0276 5.3172 5.6069 5.8966 6.1862 6.4759 6.7655 7.0552 7.3448 7.6345 7.9241 8.2138 8.5034 8.7931 9.0828 9.3724 9.6621 9.9517 10.2414 10.5310 10.8207 11.1103 11.4000 11.8533 12.3067 12.7600 13.2133 13.6667 14.1200 14.5733 15.0267 15.4800 15.9333 16.3867 16.8400 17.2933 17.7467 18.2000 18.6533 19.1067 19.5600 20.0133 20.4667 20.9200 21.3733 21.8267 22.2800 22.7333 23.1867 23.6400 24.0933 24.5467 25.0000 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.01638154 -0.01796321 -0.01954487 -0.02112654 -0.02270820 -0.02428987 -0.02587154 -0.02745320 -0.02903487 -0.03061653 -0.03219820 -0.03377987 -0.03536153 -0.03694320 -0.03852486 -0.04010653 -0.04168820 -0.04326986 -0.04485153 -0.04643319 -0.04801486 -0.04959652 -0.05117819 -0.05275986 -0.05434152 -0.05592319 -0.05758373 -0.05882656 -0.06845507 -0.05992890 -0.05031134 -0.05798636 -0.06840333 -0.08061549 -0.09336590 -0.10698855 -0.12116040 -0.13530722 -0.15025447 -0.16589008 -0.18080009 -0.19651023 -0.21294470 -0.22969213 -0.24540879 -0.26178304 -0.27905964 -0.29706835 -0.31499595 -0.33136688 -0.34832584 -0.36677525 -0.38556416 -0.40554370 -0.42546670 -0.44309547 -0.46062268 -0.47954729 -0.49884696 -0.51943992 ! WE_FOPoles - First order system poles [1/s] +-0.01640352 -0.01798730 -0.01957109 -0.02115488 -0.02273867 -0.02432245 -0.02590624 -0.02749003 -0.02907382 -0.03065761 -0.03224139 -0.03382518 -0.03540897 -0.03699276 -0.03857654 -0.04016033 -0.04174412 -0.04332791 -0.04491170 -0.04649548 -0.04807927 -0.04966306 -0.05124685 -0.05283063 -0.05441442 -0.05599821 -0.05763347 -0.05907205 -0.06912889 -0.05993737 -0.05021616 -0.05780794 -0.06849544 -0.08052122 -0.09351145 -0.10710432 -0.12106730 -0.13547025 -0.15041833 -0.16588021 -0.18135551 -0.19724989 -0.21342206 -0.22970423 -0.24663982 -0.26354532 -0.28064419 -0.29794214 -0.31532544 -0.33332004 -0.35128130 -0.36985759 -0.38827549 -0.40713466 -0.42584061 -0.44509747 -0.46449375 -0.48460700 -0.50475242 -0.52537402 ! WE_FOPoles - First order system poles [1/s] !------- YAW CONTROL ------------------------------------------------------ 0.00000 ! Y_uSwitch - Wind speed to switch between Y_ErrThresh. If zero, only the second value of Y_ErrThresh is used [m/s] diff --git a/Examples/Test_Cases/NREL_2p8_127/NREL-2p8-127_DISCON.IN b/Examples/Test_Cases/NREL_2p8_127/NREL-2p8-127_DISCON.IN index 31d0ed79..46be3ce2 100644 --- a/Examples/Test_Cases/NREL_2p8_127/NREL-2p8-127_DISCON.IN +++ b/Examples/Test_Cases/NREL_2p8_127/NREL-2p8-127_DISCON.IN @@ -1,10 +1,10 @@ ! Controller parameter input file for the NREL-2p8-127 wind turbine -! - File written using ROSCO version 2.8.0 controller tuning logic on 01/05/24 +! - File written using ROSCO version 2.9.4 controller tuning logic on 07/01/24 !------- SIMULATION CONTROL ------------------------------------------------------------ 2 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)} 0 ! DT_Out - {Time step to output .dbg* files, or 0 to match sampling period of OpenFAST} -1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) +1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) 0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) !------- CONTROLLER FLAGS ------------------------------------------------- @@ -53,8 +53,8 @@ !------- BLADE PITCH CONTROL ---------------------------------------------- 30 ! PC_GS_n - Amount of gain-scheduling table entries 0.075990 0.104503 0.127446 0.147544 0.164940 0.181678 0.197073 0.211624 0.225753 0.238993 0.252021 0.264458 0.276515 0.288229 0.299596 0.310932 0.321646 0.332112 0.342584 0.353105 0.363012 0.373072 0.382733 0.392195 0.401619 0.411107 0.420504 0.429096 0.437752 0.446357 ! PC_GS_angles - Gain-schedule table: pitch angles [rad]. --0.023307 -0.020910 -0.018908 -0.017210 -0.015752 -0.014487 -0.013378 -0.012398 -0.011527 -0.010746 -0.010043 -0.009406 -0.008827 -0.008298 -0.007813 -0.007366 -0.006953 -0.006571 -0.006216 -0.005885 -0.005577 -0.005288 -0.005017 -0.004762 -0.004522 -0.004296 -0.004083 -0.003881 -0.003689 -0.003508 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. --0.000804 -0.000732 -0.000672 -0.000621 -0.000577 -0.000539 -0.000505 -0.000476 -0.000450 -0.000426 -0.000405 -0.000386 -0.000369 -0.000353 -0.000338 -0.000325 -0.000312 -0.000301 -0.000290 -0.000280 -0.000271 -0.000262 -0.000254 -0.000246 -0.000239 -0.000232 -0.000226 -0.000220 -0.000214 -0.000209 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. +-0.023241 -0.020868 -0.018883 -0.017197 -0.015748 -0.014490 -0.013386 -0.012410 -0.011542 -0.010763 -0.010062 -0.009426 -0.008848 -0.008320 -0.007835 -0.007388 -0.006976 -0.006594 -0.006238 -0.005908 -0.005599 -0.005310 -0.005038 -0.004783 -0.004543 -0.004317 -0.004103 -0.003901 -0.003709 -0.003527 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. +-0.000802 -0.000731 -0.000671 -0.000620 -0.000577 -0.000539 -0.000506 -0.000476 -0.000450 -0.000427 -0.000406 -0.000387 -0.000369 -0.000353 -0.000339 -0.000325 -0.000313 -0.000302 -0.000291 -0.000281 -0.000272 -0.000263 -0.000255 -0.000247 -0.000240 -0.000233 -0.000227 -0.000221 -0.000215 -0.000209 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.570000000000 ! PC_MaxPit - Maximum physical pitch limit, [rad]. @@ -86,7 +86,7 @@ 24248.54567000 ! VS_RtTq - Rated torque, [Nm]. 122.9096700000 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --600.450450000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-599.338770000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) -85.3230300000 ! VS_KI - Integral gain for generator PI torque controller [s]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) 8.25 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio. Only used in VS_ControlMode = 2. 0.314000000000 ! VS_PwrFiltF - Low pass filter on power used to determine generator speed set point. Only used in VS_ControlMode = 3. @@ -113,7 +113,7 @@ 30 30 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios 60 ! WE_FOPoles_N - Number of first-order system poles used in EKF 3.0000 3.2897 3.5793 3.8690 4.1586 4.4483 4.7379 5.0276 5.3172 5.6069 5.8966 6.1862 6.4759 6.7655 7.0552 7.3448 7.6345 7.9241 8.2138 8.5034 8.7931 9.0828 9.3724 9.6621 9.9517 10.2414 10.5310 10.8207 11.1103 11.4000 11.8533 12.3067 12.7600 13.2133 13.6667 14.1200 14.5733 15.0267 15.4800 15.9333 16.3867 16.8400 17.2933 17.7467 18.2000 18.6533 19.1067 19.5600 20.0133 20.4667 20.9200 21.3733 21.8267 22.2800 22.7333 23.1867 23.6400 24.0933 24.5467 25.0000 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.01246409 -0.01366752 -0.01487095 -0.01607438 -0.01727781 -0.01848123 -0.01968466 -0.02088809 -0.02209152 -0.02329495 -0.02449838 -0.02570181 -0.02690524 -0.02810867 -0.02931210 -0.03051553 -0.03171896 -0.03292239 -0.03412582 -0.03532924 -0.03653267 -0.03773610 -0.03893953 -0.04014296 -0.03876534 -0.03527029 -0.03014051 -0.02417865 -0.01714772 -0.00815401 -0.02209033 -0.02677213 -0.03094759 -0.03700125 -0.04188805 -0.04820630 -0.05390840 -0.06043728 -0.06624359 -0.07295380 -0.07986166 -0.08646363 -0.09412176 -0.10174417 -0.10913837 -0.11728247 -0.12497467 -0.13271621 -0.14189107 -0.15083268 -0.15981675 -0.16948290 -0.17870908 -0.18789884 -0.19750668 -0.20786563 -0.21788705 -0.22660607 -0.23612135 -0.24537696 ! WE_FOPoles - First order system poles [1/s] +-0.01260186 -0.01381859 -0.01503532 -0.01625205 -0.01746878 -0.01868551 -0.01990224 -0.02111897 -0.02233570 -0.02355243 -0.02476916 -0.02598590 -0.02720263 -0.02841936 -0.02963609 -0.03085282 -0.03206955 -0.03328628 -0.03450301 -0.03571974 -0.03693647 -0.03815320 -0.03936993 -0.04058667 -0.03922608 -0.03508867 -0.03003198 -0.02417528 -0.01730537 -0.00898539 -0.02245032 -0.02706065 -0.03108854 -0.03712828 -0.04209566 -0.04857003 -0.05395978 -0.06079111 -0.06630809 -0.07261058 -0.07985034 -0.08612180 -0.09374691 -0.10151803 -0.10895439 -0.11680833 -0.12401154 -0.13232357 -0.14130955 -0.14979812 -0.15867841 -0.16925534 -0.17835395 -0.18685622 -0.19682022 -0.20777561 -0.21797608 -0.22670834 -0.23616033 -0.24519119 ! WE_FOPoles - First order system poles [1/s] !------- YAW CONTROL ------------------------------------------------------ 0.00000 ! Y_uSwitch - Wind speed to switch between Y_ErrThresh. If zero, only the second value of Y_ErrThresh is used [m/s] diff --git a/pyproject.toml b/pyproject.toml index 6eba66b4..8b51ab87 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "rosco" -version = "2.9.3" +version = "2.9.4" description = "A reference open source controller toolset for wind turbine applications." readme = "README.md" requires-python = ">=3.9" diff --git a/rosco/toolbox/__init__.py b/rosco/toolbox/__init__.py index 3aa708bc..6a29f156 100644 --- a/rosco/toolbox/__init__.py +++ b/rosco/toolbox/__init__.py @@ -3,4 +3,4 @@ __author__ = """Nikhar J. Abbas and Daniel S. Zalkind""" __email__ = 'daniel.zalkind@nrel.gov' -__version__ = '2.9.0' +__version__ = '2.9.4' diff --git a/rosco/toolbox/controller.py b/rosco/toolbox/controller.py index 9b78cce5..f26c67d0 100644 --- a/rosco/toolbox/controller.py +++ b/rosco/toolbox/controller.py @@ -542,8 +542,8 @@ def tune_flap_controller(self,turbine): C1 = np.zeros(len(v_rel)) C2 = np.zeros(len(v_rel)) for i, (v_sec,phi) in enumerate(zip(v_rel, phi_vec)): - C1[i] = integrate.trapz(0.5 * turbine.rho * turbine.chord * v_sec[0]**2 * turbine.span * Kcl * np.cos(phi)) - C2[i] = integrate.trapz(0.5 * turbine.rho * turbine.chord * v_sec[0]**2 * turbine.span * Kcd * np.sin(phi)) + C1[i] = integrate.trapezoid(0.5 * turbine.rho * turbine.chord * v_sec[0]**2 * turbine.span * Kcl * np.cos(phi)) + C2[i] = integrate.trapezoid(0.5 * turbine.rho * turbine.chord * v_sec[0]**2 * turbine.span * Kcd * np.sin(phi)) self.kappa[i]=C1[i]+C2[i] # PI Gains diff --git a/rosco/toolbox/turbine.py b/rosco/toolbox/turbine.py index f7cbb727..ddf42a04 100644 --- a/rosco/toolbox/turbine.py +++ b/rosco/toolbox/turbine.py @@ -670,9 +670,9 @@ def interp_surface(self,pitch,TSR): ''' # Form the interpolant functions which can look up any arbitrary location on rotor performance surface - interp_fun = interpolate.interp2d( - self.pitch_initial_rad, self.TSR_initial, self.performance_table, kind='cubic') - return interp_fun(pitch,TSR) + interp_fun = interpolate.RectBivariateSpline( + self.pitch_initial_rad, self.TSR_initial, self.performance_table.T) + return np.squeeze(interp_fun(pitch,TSR).T) def interp_gradient(self,pitch,TSR): ''' @@ -691,11 +691,11 @@ def interp_gradient(self,pitch,TSR): [1 x 2] array coresponding to gradient in pitch and TSR directions, respectively ''' # Form the interpolant functions to find gradient at any arbitrary location on rotor performance surface - dCP_beta_interp = interpolate.interp2d(self.pitch_initial_rad, self.TSR_initial, self.gradient_pitch, kind='linear') - dCP_TSR_interp = interpolate.interp2d(self.pitch_initial_rad, self.TSR_initial, self.gradient_TSR, kind='linear') + dCP_beta_interp = interpolate.RectBivariateSpline(self.pitch_initial_rad, self.TSR_initial, self.gradient_pitch.T) + dCP_TSR_interp = interpolate.RectBivariateSpline(self.pitch_initial_rad, self.TSR_initial, self.gradient_TSR.T) # grad.shape output as (2,) numpy array, equivalent to (pitch-direction,TSR-direction) - grad = np.array([dCP_beta_interp(pitch,TSR), dCP_TSR_interp(pitch,TSR)]) + grad = np.array([dCP_beta_interp(pitch,TSR).T, dCP_TSR_interp(pitch,TSR).T]) return np.ndarray.flatten(grad) def plot_performance(self): From 86cf9f6c03535bc1eac65b54eb665a867487146a Mon Sep 17 00:00:00 2001 From: dzalkind Date: Mon, 1 Jul 2024 16:20:58 -0600 Subject: [PATCH 2/7] Update max_torque_rates --- Examples/Tune_Cases/NREL2p8.yaml | 2 +- Examples/Tune_Cases/NREL5MW.yaml | 2 +- Examples/Tune_Cases/NREL5MW_PassThrough.yaml | 2 +- Examples/Tune_Cases/RM1_MHK.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Examples/Tune_Cases/NREL2p8.yaml b/Examples/Tune_Cases/NREL2p8.yaml index c1562a83..154d7b08 100644 --- a/Examples/Tune_Cases/NREL2p8.yaml +++ b/Examples/Tune_Cases/NREL2p8.yaml @@ -63,4 +63,4 @@ controller_params: n_U: 1 omega_flp: 0.0 zeta_flp: 0.0 -turbine_params: {rotor_inertia: 19858184.0, rated_rotor_speed: 1.26711, v_min: 3.0, v_rated: 11.4, v_max: 25.0, max_pitch_rate: 0.1745, max_torque_rate: 1500000.0, rated_power: 2800000.0, bld_edgewise_freq: 8.2831853, bld_flapwise_freq: 0.0, TSR_operational: 0} +turbine_params: {rotor_inertia: 19858184.0, rated_rotor_speed: 1.26711, v_min: 3.0, v_rated: 11.4, v_max: 25.0, max_pitch_rate: 0.1745, max_torque_rate: 550000.0, rated_power: 2800000.0, bld_edgewise_freq: 8.2831853, bld_flapwise_freq: 0.0, TSR_operational: 0} diff --git a/Examples/Tune_Cases/NREL5MW.yaml b/Examples/Tune_Cases/NREL5MW.yaml index 21f5acab..9d3ff2a5 100644 --- a/Examples/Tune_Cases/NREL5MW.yaml +++ b/Examples/Tune_Cases/NREL5MW.yaml @@ -16,7 +16,7 @@ turbine_params: v_rated: 11.4 # Rated wind speed [m/s] v_max: 25.0 # Cut-out wind speed [m/s], -- Does not need to be exact (JUST ASSUME FOR NOW) max_pitch_rate: 0.1745 # Maximum blade pitch rate [rad/s] - max_torque_rate: 1500000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} + max_torque_rate: 1000000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} rated_power: 5000000. # Rated Power [W] bld_edgewise_freq: 6.2831853 # Blade edgewise first natural frequency [rad/s] bld_flapwise_freq: 0.0 # Blade flapwise first natural frequency [rad/s] diff --git a/Examples/Tune_Cases/NREL5MW_PassThrough.yaml b/Examples/Tune_Cases/NREL5MW_PassThrough.yaml index 7f126785..d1f158a7 100644 --- a/Examples/Tune_Cases/NREL5MW_PassThrough.yaml +++ b/Examples/Tune_Cases/NREL5MW_PassThrough.yaml @@ -16,7 +16,7 @@ turbine_params: v_rated: 11.4 # Rated wind speed [m/s] v_max: 25.0 # Cut-out wind speed [m/s], -- Does not need to be exact (JUST ASSUME FOR NOW) max_pitch_rate: 0.1745 # Maximum blade pitch rate [rad/s] - max_torque_rate: 1500000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} + max_torque_rate: 1000000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} rated_power: 5000000. # Rated Power [W] bld_edgewise_freq: 6.2831853 # Blade edgewise first natural frequency [rad/s] bld_flapwise_freq: 0.0 # Blade flapwise first natural frequency [rad/s] diff --git a/Examples/Tune_Cases/RM1_MHK.yaml b/Examples/Tune_Cases/RM1_MHK.yaml index 12b294c2..c81d1b8f 100644 --- a/Examples/Tune_Cases/RM1_MHK.yaml +++ b/Examples/Tune_Cases/RM1_MHK.yaml @@ -16,7 +16,7 @@ turbine_params: v_rated: 2.0 # Rated wind speed [m/s] v_max: 3.0 # Cut-out wind speed [m/s], -- Does not need to be exact (JUST ASSUME FOR NOW) max_pitch_rate: 0.1745 # Maximum blade pitch rate [rad/s] - max_torque_rate: 1500000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} + max_torque_rate: 100000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} rated_power: 500000 # Rated Power [W] bld_edgewise_freq: 60.2831853 # Blade edgewise first natural frequency [rad/s] bld_flapwise_freq: 0.0 # Blade flapwise first natural frequency [rad/s] From 434cb83f93faa61a11255b05d719e553bfab00e9 Mon Sep 17 00:00:00 2001 From: AthulKrishnaSundarrajan Date: Mon, 1 Jul 2024 17:00:32 -0600 Subject: [PATCH 3/7] minor changes to controller_interface --- rosco/toolbox/control_interface.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/rosco/toolbox/control_interface.py b/rosco/toolbox/control_interface.py index 1a92decf..0e81157e 100644 --- a/rosco/toolbox/control_interface.py +++ b/rosco/toolbox/control_interface.py @@ -74,6 +74,7 @@ def __init__(self, lib_name, param_filename="DISCON.IN", **kwargs): self.char_buffer = 500 self.avr_size = 500 self.sim_name = "simDEBUG" + self.pitch = 0 # option to provid initial blade pitch value # Set kwargs, like DT for k, w in kwargs.items(): @@ -89,7 +90,7 @@ def __init__(self, lib_name, param_filename="DISCON.IN", **kwargs): def init_discon(self): # Initialize - self.pitch = 0 + self.torque = 0 # -- discon self.discon = cdll.LoadLibrary(self.lib_name) @@ -104,9 +105,9 @@ def init_discon(self): self.avrSWAP[26] = 10 # HARD CODE initial wind speed = 10 m/s # Blade pitch initial conditions - self.avrSWAP[3] = 0 * np.deg2rad(1) - self.avrSWAP[32] = 0 * np.deg2rad(1) - self.avrSWAP[33] = 0 * np.deg2rad(1) + self.avrSWAP[3] = self.pitch * np.deg2rad(1) + self.avrSWAP[32] = self.pitch * np.deg2rad(1) + self.avrSWAP[33] = self.pitch * np.deg2rad(1) self.avrSWAP[27] = 1 # IPC @@ -212,6 +213,12 @@ def call_controller(self, turbine_state, end=False): except KeyError: self.avrSWAP[82] = 0 + # pass translational acceleration + try: + self.avrSWAP[52] = turbine_state['FA_Acc'] + except KeyError: + self.avrSWAP[52] = 0 + # call controller self.call_discon() From 4e04140d671b04455259ca06de28553318b17f19 Mon Sep 17 00:00:00 2001 From: AthulKrishnaSundarrajan Date: Tue, 2 Jul 2024 09:42:20 -0600 Subject: [PATCH 4/7] update scipy version and DISCOn files --- Examples/Test_Cases/BAR_10/BAR_10_DISCON.IN | 12 +++---- .../DISCON-UMaineSemi.IN | 34 +++++++++---------- Examples/Test_Cases/MHK_RM1/MHK_RM1_DISCON.IN | 14 ++++---- Examples/Test_Cases/NREL-5MW/DISCON.IN | 12 +++---- .../NREL_2p8_127/NREL-2p8-127_DISCON.IN | 12 +++---- rosco/toolbox/controller.py | 4 +-- rosco/toolbox/turbine.py | 12 +++---- 7 files changed, 50 insertions(+), 50 deletions(-) diff --git a/Examples/Test_Cases/BAR_10/BAR_10_DISCON.IN b/Examples/Test_Cases/BAR_10/BAR_10_DISCON.IN index ebbc56f5..49d1d8be 100644 --- a/Examples/Test_Cases/BAR_10/BAR_10_DISCON.IN +++ b/Examples/Test_Cases/BAR_10/BAR_10_DISCON.IN @@ -1,10 +1,10 @@ ! Controller parameter input file for the BAR_10 wind turbine -! - File written using ROSCO version 2.8.0 controller tuning logic on 01/05/24 +! - File written using ROSCO version 2.9.4 controller tuning logic on 07/01/24 !------- SIMULATION CONTROL ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)} 0 ! DT_Out - {Time step to output .dbg* files, or 0 to match sampling period of OpenFAST} -1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) +1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) 0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) !------- CONTROLLER FLAGS ------------------------------------------------- @@ -53,8 +53,8 @@ !------- BLADE PITCH CONTROL ---------------------------------------------- 30 ! PC_GS_n - Amount of gain-scheduling table entries 0.057899 0.086034 0.108220 0.127602 0.145231 0.161628 0.177110 0.191882 0.205973 0.219605 0.232854 0.245775 0.258317 0.270576 0.282622 0.294421 0.305965 0.317359 0.328547 0.339534 0.350412 0.361066 0.371600 0.382012 0.392231 0.402383 0.412328 0.422200 0.431927 0.441532 ! PC_GS_angles - Gain-schedule table: pitch angles [rad]. --0.017460 -0.014512 -0.012235 -0.010423 -0.008947 -0.007722 -0.006689 -0.005805 -0.005042 -0.004374 -0.003787 -0.003265 -0.002799 -0.002380 -0.002002 -0.001658 -0.001344 -0.001057 -0.000793 -0.000549 -0.000324 -0.000115 0.000080 0.000261 0.000431 0.000590 0.000740 0.000880 0.001013 0.001138 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. --0.000715 -0.000623 -0.000552 -0.000496 -0.000450 -0.000412 -0.000380 -0.000352 -0.000328 -0.000307 -0.000289 -0.000273 -0.000258 -0.000245 -0.000233 -0.000223 -0.000213 -0.000204 -0.000196 -0.000188 -0.000181 -0.000175 -0.000169 -0.000163 -0.000158 -0.000153 -0.000148 -0.000144 -0.000140 -0.000136 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. +-0.017426 -0.014498 -0.012232 -0.010428 -0.008956 -0.007733 -0.006701 -0.005818 -0.005054 -0.004387 -0.003799 -0.003276 -0.002810 -0.002390 -0.002011 -0.001666 -0.001352 -0.001064 -0.000799 -0.000554 -0.000328 -0.000118 0.000077 0.000259 0.000430 0.000589 0.000739 0.000881 0.001014 0.001139 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. +-0.000714 -0.000623 -0.000552 -0.000496 -0.000450 -0.000412 -0.000380 -0.000353 -0.000329 -0.000308 -0.000290 -0.000274 -0.000259 -0.000246 -0.000234 -0.000223 -0.000214 -0.000205 -0.000196 -0.000189 -0.000182 -0.000175 -0.000169 -0.000164 -0.000158 -0.000153 -0.000149 -0.000144 -0.000140 -0.000136 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.570000000000 ! PC_MaxPit - Maximum physical pitch limit, [rad]. @@ -86,7 +86,7 @@ 63892.81326000 ! VS_RtTq - Rated torque, [Nm]. 75.83317000000 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --2452.07948000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-2454.67747000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) -332.357190000 ! VS_KI - Integral gain for generator PI torque controller [s]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) 9.76 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio. Only used in VS_ControlMode = 2. 0.314000000000 ! VS_PwrFiltF - Low pass filter on power used to determine generator speed set point. Only used in VS_ControlMode = 3. @@ -113,7 +113,7 @@ 36 26 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios 60 ! WE_FOPoles_N - Number of first-order system poles used in EKF 3.0000 3.1818 3.3637 3.5455 3.7274 3.9092 4.0911 4.2729 4.4548 4.6366 4.8185 5.0003 5.1822 5.3640 5.5459 5.7277 5.9096 6.0914 6.2732 6.4551 6.6369 6.8188 7.0006 7.1825 7.3643 7.5462 7.7280 7.9099 8.0917 8.2736 8.8311 9.3887 9.9462 10.5038 11.0613 11.6188 12.1764 12.7339 13.2915 13.8490 14.4066 14.9641 15.5217 16.0792 16.6368 17.1943 17.7519 18.3094 18.8670 19.4245 19.9821 20.5396 21.0972 21.6547 22.2123 22.7698 23.3274 23.8849 24.4425 25.0000 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.00972164 -0.01031092 -0.01090020 -0.01148948 -0.01207877 -0.01266805 -0.01325733 -0.01384662 -0.01443590 -0.01502518 -0.01561447 -0.01620375 -0.01679303 -0.01738232 -0.01797160 -0.01856088 -0.01915016 -0.01973945 -0.02032873 -0.02091801 -0.02150730 -0.02209658 -0.02268586 -0.02327515 -0.02386443 -0.02445371 -0.02504300 -0.02563228 -0.02622156 -0.02378670 -0.02062296 -0.02541485 -0.03159105 -0.03849962 -0.04595997 -0.05389417 -0.06225884 -0.07101431 -0.08016995 -0.08970426 -0.09955610 -0.10976762 -0.12028100 -0.13120419 -0.14238799 -0.15383228 -0.16572504 -0.17783697 -0.19011487 -0.20289651 -0.21593424 -0.22919262 -0.24255457 -0.25635133 -0.27049546 -0.28482651 -0.29923376 -0.31380076 -0.32862514 -0.34372726 ! WE_FOPoles - First order system poles [1/s] +-0.00969265 -0.01028018 -0.01086771 -0.01145523 -0.01204276 -0.01263029 -0.01321781 -0.01380534 -0.01439287 -0.01498039 -0.01556792 -0.01615544 -0.01674297 -0.01733050 -0.01791802 -0.01850555 -0.01909308 -0.01968060 -0.02026813 -0.02085566 -0.02144318 -0.02203071 -0.02261823 -0.02320576 -0.02379329 -0.02438081 -0.02496834 -0.02555587 -0.02614339 -0.02379613 -0.02047291 -0.02537932 -0.03151563 -0.03840840 -0.04587537 -0.05382394 -0.06221064 -0.07100937 -0.08011138 -0.08959645 -0.09946249 -0.10970584 -0.12021535 -0.13105665 -0.14226361 -0.15376640 -0.16552312 -0.17764204 -0.19004300 -0.20272586 -0.21577830 -0.22897091 -0.24242644 -0.25613739 -0.27000365 -0.28425482 -0.29866687 -0.31351260 -0.32866968 -0.34414305 ! WE_FOPoles - First order system poles [1/s] !------- YAW CONTROL ------------------------------------------------------ 0.00000 ! Y_uSwitch - Wind speed to switch between Y_ErrThresh. If zero, only the second value of Y_ErrThresh is used [m/s] diff --git a/Examples/Test_Cases/IEA-15-240-RWT-UMaineSemi/DISCON-UMaineSemi.IN b/Examples/Test_Cases/IEA-15-240-RWT-UMaineSemi/DISCON-UMaineSemi.IN index cd58ccf8..a55a49d0 100644 --- a/Examples/Test_Cases/IEA-15-240-RWT-UMaineSemi/DISCON-UMaineSemi.IN +++ b/Examples/Test_Cases/IEA-15-240-RWT-UMaineSemi/DISCON-UMaineSemi.IN @@ -1,10 +1,10 @@ ! Controller parameter input file for the IEA-15-240-RWT-UMaineSemi wind turbine -! - File written using ROSCO version 2.8.0 controller tuning logic on 01/05/24 +! - File written using ROSCO version 2.9.4 controller tuning logic on 07/01/24 !------- SIMULATION CONTROL ------------------------------------------------------------ 2 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)} 0 ! DT_Out - {Time step to output .dbg* files, or 0 to match sampling period of OpenFAST} -1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) +1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) 0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) !------- CONTROLLER FLAGS ------------------------------------------------- @@ -52,9 +52,9 @@ !------- BLADE PITCH CONTROL ---------------------------------------------- 30 ! PC_GS_n - Amount of gain-scheduling table entries -0.061311 0.088116 0.108942 0.126990 0.143219 0.158161 0.172040 0.185119 0.197612 0.209635 0.221066 0.232181 0.242992 0.253405 0.263647 0.273567 0.283313 0.292848 0.302185 0.311386 0.320385 0.329291 0.338004 0.346643 0.355108 0.363504 0.371761 0.379937 0.388011 0.395981 ! PC_GS_angles - Gain-schedule table: pitch angles [rad]. --1.206456 -1.044724 -0.911403 -0.799610 -0.704521 -0.622652 -0.551426 -0.488893 -0.433554 -0.384235 -0.340004 -0.300113 -0.263952 -0.231022 -0.200909 -0.173265 -0.147799 -0.124263 -0.102447 -0.082167 -0.063268 -0.045612 -0.029082 -0.013573 0.001008 0.014740 0.027696 0.039940 0.051529 0.062514 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. --0.125868 -0.113748 -0.103758 -0.095380 -0.088255 -0.082120 -0.076782 -0.072096 -0.067949 -0.064253 -0.060939 -0.057949 -0.055240 -0.052772 -0.050515 -0.048444 -0.046536 -0.044772 -0.043137 -0.041617 -0.040201 -0.038878 -0.037639 -0.036477 -0.035384 -0.034355 -0.033384 -0.032467 -0.031599 -0.030775 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. +0.062094 0.088628 0.109270 0.127148 0.143223 0.158025 0.171764 0.184722 0.197105 0.209011 0.220338 0.231364 0.242063 0.252399 0.262569 0.272384 0.282068 0.291504 0.300785 0.309890 0.318839 0.327654 0.336324 0.344874 0.353301 0.361612 0.369834 0.377928 0.385970 0.393863 ! PC_GS_angles - Gain-schedule table: pitch angles [rad]. +-1.142777 -0.987724 -0.859824 -0.752519 -0.661205 -0.582556 -0.514107 -0.453995 -0.400785 -0.353352 -0.310803 -0.272422 -0.237625 -0.205931 -0.176944 -0.150331 -0.125812 -0.103149 -0.082139 -0.062607 -0.044403 -0.027396 -0.011472 0.003470 0.017518 0.030750 0.043234 0.055033 0.066202 0.076789 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. +-0.119556 -0.108083 -0.098619 -0.090679 -0.083922 -0.078102 -0.073038 -0.068590 -0.064652 -0.061143 -0.057994 -0.055154 -0.052579 -0.050234 -0.048089 -0.046120 -0.044306 -0.042629 -0.041074 -0.039629 -0.038282 -0.037024 -0.035845 -0.034740 -0.033700 -0.032721 -0.031797 -0.030924 -0.030098 -0.029315 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.570000000000 ! PC_MaxPit - Maximum physical pitch limit, [rad]. @@ -75,19 +75,19 @@ 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 ------------------------------------------------ -96.55000000000 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [%] -19624046.66639 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +95.75600000000 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [%] +19786767.46773 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] 4500000.000000 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. -21586451.33303 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +21765444.21450 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. 0.000000000000 ! VS_MinTq - Minimum generator torque (HSS side), [Nm]. 0.523600000000 ! VS_MinOMSpd - Minimum generator speed [rad/s] -31393135.82403 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side). Only used in VS_ControlMode = 1,3 +32413847.90763 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side). Only used in VS_ControlMode = 1,3 15000000.00000 ! VS_RtPwr - Wind turbine rated power [W] -19624046.66639 ! VS_RtTq - Rated torque, [Nm]. +19786767.46773 ! VS_RtTq - Rated torque, [Nm]. 0.791680000000 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --37877315.85935 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) --4588245.18720 ! VS_KI - Integral gain for generator PI torque controller [s]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-35730593.18196 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-4499370.31680 ! VS_KI - Integral gain for generator PI torque controller [s]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) 9.00 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio. Only used in VS_ControlMode = 2. 0.314000000000 ! VS_PwrFiltF - Low pass filter on power used to determine generator speed set point. Only used in VS_ControlMode = 3. @@ -102,18 +102,18 @@ 0.7917 0.7917 ! PRC_GenSpeeds - Array of generator speeds corresponding to PRC_WindSpeeds [rad/s] !------- WIND SPEED ESTIMATOR --------------------------------------------- -120.000 ! WE_BladeRadius - Blade length (distance from hub center to blade tip), [m] +120.970 ! WE_BladeRadius - Blade length (distance from hub center to blade tip), [m] 1 ! WE_CP_n - Amount of parameters in the Cp array 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] 1.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] -318628138.00000 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +312456272.00000 ! 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.IEA15MW.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) (absolute path or relative to this file) 36 26 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios 60 ! WE_FOPoles_N - Number of first-order system poles used in EKF 3.0000 3.2669 3.5338 3.8007 4.0676 4.3345 4.6014 4.8683 5.1352 5.4021 5.6690 5.9359 6.2028 6.4697 6.7366 7.0034 7.2703 7.5372 7.8041 8.0710 8.3379 8.6048 8.8717 9.1386 9.4055 9.6724 9.9393 10.2062 10.4731 10.7400 11.2153 11.6907 12.1660 12.6413 13.1167 13.5920 14.0673 14.5427 15.0180 15.4933 15.9687 16.4440 16.9193 17.3947 17.8700 18.3453 18.8207 19.2960 19.7713 20.2467 20.7220 21.1973 21.6727 22.1480 22.6233 23.0987 23.5740 24.0493 24.5247 25.0000 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.02438353 -0.02655283 -0.02872212 -0.03089141 -0.03306071 -0.03523000 -0.03739930 -0.03956859 -0.04173788 -0.04390718 -0.04607647 -0.04824576 -0.05041506 -0.05258435 -0.05475365 -0.05692294 -0.05909223 -0.06126153 -0.06343082 -0.06560011 -0.06776941 -0.06993870 -0.07210800 -0.07427729 -0.07644658 -0.07861588 -0.08078517 -0.08295446 -0.08512376 -0.08490640 -0.05739531 -0.05967534 -0.06643664 -0.07537721 -0.08537869 -0.09664144 -0.10851650 -0.12137925 -0.13453168 -0.14834459 -0.16280188 -0.17753158 -0.19283401 -0.20862160 -0.22461456 -0.24120058 -0.25817445 -0.27538476 -0.29299882 -0.31103587 -0.32941546 -0.34807902 -0.36693717 -0.38625237 -0.40583167 -0.42579305 -0.44596365 -0.46626113 -0.48675074 -0.50756940 ! WE_FOPoles - First order system poles [1/s] +-0.02567895 -0.02796349 -0.03024803 -0.03253257 -0.03481711 -0.03710166 -0.03938620 -0.04167074 -0.04395528 -0.04623982 -0.04852436 -0.05080890 -0.05309344 -0.05537798 -0.05766253 -0.05994707 -0.06223161 -0.06451615 -0.06680069 -0.06908523 -0.07136977 -0.07365431 -0.07593885 -0.07822339 -0.08050794 -0.08279248 -0.08507702 -0.08736156 -0.08964610 -0.09072643 -0.06009903 -0.06290457 -0.06990800 -0.07913876 -0.08983236 -0.10162611 -0.11417145 -0.12741619 -0.14137334 -0.15599691 -0.17090894 -0.18647049 -0.20252854 -0.21889218 -0.23592237 -0.25309367 -0.27087557 -0.28892640 -0.30743285 -0.32627475 -0.34546793 -0.36504435 -0.38494782 -0.40520553 -0.42575368 -0.44656633 -0.46770980 -0.48900537 -0.51069324 -0.53238692 ! WE_FOPoles - First order system poles [1/s] !------- YAW CONTROL ------------------------------------------------------ 0.00000 ! Y_uSwitch - Wind speed to switch between Y_ErrThresh. If zero, only the second value of Y_ErrThresh is used [m/s] @@ -135,7 +135,7 @@ !------- MINIMUM PITCH SATURATION ------------------------------------------- 60 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) 3.000 3.267 3.534 3.801 4.068 4.334 4.601 4.868 5.135 5.402 5.669 5.936 6.203 6.470 6.737 7.003 7.270 7.537 7.804 8.071 8.338 8.605 8.872 9.139 9.406 9.672 9.939 10.206 10.473 10.740 11.215 11.691 12.166 12.641 13.117 13.592 14.067 14.543 15.018 15.493 15.969 16.444 16.919 17.395 17.870 18.345 18.821 19.296 19.771 20.247 20.722 21.197 21.673 22.148 22.623 23.099 23.574 24.049 24.525 25.000 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] -0.060 0.060 0.060 0.060 0.060 0.060 0.056 0.051 0.046 0.041 0.034 0.028 0.021 0.014 0.007 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.008 0.022 0.035 0.046 0.053 0.064 0.074 0.084 0.094 0.103 0.112 0.121 0.130 0.139 0.147 0.156 0.164 0.172 0.180 0.189 0.197 0.205 0.212 0.220 0.228 0.236 0.243 0.251 0.259 0.266 0.273 0.281 0.288 0.296 0.303 ! PS_BldPitchMin - Minimum blade pitch angles [rad] +0.060 0.060 0.060 0.060 0.060 0.060 0.056 0.052 0.047 0.041 0.036 0.029 0.022 0.015 0.008 0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.006 0.021 0.033 0.044 0.053 0.064 0.074 0.084 0.093 0.103 0.112 0.121 0.130 0.138 0.147 0.155 0.163 0.172 0.180 0.188 0.196 0.203 0.211 0.219 0.227 0.234 0.242 0.250 0.257 0.265 0.272 0.279 0.287 0.294 0.301 ! PS_BldPitchMin - Minimum blade pitch angles [rad] !------- SHUTDOWN ----------------------------------------------------------- 0.698100000000 ! SD_MaxPit - Maximum blade pitch angle to initiate shutdown, [rad] @@ -143,7 +143,7 @@ !------- Floating ----------------------------------------------------------- 1 ! Fl_n - Number of Fl_Kp gains in gain scheduling, optional with default of 1 --9.3465 ! Fl_Kp - Nacelle pitching proportional feedback gain [s] +-9.1984 ! Fl_Kp - Nacelle pitching proportional feedback gain [s] 11.2770 ! Fl_U - Wind speeds for scheduling Fl_Kp, optional if Fl_Kp is single value [m/s] !------- FLAP ACTUATION ----------------------------------------------------- diff --git a/Examples/Test_Cases/MHK_RM1/MHK_RM1_DISCON.IN b/Examples/Test_Cases/MHK_RM1/MHK_RM1_DISCON.IN index 322213ff..e23b75b5 100644 --- a/Examples/Test_Cases/MHK_RM1/MHK_RM1_DISCON.IN +++ b/Examples/Test_Cases/MHK_RM1/MHK_RM1_DISCON.IN @@ -1,10 +1,10 @@ ! Controller parameter input file for the MHK_RM1_Floating wind turbine -! - File written using ROSCO version 2.8.0 controller tuning logic on 01/05/24 +! - File written using ROSCO version 2.9.4 controller tuning logic on 07/01/24 !------- SIMULATION CONTROL ------------------------------------------------------------ 2 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)} 0 ! DT_Out - {Time step to output .dbg* files, or 0 to match sampling period of OpenFAST} -1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) +1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) 0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) !------- CONTROLLER FLAGS ------------------------------------------------- @@ -53,8 +53,8 @@ !------- BLADE PITCH CONTROL ---------------------------------------------- 30 ! PC_GS_n - Amount of gain-scheduling table entries 0.030335 0.049075 0.063610 0.076093 0.087460 0.097196 0.106672 0.115225 0.123634 0.131302 0.139019 0.146056 0.153083 0.159873 0.166338 0.172854 0.178999 0.185046 0.191143 0.196863 0.202559 0.208301 0.213742 0.219137 0.224575 0.229836 0.234972 0.240145 0.245291 0.250200 ! PC_GS_angles - Gain-schedule table: pitch angles [rad]. --0.010178 -0.008780 -0.007625 -0.006655 -0.005829 -0.005116 -0.004495 -0.003950 -0.003467 -0.003036 -0.002650 -0.002301 -0.001984 -0.001696 -0.001432 -0.001190 -0.000966 -0.000760 -0.000568 -0.000390 -0.000225 -0.000069 0.000076 0.000212 0.000340 0.000461 0.000575 0.000682 0.000784 0.000881 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. --0.005272 -0.004770 -0.004355 -0.004007 -0.003710 -0.003454 -0.003232 -0.003036 -0.002862 -0.002708 -0.002569 -0.002443 -0.002330 -0.002226 -0.002132 -0.002045 -0.001964 -0.001890 -0.001822 -0.001758 -0.001698 -0.001642 -0.001590 -0.001541 -0.001495 -0.001452 -0.001411 -0.001372 -0.001336 -0.001301 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. +-0.010207 -0.008807 -0.007650 -0.006678 -0.005849 -0.005135 -0.004512 -0.003965 -0.003481 -0.003048 -0.002661 -0.002310 -0.001993 -0.001703 -0.001438 -0.001195 -0.000971 -0.000764 -0.000572 -0.000393 -0.000226 -0.000071 0.000075 0.000212 0.000341 0.000462 0.000576 0.000685 0.000787 0.000884 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. +-0.005283 -0.004781 -0.004366 -0.004017 -0.003720 -0.003464 -0.003241 -0.003045 -0.002871 -0.002716 -0.002577 -0.002451 -0.002337 -0.002234 -0.002139 -0.002051 -0.001971 -0.001897 -0.001828 -0.001764 -0.001704 -0.001648 -0.001596 -0.001547 -0.001501 -0.001457 -0.001416 -0.001377 -0.001341 -0.001306 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.570000000000 ! PC_MaxPit - Maximum physical pitch limit, [rad]. @@ -86,7 +86,7 @@ 8300.335630000 ! VS_RtTq - Rated torque, [Nm]. 63.81200000000 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --63.8796200000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-63.3401400000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) -84.4329000000 ! VS_KI - Integral gain for generator PI torque controller [s]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) 7.17 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio. Only used in VS_ControlMode = 2. 0.314000000000 ! VS_PwrFiltF - Low pass filter on power used to determine generator speed set point. Only used in VS_ControlMode = 3. @@ -113,7 +113,7 @@ 36 26 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios 60 ! WE_FOPoles_N - Number of first-order system poles used in EKF 0.5000 0.5517 0.6034 0.6552 0.7069 0.7586 0.8103 0.8621 0.9138 0.9655 1.0172 1.0690 1.1207 1.1724 1.2241 1.2759 1.3276 1.3793 1.4310 1.4828 1.5345 1.5862 1.6379 1.6897 1.7414 1.7931 1.8448 1.8966 1.9483 2.0000 2.0333 2.0667 2.1000 2.1333 2.1667 2.2000 2.2333 2.2667 2.3000 2.3333 2.3667 2.4000 2.4333 2.4667 2.5000 2.5333 2.5667 2.6000 2.6333 2.6667 2.7000 2.7333 2.7667 2.8000 2.8333 2.8667 2.9000 2.9333 2.9667 3.0000 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.14364445 -0.15850422 -0.17336400 -0.18822377 -0.20308354 -0.21794331 -0.23280308 -0.24766285 -0.26252262 -0.27738239 -0.29224216 -0.30710193 -0.32196171 -0.33682148 -0.35168125 -0.36654102 -0.38140079 -0.39626056 -0.41112033 -0.42598010 -0.44083987 -0.45569965 -0.47055942 -0.48666545 -0.50602877 -0.52082936 -0.60274133 -0.60720589 -0.60927938 -0.55668516 0.17844923 0.15174296 0.10860051 0.05753679 0.00176535 -0.05812003 -0.11803585 -0.18146508 -0.24666701 -0.31440662 -0.38335107 -0.45418067 -0.52480063 -0.59662243 -0.67000720 -0.74481113 -0.82056059 -0.89753628 -0.97589183 -1.05446405 -1.13345094 -1.21374047 -1.29379323 -1.37507241 -1.45808464 -1.54093580 -1.62426617 -1.70957888 -1.79610923 -1.88140848 ! WE_FOPoles - First order system poles [1/s] +-0.14373366 -0.15860266 -0.17347166 -0.18834066 -0.20320966 -0.21807866 -0.23294766 -0.24781666 -0.26268566 -0.27755466 -0.29242365 -0.30729265 -0.32216165 -0.33703065 -0.35189965 -0.36676865 -0.38163765 -0.39650665 -0.41137565 -0.42624465 -0.44111365 -0.45598265 -0.47085165 -0.48688530 -0.50710708 -0.52286299 -0.60338450 -0.60991074 -0.61241025 -0.55721025 0.17998191 0.15135742 0.10945592 0.05908027 0.00104043 -0.05507169 -0.11824557 -0.18009670 -0.24756868 -0.31240541 -0.38377494 -0.45106439 -0.52304487 -0.59605008 -0.66806086 -0.74501532 -0.81929468 -0.89533886 -0.97582430 -1.05220290 -1.13115451 -1.21410608 -1.29344979 -1.37444765 -1.45900848 -1.54200828 -1.62439937 -1.70996742 -1.79715535 -1.88045193 ! WE_FOPoles - First order system poles [1/s] !------- YAW CONTROL ------------------------------------------------------ 0.00000 ! Y_uSwitch - Wind speed to switch between Y_ErrThresh. If zero, only the second value of Y_ErrThresh is used [m/s] @@ -143,7 +143,7 @@ !------- Floating ----------------------------------------------------------- 1 ! Fl_n - Number of Fl_Kp gains in gain scheduling, optional with default of 1 --0.3999 ! Fl_Kp - Nacelle velocity proportional feedback gain [s] +-0.4009 ! Fl_Kp - Nacelle velocity proportional feedback gain [s] 2.1000 ! Fl_U - Wind speeds for scheduling Fl_Kp, optional if Fl_Kp is single value [m/s] !------- FLAP ACTUATION ----------------------------------------------------- diff --git a/Examples/Test_Cases/NREL-5MW/DISCON.IN b/Examples/Test_Cases/NREL-5MW/DISCON.IN index 0d8024d1..bf86cf78 100644 --- a/Examples/Test_Cases/NREL-5MW/DISCON.IN +++ b/Examples/Test_Cases/NREL-5MW/DISCON.IN @@ -1,10 +1,10 @@ ! Controller parameter input file for the NREL-5MW wind turbine -! - File written using ROSCO version 2.8.0 controller tuning logic on 01/05/24 +! - File written using ROSCO version 2.9.4 controller tuning logic on 07/01/24 !------- SIMULATION CONTROL ------------------------------------------------------------ 1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)} 0 ! DT_Out - {Time step to output .dbg* files, or 0 to match sampling period of OpenFAST} -1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) +1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) 0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) !------- CONTROLLER FLAGS ------------------------------------------------- @@ -53,8 +53,8 @@ !------- BLADE PITCH CONTROL ---------------------------------------------- 30 ! PC_GS_n - Amount of gain-scheduling table entries 0.056789 0.084492 0.106018 0.124332 0.140807 0.155903 0.169931 0.183270 0.196062 0.208354 0.220050 0.231503 0.242646 0.253377 0.263967 0.274233 0.284343 0.294292 0.303997 0.313626 0.322957 0.332260 0.341319 0.350368 0.359221 0.368059 0.376700 0.385301 0.393691 0.402050 ! PC_GS_angles - Gain-schedule table: pitch angles [rad]. --0.018995 -0.016672 -0.014787 -0.013228 -0.011916 -0.010797 -0.009831 -0.008989 -0.008248 -0.007592 -0.007006 -0.006480 -0.006005 -0.005574 -0.005182 -0.004822 -0.004492 -0.004187 -0.003906 -0.003644 -0.003402 -0.003175 -0.002963 -0.002765 -0.002579 -0.002404 -0.002239 -0.002083 -0.001936 -0.001797 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. --0.008388 -0.007514 -0.006805 -0.006218 -0.005725 -0.005304 -0.004940 -0.004624 -0.004345 -0.004098 -0.003878 -0.003680 -0.003501 -0.003339 -0.003192 -0.003056 -0.002932 -0.002817 -0.002712 -0.002613 -0.002522 -0.002437 -0.002357 -0.002283 -0.002212 -0.002147 -0.002085 -0.002026 -0.001971 -0.001918 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. +-0.019085 -0.016739 -0.014837 -0.013265 -0.011943 -0.010816 -0.009844 -0.008997 -0.008252 -0.007593 -0.007004 -0.006475 -0.005998 -0.005565 -0.005171 -0.004810 -0.004479 -0.004173 -0.003890 -0.003628 -0.003385 -0.003157 -0.002945 -0.002746 -0.002559 -0.002384 -0.002219 -0.002062 -0.001915 -0.001775 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. +-0.008417 -0.007536 -0.006822 -0.006232 -0.005735 -0.005312 -0.004947 -0.004629 -0.004350 -0.004102 -0.003881 -0.003682 -0.003503 -0.003341 -0.003192 -0.003057 -0.002932 -0.002818 -0.002712 -0.002613 -0.002522 -0.002436 -0.002357 -0.002282 -0.002212 -0.002146 -0.002084 -0.002025 -0.001970 -0.001917 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.570000000000 ! PC_MaxPit - Maximum physical pitch limit, [rad]. @@ -86,7 +86,7 @@ 43093.51876000 ! VS_RtTq - Rated torque, [Nm]. 122.9096700000 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --657.442080000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-654.312360000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) -104.507080000 ! VS_KI - Integral gain for generator PI torque controller [s]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) 7.64 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio. Only used in VS_ControlMode = 2. 0.314000000000 ! VS_PwrFiltF - Low pass filter on power used to determine generator speed set point. Only used in VS_ControlMode = 3. @@ -113,7 +113,7 @@ 36 26 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios 60 ! WE_FOPoles_N - Number of first-order system poles used in EKF 3.0000 3.2897 3.5793 3.8690 4.1586 4.4483 4.7379 5.0276 5.3172 5.6069 5.8966 6.1862 6.4759 6.7655 7.0552 7.3448 7.6345 7.9241 8.2138 8.5034 8.7931 9.0828 9.3724 9.6621 9.9517 10.2414 10.5310 10.8207 11.1103 11.4000 11.8533 12.3067 12.7600 13.2133 13.6667 14.1200 14.5733 15.0267 15.4800 15.9333 16.3867 16.8400 17.2933 17.7467 18.2000 18.6533 19.1067 19.5600 20.0133 20.4667 20.9200 21.3733 21.8267 22.2800 22.7333 23.1867 23.6400 24.0933 24.5467 25.0000 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.01638154 -0.01796321 -0.01954487 -0.02112654 -0.02270820 -0.02428987 -0.02587154 -0.02745320 -0.02903487 -0.03061653 -0.03219820 -0.03377987 -0.03536153 -0.03694320 -0.03852486 -0.04010653 -0.04168820 -0.04326986 -0.04485153 -0.04643319 -0.04801486 -0.04959652 -0.05117819 -0.05275986 -0.05434152 -0.05592319 -0.05758373 -0.05882656 -0.06845507 -0.05992890 -0.05031134 -0.05798636 -0.06840333 -0.08061549 -0.09336590 -0.10698855 -0.12116040 -0.13530722 -0.15025447 -0.16589008 -0.18080009 -0.19651023 -0.21294470 -0.22969213 -0.24540879 -0.26178304 -0.27905964 -0.29706835 -0.31499595 -0.33136688 -0.34832584 -0.36677525 -0.38556416 -0.40554370 -0.42546670 -0.44309547 -0.46062268 -0.47954729 -0.49884696 -0.51943992 ! WE_FOPoles - First order system poles [1/s] +-0.01640352 -0.01798730 -0.01957109 -0.02115488 -0.02273867 -0.02432245 -0.02590624 -0.02749003 -0.02907382 -0.03065761 -0.03224139 -0.03382518 -0.03540897 -0.03699276 -0.03857654 -0.04016033 -0.04174412 -0.04332791 -0.04491170 -0.04649548 -0.04807927 -0.04966306 -0.05124685 -0.05283063 -0.05441442 -0.05599821 -0.05763347 -0.05907205 -0.06912889 -0.05993737 -0.05021616 -0.05780794 -0.06849544 -0.08052122 -0.09351145 -0.10710432 -0.12106730 -0.13547025 -0.15041833 -0.16588021 -0.18135551 -0.19724989 -0.21342206 -0.22970423 -0.24663982 -0.26354532 -0.28064419 -0.29794214 -0.31532544 -0.33332004 -0.35128130 -0.36985759 -0.38827549 -0.40713466 -0.42584061 -0.44509747 -0.46449375 -0.48460700 -0.50475242 -0.52537402 ! WE_FOPoles - First order system poles [1/s] !------- YAW CONTROL ------------------------------------------------------ 0.00000 ! Y_uSwitch - Wind speed to switch between Y_ErrThresh. If zero, only the second value of Y_ErrThresh is used [m/s] diff --git a/Examples/Test_Cases/NREL_2p8_127/NREL-2p8-127_DISCON.IN b/Examples/Test_Cases/NREL_2p8_127/NREL-2p8-127_DISCON.IN index 31d0ed79..46be3ce2 100644 --- a/Examples/Test_Cases/NREL_2p8_127/NREL-2p8-127_DISCON.IN +++ b/Examples/Test_Cases/NREL_2p8_127/NREL-2p8-127_DISCON.IN @@ -1,10 +1,10 @@ ! Controller parameter input file for the NREL-2p8-127 wind turbine -! - File written using ROSCO version 2.8.0 controller tuning logic on 01/05/24 +! - File written using ROSCO version 2.9.4 controller tuning logic on 07/01/24 !------- SIMULATION CONTROL ------------------------------------------------------------ 2 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)} 0 ! DT_Out - {Time step to output .dbg* files, or 0 to match sampling period of OpenFAST} -1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) +1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.) 0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) !------- CONTROLLER FLAGS ------------------------------------------------- @@ -53,8 +53,8 @@ !------- BLADE PITCH CONTROL ---------------------------------------------- 30 ! PC_GS_n - Amount of gain-scheduling table entries 0.075990 0.104503 0.127446 0.147544 0.164940 0.181678 0.197073 0.211624 0.225753 0.238993 0.252021 0.264458 0.276515 0.288229 0.299596 0.310932 0.321646 0.332112 0.342584 0.353105 0.363012 0.373072 0.382733 0.392195 0.401619 0.411107 0.420504 0.429096 0.437752 0.446357 ! PC_GS_angles - Gain-schedule table: pitch angles [rad]. --0.023307 -0.020910 -0.018908 -0.017210 -0.015752 -0.014487 -0.013378 -0.012398 -0.011527 -0.010746 -0.010043 -0.009406 -0.008827 -0.008298 -0.007813 -0.007366 -0.006953 -0.006571 -0.006216 -0.005885 -0.005577 -0.005288 -0.005017 -0.004762 -0.004522 -0.004296 -0.004083 -0.003881 -0.003689 -0.003508 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. --0.000804 -0.000732 -0.000672 -0.000621 -0.000577 -0.000539 -0.000505 -0.000476 -0.000450 -0.000426 -0.000405 -0.000386 -0.000369 -0.000353 -0.000338 -0.000325 -0.000312 -0.000301 -0.000290 -0.000280 -0.000271 -0.000262 -0.000254 -0.000246 -0.000239 -0.000232 -0.000226 -0.000220 -0.000214 -0.000209 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. +-0.023241 -0.020868 -0.018883 -0.017197 -0.015748 -0.014490 -0.013386 -0.012410 -0.011542 -0.010763 -0.010062 -0.009426 -0.008848 -0.008320 -0.007835 -0.007388 -0.006976 -0.006594 -0.006238 -0.005908 -0.005599 -0.005310 -0.005038 -0.004783 -0.004543 -0.004317 -0.004103 -0.003901 -0.003709 -0.003527 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. +-0.000802 -0.000731 -0.000671 -0.000620 -0.000577 -0.000539 -0.000506 -0.000476 -0.000450 -0.000427 -0.000406 -0.000387 -0.000369 -0.000353 -0.000339 -0.000325 -0.000313 -0.000302 -0.000291 -0.000281 -0.000272 -0.000263 -0.000255 -0.000247 -0.000240 -0.000233 -0.000227 -0.000221 -0.000215 -0.000209 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) 1.570000000000 ! PC_MaxPit - Maximum physical pitch limit, [rad]. @@ -86,7 +86,7 @@ 24248.54567000 ! VS_RtTq - Rated torque, [Nm]. 122.9096700000 ! VS_RefSpd - Rated generator speed [rad/s] 1 ! VS_n - Number of generator PI torque controller gains --600.450450000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-599.338770000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) -85.3230300000 ! VS_KI - Integral gain for generator PI torque controller [s]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) 8.25 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio. Only used in VS_ControlMode = 2. 0.314000000000 ! VS_PwrFiltF - Low pass filter on power used to determine generator speed set point. Only used in VS_ControlMode = 3. @@ -113,7 +113,7 @@ 30 30 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios 60 ! WE_FOPoles_N - Number of first-order system poles used in EKF 3.0000 3.2897 3.5793 3.8690 4.1586 4.4483 4.7379 5.0276 5.3172 5.6069 5.8966 6.1862 6.4759 6.7655 7.0552 7.3448 7.6345 7.9241 8.2138 8.5034 8.7931 9.0828 9.3724 9.6621 9.9517 10.2414 10.5310 10.8207 11.1103 11.4000 11.8533 12.3067 12.7600 13.2133 13.6667 14.1200 14.5733 15.0267 15.4800 15.9333 16.3867 16.8400 17.2933 17.7467 18.2000 18.6533 19.1067 19.5600 20.0133 20.4667 20.9200 21.3733 21.8267 22.2800 22.7333 23.1867 23.6400 24.0933 24.5467 25.0000 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] --0.01246409 -0.01366752 -0.01487095 -0.01607438 -0.01727781 -0.01848123 -0.01968466 -0.02088809 -0.02209152 -0.02329495 -0.02449838 -0.02570181 -0.02690524 -0.02810867 -0.02931210 -0.03051553 -0.03171896 -0.03292239 -0.03412582 -0.03532924 -0.03653267 -0.03773610 -0.03893953 -0.04014296 -0.03876534 -0.03527029 -0.03014051 -0.02417865 -0.01714772 -0.00815401 -0.02209033 -0.02677213 -0.03094759 -0.03700125 -0.04188805 -0.04820630 -0.05390840 -0.06043728 -0.06624359 -0.07295380 -0.07986166 -0.08646363 -0.09412176 -0.10174417 -0.10913837 -0.11728247 -0.12497467 -0.13271621 -0.14189107 -0.15083268 -0.15981675 -0.16948290 -0.17870908 -0.18789884 -0.19750668 -0.20786563 -0.21788705 -0.22660607 -0.23612135 -0.24537696 ! WE_FOPoles - First order system poles [1/s] +-0.01260186 -0.01381859 -0.01503532 -0.01625205 -0.01746878 -0.01868551 -0.01990224 -0.02111897 -0.02233570 -0.02355243 -0.02476916 -0.02598590 -0.02720263 -0.02841936 -0.02963609 -0.03085282 -0.03206955 -0.03328628 -0.03450301 -0.03571974 -0.03693647 -0.03815320 -0.03936993 -0.04058667 -0.03922608 -0.03508867 -0.03003198 -0.02417528 -0.01730537 -0.00898539 -0.02245032 -0.02706065 -0.03108854 -0.03712828 -0.04209566 -0.04857003 -0.05395978 -0.06079111 -0.06630809 -0.07261058 -0.07985034 -0.08612180 -0.09374691 -0.10151803 -0.10895439 -0.11680833 -0.12401154 -0.13232357 -0.14130955 -0.14979812 -0.15867841 -0.16925534 -0.17835395 -0.18685622 -0.19682022 -0.20777561 -0.21797608 -0.22670834 -0.23616033 -0.24519119 ! WE_FOPoles - First order system poles [1/s] !------- YAW CONTROL ------------------------------------------------------ 0.00000 ! Y_uSwitch - Wind speed to switch between Y_ErrThresh. If zero, only the second value of Y_ErrThresh is used [m/s] diff --git a/rosco/toolbox/controller.py b/rosco/toolbox/controller.py index 9b78cce5..f26c67d0 100644 --- a/rosco/toolbox/controller.py +++ b/rosco/toolbox/controller.py @@ -542,8 +542,8 @@ def tune_flap_controller(self,turbine): C1 = np.zeros(len(v_rel)) C2 = np.zeros(len(v_rel)) for i, (v_sec,phi) in enumerate(zip(v_rel, phi_vec)): - C1[i] = integrate.trapz(0.5 * turbine.rho * turbine.chord * v_sec[0]**2 * turbine.span * Kcl * np.cos(phi)) - C2[i] = integrate.trapz(0.5 * turbine.rho * turbine.chord * v_sec[0]**2 * turbine.span * Kcd * np.sin(phi)) + C1[i] = integrate.trapezoid(0.5 * turbine.rho * turbine.chord * v_sec[0]**2 * turbine.span * Kcl * np.cos(phi)) + C2[i] = integrate.trapezoid(0.5 * turbine.rho * turbine.chord * v_sec[0]**2 * turbine.span * Kcd * np.sin(phi)) self.kappa[i]=C1[i]+C2[i] # PI Gains diff --git a/rosco/toolbox/turbine.py b/rosco/toolbox/turbine.py index f7cbb727..ddf42a04 100644 --- a/rosco/toolbox/turbine.py +++ b/rosco/toolbox/turbine.py @@ -670,9 +670,9 @@ def interp_surface(self,pitch,TSR): ''' # Form the interpolant functions which can look up any arbitrary location on rotor performance surface - interp_fun = interpolate.interp2d( - self.pitch_initial_rad, self.TSR_initial, self.performance_table, kind='cubic') - return interp_fun(pitch,TSR) + interp_fun = interpolate.RectBivariateSpline( + self.pitch_initial_rad, self.TSR_initial, self.performance_table.T) + return np.squeeze(interp_fun(pitch,TSR).T) def interp_gradient(self,pitch,TSR): ''' @@ -691,11 +691,11 @@ def interp_gradient(self,pitch,TSR): [1 x 2] array coresponding to gradient in pitch and TSR directions, respectively ''' # Form the interpolant functions to find gradient at any arbitrary location on rotor performance surface - dCP_beta_interp = interpolate.interp2d(self.pitch_initial_rad, self.TSR_initial, self.gradient_pitch, kind='linear') - dCP_TSR_interp = interpolate.interp2d(self.pitch_initial_rad, self.TSR_initial, self.gradient_TSR, kind='linear') + dCP_beta_interp = interpolate.RectBivariateSpline(self.pitch_initial_rad, self.TSR_initial, self.gradient_pitch.T) + dCP_TSR_interp = interpolate.RectBivariateSpline(self.pitch_initial_rad, self.TSR_initial, self.gradient_TSR.T) # grad.shape output as (2,) numpy array, equivalent to (pitch-direction,TSR-direction) - grad = np.array([dCP_beta_interp(pitch,TSR), dCP_TSR_interp(pitch,TSR)]) + grad = np.array([dCP_beta_interp(pitch,TSR).T, dCP_TSR_interp(pitch,TSR).T]) return np.ndarray.flatten(grad) def plot_performance(self): From d2e4846eb80edf7b12592e1960e72a9f01d5dab0 Mon Sep 17 00:00:00 2001 From: Garrett Barter Date: Fri, 5 Jul 2024 13:29:34 -0600 Subject: [PATCH 5/7] sync with new WISDEM syntax --- rosco/toolbox/inputs/validation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rosco/toolbox/inputs/validation.py b/rosco/toolbox/inputs/validation.py index 8b64e7ac..ade0f3ed 100644 --- a/rosco/toolbox/inputs/validation.py +++ b/rosco/toolbox/inputs/validation.py @@ -1,11 +1,11 @@ import os -from wisdem.inputs import validate_with_defaults +from wisdem.inputs.validation import _validate schema_dir = os.path.dirname(os.path.abspath(__file__)) def load_rosco_yaml(finput): rosco_schema = os.path.join(schema_dir,'toolbox_schema.yaml') - return validate_with_defaults(finput, rosco_schema) + return _validate(finput, rosco_schema, defaults=True) if __name__=='__main__': From 222817994f6482c238ef3c59933b1d26724a2f19 Mon Sep 17 00:00:00 2001 From: Garrett Barter Date: Fri, 5 Jul 2024 21:02:40 -0600 Subject: [PATCH 6/7] pin to right version of wisdem --- environment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/environment.yml b/environment.yml index ab4464f8..fa2bd25e 100644 --- a/environment.yml +++ b/environment.yml @@ -19,4 +19,4 @@ dependencies: - scipy - sphinx_rtd_theme - treon - - wisdem + - wisdem >=3.16 From ef0c6b5170c08dcf4075fed6add9f87099bebccd Mon Sep 17 00:00:00 2001 From: dzalkind Date: Wed, 10 Jul 2024 10:45:42 -0600 Subject: [PATCH 7/7] Fix max_torque_rates with gearbox ratio --- Examples/Tune_Cases/BAR.yaml | 2 +- Examples/Tune_Cases/NREL2p8.yaml | 2 +- Examples/Tune_Cases/NREL5MW.yaml | 2 +- Examples/Tune_Cases/NREL5MW_PassThrough.yaml | 2 +- Examples/Tune_Cases/RM1_MHK.yaml | 10 +++++----- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Examples/Tune_Cases/BAR.yaml b/Examples/Tune_Cases/BAR.yaml index bb21281d..bdf96e06 100644 --- a/Examples/Tune_Cases/BAR.yaml +++ b/Examples/Tune_Cases/BAR.yaml @@ -16,7 +16,7 @@ turbine_params: v_rated: 8.27356 # Rated wind speed [m/s] v_max: 25.0 # Cut-out wind speed [m/s], -- Does not need to be exact (JUST ASSUME FOR NOW) max_pitch_rate: 2. # Maximum blade pitch rate [deg/s] - max_torque_rate: 4500000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} + max_torque_rate: 62000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} rated_power: 5000000. # Rated Power [W] bld_edgewise_freq: 3.27082 # Blade edgewise first natural frequency [rad/s] bld_flapwise_freq: 2.61601 # Blade flapwise first natural frequency [rad/s] diff --git a/Examples/Tune_Cases/NREL2p8.yaml b/Examples/Tune_Cases/NREL2p8.yaml index 154d7b08..3d0af809 100644 --- a/Examples/Tune_Cases/NREL2p8.yaml +++ b/Examples/Tune_Cases/NREL2p8.yaml @@ -63,4 +63,4 @@ controller_params: n_U: 1 omega_flp: 0.0 zeta_flp: 0.0 -turbine_params: {rotor_inertia: 19858184.0, rated_rotor_speed: 1.26711, v_min: 3.0, v_rated: 11.4, v_max: 25.0, max_pitch_rate: 0.1745, max_torque_rate: 550000.0, rated_power: 2800000.0, bld_edgewise_freq: 8.2831853, bld_flapwise_freq: 0.0, TSR_operational: 0} +turbine_params: {rotor_inertia: 19858184.0, rated_rotor_speed: 1.26711, v_min: 3.0, v_rated: 11.4, v_max: 25.0, max_pitch_rate: 0.1745, max_torque_rate: 22000.0, rated_power: 2800000.0, bld_edgewise_freq: 8.2831853, bld_flapwise_freq: 0.0, TSR_operational: 0} diff --git a/Examples/Tune_Cases/NREL5MW.yaml b/Examples/Tune_Cases/NREL5MW.yaml index 9d3ff2a5..1da5f641 100644 --- a/Examples/Tune_Cases/NREL5MW.yaml +++ b/Examples/Tune_Cases/NREL5MW.yaml @@ -16,7 +16,7 @@ turbine_params: v_rated: 11.4 # Rated wind speed [m/s] v_max: 25.0 # Cut-out wind speed [m/s], -- Does not need to be exact (JUST ASSUME FOR NOW) max_pitch_rate: 0.1745 # Maximum blade pitch rate [rad/s] - max_torque_rate: 1000000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} + max_torque_rate: 40000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} rated_power: 5000000. # Rated Power [W] bld_edgewise_freq: 6.2831853 # Blade edgewise first natural frequency [rad/s] bld_flapwise_freq: 0.0 # Blade flapwise first natural frequency [rad/s] diff --git a/Examples/Tune_Cases/NREL5MW_PassThrough.yaml b/Examples/Tune_Cases/NREL5MW_PassThrough.yaml index d1f158a7..143e4679 100644 --- a/Examples/Tune_Cases/NREL5MW_PassThrough.yaml +++ b/Examples/Tune_Cases/NREL5MW_PassThrough.yaml @@ -16,7 +16,7 @@ turbine_params: v_rated: 11.4 # Rated wind speed [m/s] v_max: 25.0 # Cut-out wind speed [m/s], -- Does not need to be exact (JUST ASSUME FOR NOW) max_pitch_rate: 0.1745 # Maximum blade pitch rate [rad/s] - max_torque_rate: 1000000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} + max_torque_rate: 40000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} rated_power: 5000000. # Rated Power [W] bld_edgewise_freq: 6.2831853 # Blade edgewise first natural frequency [rad/s] bld_flapwise_freq: 0.0 # Blade flapwise first natural frequency [rad/s] diff --git a/Examples/Tune_Cases/RM1_MHK.yaml b/Examples/Tune_Cases/RM1_MHK.yaml index c81d1b8f..b4d03cca 100644 --- a/Examples/Tune_Cases/RM1_MHK.yaml +++ b/Examples/Tune_Cases/RM1_MHK.yaml @@ -13,12 +13,12 @@ turbine_params: rotor_inertia: 92169 # Rotor inertia [kg m^2], {Available in Elastodyn .sum file} rated_rotor_speed: 1.204 # 11.5 rpm # Rated rotor speed [rad/s] v_min: 0.5 # Cut-in wind speed [m/s] - v_rated: 2.0 # Rated wind speed [m/s] - v_max: 3.0 # Cut-out wind speed [m/s], -- Does not need to be exact (JUST ASSUME FOR NOW) + v_rated: 2.0 # Rated wind speed [m/s] + v_max: 3.0 # Cut-out wind speed [m/s], -- Does not need to be exact (JUST ASSUME FOR NOW) max_pitch_rate: 0.1745 # Maximum blade pitch rate [rad/s] - max_torque_rate: 100000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} - rated_power: 500000 # Rated Power [W] - bld_edgewise_freq: 60.2831853 # Blade edgewise first natural frequency [rad/s] + max_torque_rate: 7800. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} + rated_power: 500000 # Rated Power [W] + bld_edgewise_freq: 60.2831853 # Blade edgewise first natural frequency [rad/s] bld_flapwise_freq: 0.0 # Blade flapwise first natural frequency [rad/s] reynolds_ref: 8e6 # Optional