Openfast: Wo sind die Daten verfügbar oder welches Skript erzeugt Daten?

Erstellt am 19. Okt. 2020  ·  54Kommentare  ·  Quelle: OpenFAST/openfast

Hallo alle zusammen,
Ich habe die Dokumentation durchgesehen, konnte nicht herausfinden, welches Skript Daten erstellt? Auf der NREL-Website hilft der Pre-Prozessor AirfoilPrep bei der Erstellung der Daten für Aerodyn zum Beispiel sind für viele solcher Fälle vorhanden. Aber welches Modul arbeitet hier als Präprozessor und wie können die Daten heruntergeladen oder gar alle hte .dat-Dateien geholt werden?

Vielen Dank im Voraus.

Usage question

Alle 54 Kommentare

Liebe @ai-Aspirantin,

Ich bin mir nicht sicher, ob ich Ihre Frage vollständig verstehe, aber NREL hat mehrere Präprozessoren für OpenFAST entwickelt, darunter:

  • AirfoilPrep (zum Generieren von Tragflächendaten zur Verwendung in AeroDyn aus 2D-Daten)
  • TurbSim (zur Erzeugung von turbulentem Umgebungswind für InflowWind)
  • IECWind (zur Erzeugung von deterministischem Wind für InflowWind)
  • BModes (zum Erzeugen von Eigenformen für ElastoDyn)
  • usw.

Von diesen ist derzeit nur TurbSim im OpenFAST-Repository auf github enthalten.

Mit freundlichen Grüßen,

Lieber @jjonkman , vielen Dank für Ihre Antwort darauf.
Wenn ich einem Modell Daten zur Verfügung stellen möchte, haben diese immer das ähnliche Format wie im Beispiel in der Dokumentation?
Oder wird ein Skript im Openfast-Repository benötigt, das mir hilft, ähnliche Formatdaten als Eingabe zu erstellen?
Mache ich diesmal Sinn?

Liebe @ai-Aspirantin,

Das Format der verschiedenen OpenFAST-Eingabedateien ist festgelegt. Sie können die Daten zum Füllen dieser Eingabedateien von Hand oder durch Skripting generieren ... wirklich wie Sie möchten. Ich habe in meinem vorherigen Post mehrere der gängigen Präprozessoren erwähnt, die NREL entwickelt hat, um den Prozess zu unterstützen.

Ich bin mir nicht sicher, ob Sie versuchen, die aerodynamischen, strukturellen oder Steuerungseigenschaften der Windkraftanlage oder den Windeinfluss zu ändern, der zum Antrieb der Simulation verwendet wird. Aber eine Klärung, die helfen kann, kann helfen, spezifischere Anleitungen zu geben.

Mit freundlichen Grüßen,

Danke dafür @jjonkman
Ich verstehe es. Aber wie gesagt, ich wollte wissen, welche Mapping-Datei mir dabei helfen würde. Wäre es nur eine einzelne Datei, die ich ausführen muss? Oder eine ausführbare Datei mit einer bereitgestellten Basiseingabe? Und wenn beides der Fall ist, bleibt es für alle Präprozessoren gleich? Wenn nicht, kann ich Sie dann um die Hilfe bei den anderen Pre-Prozessor-Modulen bitten.

Also, im Grunde @jjonkman ist die Idee, openfast vollständig auszuführen und zu simulieren, aber ich wollte nur das Format der Eingabedateien verstehen, damit ich es mit meinem Team entsprechend verwalten kann.

Eine andere Frage, die ich habe, ist, dass beim Ausführen eines ausführbaren Openfast-Modells aus den Binärdateien nur zusätzliche Flags in den Daten erstellt werden. Es wird mir keine Simulation liefern, oder? Ich muss das Simulink-Modul explizit ausführen.

Sorry für die hektischen Fragen.

Liebe @ai-Aspirantin,

Ich bin mir nicht sicher, ob ich deine Fragen wirklich verstehe.

Um eine OpenFAST-Simulation auszuführen, benötigen Sie eine primäre (_*.fst_) Eingabedatei sowie Eingabedateien für jedes Modul (einige Module erfordern mehrere Eingabedateien). Bei der Ausführung von OpenFAST wird nur die primäre Eingabedatei angegeben. Die primäre Eingabedatei listet auf, welche Module aktiviert sind und die Namen (einschließlich Pfade) ihrer jeweiligen Eingabedateien. Vor dem Ausführen der OpenFAST-Simulation finden Vorverarbeitungsschritte statt, um die OpenFAST-Eingabedateien einzurichten.

OpenFAST kann entweder unabhängig ausgeführt werden oder mit Simulink verbunden werden. Die Simulink-Schnittstelle wird nur benötigt, wenn Sie Steuerungslogik in MATLAB/Simulink implementieren möchten.

Mit freundlichen Grüßen,

Hallo @jjonkman ,
Okay, lassen Sie mich die Fragen aufschlüsseln. Erstens geht es mir um Daten, die Daten, die ich für ein bestimmtes Modul erstellen möchte, sollten ähnlich aussehen wie im folgenden Link. https://openfast.readthedocs.io/en/master/source/user/aerodyn/appendix.html#ad -appendix
Dies hat also 4 Arten von Daten, der Treiber wird nur verwendet, wenn ich ein eigenständiges Modul ausführen muss.
zweitens ist die primäre Eingabedatei, die aus wenigen Datenpfaden besteht und die Informationen über bestimmte Werte einer Windmühle enthält.
drittens ist die blattdatei, die mir über die geometrie der blätter sagt und die sich von windmühle zu windmühle unterscheiden würde, oder?
Die letzte Datei ist die Tragflächendatei, die auch einige Parameter in Bezug auf die Tragflächenstruktur wie Tragflächenangriffswinkel, Widerstand, Auftrieb usw. enthält.

Wenn ich nun die ähnlichen Daten anordne, muss ich nur die Werte davon in den folgenden Dateien ersetzen, die in dem oben angegebenen Link erwähnt werden, oder würde mir das Ausführen einer Fortran-Datei helfen, Dateien zu erstellen, die bereit sind, sie als direkte Eingabe einzugeben?
Ich hoffe, ich bin diesmal klar.

Liebe @ai-Aspirantin,

NREL hat keinen Fortran-basierten Quellcode bereitgestellt, um die verschiedenen OpenFAST / AeroDyn-Eingabedateien automatisch zu generieren. Sie können die Eingabedateien jederzeit in jedem Texteditor manuell bearbeiten. Wenn Sie Tausende von Simulationen ausführen möchten, möchten Sie die Eingabedateien natürlich nicht manuell erstellen. Stattdessen möchten Sie die Eingabedateien mit einer Art Skript automatisch generieren. Gibt es eine bestimmte Skriptsprache, die Sie verwenden möchten, zB MATLAB oder Python? Die MATLAB-Toolbox (https://github.com/OpenFAST/matlab-toolbox) verfügt über Skripte, die OpenFAST-Eingabedateien lesen und schreiben können, z. B. können Sie die Eingabedateidaten in MATLAB einlesen, die Werte in MATLAB ändern und schreiben Sie die neue Eingabedatei aus. Diese können Sie als Grundlage für die Generierung eigener Skripte verwenden. Nach meinem Verständnis existieren ähnliche Skripte in der Python-Toolbox (https://github.com/OpenFAST/python-toolbox), aber ich bin mit den Details weniger vertraut.

Mit freundlichen Grüßen,

Lieber @jjonkman ,
Das ist wirklich hilfreich. Ich bevorzuge Python, werde mir das ansehen. Dankeschön.

Schließlich wollte ich wissen, ob im OpenFAST-Modell für eine Landwindmühle eine Kombination aus Aerodyn, Servodyn, Elastodyn ausreichend zusammenarbeitet?
Dies wird aus Flags gefiltert, die in der Primärdatei als Eingabe für das OpenFAST-Modul verwendet werden.

Lieber @ai-aspirant

Wenn Sie Jasons Antwort folgend ein Skript für die Generierung der Eingabedateien erstellen möchten, besteht eine Möglichkeit darin, einen Satz von "Vorlagen" -Eingabedateien aus einem vorhandenen OpenFAST-Modell zu verwenden. Ihr Skript würde diese Vorlagendateien lesen, die Werte ändern und sie für Ihre gegebene Turbine und Simulation schreiben. In der Matlab-Toolbox erfolgt das Lesen und Schreiben von Eingabedateien mit den Skripten FAST2MATLAB und MATLAB2FAST . Für die Python-Toolbox müssen Sie den Zweig dev . Beispiele zum Lesen und Schreiben von Dateien finden Sie in der Readme:
https://github.com/OpenFAST/python-toolbox/tree/dev/pyFAST/input_output

Es ist normalerweise ziemlich aufwendig, ein Turbinenmodell zu generieren, daher ziehen Sie es vielleicht vor, jeden Wert der Eingabedateien "manuell" zu bearbeiten, wenn Sie dies nur für eine Turbine tun müssen. Wir haben dafür keine "Standardmethode", da die Benutzereingaben in verschiedenen Formaten vorliegen können. Wenn Sie viele Modelle aus einem bestimmten Format einstellen müssen, wird Ihnen dieses Lese-/Schreibskript definitiv helfen.

Sobald Sie ein Turbinenmodell erstellt haben und viele Simulationen generieren möchten, können auch die Matlab- und Python-Skripte verwendet werden. Ich habe hier ein Beispiel hochgeladen, wie dies mit Python geht:
https://github.com/ebranlard/python-toolbox/blob/f/example/pyFAST/case_generation/examples/Example_Parametric.py

Ich hoffe das hilft,

Emmanuel

Liebe @ebranlard ,
Dies wäre eine große Hilfe. Ich würde die von Ihnen geteilten Links durchgehen und versuchen, die Daten so anzuordnen, wie es von OpenFAST erforderlich ist.
Dankeschön.

Wenn Sie die Generierung eines Turbinenmodells erwähnen, beziehen Sie sich dann auch auf die Kombination all dieser eigenständigen Modelle in OpenFAST oder die Anpassung des Originalmodells?

Danke nochmal.

Grüße,
Kirsten

Liebe Kirsten,

Bei einem OpenFAST-Modell einer landgestützten Windkraftanlage wären normalerweise die Module ElastoDyn (für Strukturdynamik), AeroDyn (für Aerodynamik), ServoDyn (für Steuerung) und InflowWind (für Umgebungswindeinstrom) aktiviert. Häufig wird AeroDyn auch eigenständig (ohne aeroelastische Kopplung) betrieben, wenn Sie die aerodynamische Leistung erst untersuchen möchten, bevor Sie die gekoppelte aero-servo-elastische Simulation simulieren.

Mit freundlichen Grüßen,

Hallo Kirsten,

Ich vermute, Sie haben bereits einige "Daten" über die Turbine, die Sie modellieren möchten: zum Beispiel einige geometrische Eigenschaften, aerodynamische Eigenschaften (Sehnen- und Drallverteilung, Polardaten), Material-/Struktureigenschaften (Massen, Steifigkeiten, Dämpfung) verschiedener Komponenten .

Basierend auf diesen Daten können Sie die Eingabedateien für OpenFAST schreiben. Ich nenne diesen Satz von Eingabedateien ein "OpenFAST-Modell".
Ein Beispiel für ein OpenFAST-Modell für die landgestützte NREL 5MW-Turbine finden Sie hier:
https://github.com/OpenFAST/r-test/tree/master/glue-codes/openfast/5MW_Land_DLL_WTurb

Sie müssen viele Daten kennen, um ein vollständiges OpenFAST-Modell zu erstellen. Aus diesem Grund empfiehlt Jason, vielleicht zunächst ein "AeroDyn-Treiber"-Modell einzurichten, bei dem Sie nur die aerodynamischen Eigenschaften der zu modellierenden Turbine kennen müssen. Beispiele finden Sie in dem oben genannten Link:
https://openfast.readthedocs.io/en/master/source/user/aerodyn/appendix.html#aerodyn-input-files

Grüße

Beachten Sie, dass das Eingabedateiformat festgelegt ist, und es wird erwartet, dass die Eingaben an einer bestimmten Zeilennummer erfolgen.

Von einer OpenFAST-Version zur nächsten nehmen wir jedoch manchmal Änderungen am Dateiformat vor (ein paar Zeilen hinzufügen oder entfernen), daher ist es wichtig, den Überblick zu behalten, welche Version von OpenFAST (oder AeroDyn/Treiber) Sie verwenden.

Änderungen zwischen den Versionen werden hier dokumentiert:
https://openfast.readthedocs.io/en/master/source/user/api_change.html

Der Master-Zweig des "r-test"-Repositorys, auf das ich zuvor hingewiesen habe, enthält Eingabedateien, die immer mit der aktuellen Version von openFAST übereinstimmen.

Hallo Emmanuel und @jjonkman ,
Ich hoffe es geht dir gut. Danke für all eure Antworten, hat mir sehr geholfen. Ich habe jedoch versucht, die _5MW_Land_DLL_WTurb_ mit den OpenFAST-Binärdateien und ausführbaren Dateien auszuführen. Beim Ausführen habe ich folgendes Ergebnis erhalten:
image

Die Binärdateien werden in den Pfad eingefügt, in dem meine ausführbaren Dateien vorhanden sind. Trotzdem bekomme ich diese Meldung. Ich habe mich also gefragt, ob dies nur eine normale Nachricht ist oder tatsächlich ohne diese Module ausgeführt wird.
Lassen Sie es mich wissen, wenn Sie weitere Informationen zu verschiedenen Verzeichnissen benötigen.

Ich habe es auch mit Paraview visualisiert. Könnte etwas Zeit brauchen, um es besser zu verstehen. Danke dafür nochmal an euch beide.

Ich wollte auch fragen, ob es einen Artikel gibt, der den idealen Grenzwert für jede Variable in der Ausgabe von FAST versteht. Wenn ich beispielsweise Wind1VelX betrachte, liegt es zwischen 1,162E+01 und 9,975E+01. Gibt es also eine Grenze für diese Variable, die mir hilft zu verstehen, ob sie wie eine Anomalie eine Grenze überschreitet?

Dankeschön.

Mit freundlichen Grüßen,
Kirsten

Hallo Kristen,

Was die Warnungen "Knotenausgang" betrifft, so wirken sich diese nicht auf die Simulationsergebnisse aus; Sie können die Warnungen ignorieren. Ich habe @andrew-platt danach gefragt, und hier ist seine Antwort:

Ich werde diese in Info ändern, anstatt zu warnen.

Als wir die knotenbasierten Ausgaben hinzugefügt haben, haben wir die Eingabedateien für jedes Modul abwärtskompatibel gehalten. Die Knotenausgänge sind ein zweiter Ausgabeabschnitt, der dem Standardausgabeabschnitt folgt. Die Warnung/Info soll den Benutzer also nur wissen lassen, dass dieser Abschnitt der Eingabedatei nicht existiert und dass er keine knotenbasierten Ausgaben erhält. Dies wurde zu ElastoDyn (nur Blade-Knoten), BeamDyn und AD15 hinzugefügt, sodass alle drei Module diese Informationen bei der Initialisierung melden können.

Bezüglich der "C_nalpha is 0"-Warnungen können Sie diese ebenfalls ignorieren. Das instationäre Strömungsprofil-Aerodynamikmodell von AeroDyn ist nicht gültig, wenn die Steigung der Normalkraftkoeffizienten-Kurve Null ist.

Mir ist kein Papier bekannt, das vernünftige oder physikalische Grenzen für die verschiedenen FAST-Ausgaben zusammenfasst.; diese kommen nur mit erfahrung. Aber ein Windgeschwindigkeitsbereich von 11,62 bis 99,75 m/s klingt in der Tat extrem.

Mit freundlichen Grüßen,

Hallo @jjonkman ,
Verstanden. Für den Fall, dass die Knotenausgaben nicht generiert werden, würde die Standardausgabe meiner Meinung nach ausreichen.
Eine andere Sache, auf die ich gestoßen bin, war, dass während ich die _5MW_Land_DLL_WTurb.out_ durchging , diese nur die Ausgabeparameter für InFlowWind- und ElastoDyn-Module enthielt. Enthält es nicht die Ausgabeparameter von Aerodyn und ServoDyn, wie sie im FAST-Benutzerhandbuch im Abschnitt _Ausgabedateien_ erwähnt sind?
Außerdem wollte ich die Zeit Ausgabeparameter, der im Bereich von 0 bis 60 in der gleichen Ausgabedatei verstehen ich bereits erwähnte, ist , dass eine Zeitreihe Bereich bedeuten?

Vielen Dank.
Grüße,
Kirsten

Hallo Kristen,

Die OpenFAST-Ausgabedatei enthält alle von Ihnen ausgewählten Ausgaben auf Modulebene. Wenn Sie keine Ausgaben von ServoDyn und AeroDyn erhalten, liegt dies daran, dass Sie keine Ausgaben in den ServoDyn- und AeroDyn-Eingabedateien festgelegt haben.

OpenFAST ist ein nichtlinearer Zeitbereichslöser, die Ausgabe ist also die Reaktion der Windkraftanlage als Funktion der Zeit.

Mit freundlichen Grüßen,

Hallo Jason,
Ich habs. Ich habe gerade eine Liste von Parametern eingefügt und es funktionierte für beide Module. Vielen Dank.
Eine andere Sache, die ich schwer verstehen konnte, ist, dass in meiner von der Ausgabe generierten Datei ein Parameter 'Wind1VelX' generiert wird, der die X-Komponente des Windes am vom Benutzer ausgewählten Windpunkt 1 ist, da die ausgewählte Anzahl von Punkten 1 ist.
Aber falls ich zum besseren Verständnis wissen muss, wo genau dieser Punkt ist, haben Sie eine Idee, wo ich ihn finden kann? Oder kommt es, wenn ich viel über Windmühlen lerne?

Danke, mit Grüßen
Kirsten

Hallo Jason,
nur um den vorherigen Punkt hinzuzufügen, den ich überprüfen wollte, was genau Visualisierungsdateien im Wesentlichen enthalten? Ist es eine Animation, wie die Geschwindigkeitswerte beim Betrieb einer Windmühle helfen oder etwas anderes? Ich wollte das wissen, damit ich verstehe, was genau ich in Paraview sehen würde, da die Werte, die ich in eine Blade1referene.vlt-Datei bekam, ungefähr wie folgt aussahen:

image
Bedeutet dies also die Struktur und die verschiedenen Geschwindigkeiten, die meine Module als Ausgabe oder externe Berechnungen bereitstellen?

Grüße,
Kirsten

Liebe Kristen,

Die Position(en) der Umgebungswindausgaben von InflowWind (Wind1VelX usw.) werden vom Benutzer über die Eingabeparameter WindVxiList, WindVyiList und WindVziList in der InflowWind-Eingabedatei angegeben. Das InflowWind-Modul ist im InflowWind-Benutzerhandbuch gut beschrieben, das noch nicht auf OpenFAST readthedocs portiert wurde, aber hier verfügbar ist: https://drive.google.com/file/d/1-yJox2Kj-eBHfX2FdjE7RCaOkXRml9Mw/view?usp = teilen.

Die Visualisierungsfunktionalität von OpenFAST kann verwendet werden, um den nicht ausgelenkten Zustand oder eine Zeitreihenanimation der Turbinenantwort (in ihrem ausgelenkten Zustand) entweder im Strichmännchen-Format oder als Vollflächenvisualisierung zu visualisieren. Außerdem können Sie verschiedene Felder wie Bewegungen und Lasten visualisieren. Die Visualisierungsfunktionalität von OpenFAST ist in der alten FAST v8 ReadMe-Datei dokumentiert, die noch nicht auf OpenFAST readthedocs portiert wurde, aber hier verfügbar ist: https://drive.google.com/file/d/17LDwMnCVmLfbRWSaVFxxqphVrtawMwlj/view?usp= teilen.

Mit freundlichen Grüßen,

Hallo Jason,
Vielen Dank für die Hilfe zu einem so großen Verständnis für all dies. Können Sie mir helfen, die Punkte zu verstehen, die in verschiedenen Modulen auch für die Geschwindigkeitsberechnung und Lasten berücksichtigt werden? Während ich die Dokumentation durchging, konnte ich nur auf Freiheitsgrad stoßen, das war es.
Außerdem wird es in der OutListParameters.xlsx auf der Registerkarte Nodes an jedem Node erwähnt. Aber welche alle Knoten berücksichtigt werden sollen, steht da irgendwo oder wird es in der mitgelieferten Liste der VxiList stehen?

Grüße,
Kirsten

Hallo Kristen,

Es tut mir leid, aber ich bin mir nicht sicher, ob ich deine Fragen richtig verstehe. Auf welches Arbeitsblatt "Knoten" beziehen Sie sich? Meinst du die "AeroDyn_Nodes" oder "ElastoDyn_Nodes" oder etwas anderes? Diese Knoten beziehen sich auf die verschiedenen Ausgangsknoten des entsprechenden Moduls. Beispielsweise sind die AeroDyn-Ausgabeknoten in den Rotorblättern und im Turm eine vom Benutzer ausgewählte Teilmenge der aerodynamischen Analyseknoten, wie in der AeroDyn-Dokumentation dokumentiert – siehe: https://openfast.readthedocs.io/en/master/source/ user/aerodyn/appendix.html#aerodyn -Liste-der-Ausgabekanäle.

Mit freundlichen Grüßen,

Lieber Jason,

Hat also jedes Modul unterschiedliche Knoten?

Ich wollte nach dem Arbeitsblatt "Knoten" für jedes von uns verwendete Modul fragen, wie AeroDyn, ServoDyn, ElastoDyn.
In Anbetracht von AeroDyn am Anfang hat das AeroDyn-Blatt einen Ausgabeparameter B1N1VUndx, der die Windgeschwindigkeit für Blatt 1 und Knoten 1 angibt.
Bei Türmen befindet er sich immer zwischen Turmknoten 1 und Turmknoten n und die Koordinaten für denselben werden als Eingabe bereitgestellt, wie in https://openfast.readthedocs.io/en/master/source/user . gezeigt
In ähnlicher Weise befindet sich die Knotennummer auf dem Blade auf der Local Blade Chordline, beginnend von der Spitze t bis zur Basis des Blades, wie in https://openfast.readthedocs.io/en/master/source/user/aerodyn/appendix . gezeigt

Sorry für all die naiven Fragen, aber ist das richtig?

Grüße,
Kirsten

Liebe Kristen,

Ja, das ist richtig.

ElastoDyn verfügt außerdem über Analyse- und Ausgabeknoten.

Mit freundlichen Grüßen,

Hallo Jason,
Sicher. Ich werde es prüfen.
Kann ich mit ServoDyn die Leistungskurve simulieren?
Dabei bin ich auf den Parameter Generated Electrical Power gestoßen. Ist das dasselbe?

Grüße,
Kirsten

Liebe Kristen,

Mit "Leistungskurve" meinen Sie vermutlich die Leistung als Funktion der Windgeschwindigkeit. Dies ist natürlich steuerungsabhängig, kann aber nicht direkt von ServoDyn berechnet werden. Sie müssen die Aerodynamik modellieren. Wenn Sie die Rotordrehzahl und den Anstellwinkel bei jeder Windgeschwindigkeit bereits kennen, können Sie mit dem eigenständigen AeroDyn-Treiber die aerodynamische Leistung für jeden Fall berechnen. Wenn Sie das nicht wissen, aber einen Controller haben, oder was strukturelle Flexibilität beinhalten soll, können Sie OpenFAST-Simulationen entweder separat für jede Windgeschwindigkeit oder mit einer einheitlichen, aber abgestuften Windgeschwindigkeit durchführen.

Mit freundlichen Grüßen,

Hallo lieber Jason,
Mit Leistungskurve meine ich die erzeugte Ausgangsleistung als Funktion der Windgeschwindigkeit, des Leistungskoeffizienten usw.
Wird es der aerodynamischen Kraft ähnlich sein? Da ist die Grundformel, die ich für dasselbe kenne,
1/2*(Air Density* Max Power coefficient *wind speed^3*swept rotor area)

Grüße,
Kirsten

Ihre Formel gilt sowohl für die aerodynamische Leistung als auch für die elektrische Leistung, aber der Leistungskoeffizient wird in beiden Fällen unterschiedlich sein. Die elektrische Leistung wird aufgrund von Verlusten bei der mechanisch-elektrischen Umwandlung etwas geringer sein als die aerodynamische Leistung. Typischerweise hängt dieser Umwandlungswirkungsgrad vom Energieumwandlungsansatz ab und kann von der Generatordrehzahl oder von der Leistung abhängig sein.

Mit freundlichen Grüßen,

Hallo Jason,
Für die ähnliche aerodynamische Leistungsberechnung bin ich auf diesen Link gestoßen https://openfast.readthedocs.io/en/master/source/user/aerodyn-aeroacoustics/03-model-verification.html?#reference -wind-turbine
Auf dieser Grundlage wären die Daten, die ich bereitstellen müsste, die Effizienz von Antriebsstrang und Generator. Verfügen wir über Daten, die als Eingabe für diese Leistungsberechnung verwendet werden können?
Ich denke, die AeroAcoustics.f90 könnte dabei helfen, wenn ich mich nicht irre.

Grüße

Hallo @ai-aspirant,

Die Dokumentation, auf die Sie verweisen, zeigt ein Beispiel – die landgestützte Referenzwindturbine IEA Wind Task 37 – mit einem Generatorwirkungsgrad von 93,6 %. Die NREL 5-MW-Baseline-Windturbine ist ein weiteres Beispiel mit einem Generatorwirkungsgrad von 94,4%. Wenn Sie keinen bestimmten Generatorwirkungsgrad im Sinn haben, können Sie einen in diesem Bereich annehmen.

Mit freundlichen Grüßen,

Hallo Jason,
Rechts. Ich glaube also, dass der Ausgabeparameter RtAeroPwr die erzeugte aerodynamische Leistung zeigt.

Grüße,

Richtig.

Hallo Jason,
Falls ich meine Daten in AeroDyn aufnehmen möchte, gibt es einen Satz von minimalen Eingabeparametern, die Sie dokumentiert haben und die mir die aerodynamische Leistung liefern, oder sollte ich alle Eingabeparameter durchgehen und sie gut studieren, wäre eine bessere Option? ?

Vielen Dank im Voraus.

Grüße,
Kirsten

Hallo Kristen,

Die Dokumentation gibt Hinweise, welche Eingänge wofür verwendet werden. Hoffentlich haben Sie genügend Erfahrung in der Modellierung von Windkraftanlagen, um zu wissen, welche Eingaben für die Berechnung der aerodynamischen Leistung wichtig sind.

Mit freundlichen Grüßen,

Hallo Jason,
Also habe ich versucht, die Dateien zu verstehen, als ich auf den AoA (Angle of Attack) stieß, der im Bereich von 180 bis -180 lag. Gibt es einen Grund, warum bei bestimmten Dateien bei der Implementierung von AeroDyn der Anstellwinkel für verschiedene Tragflächen unterschiedlich ist?

image
Wie Sie im obigen Bild sehen können, können die Tragflächenwerte unterschiedlich sein, beginnend mit den Dateien cylinder1.dat, die sich von ganz links im Bild befinden, und daher werden für jeden Wert unterschiedliche Tragflächendateien verwendet. Auf diesen Werten basieren meine Knoten bestimmt richtig?

Gibt es auf dieser Grundlage eine Mindestanzahl von Schaufeln, die in OpenFAST größer als 1 zu berücksichtigen sind, die vorgeschlagen wird oder 1 funktionieren sollte? Was würdest du vorschlagen, Jason?

Das oben gezeigte Bild dient jedoch nur als Referenz.

Grüße,
Kirsten

Liebe Kristen,

Die Tragflächendaten (Auftrieb, Tiefgang, Moment versus AoA) sollten für den gesamten 360-Grad-Bereich (-180 bis 180 Grad) von AoA bereitgestellt werden, da der tatsächliche AoA zur Laufzeit bestimmt wird und sich von Zeitschritt zu Schritt ändern kann.

Die Tragflächendaten sollten von der Tragflächenform abhängen, wie Sie bemerkt haben. Es kann auch von der Rotationsvergrößerung (3D-Effekte) abhängen, wenn Sie diese auf die Tragflächendaten anwenden.

Normalerweise empfehlen wir in der Größenordnung von 20 aerodynamischen Analyseknoten entlang des Blattes. Ob dies einige Tragflächentabellen (wobei jede Tabelle auf mehrere Knoten angewendet wird) oder viele Tragflächentabellen (eindeutige Tabelle für jeden Knoten) erfordert, hängt von der Variabilität der Tragflächenform entlang der Schaufel, der Bedeutung der Rotationsverstärkung und der gewünschten Genauigkeit der Lösung.

Mit freundlichen Grüßen,

Lieber Jason,
Okay. Das klingt großartig.
Eine Sache, die ich verstehen wollte, war, dass es Sensoren gibt, die die Widerstandskraft oder die Auftriebskraft berechnen, damit ich ihre Koeffizienten berechnen kann?

Eine andere Sache, auf die ich hinweisen wollte, ist, dass ich versucht habe, die Anzahl der Knoten zu reduzieren, also habe ich ein paar Zeilen aus der Datei "Test01_UAE_AeroDyn_blade.dat" entfernt, die Anzahl der NumBlNds auf 15 geändert und die Anzahl der NumAFFiles-Parameter von 10 auf 5 reduziert , und änderte die BlOutNd-Parameter auf 1, 3. Trotzdem erhalte ich beim Abrufen des unten angezeigten Fehlers "Aufgetreten beim Versuch, BlOutNd zu lesen."
Muss ich noch weitere Flags ändern?

image

Nochmals vielen Dank für die Hilfe an alle und auch an Sie

Grüße,
Kirsten

Liebe Kristen,

Sorry, aber deine erste Frage verstehe ich nicht ganz.

In Bezug auf die zweite Frage haben Sie zwei Knoten für BlOutNd festgelegt. Bedeutet das, dass Sie NBlOuts = 2 setzen? Andernfalls aktivieren Sie wie bei jedem Verarbeitungsfehler der Eingabedatei die Option Echo, um Fehler in der Formatierung der Eingabedatei zu debuggen.

Mit freundlichen Grüßen,

Hallo Jason,

Die erste Frage war, wie die Koeffizienten für Widerstand und Auftrieb berechnet werden.
Denn für die Drag Force gilt folgende Formel:
image

Wie bei allen verwendeten .dat-Dateien haben wir eine Kombination aus AoA-Winkel, Drag-Koeffizient, Lift-Koeffizient und Cm.
Ich wollte wissen, ob Koeffizienten mit der obigen Formel berechnet werden oder von einem Sensor stammen würden, da die Daten, die ich für die Verwendung von OpenFAST hochlade, keine Cd-, Cl- oder Cm-Werte haben.

Dankeschön.
Grüße,
Kirsten

Liebe Kristen,

Ich stimme Ihrer Formel zu und würde hinzufügen, dass C_D normalerweise von AoA (und vielleicht Re) abhängt. Die gleiche Gleichung gilt für die Auftriebskraft (F_L) unter Verwendung von C_L. Normalerweise werden C_D und C_L als Funktion von AoA (und vielleicht Re) für eine gegebene Tragfläche basierend auf Windkanal- oder Rechenlösungen abgeleitet. Diese werden dann auf den vollen 360-Grad-Bereich erweitert und hinsichtlich der Rotationsverstärkung korrigiert, bevor sie in AeroDyn zur Anwendung in einer aeroelastischen Berechnung von Windkraftanlagen eingegeben werden.

Mit freundlichen Grüßen,

Hallo Jason,

Ich konnte nicht verstehen, wie die Koeffizientenwerte des Luftwiderstands oder des Auftriebs als Eingabe bereitgestellt werden. Ich meine, gibt es einen zusätzlichen Sensor wie ein Anemometer für die Windgeschwindigkeit oder eine Windfahne für die Windrichtung, ähnlich wie für den Luftwiderstandsbeiwert haben wir auch oder werden diese nach einer bestimmten Formel berechnet.
Die einzige Formel, die mir einfallen könnte, ist:
Der Luftwiderstandsbeiwert (Cd) ist gleich der Dichte der Luft (r) mal dem halben Quadrat der Geschwindigkeit (V) mal der Flügelfläche (A).

Ich war mir nicht sicher, ob dies mir helfen würde, verschiedene Koeffizientenwerte zu erstellen, die als Eingabe für AeroDyn bereitgestellt werden sollen. Führt OpenFAST die Berechnung für solche Koeffizienten durch? Könnt ihr mir bitte bei der Formel helfen?

Grüße,
Kirsten

Hallo Kristen,

Wie ich bereits sagte, wird der Luftwiderstandsbeiwert typischerweise als Funktion von AoA (und vielleicht Re) für ein gegebenes Profil basierend auf Windkanal- oder Rechenlösungen abgeleitet. Bei dünnen Tragflächen können Engineering-Tools wie XFoil oder RFoil (nicht von NREL entwickelt) verwendet werden, um den Widerstand (und den Auftrieb) bis zum Strömungsabrisspunkt zu berechnen.

Drag ist eine Eingabe für AeroDyn/OpenFAST, die nicht direkt von ihm berechnet wird. NREL hat keine Engineering-Tools entwickelt, um die Berechnung von Luftwiderstandsbeiwerten zu unterstützen.

Mit freundlichen Grüßen,

Hallo Jason, hoffe es geht dir gut in Covid-Zeiten.
Ich habs. Vielen Dank.
In der Zwischenzeit habe ich mir Aerodyn_IO.f90 angesehen, um einige Gleichungen für die in verschiedenen Modulen erzeugte Leistung zu verstehen.
Ich bin auf die folgenden Gleichungen für verschiedene Gleichungen gestoßen:
image

Wollte nur verstehen, was genau die Eingaben sind. Betrachten wir die Rotor Aerodynamic Power (RtAeroPwr), die Gleichung besteht aus der aerodynamischen Last in x-Richtung, was sind die restlichen Parameter wie BEMT_u?
Hat OpenFAST eine Dokumentation zu diesen Gleichungen?

Vielen Dank,
Kirsten

Hallo Kristen,

Die Variable m%BEMT_u(indx)%omega ist die Rotordrehzahl. Sie ist eine Eingabe (u) an das BEMT-Submodul von AeroDyn, wie sie im AeroDyn-Modul eingestellt ist, die auch eine sonstige Variable (MiscVar, m) von AeroDyn ist. Der Quellcode enthält zwar eine Menge Dokumentation, aber für die Interpretation sind Kenntnisse von Fortran und dem FAST-Modularisierungs-Framework erforderlich. Diese Variable ist in BEMT_Registry.txt (input omega) und AeroDyn_Registry.txt (MiscVar BEMT_u) definiert.

Mit freundlichen Grüßen,

Hallo Jason,

Ich glaube, dies sind Array-Werte, Rotorgeschwindigkeit (Winkelgeschwindigkeit des Rotors) und aerodynamische Rotorlast in x-Richtung.
Hat OpenFAST auch eine Dokumentation zu den anderen Gleichungen, die ich zuvor erwähnt habe, da ich beim Durcharbeiten der Skripte kein MeshType in HubMotion finden konnte.

Daher die Dokumentation der restlichen Gleichungen im Bild oben in der letzten Ausgabe.

Grüße,
Kirsten

Hallo @jjonkman ,
Ich wollte Ihr Problem, @ai-aspirant, ergänzen und fragen, was genau meine Leistungsausgangsvariable von OpenFAST für die gesamte Windmühle wäre? Wie kommt es, dass der GenPwr-Parameter im Bereich von 3,6 mW - 5 mW variiert? Ich meine, so viel ich verstehe, es folgt dem Power Curve-Format. Der Ausschnitt in der Nenndrehzahl (die Leistung konstant bleibt), und die ausgesparten Geschwindigkeit (Leistung fällt bis auf Null).

Grüße,
Mihir

Liebe Kristen -- Nach welcher Art von Dokumentation fragen Sie? Versuchen Sie, die Gleichungen selbst zu verstehen (hoffentlich sind diese für diese Ergebnisse selbsterklärend) oder die Dokumentation zum FAST-Modularisierungs-Framework?

Sehr geehrter Mihir -- Die GenPwr-Ausgabe von ServoDyn ist die elektrische Leistungsabgabe (bestimmt durch Generator und/oder Controller, einschließlich elektrischer Wirkungsgradverluste). Die Leistungsabgabe kann in ihrer Variation stark schwanken, wenn die Turbine mit turbulenter Anströmung oder Böen betrieben wird. Die Leistungskurve repräsentiert das mittlere oder stationäre Verhalten.

Mit freundlichen Grüßen,

Hallo Jason,
Stimmt, ich wollte nur die Inputs dazu verstehen. Wie werden diese berechnet oder direkt als Input bereitgestellt. Gibt es in Anbetracht der aerodynamischen Leistung, meiner Rotordrehzahl und des aerodynamischen Lastmoments in x-Richtung eine Art von Eingaben, die wie ein Array oder nur eine ganze Zahl bereitgestellt werden müssen? Weil ich verstehen konnte, dass es ein einzelner ganzzahliger Wert ist.
Eine andere Frage ist, ob diese Eingaben als Eingabe bereitgestellt oder mit einer anderen Gleichung berechnet werden und wenn dies der Fall ist, von welchen Parametern sie abhängig sind, die ich ändern sollte, damit meine endgültige Ausgabe in diesem Fall Aerodynamische Leistung (RtAeroPwr) variiert entsprechend.

Dankeschön,
Grüße,
Kirsten

Liebe Kirsten,

In den obigen Gleichungen werden Eingaben auf Modulebene als u, kontinuierliche Zustände als x, Ausgaben als y, Parameter als p und sonstige Variablen als m bezeichnet. Diese Variablentypen sind im NWTC-Programmierhandbuch definiert: https://drive.google.com/file/d/1bDV1fBkiZUWs6Tkzb6nhCMUQvHpN_OtM/view?usp=sharing. Die Eingänge auf Modulebene, insbesondere u, sind Eingänge zu einem Modul, wie sie von einem anderen Modul innerhalb von OpenFAST berechnet wurden (und nicht vom Benutzer definierte Eingabeparameter). Im Standalone-Treibermodus (abgekoppelt von OpenFAST) werden die Eingänge durch den Standalone-Treibercode vorgegeben. In der Routine CalcOutput werden die Eingaben zum aktuellen Simulationszeitpunkt bereitgestellt. In der UpdateStates-Routine werden die Eingänge als Array über einen Bereich von Zeiten bereitgestellt, so dass das Modul zu jedem Zeitpunkt innerhalb des Zeitintervalls, über das es zeitintegriert (per Interpolation), auf den Eingang zugreifen kann. Weitere Informationen finden Sie im Handbuch des NWTC-Programmierers.

Mit freundlichen Grüßen,

Lieber Jason,
Danke für diese Informationen. Basierend auf dem, was Sie erwähnt haben, sind die Parameter, die für die RtAeroPwr-Berechnung verwendet werden, alle verschiedene Variablen. Betrachten Sie sie also als Ausgangsvariablen von Aerodyn Ie RtSpeed ​​und RtAeroMxh.
Wenn ich beide direkt multipliziert habe, ist es nicht ähnlich wie das, was RtAeroPwr als Ausgabe in der .out-Datei ausgibt.
Alle Werte sind unterschiedlich.
Muss es passieren? Sollte ich einen anderen Parameter einbeziehen, während ich es so berechne?

Grüße,
Kirsten

Hallo Jason,
Meinen Sie also, dass mein GenPwr für stationäre Winde meistens konstant wäre? Wenn das der Fall ist, liegt meine Ausgangsleistung nicht einmal in der Nähe von Leistungskurven.
Kann ich die Leistungskurven mit diesen OpenFAST-Modulen zeichnen? Oder würde es nur turbulente Windgeschwindigkeiten erfordern?
Kann ich das bei Paraview tun?

Grüße,
Mihir

Liebe Kirsten -- Verschiedene Variablen können als lokale Variablen betrachtet werden, die in Framework-Typen gespeichert werden, um die Effizienz der Berechnung zu erhöhen. Sie können Funktionen von Eingängen, Ausgängen, Zuständen oder Parametern sein. Das Produkt von RtSpeed ​​und RtAeroMxh sollte RtAeroPwr entsprechen, wenn die Einheiten geeignet sind (RtSpeed ​​sollte in rad/s, nicht in U/min angegeben werden).

Lieber Mihir -- OpenFAST kann noch viel mehr, aber natürlich kann man damit eine Leistungskurve berechnen. Dieses Thema wurde in unserem Forum diskutiert: https://wind.nrel.gov/forum/wind. Ich schlage vor, dort nach Anleitungen zu suchen.

Mit freundlichen Grüßen,

Lieber Jason,
Ja, ich habe es von U/min auf rad/s umgerechnet, es variiert immer noch ein wenig, nicht viel. Hat geholfen danke.
Ich hatte auch noch ein paar andere Fragen, ich versuche nur, diese zusammenzufassen.

  1. Wie pro was ich mit Ihrer Hilfe zu verstehen, ist aerodynamische Leistung zur Rotordrehzahl und aerodynamische Belastung in x-Richtung verbunden ist (auch als Rotor Drehmoment genannt , als ich durch das Forum würde Du erwähnt). Die beiden Variablen, die ich als Eingang erwähnt habe, sind eigentlich die Ausgänge des AeroDyn-Moduls, aber ich wollte wissen, welche Eingänge mit diesen Parametern verknüpft sind (RtSpeed ​​und Rotor Torque). Ich konnte hier weder die Verbindung noch die Gleichung finden, welche Eingänge mit den Gleichungsvariablen verknüpft sind. Ich bin gerade zur Unterroutine _AD_CalcOutput_ gekommen, aber keine weiteren Verbindungen. Wollte also nur über die Verbindungen zwischen den gleichen wissen.

  2. Ich erfuhr von der Änderung der elektrischen Leistung auch aus dem Forum, dh GenPwr, haben wir ähnliche Beiträge, die davon abhängig sind, ähnlich wie bei den vorherigen Fragen? Die Formel, auf die ich dabei gestoßen bin, lautet GenPwr = 0.001*y%ElecPwr

  3. Eine andere Sache, die ich zu verstehen versuchte, aber Schwierigkeiten hatte, war, wie die Zeitfunktionen initialisiert werden. Ich meine 0 bis 60 Zeitfunktionen mit 168 für jede Zeitfunktion; Auf der Grundlage, dass ich mir nicht sicher war, wie sich die Variablen ändern könnten, liegt das an der Platzierung aller Klingen oder wird eine bestimmte Variable so geändert, dass mein Rest der Parameter entsprechend abweicht oder ist es mit etwas verknüpft?

  4. Unterstützt OpenFAST und bietet eine Simulation zum Verständnis von Fehlern in verschiedenen Komponenten wie Getriebe, Blätter, Rotor usw.?

  5. Unterstützt OpenFAST zufällig die Neuerstellung einer bestimmten Variablen, falls man keine Daten dafür hat?

Ich entschuldige mich für einige eher triviale Fragen. Ich wollte nur sicherstellen, dass ich die Ausgaben und den Fluss richtig interpretiere. Vielen Dank für all Ihre Zeit und Mühe.

Grüße,
Kirsten

Liebe Kristen,

Hier sind meine Antworten auf _some_ Ihrer Fragen;

  1. Es ist wichtig, zwischen Ein- und Ausgängen auf Modulebene (in Bezug auf die Interaktion zwischen Modulen in OpenFAST, auch bekannt als u und y in der Dokumentation zum Modularisierungs-Framework und im Quellcode) und benutzerdefinierten Eingängen und benutzerdefinierten Ausgängen ( Eingabeparameter, die der Benutzer in einer Eingabedatei definiert und was in die Ausgabedatei geschrieben wird). Die Rotordrehzahl ist eine Eingabe auf Modulebene für AeroDyn (dh sie wird von einem anderen Modul (ElastoDyn) berechnet oder vom Treiber eingestellt) und es ist auch möglich, die Rotordrehzahl in die Ausgabedatei aufzunehmen. Das Rotordrehmoment wird in AeroDyn berechnet und kann in die Ausgabedatei geschrieben werden.

  2. Die elektrische Leistung wird vom ServoDyn-Modul berechnet, abhängig davon, welches Drehmomentregelungs- oder Generatormodell gewählt wird. Die von Ihnen angegebene Gleichung ist nur eine Umrechnung von Watt in kW.

  3. Ich verstehe deine Frage nicht.

  4. Es werden verschiedene Fehlerfälle unterstützt, zB Verlust der Nicksteuerung und Verlust der Drehmomentsteuerung, wie im Forum diskutiert wurde. Ich würde dort nach weiteren Informationen suchen.

  5. Einige Eingabeparameter haben Standardeinstellungen, die durch das Schlüsselwort "DEFAULT" angezeigt werden, aber die meisten erfordern eine Benutzerspezifikation. Weitere Informationen finden Sie in der Dokumentation und den Beispieleingabedateien.

Mit freundlichen Grüßen,

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

Bing008 picture Bing008  ·  6Kommentare

bartoszstachowicz picture bartoszstachowicz  ·  4Kommentare

Balazs-G picture Balazs-G  ·  26Kommentare

jjonkman picture jjonkman  ·  12Kommentare

JelmerPolman picture JelmerPolman  ·  5Kommentare