computeAvailablePower {afpt}R Documentation

Compute available power


Estimation of maximum available power available from the muscles.


computeAvailablePower(bird, maxPowerAero, ...)



bird description object (see Bird)


maximum continuous power


optional arguments (none yet)


Available power is determined as a muscle property. It is assumed that part of the muscles tissue is chemically active (mitochondria), providing the required ATP energy to the mechanically active tissue (myofibrils). The fraction of mitochondria determines the maximum sustainable power output from the muscles. With a higher fraction of myofibrils, the muscles can produce more power, but only in a short burst, until all ATP runs out.

If only a Bird object is provided, the function will assume that maximum power equals maximum continuous power (maxPowerAero). Otherwise, it will compute the burst maximum power.


numeric value of mechanical power


Available power is determined as a constant for the muscles. In reality the muscle power output depends on strainrate and stress, which in vertebrates are directly linked to wingbeat kinematics and aerodynamic loads.

Flight 1.25, the model of Pennycuick (2008) uses an isometric stress of 560 kN/m2. This is much higher than any measured value (Pennycuick & Rezende 1984). A more reasonable yet still very optimistic value would be 400 kn/m2, which is the default value assigned by the Bird constructor.


Marco Klein Heerenbrink


Pennycuick, C. J. & Rezende, M. A. (1984) The specific power output of aerobic muscle, related to the power density of mitochondria. J. Exp. Biol., 108, 377–392.

Pennycuick, C. J. (2008). Modelling the flying bird. Amsterdam, The Netherlands: Elsevier.

See Also



## Define a bird:
myBird = Bird(
  massTotal = 0.215, #  (kg) total body mass
  wingSpan = 0.67, #  (m) maximum wing span
  wingArea = 0.0652, #  (m2) maximum wing area
  type = "passerine"

## for maximum continuous power
power.max <- computeAvailablePower(myBird)
#   [1] 5.233528

## for specified maximum continuous power:
power.max.continuous <- 0.8*power.max
power.max.burst <- computeAvailablePower(myBird,power.max.continuous)
#   [1] 5.466625

[Package afpt version Index]