Привет, я анализирую данные о ветре для оценки энергии от ветряной турбины.
Я взял данные о ветре за 10 лет и составил гистограмму;
моя вторая стадия состояла в том, чтобы приспособить распределение Вейбулла к данным.
Я использовал R с пакетом, lmom
чтобы вычислить форму Вейбула и масштабировать этот код, который я использовал:
>library(lmom)
wind.moments<-samlmu(as.numeric(pp$WS))
moments<-pelwei(wind.moments)
x.wei<-rweibull(n=length(pp$WS), shape=moments["delta"], scale=moments["beta"])
hist(as.numeric(pp$WS), freq=FALSE)
lines(density(x.wei), col="red", lwd=4)
Кажется, что есть некоторая задержка между данными и функцией плотности; Можете ли вы помочь мне с этим? Другой вопрос, можете ли вы помочь мне в расчете годовой энергии по функции плотности?
Спасибо
r
distributions
eliavs
источник
источник
Ответы:
lmom
Функцияpelwei
соответствует распределению Вейбулла с тремя параметрами, с параметрами местоположения , масштаба и формы.rweibull
генерирует случайные числа для двух -параметрической распределения Вейбулла. Вам нужно вычесть параметр местоположенияmoments["zeta"]
. Это должно дать лучшее прилегание, но он не появляется , это даст хорошую подгонку для ваших конкретных данных.Я замечаю, что http://www.reuk.co.uk/Wind-Speed-Distribution-Weibull.htm говорит, что «скорости ветра в большинстве стран мира можно смоделировать с помощью распределения Вейбулла». Возможно, вам просто не повезло, и вы живете в той части мира, где они не могут!
источник
integrate()
Функция R может быть полезна для этого.Я воссоздал ваш сюжет с данными из http://hawaii.gov/dbedt/ert/winddata/krab0192.txt (я сделал 1200 измерений). Я получил приличное соответствие данных, как правило, используя ваш код:
Извините, я не уверен, что это может быть вашей проблемой, но я думаю, что вы должны быть в состоянии приспособиться к вашим данным. Что вызывает у меня подозрение - это колокольчик на графике вашей плотности, я понятия не имею, откуда это взялось.
Вот моменты, которые я произвел:
wind.moments
моменты
WTR к годовому результату: я предполагаю, что я сгенерирую дискретные значения для функции плотности вероятности, умножу эти значения на выходную функцию и суммирую ее. В качестве альтернативы, вы можете просто использовать ваши необработанные данные, умножить значения с функцией вывода, суммировать их и рассчитать среднегодовое значение, вы должны соответствующим образом контролировать сезонность (например, убедитесь, что используете целые годы или соответственно взвешиваете) ,
Вот неконтролируемый вывод (используя формулу из http://www.articlesbase.com/diy-articles/determining-wind-turbine-annual-power-output-a-simple-formula-based-upon-blade-diameter- и -предельная скорость ветра в вашем местоположении-513080.html )
источник
Вот недавний пост в SO о ветровых турбинах. Мой ответ по этой ссылке содержит три ссылки, которые могут вас заинтересовать:
/programming/4843194/r-language-sorting-data-into-ranges-averaging-ignore-outliers/4844783#4844783
Я только что проверил одну из ссылок Вейбулла в приведенном выше ответе SO. По какой-то причине ссылка не работает. Вот несколько ссылок, которые предоставляют одну и ту же основную информацию:
http://www.gso.uri.edu/ozone/
http://www.weru.ksu.edu/new_weru/publications/pdf/Comparison%20of%20the%20Weibull%20model%20with%20measured%20wind%20speed%20distributions%20for%20stochastic%20wind%20genera.pdf
http://www.kfupm.edu.sa/ri/publication/cer/41_JP_Weibull_parameters_for_wind_speed_distribution_in_Saudi_Arabia.pdf
http://journal.dogus.edu.tr/13026739/2008/cilt9/sayi1/M00195.pdf
http://www.eurojournals.com/ejsr_26_1_01.pdf
Кроме того, из-за энергии, генерируемой ветром, сезонность очевидна.
источник
Я не уверен, что кто-то уже высказал эту мысль, но на самом деле pelwei можно заставить работать как двухпараметрическую функцию Вейбулла, добавив фиксированную границу.
Insead звонить,
moments<-pelwei(wind.moments)
вы должны просто позвонитьmoments<-pelwei(wind.moments,bound=0)
Вы всегда можете проверить значение дзета. Если это не 0, и вы используете dweibull, вам нужно что-то с этим сделать.
источник