PartialJensen | R Documentation |
If a rotor disc of a first turbine is only partially covered by a wake cone of a second turbine, the penalty must be adjusted accordingly. This function returns partial penalties, if partial wake applies, or full penalty, if not.
PartialJensen(x2, y2, x1, y1, Dirs, SDs, Elev, Z = NULL, DrawTop = FALSE, DrawFront = FALSE, DrawSide = FALSE)
x1 |
must be a single value. Provide the |
y1 |
must be a single value. Provide the |
x2 |
must be a single value. Provide the |
y2 |
must be a single value. Provide the |
Dirs |
a matrix containing average yearly wind directions. Usually, the third element of the list object |
SDs |
a matrix containing average yearly wind direction standard deviations. Usually, the fourth element of the list object |
Elev |
a matrix containing elevations. Usually, the fifth element of the list object |
Z |
accepts a vector of two representing the heights of the turbines at the two points in meters. If |
DrawTop |
If |
DrawFront |
If |
DrawSide |
If |
The function first checks whether there is partial coverage. If so, it adjusts the penalty internally given by PairPenalty
and if not, returns the full penalty. Therefore, the function is imposed over an existing Jensen model and refines it.
Note that the penalty is the deduction to wind speed. It applies to wind power by its third power, so the user is responsible to take it to its cube himself. Profit
does that automatically internally.
PartialJensen
returns a penality between 0 and 1.
Carsten Croonenbroeck
Frandsen, S. (1992). On the wind speed reduction in the center of large clusters of wind turbines. Journal of Wind Engineering and Industrial Aerodynamics, 39(1-3), pp. 251-265, https://doi.org/10.1016/0167-6105(92)90551-K.
JensenTrapezoid
to check whether there are wake effects present. FarmVars
for the data object. PairPenalty
for the non-partial wake penalty.
P1 <- c(0.5868695, 0.9722714) P2 <- c(0.4827957, 0.9552658) if (exists("FarmData", envir = e, inherits = FALSE)) { Dirs <- e$FarmData[[3]][e$FarmVars$StartPoint:e$FarmVars$EndPoint, e$FarmVars$StartPoint:e$FarmVars$EndPoint] SDs <- e$FarmData[[4]][e$FarmVars$StartPoint:e$FarmVars$EndPoint, e$FarmVars$StartPoint:e$FarmVars$EndPoint] Elev <- e$FarmData[[5]][e$FarmVars$StartPoint:e$FarmVars$EndPoint, e$FarmVars$StartPoint:e$FarmVars$EndPoint] } else { Dirs <- FarmData[[3]][e$FarmVars$StartPoint:e$FarmVars$EndPoint, e$FarmVars$StartPoint:e$FarmVars$EndPoint] SDs <- FarmData[[4]][e$FarmVars$StartPoint:e$FarmVars$EndPoint, e$FarmVars$StartPoint:e$FarmVars$EndPoint] Elev <- FarmData[[5]][e$FarmVars$StartPoint:e$FarmVars$EndPoint, e$FarmVars$StartPoint:e$FarmVars$EndPoint] } ## First, compute the non-partial penalty: Penal <- PairPenalty(P2[1], P2[2], P1[1], P1[2], Dirs, SDs) ## Then, correct it for partial coverage: Penal2 <- PartialJensen(P2[1], P2[2], P1[1], P1[2], Dirs, SDs, Elev) ## Now draw a top view: Penal2 <- PartialJensen(P2[1], P2[2], P1[1], P1[2], Dirs, SDs, Elev, DrawTop = TRUE) ## Now draw a front view: Penal2 <- PartialJensen(P2[1], P2[2], P1[1], P1[2], Dirs, SDs, Elev, DrawFront = TRUE) ## Note that the downwind point is somewhat elevated, seems 'right' ## from the upwind point of view, and far away (rotor disc seems smaller). ## Now draw a side view: Penal2 <- PartialJensen(P2[1], P2[2], P1[1], P1[2], Dirs, SDs, Elev, DrawSide = TRUE) ## For elevation, see Height(P1[1], P1[2], Elev) # (upwind point) ## and Height(P2[1], P2[2], Elev) # (downwind point) ## Instead, for the next example, the downwind point is closer ## to the upwind point (larger impression of rotor disc), 'left' ## of it and lower in terms of elevation: x1 <- 0.5 y1 <- 0.5 x2 <- 0.45 y2 <- 0.478 Penal <- PairPenalty(x2, y2, x1, y1, Dirs, SDs) Penal2 <- PartialJensen(x2, y2, x1, y1, Dirs, SDs, Elev, DrawTop = TRUE) Penal2 <- PartialJensen(x2, y2, x1, y1, Dirs, SDs, Elev, DrawFront = TRUE) ## For elevation, see Height(x1, y1, Elev) # (upwind point) ## and Height(x2, y2, Elev) # (downwind point)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.