Hallo, ich analysiere Winddaten, um die Energie einer Windkraftanlage abzuschätzen.
Ich habe 10 Jahre Winddaten genommen und ein Histogramm erstellt.
Meine zweite Stufe bestand darin, eine Weibull-Verteilung an die Daten anzupassen.
Ich habe R mit dem Paket verwendet lmom
, um die Weibul-Form zu berechnen und zu skalieren. Dies ist der Code, den ich verwendet habe:
>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)
Es scheint eine gewisse Verzögerung zwischen den Daten und der Dichtefunktion zu geben. kannst du mir dabei helfen? Eine andere Frage ist, können Sie mir bei der Berechnung der jährlichen Energie aus der Dichtefunktion helfen?
Danke
r
distributions
Eliavs
quelle
quelle
Antworten:
lmom
Die Funktionpelwei
passt eine Weibull-Verteilung mit drei Parametern mit den Parametern Position , Skalierung und Form an.rweibull
generiert Zufallszahlen für eine Zwei- Parameter-Weibull-Verteilung. Sie müssen den Standortparameter subtrahierenmoments["zeta"]
. Das sollte eine bessere Anpassung ergeben, aber es scheint nicht, dass es eine gute Anpassung für Ihre bestimmten Daten ergibt .Ich stelle fest, dass http://www.reuk.co.uk/Wind-Speed-Distribution-Weibull.htm besagt, dass Windgeschwindigkeiten in den meisten Teilen der Welt mithilfe der Weibull-Verteilung modelliert werden können. Vielleicht hast du einfach Pech und lebst in einem Teil der Welt, in dem sie es nicht können!
quelle
integrate()
Funktion von R kann dafür nützlich sein.Ich habe Ihr Grundstück mit Daten von http://hawaii.gov/dbedt/ert/winddata/krab0192.txt nachgebildet (ich habe 1200 Messungen durchgeführt). Ich habe eine anständige Übereinstimmung der Daten, in der Regel mit Ihrem Code:
Entschuldigung, ich bin nicht sicher, ob Ihr Problem sein könnte, aber ich denke, Sie sollten in der Lage sein, weibull an Ihre Daten anzupassen. Was mich misstrauisch macht, ist die Glockenkurve Ihres Dichtediagramms. Ich habe keine Ahnung, woher das kommt.
Hier sind die Momente, die ich generiert habe:
wind.moments
Momente
WTR zur jährlichen Ausgabe: Ich nehme an, ich würde diskrete Werte für die Wahrscheinlichkeitsdichtefunktion erzeugen, diese Werte mit der Ausgabefunktion multiplizieren und zusammenfassen. Alternativ können Sie einfach Ihre Rohdaten verwenden, die Werte mit der Ausgabefunktion multiplizieren, sie aufsummieren und den Jahresdurchschnitt berechnen. Sie sollten die Saisonalität auf geeignete Weise kontrollieren (z. B. stellen Sie sicher, dass Sie ganze Jahre verwenden oder entsprechend gewichten). .
Hier ist die unkontrollierte Ausgabe (unter Verwendung der Formel von http://www.articlesbase.com/diy-articles/determining-wind-turbine-annual-power-output-a-simple-formula-based-upon-blade-diameter- und-durchschnittliche-Windgeschwindigkeit-an-deinem-Standort-513080.html )
quelle
Hier ist ein neuer Beitrag bei SO zu Windkraftanlagen. Meine Antwort auf diesen Link enthält drei Links, die Sie interessieren könnten:
/programming/4843194/r-language-sorting-data-into-ranges-averaging-ignore-outliers/4844783#4844783
Ich habe gerade einen der Weibull-Links in der obigen SO-Antwort überprüft. Aus irgendeinem Grund ist die Verbindung unterbrochen. Hier sind einige Links, die dieselben grundlegenden Informationen enthalten:
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
Auch aus der Kraft des Windes ist die Saisonalität offensichtlich.
quelle
Ich bin mir nicht sicher, ob jemand bereits darauf hingewiesen hat, aber Pelwei kann tatsächlich gezwungen werden, als 2-Parameter-Weibull-Funktion zu arbeiten, indem eine feste Grenze hinzugefügt wird.
Insead anrufen
moments<-pelwei(wind.moments)
solltest du einfach anrufenmoments<-pelwei(wind.moments,bound=0)
Sie können jederzeit überprüfen, wie hoch der Zeta-Wert ist. Wenn es nicht 0 ist und Sie Dweibull verwenden, müssen Sie etwas dagegen tun.
quelle