docs: def motor_efficiency_underloaded(P, load=0.5):
      r'''Returns the efficiency of a motor operating under its design power
      according to [1]_.These values are generic; manufacturers usually list 4
      points on their product information, but full-scale data is hard to find
      and not regulated.
  
      Parameters
      ----------
      P : float
          Power, [W]
      load : float, optional
          Fraction of motor's rated electrical capacity being used
  
      Returns
      -------
      efficiency : float
          Motor efficiency, [-]
  
      Notes
      -----
      If the efficiency returned by this function is unattractive, use a VFD.
      The curves used here are polynomial fits to [1]_'s graph, and curves were
      available for the following motor power ranges:
      0-1 hp, 1.5-5 hp, 10 hp, 15-25 hp, 30-60 hp, 75-100 hp
      If above the upper limit of one range, the next value is returned.
  
      Examples
      --------
      >>> motor_efficiency_underloaded(1*hp)
      0.8705179600980149
      >>> motor_efficiency_underloaded(10.1*hp,  .1)
      0.6728425932357025
  
      References
      ----------
      .. [1] Washington State Energy Office. Energy-Efficient Electric Motor
         Selection Handbook. 1993.
      '''
      P = P/hp
      if P <=1:
          i = 0
      elif P <= 5:
          i = 1
      elif P <= 10:
          i = 2
      elif P <= 25:
          i = 3
      elif P <= 60:
          i = 4
      else:
          i = 5
      if load > _efficiency_ones[i]:
          return 1
      else:
          cs = _efficiency_lists[i]
          return cs[0] + cs[1]*load + cs[2]*load**2 + cs[3]*load**3 + cs[4]*load**4