Jojo26
User
Hallo Martin,
... vielen Dank für Deine tollen Anmerkungen und Ergänzungen zur Profiloptimierung!
Nachdem ich diese Beiträge geschrieben hatte, habe ich mich weiter auf die Entwicklung realer Profile und der Verbesserung von Xoptfoil-JX konzentriert. Die "Geschichte" geht daher sozusagen weiter in Entwicklung eines F3F-Profils. Aus meinen Erfahrungen der letzten 18 Monate noch ein paar weitere Anmerkungen...
... volle Zustimmung. Ich denke auch immer mal wieder drüber nach, eine Parameterisierung des Profils mit Beziér-Kurven wie es beispielsweise hier beschrieben ist, vorzunehmen. Dadurch würde man von vorneherein geometrische Artefakte ausschließen können. Auf der anderen Seite sind die erzielten Ergebnisse mit den implementierten Hicks-Henne-Funktion so (hinreichend) gut, dass mögliche Verbesserungen in meinen Augen eher gering sind.
Hicks-Henne-Funktion (zur Erläuterung: das sind sozusagen kleinste Beulen und Hubbel mit denen das Profil verändert wird) sind recht gut geeignet um ein beliebiges Ausgangsprofil zu optimieren, da sie additiv auf die bestehende Profilkontur aufgebracht werden. Der Nachteil ist, dass Fehler bzw. Unschönheiten des Ausgangsprofils oft mit vererbt werden. Zudem muss man einge Tricks anwenden, dass das resultierende Profil nicht wirklich "Beulen" bekommt ... ;-)
Typischweise verwendet man 5 Hicks-Henne-Funktion pro Profilseite. Jede Funktion wird mit 3 Paramtern definiert, so dass man pro Profilseite 15 Paramter hat. Da hilft bei der Optimierung am Ende nur Rechenleistung!
.... ich habe bisher nur mit "Particle Swarm" gearbeitet und bin aber immer wieder aufs Neue von der Leistungsfähigkeit dieses Optimierungsverfahrens beeindruckt. Dass der Schwarm in einem lokalen Optimum stecken bleibt, lässt sich weitgehend durch der Problemdomäne angepasste PSO-Parameter (PSO = particle swarm optimization) und durch vollständige / richtige Definition der Arbeitspunkte (operating points) verhindern.
.... nach meinem Verständnis gehören "Fische" (schöner Ausdruck) zu den geometrischen Constraints. Sie lassen sich in Xoptfoil-JX vermeiden durch die Begrenzung der Krümmungsumkehrungen (curve reversals), dem Hinterkantenwinkel (trailing edge angle) und/oder der Begrenzung der maximalen Krümmung an der Hinterkante.
... für Profildicke, Wölbung und cm0 wurde in Xoptfoil-JX der Ansatz gewählt, dass diese Werte auch als Zielwert einer Optimierung definiert werden können. Das Erreichen einer Dicke von z.B. 8,4% ist dann in "Konkurrenz" mit beispielweise einer Minimierung des Wiederstands bei ca=0,1.
... die (finale) Zielfunktion in Xoptfoil ist die gewichtete Summe der Zielfunktion der einzelnen Arbeitspunkte. Wird beispielsweise cw optimiert für ca=0,1 , 0,2 und 0,3 so ist das quasi das approximierte Integral.
... die ca-Grenze lässt sich nach oben schieben indem ca=f(alpha) für einen Arbeitspunkt z.B. alpha=10° optimiert bzw. ein Zielwert für ca vorgegeben wird.
... wohl wahr! Wobei mindestens genauso schlimm wie die Schlupflöcher des Solvers (Xfoil) sind die Schlupflöcher, die "Mensch" bei der Definition der Optimierungsaufgabe zulässt. Mit den Arbeitspunkten darf nicht nur vorgegen werden, welche Punkte optimiert werden sollen, sondern auch alle Bereiche meines Betrachtungsraums (ca-min bis ca-max, RE-Zahl) die erhalten bleiben sollen bzw. die, die sich in Grenzen verschlechtern dürfen.
... nach nun fast 3 Jahren mit Xoptfoil geht es mir immer noch auch so (wobei ich es zwischenzeitlich immer mal wieder "gegen die Wand geworfen hätte" ) Mit den neuen PC mit 16 logischen Prozessoren ( = 16 Xfoil-Berechnungen laufen gleichzeitig) kann der Partikel-Schwarm nun auch einiges wegschaffen...
... volle Zustimmung! Dabei erlaubt aber Xoptfoil einen fast spielerischen Zugang zum tieferen Eintauchen in die Aerodynamik ...
... das hab ich inzwischen auch gelernt!
--
Die aktuelle Version von Xoptfoil-JX ist hier zu finden. Unter Releases gibt es eine für Windows fertig kompilierte Version.
--
Viele Grüße
Jochen
... vielen Dank für Deine tollen Anmerkungen und Ergänzungen zur Profiloptimierung!
Nachdem ich diese Beiträge geschrieben hatte, habe ich mich weiter auf die Entwicklung realer Profile und der Verbesserung von Xoptfoil-JX konzentriert. Die "Geschichte" geht daher sozusagen weiter in Entwicklung eines F3F-Profils. Aus meinen Erfahrungen der letzten 18 Monate noch ein paar weitere Anmerkungen...
1. Entscheidend für den Verlauf der Optimierung ist die Parametrisierung des Profils.
a. Ich approximiere hierzu erstmal das Seedprofil mit einer analytischen Funktion. Wenn die einzelnen Anteile dieser Funktion orthonormal sind,
d.h. die Parameter unabhängig voneinander sind, konvergiert der Optimierungsalgorithmus besonders gut.
b. Deswegen sind Hicks-Henne und NACA, wie in Xoptfoil, nicht wirklich gut geeignet.
c. Besser geeignet sind Wagner-Funktionen oder Orthonormal-Funktionen. Ich verwende in der Regel 5-7 Parameter pro Seite des Profils.
Wenn ich es richtig verstehe ist in Xoptfoil NACA auf 4 bzw. 5 limitiert.
... volle Zustimmung. Ich denke auch immer mal wieder drüber nach, eine Parameterisierung des Profils mit Beziér-Kurven wie es beispielsweise hier beschrieben ist, vorzunehmen. Dadurch würde man von vorneherein geometrische Artefakte ausschließen können. Auf der anderen Seite sind die erzielten Ergebnisse mit den implementierten Hicks-Henne-Funktion so (hinreichend) gut, dass mögliche Verbesserungen in meinen Augen eher gering sind.
Hicks-Henne-Funktion (zur Erläuterung: das sind sozusagen kleinste Beulen und Hubbel mit denen das Profil verändert wird) sind recht gut geeignet um ein beliebiges Ausgangsprofil zu optimieren, da sie additiv auf die bestehende Profilkontur aufgebracht werden. Der Nachteil ist, dass Fehler bzw. Unschönheiten des Ausgangsprofils oft mit vererbt werden. Zudem muss man einge Tricks anwenden, dass das resultierende Profil nicht wirklich "Beulen" bekommt ... ;-)
Typischweise verwendet man 5 Hicks-Henne-Funktion pro Profilseite. Jede Funktion wird mit 3 Paramtern definiert, so dass man pro Profilseite 15 Paramter hat. Da hilft bei der Optimierung am Ende nur Rechenleistung!
2. Weiterhin entscheidend ist die Wahl des Optimierungsalgorithmus
a. Ein Gradientenverfahren, ist relativ schnell, bleibt aber manchmal - wie Du ja auch berichtest - in lokalen Optima stecken.
Xoptfoil nutzt hier das Simplexverfahren, mit dem ich auch sehr gute Erfahrungen gemacht habe.
b. Evolutionsalgorithmen sind dagegen sehr rechenaufwendig, finden aber unerwartete und durchaus interessante Lösungen.
c. Zu Particle Swarm Optimization habe ich leider keine Erfahrung, scheint mir aber auch in einem lokalen Optimum stecken zu bleiben.
.... ich habe bisher nur mit "Particle Swarm" gearbeitet und bin aber immer wieder aufs Neue von der Leistungsfähigkeit dieses Optimierungsverfahrens beeindruckt. Dass der Schwarm in einem lokalen Optimum stecken bleibt, lässt sich weitgehend durch der Problemdomäne angepasste PSO-Parameter (PSO = particle swarm optimization) und durch vollständige / richtige Definition der Arbeitspunkte (operating points) verhindern.
3. Last not Least ist die Zielfunktion entscheidend.
a. "Fische", also sich kreuzende Profilkonturen, sind selbstredend zu verbieten. Ich habe in Xoptfoil dazu (noch) keine zweifelsfreie Eingabe
gefunden.
b. Die Profildicke und das cm0 sollten sinnvoll einzugrenzen sein. Xoptfoil kennt beim cm0 leider nur min_moment. Ein max_moment hab´ ich
(noch) nicht entdeckt.
c. Ich verwende auch die Typ2-Polare und "drehe" diese, so daß ich cw=f(ca) erhalte. Das Integral unter der Polare ist dann zu minimieren. Ein
Problem ist dabei immer noch die ca-Grenze. Da ist mir noch nicht gescheites Eingefallen um diese während der Optimierung dynamisch zu
erweitern. Xoptfoil hat da leider auch nichts. D.h. eine Optimierung auf maximales ca geht wohl auch in Xoptfoil nicht.
.... nach meinem Verständnis gehören "Fische" (schöner Ausdruck) zu den geometrischen Constraints. Sie lassen sich in Xoptfoil-JX vermeiden durch die Begrenzung der Krümmungsumkehrungen (curve reversals), dem Hinterkantenwinkel (trailing edge angle) und/oder der Begrenzung der maximalen Krümmung an der Hinterkante.
... für Profildicke, Wölbung und cm0 wurde in Xoptfoil-JX der Ansatz gewählt, dass diese Werte auch als Zielwert einer Optimierung definiert werden können. Das Erreichen einer Dicke von z.B. 8,4% ist dann in "Konkurrenz" mit beispielweise einer Minimierung des Wiederstands bei ca=0,1.
c. Ich verwende auch die Typ2-Polare und "drehe" diese, so daß ich cw=f(ca) erhalte. Das Integral unter der Polare ist dann zu minimieren.
... die (finale) Zielfunktion in Xoptfoil ist die gewichtete Summe der Zielfunktion der einzelnen Arbeitspunkte. Wird beispielsweise cw optimiert für ca=0,1 , 0,2 und 0,3 so ist das quasi das approximierte Integral.
Ein Problem ist dabei immer noch die ca-Grenze. Da ist mir noch nicht gescheites Eingefallen um diese während der Optimierung dynamisch zu erweitern. Xoptfoil hat da leider auch nichts. D.h. eine Optimierung auf maximales ca geht wohl auch in Xoptfoil nicht.
... die ca-Grenze lässt sich nach oben schieben indem ca=f(alpha) für einen Arbeitspunkt z.B. alpha=10° optimiert bzw. ein Zielwert für ca vorgegeben wird.
4. Die numerische Optimierung nutzt schamlos jedes Schlupfloch des Aerodynamik-Solvers aus und ist auch nur eine Näherung an das Optimium.
... wohl wahr! Wobei mindestens genauso schlimm wie die Schlupflöcher des Solvers (Xfoil) sind die Schlupflöcher, die "Mensch" bei der Definition der Optimierungsaufgabe zulässt. Mit den Arbeitspunkten darf nicht nur vorgegen werden, welche Punkte optimiert werden sollen, sondern auch alle Bereiche meines Betrachtungsraums (ca-min bis ca-max, RE-Zahl) die erhalten bleiben sollen bzw. die, die sich in Grenzen verschlechtern dürfen.
Von Xoptfoil mit seinem Multithreading bin ich echt begeistert.
... nach nun fast 3 Jahren mit Xoptfoil geht es mir immer noch auch so (wobei ich es zwischenzeitlich immer mal wieder "gegen die Wand geworfen hätte" ) Mit den neuen PC mit 16 logischen Prozessoren ( = 16 Xfoil-Berechnungen laufen gleichzeitig) kann der Partikel-Schwarm nun auch einiges wegschaffen...
An die Stelle des aerodynamischen Fachwissens tritt notwendiges Fachwissen über Parametrisierung und Optimierungsverfahren.
... volle Zustimmung! Dabei erlaubt aber Xoptfoil einen fast spielerischen Zugang zum tieferen Eintauchen in die Aerodynamik ...
P.S.: Es ist noch kein gutes Profil vom Himmel gefallen!
... das hab ich inzwischen auch gelernt!
--
Die aktuelle Version von Xoptfoil-JX ist hier zu finden. Unter Releases gibt es eine für Windows fertig kompilierte Version.
--
Viele Grüße
Jochen
Zuletzt bearbeitet: