Openfast: Où les données sont-elles disponibles ou quel script crée les données ?

Créé le 19 oct. 2020  ·  54Commentaires  ·  Source: OpenFAST/openfast

Bonjour à tous,
J'ai parcouru la documentation, je n'ai pas trouvé quel script crée des données ? Sur le site Web de NREL, le pré-processeur AirfoilPrep aide à créer les données pour Aerodyn, par exemple, sont présentes pour de nombreux cas. Mais quel module fonctionne ici comme préprocesseur et comment les données peuvent-elles être téléchargées ou même récupérer tous les fichiers hte .dat ?

Merci beaucoup d'avance.

Usage question

Tous les 54 commentaires

Cher @ai-aspirant,

Je ne suis pas sûr de bien comprendre votre question, mais NREL a développé plusieurs préprocesseurs pour OpenFAST, notamment :

  • AirfoilPrep (pour générer des données de profil aérodynamique à utiliser dans AeroDyn à partir de données 2D)
  • TurbSim (pour générer du vent turbulent ambiant pour InflowWind)
  • IECWind (pour générer du vent déterministe pour InflowWind)
  • BModes (pour générer des formes modales pour ElastoDyn)
  • etc.

Parmi ceux-ci, seul TurbSim est actuellement inclus dans le référentiel OpenFAST sur github.

Meilleures salutations,

Cher @jjonkman , merci pour votre réponse à cela.
Si je souhaite fournir des données à un modèle, le serait-il toujours dans le même format que celui fourni dans l'exemple de la documentation ?
Ou faudra-t-il un script dans le référentiel openfast qui m'aide à créer des données de format similaire en entrée?
Est-ce que j'ai du sens cette fois ?

Cher @ai-aspirant,

Le format des différents fichiers d'entrée OpenFAST est fixe. Vous pouvez générer les données pour remplir ces fichiers d'entrée à la main ou par script... vraiment comme vous le souhaitez. J'ai mentionné dans mon message précédent plusieurs des préprocesseurs communs que NREL a développés pour faciliter le processus.

Je ne sais pas si vous essayez de modifier les propriétés aérodynamiques, structurelles ou de contrôle de l'éolienne ou le flux de vent utilisé pour piloter la simulation. Mais clarifier cela peut aider peut aider à fournir des conseils plus spécifiques.

Meilleures salutations,

Merci pour ça @jjonkman
Je comprends bien. Mais comme je l'ai mentionné, je voulais savoir quel fichier de mappage m'aiderait dans le processus. Serait-ce juste un seul fichier que je dois exécuter ? Ou un exécutable avec une entrée de base fournie ? Et si l'un ou l'autre est le cas, reste-t-il le même pour tous les pré-processeurs ? Sinon, je peux alors vous demander de l'aide dans les autres modules de pré-processeur.

Donc, fondamentalement @jjonkman l'idée est d'exécuter complètement openfast et de le simuler mais je voulais juste comprendre le format des fichiers d'entrée afin que je puisse le gérer en conséquence avec mon équipe.

Une autre question que j'ai est, l'exécution d'un modèle openfast exécutable à partir des binaires ne fera que créer des indicateurs supplémentaires dans les données. Cela ne me fournira pas de simulation, n'est-ce pas ? Je vais devoir exécuter explicitement le module Simulink.

Désolé pour les questions précipitées.

Cher @ai-aspirant,

Je ne suis pas sûr de bien comprendre vos questions.

L'exécution d'une simulation OpenFAST nécessite que vous disposiez d'un fichier d'entrée principal (_*.fst_), ainsi que des fichiers d'entrée pour chaque module (certains modules nécessitent plusieurs fichiers d'entrée). Seul le fichier d'entrée principal est spécifié lors de l'exécution d'OpenFAST. Le fichier d'entrée principal répertorie les modules activés et les noms (y compris les chemins) de leurs fichiers d'entrée respectifs. Des étapes de pré-traitement ont lieu avant d'exécuter la simulation OpenFAST afin de configurer les fichiers d'entrée OpenFAST.

OpenFAST peut être exécuté indépendamment ou interfacé avec Simulink. L'interface Simulink n'est nécessaire que si vous souhaitez implémenter une logique de contrôle dans MATLAB/Simulink.

Meilleures salutations,

Bonjour @jjonkman ,
D'accord, permettez-moi de décomposer les questions. Premièrement, ma préoccupation concerne les données, les données que je souhaite créer pour un module particulier doivent ressembler à ce que je peux trouver dans le lien suivant. https://openfast.readthedocs.io/en/master/source/user/aerodyn/appendix.html#ad -appendix
Cela a donc 4 types de données, le pilote n'est utilisé que lorsque j'ai besoin d'exécuter un module autonome,
le deuxième est le fichier d'entrée principal qui se compose de quelques chemins de données contenant des informations sur des valeurs particulières d'une éolienne,
le troisième est le fichier de pales qui me renseigne sur la géométrie des pales et cela différerait d'une éolienne à l'autre, n'est-ce pas ?
Le dernier fichier est le fichier du profil aérodynamique qui contient également peu de paramètres liés à la structure du profil aérodynamique, tels que l'angle d'attaque du profil aérodynamique, la traînée, la portance, etc.

Maintenant, lorsque j'organise des données similaires, dois-je simplement remplacer les valeurs de celles-ci dans les fichiers suivants mentionnés dans le lien fourni ci-dessus ou l'exécution d'un fichier Fortran m'aiderait-elle à créer des fichiers prêts à être saisis en entrée directe ?
J'espère avoir été clair cette fois.

Cher @ai-aspirant,

NREL n'a pas fourni de code source basé sur Fortran pour générer automatiquement les différents fichiers d'entrée OpenFAST / AeroDyn. Vous pouvez toujours modifier manuellement les fichiers d'entrée dans n'importe quel éditeur de texte. Bien sûr, si vous avez l'intention d'exécuter des milliers de simulations, vous ne voudriez pas créer les fichiers d'entrée manuellement. Au lieu de cela, vous souhaitez générer automatiquement les fichiers d'entrée avec une sorte de script. Avez-vous l'intention d'utiliser un langage de script spécifique, par exemple MATLAB ou Python ? La boîte à outils MATLAB (https://github.com/OpenFAST/matlab-toolbox) contient des scripts qui peuvent lire et écrire des fichiers d'entrée OpenFAST, par exemple, vous pouvez lire les données du fichier d'entrée dans MATLAB, modifier les valeurs dans MATLAB et écrivez le nouveau fichier d'entrée. Vous pouvez les utiliser comme base pour générer vos propres scripts. Je crois comprendre que des scripts similaires existent dans la boîte à outils Python (https://github.com/OpenFAST/python-toolbox), mais je connais moins les détails.

Meilleures salutations,

Cher @jjonkman ,
C'est vraiment utile. Je préfère Python, je vais me renseigner. Merci.

Enfin, je voulais savoir dans le modèle OpenFAST, pour une éolienne terrestre, une combinaison d'Aerodyn, Servodyn, Elastodyn fonctionnerait-elle suffisamment ensemble ?
Ceci est filtré à partir des indicateurs utilisés dans le fichier principal en tant qu'entrée du module OpenFAST.

Cher @ai-aspirant

Suite à la réponse de Jason, si vous souhaitez scripter la génération des fichiers d'entrée, une façon de le faire est d'avoir un ensemble de fichiers d'entrée "modèles" à partir d'un modèle OpenFAST existant. Votre script lirait ces fichiers modèles, modifierait les valeurs et les écrirait pour votre turbine et votre simulation. Dans la boîte à outils matlab, la lecture et l'écriture des fichiers d'entrée se font à l'aide du script FAST2MATLAB et MATLAB2FAST . Pour la boîte à outils python, vous devez utiliser la branche dev . Des exemples de lecture et d'écriture de fichiers sont donnés dans le readme :
https://github.com/OpenFAST/python-toolbox/tree/dev/pyFAST/input_output

La génération d'un modèle de turbine demande généralement beaucoup de travail, vous préférerez donc peut-être éditer chaque valeur des fichiers d'entrée "manuellement" si vous n'avez besoin de le faire que pour une turbine. Nous n'avons pas de méthode "standard" pour le faire puisque les entrées de l'utilisateur peuvent être dans différents formats. Si vous avez beaucoup de modèles à définir à partir d'un format donné, ces scripts de lecture/écriture vous aideront certainement.

Une fois que vous avez configuré un modèle de turbine et que vous souhaitez générer de nombreuses simulations, les scripts Matlab et python peuvent également être utilisés. J'ai téléchargé un exemple sur la façon de faire cela avec python ici :
https://github.com/ebranlard/python-toolbox/blob/f/example/pyFAST/case_generation/examples/Example_Parametric.py

J'espère que ça aide,

Emmanuelle

Cher @ebranlard ,
Ce serait d'une grande aide. Je parcourrais les liens que vous avez partagés et j'essaierais d'organiser les données comme requis par OpenFAST.
Merci.

De plus, lorsque vous mentionnez la génération d'un modèle de turbine, faites-vous référence à la combinaison de tous ces modèles autonomes dans OpenFAST ou à la personnalisation de l'original ?

Merci encore.

Salutations,
Kirsten

Chère Kirsten,

Un modèle OpenFAST d'éolienne terrestre aurait normalement les modules ElastoDyn (pour la dynamique structurelle), AeroDyn (pour l'aérodynamique), ServoDyn (pour les commandes) et InflowWind (pour le vent ambiant) activés. Souvent, AeroDyn fonctionne également de manière autonome (sans couplage aéroélastique) si vous souhaitez étudier les performances aérodynamiques uniquement avant de simuler les aéro-servo-élastiques couplés.

Meilleures salutations,

Salut Kirsten,

Je suppose que vous avez déjà des "données" sur la turbine que vous souhaitez modéliser: par exemple des propriétés géométriques, des propriétés aérodynamiques (répartition de la corde et de la torsion, données polaires), des propriétés matérielles/structurelles (masse, rigidité, amortissement) de différents composants .

Sur la base de ces données, vous pouvez écrire les fichiers d'entrée pour OpenFAST. J'appellerai cet ensemble de fichiers d'entrée un "modèle OpenFAST".
Vous pouvez trouver un exemple de modèle OpenFAST pour la turbine terrestre NREL 5MW ici :
https://github.com/OpenFAST/r-test/tree/master/glue-codes/openfast/5MW_Land_DLL_WTurb

Vous devez connaître beaucoup de données pour créer un modèle OpenFAST complet. C'est pourquoi Jason recommande peut-être de commencer par mettre en place un modèle "AeroDyn driver", où il suffit de connaître les propriétés aérodynamiques de la turbine que vous souhaitez modéliser. Vous trouverez des exemples dans le lien que vous avez mentionné précédemment :
https://openfast.readthedocs.io/en/master/source/user/aerodyn/appendix.html#aerodyn -input-files

Salutations

Remarque : le format du fichier d'entrée est fixe et les entrées doivent être à un numéro de ligne donné.

Pourtant, d'une version d'openfast à l'autre, nous introduisons parfois des changements dans le format de fichier (ajout ou suppression de quelques lignes), il est donc important de garder une trace de la version d'OpenFAST (ou d'AeroDyn/pilote) que vous utilisez.

Les changements entre les versions sont documentés ici :
https://openfast.readthedocs.io/en/master/source/user/api_change.html

La branche principale du référentiel "r-test" que j'ai indiqué plus tôt, a des fichiers d'entrée qui sont toujours conformes à la version actuelle d'openFAST.

Salut Emmanuel et @jjonkman ,
J'espère que tu vas bien. Merci pour toutes vos réponses, cela m'a beaucoup aidé. Cependant, j'ai essayé d'exécuter le _5MW_Land_DLL_WTurb_ avec les binaires et les exécutables OpenFAST. En l'exécutant, j'ai obtenu le résultat suivant :
image

Les binaires sont mis dans le chemin où sont présents mes exécutables. Pourtant, je reçois ce message. Alors, je me demandais s'il s'agissait simplement d'un message normal ou s'il s'exécutait réellement sans ces modules ?
Faites-moi savoir si vous avez besoin de plus de détails pour divers répertoires.

Je l'ai également visualisé en utilisant paraview . Il faudra peut-être un peu de temps pour mieux le comprendre. Merci encore à vous deux.

Je voulais également demander s'il existe un article qui comprendrait la limite idéale pour chaque variable fournie dans la sortie de FAST. Par exemple, si je considère Wind1VelX, il se situe entre 1,162E+01 et 9,975E+01. Y a-t-il donc une limite pour cette variable qui m'aidera à comprendre si elle dépasse une limite comme une anomalie ?

Merci.

Meilleures salutations,
Kirsten

Salut Kristen,

En ce qui concerne les avertissements de « sortie nodale », ceux-ci n'affecteront pas les résultats de la simulation ; vous pouvez ignorer les avertissements. J'ai interrogé @andrew-platt à ce sujet, et voici sa réponse :

Je vais les changer en Info au lieu d'avertissement.

Lorsque nous avons ajouté les sorties basées sur les nœuds, nous avons conservé les fichiers d'entrée pour chaque module rétrocompatibles. Le nœud de sorties est une deuxième section de sortie après la section de sortie standard. Donc, l'avertissement/l'info est juste pour faire savoir à l'utilisateur que cette section du fichier d'entrée n'existe pas et qu'il n'obtiendra pas de sorties basées sur les nœuds. Cela a été ajouté à ElastoDyn (nœuds de lame uniquement), BeamDyn et AD15, de sorte que les trois modules peuvent signaler cette information à l'initialisation.

En ce qui concerne les avertissements "C_nalpha est 0", vous pouvez également les ignorer. Le modèle aérodynamique de profil aérodynamique instable d'AeroDyn n'est pas valide lorsque la pente de la courbe de coefficient de force normale est nulle.

Je ne suis pas au courant d'un article qui résume les limites raisonnables ou physiques des différentes sorties FAST.; ceux-ci ne viendront qu'avec l'expérience. Mais une plage de vitesse du vent de 11,62 à 99,75 m/s semble en effet extrême.

Meilleures salutations,

Salut @jjonkman ,
Entendu. Donc, au cas où les sorties nodales ne seraient pas générées, la sortie standard serait suffisante, je crois.
Une autre chose que j'ai rencontrée était que pendant que je parcourais le fichier _5MW_Land_DLL_WTurb.out_ qui a été généré, il ne comprenait que les paramètres de sortie pour les modules InFlowWind et ElastoDyn. N'inclut-il pas les paramètres de sortie d'Aerodyn et de ServoDyn comme ceux mentionnés dans le guide de l'utilisateur FAST dans la section _Fichiers de sortie_ ?
De plus, je voulais comprendre le paramètre de sortie de temps qui va de 0 à 60 dans le fichier de sortie similaire que j'ai mentionné plus tôt, cela signifie-t-il une plage de séries temporelles?

Merci.
Salutations,
Kirsten

Salut Kristen,

Le fichier de sortie OpenFAST inclura les sorties au niveau du module que vous avez sélectionnées. Si vous n'obtenez aucune sortie de ServoDyn et AeroDyn, c'est parce que vous n'avez pas défini de sorties dans les fichiers d'entrée ServoDyn et AeroDyn.

OpenFAST est un solveur de domaine temporel non linéaire, donc, la sortie est la réponse de l'éolienne en fonction du temps.

Meilleures salutations,

Bonjour Jason,
J'ai compris. Je viens d'inclure une liste de paramètres et cela a fonctionné pour les deux modules. Merci.
Une autre chose que j'avais du mal à comprendre est que dans mon fichier généré en sortie, un paramètre est généré 'Wind1VelX' qui est la composante X du vent au point de vent sélectionné par l'utilisateur 1 puisque le nombre de points sélectionné est 1.
Mais au cas où j'aurais besoin de comprendre où se situe exactement ce point pour une meilleure compréhension, avez-vous une idée de l'endroit où je peux le trouver ? Ou viendra-t-il au fur et à mesure que j'apprends les moulins à vent en détail ?

Merci beaucoup,
Kirsten

Salut Jason,
juste pour ajouter le point précédent que je voulais vérifier à quoi exactement les fichiers de visualisation donnent un aperçu? Est-ce une animation de la façon dont les valeurs de vitesse aident à faire fonctionner une éolienne ou autre chose ? Je voulais que cela sache afin de comprendre ce que je regarderais exactement dans Paraview, car les valeurs que j'ai obtenues dans un fichier Blade1referene.vlt ressemblaient à ceci:

image
Alors, cela signifie-t-il la structure et les différentes vitesses que mes modules fournissent en sortie ou des calculs externes ?

Salutations,
Kirsten

Chère Kristen,

Les emplacements des sorties de vent ambiant d'InflowWind (Wind1VelX, etc.) sont spécifiés par l'utilisateur via les paramètres d'entrée WindVxiList, WindVyiList et WindVziList dans le fichier d'entrée InflowWind. Le module InflowWind est bien décrit dans le Guide de l'utilisateur InflowWind, qui n'a pas encore été porté sur OpenFAST readthedocs, mais est disponible ici : https://drive.google.com/file/d/1-yJox2Kj-eBHfX2FdjE7RCaOkXRml9Mw/view?usp = partage.

La fonctionnalité de visualisation d'OpenFAST peut être utilisée pour visualiser l'état non dévié ou l'animation de séries chronologiques de la réponse de la turbine (dans son état dévié) avec un format de chiffre en bâton ou une visualisation pleine surface. Vous pouvez également visualiser divers champs tels que les mouvements et les charges. La fonctionnalité de visualisation d'OpenFAST est documentée dans l'ancien fichier ReadMe de FAST v8, qui n'a pas encore été porté sur OpenFAST readthedocs, mais est disponible ici : https://drive.google.com/file/d/17LDwMnCVmLfbRWSaVFxxqphVrtawMwlj/view?usp= partage.

Meilleures salutations,

Salut Jason,
Merci pour l'aide sur une si grande compréhension sur tout cela. Pouvez-vous m'aider à comprendre les points pris en compte dans divers modules pour le calcul de la vitesse et des charges également ? Pendant que je parcourais la documentation, je ne pouvais tomber que sur Degree of Freedom, c'est tout.
De plus, dans OutListParameters.xlsx, dans l'onglet Nœuds, il est mentionné à chaque nœud. Mais quels sont tous les nœuds à considérer est-il mentionné quelque part ou sera-t-il dans la liste de VxiList qui est fournie ?

Salutations,
Kirsten

Salut Kristen,

Je suis désolé, mais je ne suis pas vraiment sûr de comprendre vos questions. De quelle feuille de calcul « Nœuds » faites-vous référence ? Faites-vous référence aux "AeroDyn_Nodes" ou "ElastoDyn_Nodes" ou à autre chose ? Ces nœuds font référence aux différents nœuds de sortie du module correspondant. Par exemple, les nœuds de sortie AeroDyn dans les pales et la tour sont un sous-ensemble sélectionné par l'utilisateur des nœuds d'analyse aérodynamique, comme documenté dans la documentation AeroDyn - voir : https://openfast.readthedocs.io/en/master/source/ user/aerodyn/appendix.html#aerodyn -list-of-output-channels.

Meilleures salutations,

Cher Jason,

Alors, chaque module a-t-il des nœuds différents ?

Je voulais poser des questions sur la feuille de travail "nœuds" pour chaque module que nous avons utilisé, comme AeroDyn, ServoDyn, ElastoDyn.
Considérant AeroDyn au départ, la feuille AeroDyn a un paramètre de sortie B1N1VUndx qui indique la vitesse du vent pour la lame 1 et le nœud 1.
Pour les tours, ce sera toujours entre le Tower Node 1 et le Tower Node n et les coordonnées de celui-ci seront fournies en entrée comme indiqué dans https://openfast.readthedocs.io/en/master/source/user /aerodyn/input.html#ad -tower-geom
De même, pour les numéros de nœud sur la lame, ce sera sur la ligne d'accord de lame locale à partir de la pointe t jusqu'à la base de la lame, comme indiqué dans https://openfast.readthedocs.io/en/master/source/user/aerodyn/appendix .html#aerodyn -list-of-output-channels

Désolé pour toutes les questions naïves, mais est-ce juste ?

Salutations,
Kirsten

Chère Kristen,

Oui c'est correct.

ElastoDyn possède également des nœuds d'analyse et de sortie.

Meilleures salutations,

Bonjour Jason,
Sûr. Je vais me renseigner.
Puis-je simuler une courbe de puissance à l'aide de ServoDyn ?
Je suis tombé sur le paramètre de puissance électrique générée à partir de cela. C'est pareil ?

Salutations,
Kirsten

Chère Kristen,

Par "courbe de puissance", je suppose que vous entendez la puissance en fonction de la vitesse du vent. Cela dépendra bien sûr du contrôle, mais ne peut pas être calculé directement par ServoDyn. Vous devez modéliser l'aérodynamisme. Si vous connaissez déjà la vitesse du rotor et l'angle de tangage à chaque vitesse du vent, vous pouvez utiliser le pilote AeroDyn autonome pour calculer la puissance aérodynamique pour chaque cas. Si vous ne le savez pas, mais que vous avez un contrôleur, ou quoi inclure une flexibilité structurelle, vous pouvez exécuter une simulation OpenFAST soit séparément pour chaque vitesse de vent, soit avec une vitesse de vent uniforme mais échelonnée.

Meilleures salutations,

Bonjour cher Jason,
Par courbe de puissance, j'entends la puissance de sortie générée en fonction de la vitesse du vent, des coefficients de puissance, etc.
Sera-ce similaire à la puissance aérodynamique? Depuis, la formule de base que je connais pour le même est
1/2*(Air Density* Max Power coefficient *wind speed^3*swept rotor area)

Salutations,
Kirsten

Votre formule s'applique à la fois à la puissance aérodynamique et à la puissance électrique, mais le coefficient de puissance sera différent dans les deux cas. La puissance électrique sera un peu inférieure à la puissance aérodynamique en raison des pertes dans la conversion mécanique-électrique. Typiquement, cette efficacité de conversion dépend de l'approche de conversion de puissance et peut dépendre de la vitesse du générateur ou de la puissance.

Meilleures salutations,

Bonjour Jason,
Pour le calcul de puissance aérodynamique similaire, je suis tombé sur ce lien https://openfast.readthedocs.io/en/master/source/user/aerodyn-aeroacoustics/03-model-verification.html?#reference -wind-turbine
Sur cette base, les données que j'aurais besoin de fournir seraient l'efficacité de la transmission et du générateur. Avons-nous des données à utiliser comme entrée pour ce calcul de puissance ?
Je suppose que l'AeroAcoustics.f90 pourrait vous aider, si je ne me trompe pas.

Salutations

Salut @ai-aspirant,

La documentation à laquelle vous faites référence montre un exemple - l'éolienne terrestre de référence IEA Wind Task 37 - avec un rendement de générateur de 93,6 %. L'éolienne de référence NREL de 5 MW fournit un autre exemple, avec un rendement de générateur de 94,4 %. Si vous n'avez pas en tête une efficacité de générateur spécifique, vous pouvez en supposer une dans cette plage.

Meilleures salutations,

Bonjour Jason,
Droit. Je pense donc que le paramètre de sortie RtAeroPwr mettra en valeur la puissance aérodynamique générée.

Salutations,

Correct.

Salut Jason,
Donc, au cas où je souhaite inclure mes données dans AeroDyn, existe-t-il un ensemble de paramètres d'entrée minimum que vous avez documentés qui me fourniront une puissance aérodynamique de sortie ou devrais-je parcourir tous les paramètres d'entrée et bien les étudier serait une meilleure option ?

Merci en avance.

Salutations,
Kirsten

Salut Kristen,

La documentation fournit des indications sur les entrées utilisées pour quoi. J'espère que vous avez suffisamment d'expertise en modélisation d'éoliennes pour savoir quelles entrées seraient importantes pour le calcul de la puissance aérodynamique.

Meilleures salutations,

Salut Jason,
J'essayais donc de comprendre les fichiers lorsque je suis tombé sur l'AoA (angle d'attaque) compris entre 180 et -180. Y a-t-il une raison dans des fichiers particuliers lors de la mise en œuvre d'AeroDyn pour que l'angle d'attaque diffère selon les profils aérodynamiques ?

image
Dans l'image ci-dessus, comme vous pouvez le voir, les valeurs des profils aérodynamiques peuvent être différentes en commençant par les fichiers cylindre1.dat désignant la partie la plus à gauche de l'image. déterminé non?

Sur cette base, y a-t-il un nombre minimum de profils aérodynamiques à prendre en compte dans OpenFAST supérieur à 1 qui est suggéré ou 1 devrait fonctionner? Que suggéreriez-vous, Jason ?

L'image ci-dessus est juste pour référence cependant.

Salutations,
Kirsten

Chère Kristen,

Les données du profil aérodynamique (portée, tirant d'eau, moment par rapport à l'AoA) doivent être fournies pour la plage complète de 360 ​​degrés (-180 à 180 degrés) de l'AoA, car l'AoA réel est déterminé au moment de l'exécution et peut changer d'un pas de temps à l'autre.

Les données du profil aérodynamique doivent dépendre de la forme du profil aérodynamique, comme vous l'avez noté. Cela peut également dépendre de l'augmentation de rotation (effets 3D), si vous les appliquez aux données du profil aérodynamique.

Typiquement, nous recommandons de l'ordre de 20 nœuds d'analyse aérodynamique le long de la pale. Que cela nécessite quelques tables de profil aérodynamique (chaque table étant appliquée à plusieurs nœuds) ou de nombreuses tables de profil aérodynamique (table unique pour chaque nœud) dépend de la variabilité de la forme du profil aérodynamique le long de la pale, de l'importance de l'augmentation de rotation et de la précision souhaitée du Solution.

Meilleures salutations,

Cher Jason,
D'accord. Cela sonne bien.
Une chose que je voulais comprendre, c'est qu'il y a-t-il des capteurs pour calculer la force de traînée ou la force de portance afin que je puisse calculer leurs coefficients ?

Une autre chose que je voulais souligner est que j'essayais de réduire le nombre de nœuds, j'ai donc supprimé quelques lignes du fichier "Test01_UAE_AeroDyn_blade.dat", changé le nombre de NumBlNds à 15 et réduit le nombre de paramètres NumAFFiles de 10 à 5 , et changé les paramètres BlOutNd en 1, 3. Pourtant, j'obtiens l'erreur de récupération ci-dessous indiquant "s'est produite en essayant de lire BlOutNd".
Dois-je changer d'autres drapeaux ?

image

Merci encore pour toute l'aide à tous et à vous aussi @jjonkman et désolé pour tous les ennuis.

Salutations,
Kirsten

Chère Kristen,

Désolé, mais je ne comprends pas vraiment votre première question.

Concernant la deuxième question, vous avez deux nœuds définis pour BlOutNd. Cela signifie-t-il que vous définissez NBlOuts = 2 ? Sinon, comme pour toute erreur de traitement de fichier d'entrée, activez l'option Echo pour déboguer les erreurs dans le formatage du fichier d'entrée.

Meilleures salutations,

Bonjour Jason,

La première question portait sur la façon dont les coefficients de traînée et de portance sont calculés ?
Puisque pour la force de traînée, voici la formule :
image

Comme pour tous les fichiers .dat utilisés, nous avons une combinaison d'angle AoA, de coefficient de traînée, de coefficient de portance et de cm.
Je voulais savoir si les coefficients sont calculés à l'aide de la formule ci-dessus ou à partir d'un capteur puisque les données que je télécharge pour utiliser OpenFAST n'ont pas de valeurs Cd, Cl ou Cm.

Merci.
Salutations,
Kirsten

Chère Kristen,

Je suis d'accord avec votre formule et j'ajouterais que C_D dépendrait généralement de AoA (et peut-être de Re). La même équation s'applique à la force de portance (F_L), en utilisant C_L. Normalement, C_D et C_L sont dérivés en fonction de AoA (et peut-être de Re) pour un profil aérodynamique donné basé sur des solutions de soufflerie ou de calcul. Ceux-ci sont ensuite étendus à toute la plage de 360 ​​degrés et corrigés pour l'augmentation rotationnelle avant d'être entrés dans AeroDyn pour une application dans un calcul aéroélastique d'éolienne.

Meilleures salutations,

Salut Jason,

Je n'ai pas pu comprendre comment les valeurs de coefficient de traînée ou de portance sont fournies en entrée. Je veux dire, y a-t-il un capteur supplémentaire comme un anémomètre pour la vitesse du vent ou une girouette pour la direction du vent, de même pour le coefficient de traînée que nous avons également ou sont-ils calculés sur la base d'une formule particulière.
La seule formule que j'ai pu rencontrer est :
Le coefficient de traînée (Cd) est égal à la densité de l'air (r) multipliée par la moitié du carré de la vitesse (V) multipliée par la surface de l'aile (A).

Je ne savais pas si cela m'aiderait à créer différentes valeurs de coefficient qui doivent être fournies en entrée pour AeroDyn. OpenFAST effectue-t-il le calcul de ces coefficients ? Pouvez-vous m'aider avec la formule, s'il vous plaît?

Salutations,
Kirsten

Salut Kristen,

Comme je l'ai dit précédemment, le coefficient de traînée est généralement dérivé en fonction de AoA (et peut-être de Re) pour un profil aérodynamique donné basé sur une soufflerie ou des solutions informatiques. Pour les profils minces, des outils d'ingénierie tels que XFoil ou RFoil (non développés par NREL) peuvent être utilisés pour calculer la traînée (et la portance) jusqu'au point de décrochage.

La traînée est une entrée d'AeroDyn/OpenFAST, pas directement calculée par celui-ci. Le NREL n'a pas développé d'outils d'ingénierie pour prendre en charge le calcul des coefficients de traînée.

Meilleures salutations,

Salut Jason, j'espère que tu vas bien en cette période de covid.
J'ai compris. Merci.
Pendant ce temps, je cherchais dans l'Aerodyn_IO.f90 pour comprendre quelques équations de la puissance générée dans divers modules.
Je suis tombé sur les équations suivantes pour diverses équations:
image

Je voulais juste comprendre quelles sont exactement les entrées, considérons la puissance aérodynamique du rotor (RtAeroPwr), l'équation se compose de la charge aérodynamique dans la direction x, quels sont les autres paramètres comme BEMT_u ?
OpenFAST a-t-il de la documentation sur ces équations ?

Merci,
Kirsten

Salut Kristen,

La variable m%BEMT_u(indx)%omega est la vitesse du rotor. Il s'agit d'une entrée (u) du sous-module BEMT d'AeroDyn tel qu'il est défini dans le module AeroDyn, qui est également une variable diverse (MiscVar, m) d'AeroDyn. Le code source comprend beaucoup de documentation, mais il faudra une connaissance de Fortran et du framework de modularisation FAST pour l'interpréter. Cette variable est définie dans BEMT_Registry.txt (entrée oméga) et AeroDyn_Registry.txt (MiscVar BEMT_u).

Meilleures salutations,

Salut Jason,

Je pense donc que ce sont des valeurs de tableau, la vitesse du rotor (vitesse angulaire du rotor) et la charge aérodynamique du rotor dans la direction x.
De plus, OpenFAST a-t-il de la documentation sur le reste des équations que j'ai mentionnées plus tôt, car pendant que je parcourais les scripts, je n'ai pas pu trouver MeshType utilisé dans HubMotion.

D'où la documentation du reste des équations partagée dans l'image ci-dessus dans le dernier numéro.

Salutations,
Kirsten

Salut @jjonkman ,
Je voulais ajouter à votre problème, @ai-aspirant, et demander quelle serait exactement ma variable de sortie de puissance d'OpenFAST pour l'ensemble de l'éolienne ? Compte tenu du paramètre GenPwr, comment se fait-il qu'il varie dans la plage de 3,6 mW à 5 mW ? Je veux dire autant que je comprends, il suit le format Power Curve. La vitesse d'enclenchement (la puissance continue d'augmenter), la vitesse nominale (la puissance reste constante) et la vitesse de coupure (la puissance tombe à zéro).

Salutations,
Mihir

Chère Kristen, de quel type de documentation posez-vous la question ? Essayez-vous de comprendre les équations elles-mêmes (espérons-nous qu'elles sont explicites pour ces sorties) ou de la documentation sur le cadre de modularisation FAST ?

Cher Mihir -- La sortie GenPwr de ServoDyn est la puissance électrique de sortie (déterminée par le générateur et/ou le contrôleur, y compris les pertes d'efficacité électrique). Concernant sa variation, la puissance de sortie peut varier considérablement lorsque la turbine fonctionne avec des flux entrants turbulents ou des rafales. La courbe de puissance représente le comportement moyen ou en régime permanent.

Meilleures salutations,

Salut Jason,
Bon, je voulais juste comprendre les entrées. Comme ceux-ci sont calculés ou fournis en entrée directement. Donc, compte tenu de la puissance aérodynamique, de ma vitesse de rotor et du moment de charge aérodynamique sur la direction x, y a-t-il un type d'entrées à fournir comme un tableau ou simplement un entier ? Parce que je pourrais comprendre qu'il s'agit d'une seule valeur entière.
Une autre question est de savoir si ces entrées sont fournies en tant qu'entrée ou calculées avec une autre équation et si tel est le cas, de quels paramètres dépend-elle que je devrais changer pour que ma sortie finale qui, dans ce cas, la puissance aérodynamique (RtAeroPwr) varie en conséquence.

Merci,
Salutations,
Kirsten

Chère Kirsten,

Dans les équations ci-dessus, les entrées au niveau du module sont notées u, les états continus sont notés x, les sorties sont notées y, les paramètres sont notés p et les variables diverses sont notées m. Ces types de variables sont définis dans le manuel du programmeur NWTC : https://drive.google.com/file/d/1bDV1fBkiZUWs6Tkzb6nhCMUQvHpN_OtM/view?usp=sharing. Les entrées au niveau du module, u, en particulier, sont des entrées d'un module telles que calculées par un autre module dans OpenFAST (plutôt que des paramètres d'entrée définis par l'utilisateur). En mode pilote autonome (découplé d'OpenFAST), les entrées sont prescrites par le code du pilote autonome. Dans la routine CalcOutput, les entrées sont fournies au moment de la simulation en cours. Dans la routine UpdateStates, les entrées sont fournies sous forme de tableau sur une plage de temps afin que le module puisse accéder à l'entrée à tout moment dans l'intervalle de temps sur lequel il s'intègre (via interpolation). Plus d'informations sont fournies dans le manuel du programmeur NWTC.

Meilleures salutations,

Cher Jason,
Merci pour cette information. Donc, sur la base de ce que vous avez mentionné, les paramètres utilisés pour le calcul de RtAeroPwr sont tous des variables diverses. Considérez-les donc comme des variables de sortie d'Aerodyn Ie RtSpeed ​​et RtAeroMxh.
Maintenant, quand je les ai multipliés directement tous les deux, ce n'est pas similaire à ce que RtAeroPwr donne en sortie dans le fichier .out.
Toutes les valeurs sont différentes.
Est-ce que cela arrivera forcément ? Dois-je inclure un autre paramètre pendant que je le calcule comme ça?

Salutations,
Kirsten

Salut Jason,
Alors, voulez-vous dire que mon GenPwr serait principalement constant pour des vents en régime permanent ? Si tel est le cas, ma puissance de sortie n'est même pas proche des courbes de puissance.
Puis-je tracer les courbes de puissance à l'aide de ces modules OpenFAST ? Ou cela nécessiterait-il uniquement des vitesses de vent turbulentes?
Puis-je le faire sur Paraview ?

Salutations,
Mihir

Chère Kirsten -- Diverses variables peuvent être considérées comme des variables locales qui sont stockées dans des types de framework pour des gains d'efficacité de calcul. Il peut s'agir de fonctions d'entrées, de sorties, d'états ou de paramètres. Le produit de RtSpeed ​​et RtAeroMxh doit être égal à RtAeroPwr si les unités sont appropriées (RtSpeed ​​doit être en rad/s, pas en tr/min).

Cher Mihir -- OpenFAST peut faire beaucoup plus, mais bien sûr, il peut être utilisé pour calculer une courbe de puissance. Ce sujet a été discuté sur notre forum : https://wind.nrel.gov/forum/wind. Je suggère de chercher là-bas pour obtenir des conseils.

Meilleures salutations,

Cher Jason,
Oui, je l'ai converti de rpm en rad/s, ça varie encore un peu pas beaucoup. Cela a aidé merci.
J'avais aussi quelques autres questions, je vais juste essayer de les résumer.

  1. D'après ce que j'ai compris avec votre aide, la puissance aérodynamique est liée à la vitesse du rotor et à la charge aérodynamique dans la direction x (également appelée couple de rotor car je parcourais le forum que vous avez mentionné). Sur cette base, les deux variables que j'ai mentionnées comme entrée sont en fait les sorties du module AeroDyn, mais je voulais savoir quelles entrées sont liées à ces paramètres (RtSpeed ​​et Rotor Torque). Je n'ai pas pu trouver la connexion ni même l'équation indiquant quelles entrées sont liées aux variables d'équation ici. Je viens de descendre au sous-programme _AD_CalcOutput_ mais aucune connexion plus loin. Donc, je voulais juste connaître les liens entre les mêmes.

  2. J'ai également été informé du changement de puissance de sortie électrique sur le forum, c'est-à-dire GenPwr. Avons-nous une contribution en fonction de cela, similaire aux questions précédentes ? Comme, la formule que je suis tombée sur c'est GenPwr = 0.001*y%ElecPwr

  3. Une autre chose que j'essayais de comprendre mais que j'avais du mal, c'était comment les fonctions temporelles sont initialisées. Je veux dire de 0 à 60 fonctions de temps ayant 168 pour chaque fonction de temps ; sur la base du fait que je n'étais pas sûr de la façon dont les variables pourraient changer, est-ce en raison des emplacements de toutes les lames ou d'une variable particulière qui est modifiée de telle sorte que le reste du paramètre dévie en conséquence ou est-il lié à quelque chose ?

  4. OpenFAST prend-il en charge et fournit-il une simulation pour comprendre les défaillances de divers composants tels que la boîte de vitesses, les pales, le rotor, etc. ?

  5. Par hasard, OpenFAST prend-il en charge la recréation d'une variable particulière au cas où l'on n'aurait pas de données pour cela?

Mes excuses pour quelques questions plutôt triviales. Je voulais juste m'assurer que j'interprète correctement les sorties et le flux. Merci pour tout votre temps et vos efforts.

Salutations,
Kirsten

Chère Kristen,

Voici mes réponses à _certaines_ de vos questions ;

  1. Il est important de faire la distinction entre les entrées et les sorties au niveau du module (liées à la façon dont les modules interagissent entre eux dans OpenFAST, également appelés u et y dans la documentation du framework de modularisation et le code source) et les entrées spécifiées par l'utilisateur et les sorties sélectionnées par l'utilisateur ( paramètres d'entrée que l'utilisateur définit dans un fichier d'entrée et ce qui est écrit dans le fichier de sortie). La vitesse du rotor est une entrée au niveau du module pour AeroDyn (ce qui signifie qu'elle est calculée par un module différent (ElastoDyn) ou définie par le pilote) et il est également possible d'inclure la vitesse du rotor dans le fichier de sortie. Le couple du rotor est calculé dans AeroDyn et peut être écrit dans le fichier de sortie.

  2. La puissance électrique est calculée par le module ServoDyn, en fonction du modèle de contrôle de couple ou de générateur sélectionné. L'équation que vous énoncez est juste une conversion de Watt en kW.

  3. Je ne comprends pas ta question.

  4. Divers cas de panne sont pris en charge, par exemple, la perte de contrôle du pas et la perte de contrôle du couple, comme cela a été discuté sur le forum. Je chercherais là-bas pour plus d'informations.

  5. Quelques paramètres d'entrée ont des paramètres par défaut, indiqués par le mot-clé "DEFAULT", mais la plupart nécessitent une spécification de l'utilisateur. Consultez la documentation et les exemples de fichiers d'entrée pour plus d'informations.

Meilleures salutations,

Cette page vous a été utile?
0 / 5 - 0 notes