The Strak-Machine

In diesem Beitrag möchte ich gerne allen Interessierten die „Strak-Machine“ vorstellen.
Es handelt sich dabei um eine Software, die in Python geschrieben wurde und eine Ergänzung zu „Xoptfoil-JX“ darstellt.

Der Zweck dieser Software ist es, den Anwender bei der Nutzung von „Xoptfoil-JX“ zu unterstützen, um anhand eines gegebenen Ausgangsprofils einen Profil-Strak nach eigenen Anforderungen zu erstellen, welcher anschließend innerhalb des Designs einer Tragfläche verwendet werden kann.

Die Vorgeschichte

Bevor ich weiter in die technischen Einzelheiten abtauche, hier zunächst ein paar Worte, wie es dazu kam:

Nach einigen Modellflugurlauben mit dem Fokus „dynamischer Hangflug“ zusammen mit Freunden kam bei mir irgendwann einmal der Wunsch auf, selbst ein Modell zu entwickeln, welches diesem Einsatzzweck (im Grunde genommen „F3F“) möglichst gut entspricht.

Schnell wurde klar, dass meine Kenntnisse bezüglich „Profiloptimierung von Hand“ nicht ausreichen würden, um mein Ziel einer eigenen Profilauslegung zu erreichen, welches ich mir dabei gesteckt hatte.

Da ich beruflich im Bereich Entwicklung in der Automatisierungstechnik arbeite, hatte ich die Hoffnung, dass es auch für diese Aufgabe mittlerweile Ansätze der Automatisierung gäbe, welche mir die Arbeit erleichtern würden.

Etwa Mitte letzten Jahres wurde ich dann durch eigene Internet-Recherche zum Thema „automatisierte Erstellung von Profilen“ auf „Xoptfoil“ aufmerksam und begann, mich näher damit zu beschäftigen.

Etwa zur selben Zeit wie ich bzw. ein wenig früher hatte auch Jochen Günzel, mit einer ähnlichen Motivation wie ich, Xoptfoil entdeckt und hatte sogar angefangen, in einem Entwicklungsbranch (Xoptfoil-JX) eigene Verbesserungen daran vorzunehmen.

Etwa kurz vor Weihnachten nahm ich dann mit Hilfe von RC-Network Kontakt zu Jochen auf, der dort bereits über seine Erfahrungen mit Xoptfoil in einem Artikel berichtet hatte.
Wir stellten schnell fest, dass wir beide ein ganz ähnliches Ziel verfolgten und auf einer Wellenlänge waren und nach einem Wissens-Austausch wurde schließlich die gemeinsame Idee zur „Strak-Machine“ geboren.

Diese sollte zunächst einmal uns beiden und später auch anderen engagierten Modellbauern mit genügend Vorwissen bei der Aufgabe helfen, möglichst optimale Strak-Profile zu erstellen, welche innerhalb eines Tragflächendesigns verwendet werden können.

Das gemeinsame Entwicklungsergebnis zur „Strak-Machine“ (hierbei handelt es sich um einen Zwischenstand), welches innerhalb dieses Zeitraums bis heute erreicht werden konnte, möchte ich in diesem Bericht gerne vorstellen.

Hiermit komme ich nun zum technischen Teil meines Berichtes, der sich vor allem an die Zielgruppe der Modellbauer mit einem „fundierten Grundwissen“ in Profil-Aerodynamik richtet, welche dazu in der Lage sind, Profil-Polaren lesen und interpretieren zu können.


Die Aufgabestellung „Profilstrak erzeugen“

Wer selber eine aerodynamisch leistungsfähige Tragfläche oder vielleicht auch nur eine Tragfläche mit möglichst harmonischen, gutmütigen Eigenschaften erstellen möchte, hat unter anderem oft ein Problem: hat die Tragfläche z.B. eine Trapez- oder elliptische Form und damit eine Zuspitzung, so ergeben sich entlang der Tragfläche von der Wurzel bis zur Flächenspitze abnehmende Flächentiefen und damit Profilsehnenlängen.

Oft hat man zu Beginn der Tragflächen-Entwicklung ein geeignetes Ausgangsprofil ausgesucht, welches über die gewünschten Eigenschaften für die vorgegebene Flugaufgabe verfügt und welches man gerne verwenden möchte.

Um dies beurteilen zu können, war es zu Beginn der Profilauswahl bereits notwendig, den Reynolds-Bereich zu ermitteln, in welchem das Profil betrieben werden soll, da die Eigenschaften eines Profils stark von dem Reynolds-Bereich abhängen, in welchem es eingesetzt wird.

Aber wie verhält sich das Profil, wenn man es nun an allen Stellen der Tragfläche unverändert einsetzt?

Mit sich verändernder Profilsehnenlänge ändert sich proportional auch der wirksame Reynolds-Bereich.
Dies wiederum führt dazu, dass sich entlang der zugespitzten Tragfläche die Profileigenschaften (evtl. sehr stark) ändern.

Diese Änderungen können z.B. sein, dass sich der Profilwiderstand deutlich erhöht oder der für ein gutmütiges Flugverhalten an dieser Tragflächenposition notwendige Maximalauftrieb nicht mehr erreicht werden kann.

Eine Möglichkeit, um diesem entgegenzuwirken, ist eine Anpassung der Profile-Geometrie entlang der Tragfläche an die jeweiligen Reynolds-Bereiche.

Also die Erzeugung neuer, angepasster Strak-Profile, welche in den anderen Reynolds-Bereichen jeweils wieder gewünschte Eigenschaften aufweisen, die auf das Ausgangsprofil abgestimmt sind.

Beispiele für Serien solcher gut aufeinander abgestimmter Profile, jeweils für einen ganz bestimmten Flugzeugtyp / Einsatzzweck finden sich z.B. hier:

SA-Strak von Benjamin Rodax:
https://www.rc-network.de/threads/a...lichen-flügelprofilstraks.134828/post-2480843

MHSD-Strak von Philip Kolb:
https://www.rc-network.de/threads/n...hang-und-kunstflugsegler-präsentation.477203/


Die Aufgabe der „Strak-Machine“

An dieser Stelle kommt nun die Strak-Machine ins Spiel, welche dem Anwender die Aufgabe der Erstellung der Strak-Profile möglichst gut abnehmen soll, um für seinen eigenen, ganz speziellen Einsatzzweck einen optimalen Strak zu erstellen.

Man kann den Auftrag der Strak-Machine kurz zusammengefasst in etwa so verstehen:
  • Nutze das Programm Xoptfoil, um möglichst optimale Strak-Profile für meine Tragfläche *automatisiert* zu erzeugen (daher „Machine“)“

  • Erzeuge dabei jeweils ein an die jeweilige Position (=Tragflächentiefe = RE-Zahl) angepasstes Profil
Eine erste Einführung in Xoptfoil und wie man damit bereits ohne die Strak-Machine selbst Strak-Profile erzeugen kann, findet man in dem folgenden Artikel:
https://www.rc-network.de/threads/entwicklung-eines-profilstraks-mit-xoptfoil-bericht.759925/


Wie funktioniert die Strak Machine?

Zum besseren Verständnis der Funktionsweise der Strak-Machine hier zunächst ein Übersichtsbild (danke, Jochen!):

1602583880209.png


Das Übersichtsbild zeigt in einem groben Ablauf die einzelnen Schritte, welche für die Erstellung der Strak-Profile automatisch durchgeführt werden.

Es folgt nun eine Beschreibung der einzelnen Schritte des obigen Bildes, beginnend mit dem „Seed Airfoil“ links oben:
  • Ein Ausgangsprofil, dies ist in der Regel das Profil an der Flächenwurzel, wird vorgegeben.
  • Weiterhin vorgegeben werden verschiedene „Reynolds-Stationen“, auf dem Weg von der Flächenwurzel bis zur Flächenspitze hin, an welchen jeweils der Wechsel auf ein optimiertes Profil als sinnvoll erachtet wurde.
  • Diese Daten sowie weitere, dazu gehörige Daten, hier einmal ganz allgemeingültig als „Strak-Strategie“ bezeichnet, werden der Strak-Machine übergeben.
Der „schwarze Kasten“ unterhalb des „Seed-Airfoil“, The Strak Machine:
  • Das Ausgangsprofil wird nun durch die Strak-Machine auf Basis charakteristischer Punkte seiner Polare analysiert. Zur Berechnung der Polaren wird das zu Xoptfoil-JX gehörende Programm „Xfoil_worker“ (siehe grauer Kasten darunter), also letztlich „XFOIL“ verwendet. Damit ist die Berechnungsbasis / das aerodynamische Modell dasselbe, das auch Xoptfoil verwendet (wichtig!)
  • Es werden mit Hilfe der erzeugten Polaren automatisch die folgenden Punkte ermittelt:
    - maximaler Auftrieb
    - Nullauftriebswinkel
    - Punkt des besten Gleitens
    - Punkt des geringsten Widerstandsbeiwertes
  • Basis für die Analyse ist größtenteils die Typ 2 Polare, d.h. die Polare „fixed lift“, bei welcher implizit in den einzelnen Betriebspunkten eine Anpassung der Reynolds-Zahl in Abhängigkeit vom Auftriebsbeiwert CL erfolgt. Da dies im Bereich kleiner CL zu sehr hohen Reynolds-Zahlen führen würden, welche in der Realität im Flug nicht auftreten, wird für kleine CL -Werte die Typ 1 Polare verwendet und damit die Reynolds-Zahl auf einen maximalen Wert begrenzt. Der Übergangspunkt und damit die maximale Reynolds-Zahl ist vom Anwender einstellbar und hängt z.B. vom Geschwindigkeitsbereich ab, für welchen eine optimale Auslegung erfolgen soll.
  • Es werden nun „Ziel-Polaren“ (target-polars) für die gewünschten Reynolds-Zahl-Positionen des Profilstraks erzeugt. Dabei wird versucht, die gewünschten charakteristischen Eigenschaften des Ausgangsprofils über die Tragfläche „fortzutragen“ sowie den unerwünschten Änderungen der Profileigenschaften, die sich am stärksten störend auswirken (z.B. Verringerung des Maximalauftriebs etc.), entgegenzuwirken.
  • Ein visueller Check der Polaren des Ausgangsprofils sowie der Ziel-Polaren durch den Anwender wird ermöglicht.
  • Die Ziel-Polaren bilden die Basis, um daraus automatisch Steuerungsdateien für den Profiloptimierer Xoptfoil-JX zu generieren (wer sich bereits mit Xoptfoil beschäftigt hat: dies sind die sogenannten „input-files“).
  • Die einzelnen Punkte der Ziel-Polaren finden sich dabei in Form von „target-drag“- Zielwerten innerhalb der Steuerdateien wieder. Dies ist ein spezieller Modus von Xoptfoil-JX, bei dem die Aufgabe für den Optimierer lautet, den Widerstandsbeiwert in dem vorgegebenen Punkt so zu verändern, dass er der Zielvorgabe am besten entspricht (also nicht unbedingt zu minimieren, auch eine Erhöhung des Widerstandsbeiwertes für diesen Punkt kann erforderlich sein)
Der graue Kasten rechts, „Xoptfoil-JX“:
  • Der Profiloptimierer Xoptfoil-JX übernimmt nun, parametriert durch die vorgegebenen Steuerdateien, die geometrische Anpassungsarbeit an dem Ausgangsprofil, so dass die neu generierten Strak-Profile die geforderte Ziel-Polaren erfüllen.
  • Dabei ist entweder ein „Schnellmodus“: möglich, in welchem nur etwa eine halbe Stunde für die Anpassung benötigt wird, aber mit beschränktem Lösungsraum gearbeitet wird, bei dem nur Dicke, Wölbung, Rücklagen des Ausgangsprofils geändert werden
  • Oder es kann ein „extended Modus“ verwendet werden, der je nach PC-Hardware viele Stunden je Profil benötigen kann, der aber optimale Ergebnisse erzielt.

Ein Beispiel-Strak

Ich möchte nun anhand eines Beispiels einen Profil-Strak zeigen, welcher mit der Strak-Machine erstellt wurde.
Als Ausgangsprofil wurde ein im Rahmen der Arbeiten zu Xoptfoil-JX erstelltes Profil, hier bezeichnet mit „SD“ gewählt.
Ein konkretes Projekt, in welchem dieses Profil bzw. dieser Strak eingesetzt werden sollte, gibt es hierzu nicht, sondern dieser diente lediglich Entwicklungszwecken.

Für die Erstellung der Typ2-Polare des Wurzel-Profils wurde ein RE*sqrt( CL) = 220000 angenommen.
Der Übergang von der Typ2-Polare zur Typ1-Polare wurde für das Wurzelprofil so gewählt, dass eine maximale Reynoldszahl von 440000 nicht überschritten wird.

Als weitere „Reynolds-Stationen“ der Strak-Profile wurde RE*sqrt( CL) = 150000 und 80000 angenommen, die entsprechenden maximalen Reynolds-Zahlen der Strak-Profile ergeben sich damit zu 300000 und 160000.

Der folgende Screenshot zeigt das Ergebnis der Analyse der Strak-Machine, welche anhand der oben beschriebenen Schritte durchgeführt wurde:

1602584514329.png


Es ist der Inhalt eines interaktiven Fensters, welches sich nach dem Start der Strak-Machine im Anschluss an die erfolgte Analyse automatisch öffnet:
  • In der Überschrift des Fensters wird das Ausgangsprofil genannt, sowie die RE bzw. RE*sqrt( CL)-Werte erwähnt, für welche eine Berechnung von Polaren für das Ausgangsprofil durchgeführt wurde.
  • In den drei darunter abgebildeten Graphen werden in blau/grün die Polaren des Ausgangsprofils dargestellt (blau, oberer Teil der Polaren: Typ2-Polare, grün, unterer Teil der Polaren: Typ1-Polare). Man sieht zum einen, wie sich das Ausgangsprofil im Reynolds-Bereich seiner ursprünglichen Auslegung verhält, als auch, wie es sich verhalten würde, wenn man es unverändert an den Positionen der Strak-Profile einsetzen würde.
  • Die vier türkis abgebildeten Punkte sowie der dazugehörige Text beschreiben die durch die Analyse gefundenen charakteristischen Betriebspunkte des Profils in seinem ursprünglichen Auslegungsbereich.
  • Die gelben Punkte sind weitere „Zwischenpunkte“ auf der Polaren des Ausgangsprofils, welche zur genaueren Beschreibung der Polarenform automatisch vergeben wurden. Neben den charakteristischen Punkten wird auch die Form der Polaren für die Erstellung der Ziel-Polaren benötigt und die charakteristischen Punkte alleine reichen für eine Beschreibung der Form daher nicht aus. Die Anzahl der Punkte ist durch den Anwender einstellbar und hat auch einen Einfluß auf die Dauer der Optimierung mit Hilfe von Xoptfoil.
  • Die gelben Linien sind die Ziel-Polaren für die Erstellung der Strak-Profile. Sie bestehen ebenfalls aus einzelnen Punkten (in diesem Fall 15 Punkten) und werden nur zu Anzeigezwecken mit Linien verbunden. Der Anwender kann mit Hilfe eines Konfigurationsfiles Einfluß auf die Ziel-Polaren nehmen und diese nach seinen Wünschen „trimmen“.
  • Mit Hilfe der Tool-Leiste links unten kann der Anwender bei Bedarf interaktiv in den Graphen scrollen und zoomen, um Details besser erkennen zu können.

Hier nun eine Ansicht aller Profile des beispielhaften SD-Straks (das Ausgangsprofil und die beiden mit Hilfe von Xoptfoil-JX automatisch erstellten Strak-Profile) in XFRL5.
Die Erstellung erfolgte in diesem Fall im „extended-Modus“ unter Ausschöpfung des vollen zur Verfügung stehenden Lösungsraumes für die Anpassungen an den Profilen:

1602584749343.png


Das Ausgangsprofil / Wurzelprofil ist in dem obigen Bild rot dargestellt, dass erste / mittlere Strak-Profil orange und das äußere Strak-Profil gelb.
Der jeweilige Reynolds-Auslegungsbereich (RE*sqrt( CL)) ist in der Bezeichnung des Profiles abgekürzt enthalten.
Das Ausgangs/ Wurzel-Profil hat außerdem im Namen die Bezeichung „root“, die beiden neu erstellten Strak-Profile die Bezeichung „strak“.

Man sieht, dass die Dicke der Profile erwartungsgemäß von der Wurzel zur Flächenspitze hin abnimmt.
Ebenfalls wandert die Dickenrücklage nach vorne, gleichfalls eine Eigenschaft, die man bei einem Profil-Strak so erwarten würde.
Auch die Wölbungsdrücklage wandert tendenziell und erwartungsgemäß nach vorne, wobei das äußere Profil hier wieder eine etwas weiter hinten liegende Wölbungsrücklage aufweist, als das Profil davor.
Bei der Wölbung sehen wir eine leichte Zunahme vom Wurzelprofil bis zur Flächenspitze.

Zur weiteren Kontrolle der Eigenschaften der erzeugten Profile können in XFLR5 in der Ansicht „Xfoil Direct Analysis“ nun die Ziel-Polaren sowie die tatsächlichen, wiederum mit „Xfoil_worker“ automatisch berechneten Polaren der erstellten Profile verglichen werden:

1602584804814.png


Es werden in dem obigen Bild erneut aus Typ2- / Typ1- zusammengesetzte Polaren dargestellt, so dass hier die gleiche Graphen / Ansichten zur Verfügung stehen, wie zuvor im interaktiven Fenster der Strak-Machine.

Hierzu ist in der Strak-Machine ein automatischer Merge-Mechanismus implementiert, welcher dem Anwender diese Arbeit des Zusammensetzens abnimmt.

Sämtliche Polaren, welche während der Analyse des Ausgangsprofils und im Anschluss an die Profilerstellung durch die Strak-Machine automatisch erzeugt werden, können direkt in XFRL5 importiert werden.

Die Ziel-Polaren, im obigen Bild gelb, magenta und dunkelgrün dargestellt, kann man unter anderem daran erkennen, dass sie einen etwas eckigeren Verlauf haben (bedingt dadurch, dass sie nur aus wenigen Punkten bestehen).

Man sieht, dass die Ziel-Polaren mit den mittels „Xfoil_worker“ berechneten Polaren der erstellten Strak-Profile gut übereinstimmen.

Auch die Ansicht „CL über alpha“ zeigt, dass die erstellen Profile die hier gestellte Anforderung an einen Strak, gleiche Steigung der Geraden / die Gerade liegen möglichst übereinander, gut erfüllen:

1602584896048.png


Würde man zusätzlich die Polaren des Ausgangsprofils für die beiden niedrigeren Reynolds-Bereiche mit in die Grafik einblenden, so würde man ebenfalls die gewünschte Verbesserung des maximalen Auftriebs bei den jeweiligen Strak-Profilen erkennen.

Dies wurde hier lediglich aus Gründen der Übersichtlichkeit nicht gemacht.


Bewertung und Ausblick

Bei dem hier vorgestellten Stand der Strak-Machine handelt es sich um einen Zwischenstand, welcher die oben beschriebene Aufgabe grundsätzlich automatisiert ausführen kann.

Die bisherigen selbst durchgeführten Untersuchungen zeigen, dass sich mit ein wenig Übung/Erfahrung beim Umgang mit der Strak-Machine und Xoptfoil-JX jeweils ein Profil-Strak erstellt werden kann, welcher den eigenen Anforderungen entspricht und dem erreichbaren Optimum recht nahe kommt.

Knackpunkte sind hierbei vor allem das bisher noch manuelle, notwendige Trimmen der Ziel-Polaren („Strak-Strategien“), sowie die im extended Modus anfallenden langen Optimierungszeiten, welche sich allerdings durch Nutzung von Multicore CPUs (Stichwort Gaming-PC, z.B. 12-Core CPUs) deutlich verringern lassen.

Ebenfalls wäre vermutlich eine komfortablere Oberfläche als Ersatz für die Konfigurationsdatei wünschenswert.

Im Vergleich zur reinen manuellen Nutzung von Xoptfoil-JX für die Erstellung eines Straks konnten aber bereits einige Verbesserungen bezüglich Nutzerkomfort und Vorhersehbarkeit bzw. Kontrollierbarkeit des Ergebnisses erzielt werden, die zu einer Arbeitserleichterung und Beschleunigung während der Strak-Entwicklung beitragen.

Die gemeinsame Vision von Jochen und mir ist es, dem Anwender letztlich einmal eine „Full circle Unterstützung“ bei dem Entwurf einer Tragfläche zu bieten (hierbei ist allerdings die Einbeziehung vorhandener Tools wie z.B. „XFLR5“ in den Entwicklungszyklus denkbar).

Dies beinhaltet den Entwurf des Ausgangs-Profils, die Berücksichtigung der Flächengeometrie, die Erstellung des Profilstraks und eine abschliessende Leistungsberechnung.
Bis dahin ist aber sicherlich noch ein Stück zu gehen.


Wo bekommt man die Strak-Machine ?

Bei der Strak-Machine handelt es sich um ein open-Source-Projekt, welches derzeit hauptsächlich von Jochen Günzel und mir in unserer Freizeit vorangetrieben wird.
Das gesamte Projekt (alle Sourcen, Fortran sowie Python) findet man auf GitHub unter der folgenden URL: https://github.com/jxjo/Xoptfoil

Eine direkt ausführbare Version der Strak-Machine als fertig zusammengestelltes Paket kann dort ebenfalls in zwei Varianten frei heruntergeladen werden.

Die erste Variante ist leider etwas größer (ca. 66MB), hat aber den Vorteil, dass sie komplett ohne Installationsaufwand sofort nach dem Entpacken direkt gestartet werden kann:
https://github.com/jxjo/Xoptfoil/raw/master/strak_machine/Strakmachine_instant.zip

Die zweite Version ist deutlich kleiner (ca. 3,5 MB), erfordert aber eine komplette Python-Installation sowie weitere, nachgelagerte Installationsschritte, welche in der Kurzanleitung beschrieben sind:
https://github.com/jxjo/Xoptfoil/raw/master/strak_machine/Strakmachine_pure.zip

Beide Versionen enthalten den hier vorgestellten Beispiel-Strak, um das zuvor Beschriebene besser nachvollziehen zu können, sowie eine Kurzanleitung und eine weitere, ergänzende Beschreibung der Funktionen der Strak-Machine.

Die Anleitungen sind in Englisch geschrieben, können aber mit Hilfe von Übersetzungs-Tools, wie z.B. „DeepL“ leicht in andere Sprachen übersetzt werden.

Hinweis: möglicherweise kommt es zu Fehlalarmen des Virenscanners, welcher in den heruntergeladenen Files ein Pattern einer Schadsoftware zu erkennen glaubt. Dies ist mir bereits selbst einmal passiert. Die angebotene Software ist jedoch frei von Viren.
Wer in diesem Fall aber lieber auf Nummer sicher gehen möchte, der kann z.B. vor der Ausführung der Software ein aktuelles Backup seines Systems machen.


Feedback / Einladung zum Mitmachen

Wir möchten an dieser Stelle gerne eine Einladung an alle Interessierten zum Mitdenken und Mitmachen aussprechen.
Die Möglichkeiten des Mitmachens / sich einzubringen sind dabei sehr vielfältig.

Dies kann z.B. das Einbringen von eigenem, wertvollen Erfahrungswissen sein, welches man bei bisherigen Tragflächendesigns gewonnen hat, die Nutzung / das Ausprobieren der Strak-Machine und ein Feedback dazu an das Entwicklerteam, das mit-Entwickeln möglicher Strategien bei der Strak-Erstellung, aber auch das mit-Programmieren in Fortran oder Python sind hier möglich.

Ein erstes Feedback bzw. eine Kontaktaufnahme mit Hilfe von RC-Network wäre hierfür ein geeigneter Weg.


Schlußwort

Ich möchte mich nun abschließend noch einmal ganz ausdrücklich bei Jochen Günzel für die gute Zusammenarbeit, die zusätzliche Unterstützung beim Erstellen dieses Artikels und auch die sicher nicht ganz einfache und unermüdliche Basis-Arbeit an Xoptfoil-JX bedanken, ohne welche die Strak-Machine überhaupt nicht möglich wäre, sowie ebenfalls bei Alexander Schmidt für „Ermutigung und Test“ ;-).

Dies hier haben wir alle zusammen geschafft!

Nun aber allen, die an der Erstellung eines eigenen Straks / der Nutzung der Strak-Machine interessiert sind, viel Spass und viel Erfolg!

Matthias
 
Ansicht hell / dunkel umschalten
Oben Unten