4.2.11.2. Extended Bladed Interface

The Bladed style DLL controller interface was extended to allow for a significant number of new channels arranged in channel groups in reserved ranges. This is shown in Fig. 4.51 below.

Channel scheme for extension to the Bladed DLL interface.

Fig. 4.51 Channel scheme for extension to the Bladed DLL interface.

The ServoDyn summary file contains a summary of all DLL inteface channels in use, as well as blocks of channels that are reserved.

  Legacy Bladed DLL interface channel usage by SrvD:

                 -->   indicates from SrvD to DLL
                 <--   indicates from DLL to SrvD
                 <->   indicates from bidirectional
      Record #         Description
      --------         -----------
           1      -->  Status flag set as follows: 0 if this is the first call, 1 for all subsequent time steps, -1 if this is the final call at the end of the simulation (-)
           2      -->  Current time (sec) [t in single precision]
           3      -->  Communication interval (sec)
           4      -->  Blade 1 pitch angle (rad) [SrvD input]
           5      -->  Below-rated pitch angle set-point (rad) [SrvD Ptch_SetPnt parameter]
           6      -->  Minimum pitch angle (rad) [SrvD Ptch_Min parameter]
           7      -->  Maximum pitch angle (rad) [SrvD Ptch_Max parameter]
           8      -->  Minimum pitch rate (most negative value allowed) (rad/s) [SrvD PtchRate_Min parameter]
           9      -->  Maximum pitch rate                               (rad/s) [SrvD PtchRate_Max parameter]
          10      -->  0 = pitch position actuator, 1 = pitch rate actuator (-) [must be 0 for ServoDyn]
          11      -->  Current demanded pitch angle (rad) [I am sending the previous value for blade 1 from the DLL, in the absence of any more information provided in Bladed documentation]
          12      -->  Current demanded pitch rate  (rad/s) [always zero for ServoDyn]
          13      -->  Demanded power (W) [SrvD GenPwr_Dem parameter from input file]
          14      -->  Measured shaft power (W) [SrvD input]
          15      -->  Measured electrical power output (W) [SrvD calculation from previous step; should technically be a state]
          16      -->  Optimal mode gain (Nm/(rad/s)^2) [if torque-speed table look-up not selected in input file, use SrvD Gain_OM parameter, otherwise use 0 (already overwritten in Init routine)]
          17      -->  Minimum generator speed (rad/s) [SrvD GenSpd_MinOM parameter]
          18      -->  Optimal mode maximum speed (rad/s) [SrvD GenSpd_MaxOMp arameter]
          19      -->  Demanded generator speed above rated (rad/s) [SrvD GenSpd_Dem parameter]
          20      -->  Measured generator speed (rad/s) [SrvD input]
          21      -->  Measured rotor speed (rad/s) [SrvD input]
          22      -->  Demanded generator torque above rated (Nm) [SrvD GenTrq_Dem parameter from input file]
          23      -->  Measured generator torque (Nm) [SrvD calculation from previous step; should technically be a state]
          24      -->  Measured yaw error (rad) [SrvD input]
          25      -->  Start of below-rated torque-speed look-up table (Lookup table not in use)
          26      -->  No. of points in torque-speed look-up table (-) [SrvD DLL_NumTrq parameter]:
          27      -->  Hub wind speed (m/s) [SrvD input]
          28      -->  Pitch control: 0 = collective, 1 = individual (-) [SrvD Ptch_Cntrl parameter]
          29      -->  Yaw control: 0 = yaw rate control, 1 = yaw torque control (-) [must be 0 for ServoDyn]
          30      -->  Blade 1 root out-of-plane bending moment (Nm) [SrvD input]
          31      -->  Blade 2 root out-of-plane bending moment (Nm) [SrvD input]
          32      -->  Blade 3 root out-of-plane bending moment (Nm) [SrvD input]
          33      -->  Blade 2 pitch angle (rad) [SrvD input]
          34      -->  Blade 3 pitch angle (rad) [SrvD input]
          35      <--  Generator contactor (-) [sent to DLL at the next call]
          36      <->  Shaft brake status (-) [sent to DLL at the next call; anything other than 0 or 1 is an error]
          37      -->  Nacelle yaw angle from North (rad)
          41      <--  demanded yaw actuator torque [this output is ignored since record 29 is set to 0 by ServoDyn indicating yaw rate control]
          45      <--  Demanded pitch angle (Collective pitch) (rad)
          47      <--  Demanded generator torque (Nm)
          48      <--  Demanded nacelle yaw rate (rad/s)
          49      -->  Maximum number of characters in the "MESSAGE" argument (-) [size of ErrMsg argument plus 1 (we add one for the C NULL CHARACTER)]
          50      -->  Number of characters in the "INFILE"  argument (-) [trimmed length of DLL_InFile parameter plus 1 (we add one for the C NULL CHARACTER)]
          51      -->  Number of characters in the "OUTNAME" argument (-) [trimmed length of RootName parameter plus 1 (we add one for the C NULL CHARACTER)]
          53      -->  Tower top fore-aft     acceleration (m/s^2) [SrvD input]
          54      -->  Tower top side-to-side acceleration (m/s^2) [SrvD input]
          55      <--  UNUSED: Pitch override [anything other than 0 is an error in ServoDyn]
          56      <--  UNUSED: Torque override [anything other than 0 is an error in ServoDyn]
          60      -->  Rotor azimuth angle (rad) [SrvD input]
          61      -->  Number of blades (-) [SrvD NumBl parameter]
          62      -->  Maximum number of values which can be returned for logging (-) [set to 300]
          63      <--  Number logging channels
          64      -->  Maximum number of characters which can be returned in "OUTNAME" (-) [set to 12601 (including the C NULL CHARACTER)]
          65      <--  Number of variables returned for logging [anything greater than MaxLoggingChannels is an error]
          69      -->  Blade 1 root in-plane bending moment (Nm) [SrvD input]
          70      -->  Blade 2 root in-plane bending moment (Nm) [SrvD input]
          71      -->  Blade 3 root in-plane bending moment (Nm) [SrvD input]
          73      -->  Rotating hub My (GL co-ords) (Nm) [SrvD input]
          74      -->  Rotating hub Mz (GL co-ords) (Nm) [SrvD input]
          75      -->  Fixed    hub My (GL co-ords) (Nm) [SrvD input]
          76      -->  Fixed    hub Mz (GL co-ords) (Nm) [SrvD input]
          77      -->  Yaw bearing  My (GL co-ords) (Nm) [SrvD input]
          78      -->  Yaw bearing  Mz (GL co-ords) (Nm) [SrvD input]
          82      -->  Nacelle roll    acceleration (rad/s^2) [SrvD input] -- this is in the shaft (tilted) coordinate system, instead of the nacelle (nontilted) coordinate system
          83      -->  Nacelle nodding acceleration (rad/s^2) [SrvD input]
          84      -->  Nacelle yaw     acceleration (rad/s^2) [SrvD input] -- this is in the shaft (tilted) coordinate system, instead of the nacelle (nontilted) coordinate system
          95      -->  Reserved (SrvD customization: set to SrvD AirDens parameter)
          96      -->  Reserved (SrvD customization: set to SrvD AvgWindSpeed parameter)
         109      -->  Shaft torque (=hub Mx for clockwise rotor) (Nm) [SrvD input]
         110      -->  Thrust - Rotating low-speed shaft force x (GL co-ords) (N) [SrvD input]
         111      -->  Nonrotating low-speed shaft force y (GL co-ords) (N) [SrvD input]
         112      -->  Nonrotating low-speed shaft force z (GL co-ords) (N) [SrvD input]		 
         117      -->  Controller state [always set to 0]
         120      <--  Airfoil command, blade 1
         121      <--  Airfoil command, blade 2
         122      <--  Airfoil command, blade 3
         129      -->  Maximum extent of the avrSWAP array: 3300

   Legacy Bladed DLL interface with Extended avrSWAP
          channel usage by SrvD:

                 -->   indicates from SrvD to DLL
                 <--   indicates from DLL to SrvD
      Record #         Requested by            Description
      --------         ---------------------   -----------
        1000     -->                           Version of extended avrSWAP: 1
        1001     -->                           General channel group -- Platform motion -- Displacement TDX (m)
        1002     -->                           General channel group -- Platform motion -- Displacement TDY (m)
        1003     -->                           General channel group -- Platform motion -- Displacement TDZ (m)
        1004     -->                           General channel group -- Platform motion -- Displacement RDX (rad)
        1005     -->                           General channel group -- Platform motion -- Displacement RDY (rad)
        1006     -->                           General channel group -- Platform motion -- Displacement RDZ (rad)
        1007     -->                           General channel group -- Platform motion -- Velocity     TVX (m/s)
        1008     -->                           General channel group -- Platform motion -- Velocity     TVY (m/s)
        1009     -->                           General channel group -- Platform motion -- Velocity     TVZ (m/s)
        1010     -->                           General channel group -- Platform motion -- Velocity     RVX (rad/s)
        1011     -->                           General channel group -- Platform motion -- Velocity     RVY (rad/s)
        1012     -->                           General channel group -- Platform motion -- Velocity     RVZ (rad/s)
        1013     -->                           General channel group -- Platform motion -- Acceleration TAX (m/s^2)
        1014     -->                           General channel group -- Platform motion -- Acceleration TAY (m/s^2)
        1015     -->                           General channel group -- Platform motion -- Acceleration TAZ (m/s^2)
        1016     -->                           General channel group -- Platform motion -- Acceleration RAX (rad/s^2)
        1017     -->                           General channel group -- Platform motion -- Acceleration RAY (rad/s^2)
        1018     -->                           General channel group -- Platform motion -- Acceleration RAZ (rad/s^2)
        2000     -->                           Ending   index for the non-lidar measurements channel block
        2001     -->                           Starting index for the lidar measurements channel block
        2500     -->                           Ending   index for the lidar measurements channel block
        2501     <--                           Starting index for the lidar control channel block
        2600     <--                           Ending   index for the lidar control channel block
        2601     <--    MoorDyn                Cable control channel group 1 -- DeltaL
        2602     <--    MoorDyn                Cable control channel group 1 -- DeltaLdot
        2603     <--                           Cable control channel group 2 -- DeltaL
        2604     <--                           Cable control channel group 2 -- DeltaLdot
        2605     <--    MoorDyn                Cable control channel group 3 -- DeltaL
        2606     <--    MoorDyn                Cable control channel group 3 -- DeltaLdot
        2800     <--                           Ending   index for the cable control channel block
        2801     -->                           StC control channel group 1 -- StC_Disp_X
        2802     -->                           StC control channel group 1 -- StC_Disp_Y
        2803     -->                           StC control channel group 1 -- StC_Disp_Z
        2804     -->                           StC control channel group 1 -- StC_Vel_X
        2805     -->                           StC control channel group 1 -- StC_Vel_Y
        2806     -->                           StC control channel group 1 -- StC_Vel_Z
        2807     <--                           StC control channel group 1 -- StC_Stiff_X (override spring  constant)
        2808     <--                           StC control channel group 1 -- StC_Stiff_Y (override spring  constant)
        2809     <--                           StC control channel group 1 -- StC_Stiff_Z (override spring  constant)
        2810     <--                           StC control channel group 1 -- StC_Damp_X  (override damping constant)
        2811     <--                           StC control channel group 1 -- StC_Damp_Y  (override damping constant)
        2812     <--                           StC control channel group 1 -- StC_Damp_Z  (override damping constant)
        2813     <--                           StC control channel group 1 -- StC_Brake_X (braking force)
        2814     <--                           StC control channel group 1 -- StC_Brake_Y (braking force)
        2815     <--                           StC control channel group 1 -- StC_Brake_Z (braking force)
        2816     <--                           StC control channel group 1 -- StC_Force_X (additional force)
        2817     <--                           StC control channel group 1 -- StC_Force_Y (additional force)
        2818     <--                           StC control channel group 1 -- StC_Force_Z (additional force)
        2819     <--                           StC control channel group 1 -- Reserved for future
        2820     <--                           StC control channel group 1 -- Reserved for future
        2821     -->    SStC2                  StC control channel group 2 -- StC_Disp_X
        2822     -->    SStC2                  StC control channel group 2 -- StC_Disp_Y
        2823     -->    SStC2                  StC control channel group 2 -- StC_Disp_Z
        2824     -->    SStC2                  StC control channel group 2 -- StC_Vel_X
        2825     -->    SStC2                  StC control channel group 2 -- StC_Vel_Y
        2826     -->    SStC2                  StC control channel group 2 -- StC_Vel_Z
        2827     <--    SStC2                  StC control channel group 2 -- StC_Stiff_X (override spring  constant)
        2828     <--    SStC2                  StC control channel group 2 -- StC_Stiff_Y (override spring  constant)
        2829     <--    SStC2                  StC control channel group 2 -- StC_Stiff_Z (override spring  constant)
        2830     <--    SStC2                  StC control channel group 2 -- StC_Damp_X  (override damping constant)
        2831     <--    SStC2                  StC control channel group 2 -- StC_Damp_Y  (override damping constant)
        2832     <--    SStC2                  StC control channel group 2 -- StC_Damp_Z  (override damping constant)
        2833     <--    SStC2                  StC control channel group 2 -- StC_Brake_X (braking force)
        2834     <--    SStC2                  StC control channel group 2 -- StC_Brake_Y (braking force)
        2835     <--    SStC2                  StC control channel group 2 -- StC_Brake_Z (braking force)
        2836     <--    SStC2                  StC control channel group 2 -- StC_Force_X (additional force)
        2837     <--    SStC2                  StC control channel group 2 -- StC_Force_Y (additional force)
        2838     <--    SStC2                  StC control channel group 2 -- StC_Force_Z (additional force)
        2839     <--    SStC2                  StC control channel group 2 -- Reserved for future
        2840     <--    SStC2                  StC control channel group 2 -- Reserved for future
        3000     <--                           Ending   index for the StC control channel block