{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Converting wind profiles to energy potential\n", "Wind turbines convert the kinetic energy of the wind to electrical energy. The amount of energy produces thus depends on the wind speed, and the rotor area. If the wind speed is assumed to be uniform, then the calculation of the wind power is quite straightforward. However, if the vertical variability of the wind is taken into account, the power estimate is a bit different. In this document I will do some simple tests to assess the sensitivity of the wind power estimate to the wind speed and the method that is used to calculate it. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A conceptual figure" ] }, { "cell_type": "code", "execution_count": 278, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nBadoygAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Initialization\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from matplotlib.patches import Ellipse\n", "%matplotlib inline\n", "plt.style.use('fivethirtyeight')\n", "\n", "def logprofile(z,ust):\n", " ''' Return u as function of z(array) and u_star\n", " Uses Charnock relation for wind-wave interactions'''\n", " z0 = 0.011/9.81*ust # Charnock\n", " return ust/0.4*np.log(z/z0)\n", "\n", "# Create artifical wind profile\n", "ust = 0.25\n", "z = np.arange(0,305,5)+5\n", "u = logprofile(z,ust)+np.random.normal(0,.1,len(z))\n", "\n", "# Create an ellipse that visualizes the rotor disk in the figure\n", "rotor = Ellipse(xy=(6.5,100), width=.5, height=150, angle=0,alpha=.3)\n", "\n", "# Create the figure\n", "fig,ax = plt.subplots()\n", "ax.plot(u,z)\n", "ax.add_artist(rotor)\n", "ax.annotate('Rotor plane',(6.5,100),(6.7,200),arrowprops=dict(facecolor='black',width=2,headwidth=8),fontsize=16)\n", "ax.fill_between(ax.get_xlim(),175,25,color='g',alpha=.2)\n", "ax.set_xlabel('Wind speed (m/s)')\n", "ax.set_ylabel('Altitude (m)')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Basic power estimate\n", "The total kinetic energy of the mean flow that passes through the rotor plane in a given unit of time is equal to:\n", "\n", "$$\n", "E = ^1\\!\\!/_2 m u^2 = ^1\\!\\!/_2 \\rho V u^2 = ^1\\!\\!/_2 \\rho A u t u^2 = ^1\\!\\!/_2 \\rho A t u^3\n", "$$\n", "\n", "Where $m$ is the mass of the air, $u$ the mean horizontal wind speed, $\\rho$ is air density, and $V$ is the volume of the air passing through the rotor plane $A$ in time $t$. The power $P$ in the mean wind is equal to \n", "\n", "$$\n", "P_{total} = ^E\\!\\!/t = ^1\\!\\!/_2 \\rho A u^3\n", "$$\n", "\n", "and the fraction of it that is extracted by wind turbines and converted to electrical energy is\n", "\n", "$$\n", "P_{harvested} = ^1\\!\\!/_2 \\rho A u^3 c_p\n", "$$\n", "\n", "where $c_p$, the power coefficient of the turbine, is a sort of overall turbine efficiency. Since I'm mainly interested in the meteorological input and I will not discuss the value of $c_p$ and use the total power rather than the harvested power in the remainder.\n", "\n", "Obviously, $A$ is determined by the rotor radius, which is assumed to be 75 m in the sketch above. Often, a constant wind speed at hub-height is used in first order estimates of $P$. In the sketch, the hub-height is 100 m, where $u\\approx$ 8 m/s. If we assume a constant air density of 1.2 kg m$^{-1}$, the total power can be calculated easily as\n", "\n", "$$\n", "P_{total} = ^1\\!\\!/_2 \\rho \\pi R^2 u^3 \\approx 5.4 \\text{ MW}\n", "$$\n", "\n" ] }, { "cell_type": "code", "execution_count": 280, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Power estimate: 5.43 MW\n" ] } ], "source": [ "def power(rho,r,u):\n", " '''Return total wind power in MW as function of air density, rotor radius and wind speed at hub height'''\n", " return .5 * rho * np.pi * r**2 * u**3 / 1e6\n", "\n", "r = 75.\n", "u = 8.\n", "rho = 1.2\n", "print 'Power estimate: %.2f MW'%power(rho,r,u)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With this simple set-up it is easy to see that a small difference in wind speed translates to a large difference in wind energy:" ] }, { "cell_type": "code", "execution_count": 281, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Wind speed: 7.0 m/s, wind power: 3.64 MW\n", "Wind speed: 8.0 m/s, wind power: 5.43 MW\n", "Wind speed: 9.0 m/s, wind power: 7.73 MW\n" ] } ], "source": [ "for u in [7,8,9]:\n", " print 'Wind speed: %.1f m/s, wind power: %.2f MW'%(u,power(rho,r,u))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and that an accurate estimate of $u_*$ is essential:" ] }, { "cell_type": "code", "execution_count": 286, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "u*: 0.20, wind speed: 6.50 m/s, wind power: 2.92 MW\n", "u*: 0.25, wind speed: 7.99 m/s, wind power: 5.41 MW\n", "u*: 0.30, wind speed: 9.45 m/s, wind power: 8.95 MW\n" ] } ], "source": [ "for ust in [.2,.25,.3]:\n", " u = logprofile(100,ust)\n", " p = power(rho,r,u)\n", " print 'u*: %.2f, wind speed: %.2f m/s, wind power: %.2f MW'%(ust,u,p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A more sophisticated approach\n", "As can be seen from the figure above, a large difference in wind speed can occur between the top and the bottom of the rotor plane, and therefore a more realistic approach might give different results. \n", "\n", "The wind speed is a function of altitude. The area of the rotor plane can also be expressed as a function of altitude, namely by integrating the width of the rotor plane with respect to $z$:\n", "\n", "$$\n", "A = \\int_{h-r}^{h+r} 2x(z) dz\n", "$$\n", "\n", "Here, $h$ is the hub height of the wind turbine, $r$ is the rotor radius, and $x(z)$ is the horizontal distance from the edges of the rotor plane to the vertical axis. An expression for $x(z)$ is given below:\n", "\n", "$$\n", "x(z) = \\sqrt{r^2-(z-h)^2}\n", "$$\n", "\n", "If $z-h$ becomes larger than $r$ in the formula above, then the square root will not have real solutions. Thus, $x(z)$ is only defined in the rotor plane and it is set to 0 at all other altitudes. To find the estimated wind power, we evaluate the following summation:\n", "\n", "$$\n", "\\sum_z \\rho x(z)u(z)^3 \\Delta z\n", "$$\n", "\n" ] }, { "cell_type": "code", "execution_count": 275, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Wind power with basic formula: 5.49 MW\n", "Wind power with sophicsticated formula: 5.30 MW\n", "Difference: -0.19 MW\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/peter/anaconda/lib/python2.7/site-packages/ipykernel/__main__.py:8: RuntimeWarning: invalid value encountered in sqrt\n" ] } ], "source": [ "# Vertical levels\n", "dz = 1\n", "z = np.arange(0,300+dz,dz)+dz\n", "\n", "# Turbine characteristics\n", "r = 75 # rotor radius\n", "h = 100 # hub height\n", "x = np.where(np.abs(z-h)