R ile rüzgar verilerinin analizi


12

Merhaba ben bir rüzgar türbininden enerji tahmin etmek için rüzgar verileri analiz ediyorum.
10 yıllık rüzgar verisi aldım ve bir histogram çizdim;
ikinci aşamam veriye bir Weibull dağılımı yerleştirmekti. Weibul şeklini hesaplamak ve ölçek bu
paket kullanılan R lmomkod ile R kullandım:

>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)    

Veri ve yoğunluk fonksiyonu arasında bir miktar gecikme var gibi görünüyor; Bana bu konuda yardımcı olur musunuz? Başka bir soru, yoğunluk fonksiyonundan yıllık enerjiyi hesaplamama yardımcı olabilir misiniz?

resim açıklamasını buraya girin
teşekkür ederim


Resim hakkında, bazı resim barındırma gönderin ve bir bağlantı koymak - ben yapıştırılan bir resme dönüştürmek.

+1, ilginç bir soru, yakında yeterli bir üne sahip olacağınızı görebilirsiniz :)
mpiktas

2
grafikten bakıldığında, sorun gecikme değildir. Çizdiğiniz şey kabaca uyum iyiliği. Dolayısıyla, Weibull dağılımının verileriniz için uygun olmadığı anlaşılıyor. Sıfıra yakın bir grup olduğunu görüyorum, verilerinizde sıfır değer var mı? Bu durumda, sıfır değerleri ayrı olarak modellemeniz gerekecektir. Bu yüzden ilk öneri sıfır olmayan değerler için Weibull'u denemek olacaktır. Ayrıca neden Weibull, belki de benzer çalışmalardan bazı referanslar var?
mpiktas

1
"gecikme" nin, esasen zaman içinde verilerin analizinde kullanılan ve bir diğerinden sonra meydana gelen bir şeyi ifade eden bir terim olduğuna dikkat edin. Bu bir gecikme değildir - belki daha doğru bir şekilde vardiya olarak adlandırılır - ya da belki bir ofset - ama dağılım muhtemelen dağıtım için daha yaygındır, kaydırırlar ve ölçeklenirler.
Spacedman

1
faktörlerle as.numeric (x) kullanma konusunda dikkatli olun; aslında faktör için doğru sayı değerini aldığınızdan emin olmak için as.numeric (as.character (x)) kullanmak istersiniz.
Andy Clifton

Yanıtlar:


5

lmomişlevi konum , ölçek ve şekil parametreleriyle üç parametreli bir Weibull dağılımına pelweiuyar . iki parametreli Weibull dağılımı için rasgele sayılar üretir . Location parametresini çıkarmanız gerekir . Bu daha iyi bir uyum sağlamalıdır , ancak belirli verilerinize iyi bir uyum sağlayacak gibi görünmemektedir .rweibullmoments["zeta"]

Ben fark http://www.reuk.co.uk/Wind-Speed-Distribution-Weibull.htm diyor "dünyanın en Rüzgar hızları Weibull Dağılımı kullanılarak modellenebilir.". Belki de şanssızsınız ve dünyanın yapamayacakları bir yerinde yaşıyorsunuz!


ikinci sorumla bana yardımcı olabileceğini mi düşünüyorsun: yoğunluk fonksiyonuna göre rüzgar enerjisini hesaplamak?
eliavs

2
Ben fizikçi değilim ve gerekli denklemleri bilmiyorum, ama yoğunluk üzerinde sayısal bir integral içereceğini hayal ediyorum. R'nin integrate()işlevi bunun için yararlı olabilir.
onestop

denklemimi biliyorum benim problam rüzgar her hızda zaman yüzdesini hesaplamak istiyorum
eliavs

bana ne entegrasyon konusunda yardımcı olabilir misin -> teşekkür ederim
eliavs

6

Çiziminizi http://hawaii.gov/dbedt/ert/winddata/krab0192.txt adresindeki verilerle yeniden oluşturdum (1200 ölçüm aldım). Genellikle kodunuzu kullanarak, veri iyi bir uyum var:

library(lmom)

daten <- read.delim("wind.txt")
wind.avg <- na.omit(as.numeric(daten[,"X12"]))
wind.moments<-samlmu(wind.avg)
moments<-pelwei(wind.moments)
x.wei<-rweibull(n=length(wind.avg), shape=moments["delta"], scale=moments["beta"])
hist(as.numeric(wind.avg), freq=FALSE)
lines(density(x.wei), col="red", lwd=4)

Rüzgar Grafiği

Maalesef, sorunun ne olabileceğinden emin değilim, ama bence verilerinize weibull sığdırmalısın. Beni şüphe uyandıran şey, yoğunluk planınızın çan eğrisidir, nereden geldiğine dair hiçbir fikrim yok.

İşte oluşturduğum anlar:

wind.moments

       l_1         l_2         t_3         t_4 
15.17287544  4.80372580  0.14963501  0.06954438

anlar

     zeta      beta     delta 
 0.516201 16.454233  1.745413 

Yıllık çıktıya WTR: Olasılık yoğunluğu fonksiyonu için ayrık değerler üreteceğim, bu değerleri çıktı fonksiyonuyla çarpacağım ve özetleyeceğim. Alternatif olarak, ham verilerinizi kullanabilir, değerleri çıkış işleviyle çarpabilir, özetleyebilir ve yıllık ortalamayı hesaplayabilirsiniz, mevsimsellik için uygun bir şekilde kontrol etmelisiniz (örn. Tüm yılları kullandığınızdan emin olun veya buna göre ağırlık verin) .

İşte kontrolsüz çıktı ( http://www.articlesbase.com/diy-articles/determining-wind-turbine-annual-power-output-a-simple-formula-based-upon-blade-diameter- ve ortalama konumunuzda ortalama rüzgar hızı-513080.html )

years  <- length(wind.avg)/365
diameter <- 150
Power = (0.01328*diameter^2)*((wind.avg)^3)
(annual.power <- sum(Power)/years)
[1] 791828306

4

İşte rüzgar türbinlerinde SO'da yeni bir yazı. Bu bağlantıdaki cevabım ilginizi çekebilecek üç bağlantıya sahip:

/programming/4843194/r-language-sorting-data-into-ranges-averaging-ignore-outliers/4844783#4844783

Ben sadece yukarıdaki SO cevap Weibull bağlantılarından birini kontrol etti. Nedense, bağlantı koptu. Aynı temel bilgileri sağlayan bazı bağlantılar şunlardır:

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

Ayrıca, rüzgardan üretilen güçten, mevsimsellik açıktır.

resim açıklamasını buraya girin

resim açıklamasını buraya girin


1

Birinin bu noktayı daha önce belirtmiş olup olmadığından emin değilim, ancak pelwei aslında sabit bir sınır ekleyerek 2 parametreli bir weibull işlevi olarak çalışmaya zorlanabilir.

Aramak yerine moments<-pelwei(wind.moments)sadece aramalısınızmoments<-pelwei(wind.moments,bound=0)

her zaman zeta değerinin ne olduğunu kontrol edebilirsiniz. 0 değilse ve dweibull kullanıyorsanız, bu konuda bir şeyler yapmanız gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.