Xoptfoil2 - Der Profil Optimierer

Jojo26

User
Ein Programm zur Entwicklung und Optimierung von Tragflächenprofilen.

Xoptfoil2 verfolgt den Ansatz, ein Profil durch seine aerodynamischen Eigenschaften, seine Polare, zu beschreiben und daraus die geometrische Form abzuleiten. Im Gegensatz beispielsweise zu „Inversem Profil-Design“ bei der die Geometrie aus der vorgegebenen Druckverteilung abgeleitet wird.

Xoptfoil2 ist der Nachfolger des originalen Xoptfoil von Daniel Prosser und Xoptfoil-JX einer Weiterentwicklung durch Jochen Günzel in den vergangenen Jahren.

Vorgeschichte


Eigentlich sollten nur einmal schnell Bezier-Kurven als weitere Möglichkeit, die Geometrie eines Profils zu definieren, in Xoptfoil-JX eingebaut werden …

Im Projekt Planform Creator 2 (auf RCN hier beschrieben) hatte ich mich zum ersten Mal mit den faszinierenden Bezier-Kurven auseinandergesetzt. Beim Planform Creator 2 dienen sie dazu, den Grundriss einer Tragfläche festzulegen. Der große Vorteil einer Bezier-Kurve ist, dass sich über ihre Kontrollpunkte intuitiv und elegant die Form der Kurve verändern lässt. Im Folgeprojekt Airfoil Editor (auf RCN hier beschrieben) wurden dann die grundsätzlichen Algorithmen zur Darstellung eines Profils mit Bezier-Kurven evaluiert. Damit konnte es dann eigentlich an den Einbau in Xoptfoil-JX gehen …

… wer schon einmal an einem Haus umgebaut hat, kennt die Situation: Eigentlich will man nur mal g’schwind das ehemalige Kinderzimmer in ein Gästezimmer umbauen… größere Fenster wären eigentlich schöner – dann gleich im ganzen Haus - ah, der alte Boden! Raus damit - die Elektrik sieht marode aus – und eigentlich wäre eine große, offene Küche toll …

Am Ende des "Einbaus" wurde fast 80% der Code-Basis von Xoptfoil-JX um- bzw. neu geschrieben. Ziel war es dabei, eine robuste und wartbare Basis für zukünftige Erweiterungen zu schaffen. Nahezu unberührt blieb der Kern der aerodynamischen Berechnungen: Xfoil. Es ist schon faszinierend, wie dieses nun fast 40 Jahre alte Meisterwerk der aerodynamischen Profilberechnung nach wie vor „schnurrt wie ein Kätzle“.

Es freute den Autor des genialen Xoptfoil, Dan Prosser, zu hören, dass sein Programm in die Zukunft getragen wird und war sogleich einverstanden, dieser Weiter- und Neuentwicklung den Namen Xoptfoil2 zu geben:


Xoptfoil2.png

Leistungsmerkmale

  • Profilentwurf auf Basis der „Polare“
  • Optimierung mit „Partikelschwarmoptimierung“
    • Partikel-Retry und Partikel-Rettung
    • Dynamische Gewichtung der Optimierungsziele
  • Aerodynamische Evaluierung mit Xfoil
    • Retry bei Nicht-Konvergenz
    • Erkennen von fehlerhaften Xfoil-Ausreißern
  • Geometrie Form-Funktionen wahlweise
    • Hicks-Henne „Beulen“ Funktion
    • Bezier-Kurve
    • Veränderung der Profil-Parameter
  • Definition der Optimierungsaufgabe mit Arbeitspunkten und
    • Minimaler Widerstand, maximales Gleiten, maximaler Auftrieb
    • Zielwerten für Widerstand, Auftrieb, Gleitzahl
    • Klappenwinkel und Klappenwinkel-Optimierung
  • Profildicke und Wölbung als geometrische Ziele
  • Kontur-Krümmungskontrolle
    • Beulenerkennung bei Hicks-Henne-Funktionen
    • Maximale Krümmung an der Hinterkante
  • Verbesserung einer Optimierung mit verfeinerten Zielen
  • „Worker“ Hilfsprogramm zum Automatisieren typischer Aufgaben bei der Profilentwicklung

Programm, Download und Dokumentation


Xoptfoil2 ist nach wie vor als Command Line Tool ohne grafische Benutzerfläche konzipiert. Die Eingabeparamter werden aus einer Eingabedatei gelesen, das Programmiert prüft und optimiert und am Ende wird das optimierte Profil erzeugt.

Durch die fehlende Benutzeroberfläche ist das Programm für heutige Verhältnisse extrem klein (ca. 2MB) und benötigt keine aufwändige Installation, da es im Grunde nur aus einer Datei besteht. Programmiert in Fortran macht es, wenn möglich, starken Gebrauch von Multi-Threading, um die Rechen-Ressourcen eines PCs best möglich für die Optimierung zu nutzen.

Die jeweils aktuelle Version von Xoptfoil2 ist auf Github unter Releases zu finden. Für Windows reicht es, die zip-Datei herunterzuladen und man kann direkt mit den Beispielen beginnen.
Für Linux müssen die Sourcen heruntergeladen, compiliert und gelinkt werden.

In der neuen Dokumentation werden neben Grundlagen der Profiloptimierung, einem „Getting started“, alle Parameter zur Steuerung der Optimierungsaufgabe erläutert (bitte aufmerksam lesen).

Zur Vorbereitung des Ausgangsprofils einer Optimierung und zum Betrachten des erzeugten Profils wurde der Airfoil Editor https://github.com/jxjo/AirfoilEditor optimiert. Er ist in der Lage, Bezier- oder Hicks-Henne-basierte Profile bzw. Dateiformate zu lesen und darzustellen.


Erste Schritte …

Wer träumt nicht davon in dem nächsten Modell-Projekt eigene, für die Flugaufgabe optimierte Profile, einzubauen?

Zwar wird mit Xoptfoil2 der Entwurf speziell optimierter Profile deutlich vereinfacht, aber ohne aerodynamische Grundkenntnisse, beispielweise das Lesen und Verstehen von Polaren, sollte man sich nicht auf die „Reise“ begeben. Auf der anderen Seite ist die Beschäftigung mit Xoptfoil2 eine tolle Möglichkeit, sich „spielerisch“ in die faszinierende Welt der Profil-Aerodynamik vorzuarbeiten, um dann einige Zeit später (und mit ein wenig Geduld) ganz selbstverständlich mit laminar-turbulenten Umschlag hier und einer Blase dort zu jonglieren…

Für die ersten Schritte empfehle ich sehr, das kleine Kapitel „Getting started“ https://jxjo.github.io/Xoptfoil2/docs/getting_started durchzuarbeiten und ein Verständnis der Wechselwirkung von aerodynamischen Eigenschaften und der Profil-Geometrie aufzubauen – bevor es dann an anspruchsvollere Beispiele mit Hicks-Henne oder Bezier-Funktionen geht.


Projektstatus

Die Version 1.0 ist nun veröffentlicht. Mit ihr können hochwertige Profilentwürfe erzeugt werden, wie sie beispielweise in aktuellen Leistungsmodellen eingesetzt werden.

Geplant ist bzw. war eine grafische Benutzeroberfläche zu entwickeln mit der eine Optimierungsaufgabe definiert und die Ergebnisse analysiert werden können. Der aktuelle Fertigstellungs-Status liegt bei ca. 60%. Ob diese Entwicklung fortgeführt wird, hängt auch vom weiteren Interesse an Xoptfoil2 ab…


Open Source

Mit der Entwicklung rund um Xoptfoil2 bin ich als „one man show“ doch an meine zeitlichen Grenzen gekommen – geschätzt sind viele hundert Stunden in die Entwicklung geflossen.

Das Entwicklungsziel, ein möglichst allgemeingültiges Programm zu schreiben, das mit einer Vielfalt von Profilen in unterschiedlichster Ausgangsqualität, einer großen Bandbereite von Optimierungsaufgaben, den Eigenheiten von Xfoil und schließlich den Unberechenbarkeiten des Partikel-Schwarms zurechtkommt verlangte nach zahlreichen Entwicklungsiterationen und unzähligen Testläufen. Nun ist erstmal „Luft holen“ und hoffentlich bald wieder Fliegen am Hang angesagt 😉

Xoptfoil2 ist Open Source und soll gerne kostenlos genutzt werden. Sehr freuen würde ich mich aber über Rückkopplung von Erfahrungen, Tipps zur Verbesserung des Programms oder der Dokumentation und natürlich besonders, wenn der ein oder andere Software-Macher Lust hat, an dem Projekt mitzuarbeiten.


Nun aber

... genug der Worte.

Viel Freude mit Xoptfoil2 und lasst die Rechner glühen für das neue Super-Profil 🚀

Jochen
 
Zuletzt bearbeitet von einem Moderator:
Servus Jochen!

Vielen Dank für dein großartiges Engagement und das du die Programme frei zur Verfügung stellst. Dies ist ja in keinster Weise selbstverständlich!

Ich habe mich schon etwas mit den beta Versionen und auch mit Version 1 gespielt und ich bin wirklich begeistert.
Dank deiner super Doku dazu ist es selbst für mich als nicht gerade Computeraffinen leicht gewesen alles zu laufen zu bekommen.
Nach kurzer Zeit hatte ich schon einen vielversprechenden ersten Entwurf für einen Profilstrak, der so wahrscheinlich sofort in Positiv gebaut werden kann. Weitere Verbesserungen sind dann eher akademischer Natur, wenn man an die Bauungenauigleiten denkt.

Was auch spitze ist, dass man wie du schon auf der xoptfoil2 Seite schreibst viel über Aerodynamik und Profileigenschaften, Geometrie und Verhalten lernt, wenn man sich mit dem Programm spielt.

Ich würde mich sehr über eine GUI freuen, weil das sicher noch einiges erleichtern bzw. anschaulicher machen würde!

Ich denke mit diesem Programm hast du interessierten Laien ein wahnsinns Tool geschaffen, um in das Thema der Profilentwicklung einzutauchen.

Spannend wird auch sein, ob dadurch nochmal ersichtliche Fortschritte für Leustungsprofile möglich sind!

Also nochmals Vielen Dank!

LG Manuel
 
Ansicht hell / dunkel umschalten
Oben Unten