airWing mit p5.js

Liebe Modellfreunde,

nach zehn Jahren Sendepause und wenig Modellflug kann ich es doch nicht ganz lassen.
Damals war die Zeit der Berechnungen: xwing vom Ulf, Nurflügel vom Frank,...
Ich selbst hatte mit Matlab gerechnet , aber es war mir zu kompliziert, daraus eine Anwendung für Win, Mac oder Linux zu machen.

Kürzlich habe ich p5.js endeckt, eine Browser-javascript-Anwendung für interaktive visuelle Kreationen. Damit könnte man ja auch Aero simulieren und interaktiv spielen.
Hier zum Spass ein kleiner Wing-Simulator für p5.js:
https://editor.p5js.org/andross4001/sketches/bZQaf0_1W
Die Auftriebs- und ca-Verteilungen werden berechnet und geplottet. Downwash und induzierter Widerstand sind noch nicht drin, aber das wäre schnell erledigt, wenn gewünscht.
Spielt mal mit rum und schreibt euren Kommentar.
Viel Spass,
Andreas
(Der aus Belgien, für diejenigen, die sich noch erinnern)
 

UweH

User
Hallo Andreas, schon von Dir zu lesen, ich freu mich wenn Du wieder da bist und hoffe es geht Dir gut!😉
Du als Physiker spielst scheinbar immer noch gerne mit der Tastatur, ich hoffe Du gehst auch ab und zu mit der Hardware raus? 😜

Gruß, Uwe.
 
Schön von dir zu hören, Uwe. Ja, ich fliege noch ab und zu. Meist endet es dann im Clubhaus beim belgischen Bier. Nurflügel sind hier auch nicht so in Mode. Und Hangflug an der Küste ist nicht mehr möglich, alles zugebaut.
Das P5 im Browser hat mich beeindruckt wegen den Interaktiv- und Design- Mõglichkeiten. Man kann spielerisch schnell durch Animation zum Verständnis kommen. Ich dachte, das geht auch mit Aero. Schnell sieht man, welche Winggeometrie ungùnstig ist. Zuviel ca aussen oder zu unelliptische Auftriebsverteilung. Andere Geometrien sind auch schnell im Code eingegeben. Versuch es Mal! (Vergiss nicht auf den Startknopf zu drücken!) Dauert 2 Minuten.
Ich versuche zum Nuritreff im Taunus zu kommen.
LG,
Andreas
 
Danke für das Kompliment, Rallef. Du hast ja beeindruckende Hilfsmittel auf deiner Website.
Ja, die Plattformunabhängigkeit hat mich inspiriert und die Interaktivität. Ideal zum lernen oder schnell entwerfen. Im p5 muss man halt seine functions selber schreiben, aber die Möglichkeiten zur Animation sind Klasse. Generative Art mit Mathe, Physik oder Aerodynamik möglich.
Vielleicht hat der eine oder andere kreative Ideen zur Verbesserung des Tools, ist ja erst ein Anfang. Wer Javascript beherrscht, kann seine eigene Geometrie eingeben, z.B. als Polynom Funktion.
Liebe Grüsse,
Andreas
 

husi

User
Hallo Andreas,

großes Kino. Toll gemacht.
Ich habe (wie du es vorgeschlagen hast) etwas mit der Tragflächengeometrie gespielt.
Allerdings verstehe ich dabei etwas nicht. Wenn ich die beiden rot markierten Zeilen hinzufüge, bekomme ich wie gewünscht die weiteren Stützpunkte in der Nasenleiste.

function verticePoints(N, b, d, c0, c1, h) {
let P = [[0, 0],
[h /2, -1/3 * b],
[h, -b / 2],
[h + c1, -b / 2],
[c0 , 0],
[h + c1, b / 2],
[h, b / 2],
[h /2, 1/3 * b],
[0, 0],
];
return P
}

Wenn ich sie aber in der Halbspannweite der linken + rechten Tragflächen haben möchte, müsste ich den Wert 1/3 durch ein 1/4 ersetzen. In diesem Fall werden die beiden zusätzlichen Stützpunkte ignoriert. Warum?

Viele Grüße
Mirko
 
Hallo Mirko,

wird nicht ignoriert. Es gibt keinen Knick mehr, denn dein Stützpunkt liegt genau auf der Geraden.

Aber noch einen Hinweis, wenn du die Geometrie variieren willst:
du musst auch die 1/4 chord Linie, die 3/4 chord Linie und die Tiefenverteilung umbauen!
Das gibt dann die Vortex Punkte und die Control Points.
Du kannst die Punkte einzeichnen lassen. Dazu nimm die Schrägstriche "//" im Zeichenblock raus:
//strokeWeight(3 / scaleFactor);
//stroke("red");
//Pegments(CP);
//stroke("blue");
//Pegments(LFP);
//Pegments(RFP);

Am besten eine Papierzeichnung machen und sich die Diskreditierung über y überlegen.
Koordinatensystem: x zeigt nach unten und y nach rechts. Einheit: Spannweite b = 1.

Wenn du Probleme hast, mach ich es dir.

Andreas
 

husi

User
Hallo Andreas,

super danke, das Einblenden hilft.
Das das Koordinatensystem gedreht ist, habe ich hieran erkannt:
rotate(PI / 2); 🙂

Die CP und LFP zu ändern ist etwas aufwändiger, weil du ja den "Punktgenerator" (For Schleife) dort eingebaut hast.

Mir geht es nicht um diese, oder jene Auslegung. Ich möchte erst einmal verstehen, was du gemacht hast und wie du es gemacht hast.
Kannst du mir sagen, warum du mit Canvas und nicht mit SVG arbeitest?

Viele Grüße
Mirko
 
Hallo Mirko,

Ùber SVG hab ich gar nicht nachgedacht. Vielleicht weißt du mehr darüber.
KS wurde nicht nur gedreht, sondern auch zur Mitte verschoben und gespiegelt über scale. Aber erst später im Programm, wenn ich zeichnen muss.

Andreas
 

husi

User
Hallo Andreas,

sorry, du hast ja gesagt, das du länger "weg" warst.
Es ist eine persönliche Nachricht. Du siehst es oben rechts im Browser:

RCN-was_ist_eine_PN.png


Viele Grüße
Mirko
 

husi

User
🙂 Da hast du dich ja richtig ins Zeug gelegt. Toll
Kannst du bitte noch einmal die Definitions-Grenzen / Parameter der tragenden Linie und von biotsavart (falls sich durch diesen Lösungsansatz zusätzliche Einschränkungen ergeben) sagen?
Wenn ich das richtig in Erinnerung habe, darf die Streckung nicht zu klein und die Pfeilung nicht zu groß werden, oder?

In Richtung Nurflügel gedacht, wäre es hilfreich, wenn die Verwindung größer gewählt werden könnte.
Klar, kann man selbst im QuellCode anpassen, aber...
Cool fände ich es auch noch, wenn die Spannweitenposition des größten lokalen ca Beschriftet werden würde.

Hast die die Zeichenfunktion der Vortex Punkte und der Control Points bewußt raus genommen?


Viele Grüße
Mirko
 
Hallo Mirko,

die tragende Linie ist - wenn ich deine Frage richtig verstehe - die c/4-Linie, also Nasenleiste plus chord/4. Die Hufeisen liegen alle auf dieser Linie, aber nicht so wie beim Ludwig Prandl, sondern nebeneinander. Dadurch wird auch der Pfeilflügel genau gerechnet. Jede Pfeilung und Streckung (aspect ratio) sind ok. Wenn du mehr wissen willst, müsste ich dir ein Bild malen.
Was man nicht kann mit der Methode, ist die Berechnung der Verteilung des Profilmomentes. Aber das geht auch nicht mit Vortex Lattice, weil unsere Re-Zahlen zu klein sind und das Profilmoment Re-Zahl abhängig ist.
Biot-Savart (Induktion der Zirkulation) müsstest du in Büchern oder Internet finden. Hier in 2D hat das Kreuzprodukt nur eine z-Komponente.
Verwindung: habe sie linear angesetzt. In den Slidern kannst du die Extremwerte selber einstellen. Siehe Zeile 47:
twist_slider = createSlider(-1, 1, 0, 0.1); erste und zweite Zahl. Ja da sollte in der Tat -10 und + 10 stehen. Wenn du eine andere Verwindungsverteilung willst, ändere Zeile 174.

Beschriftung: ich hatte sie absichtlich minimal gehalten aus Faulheit und ästhetischen Gründen. Wo die ca-maxima liegen, sieht man ja ganz gut.
Ja, Vortex- und Kontrollpunkte habe ich nicht mehr eingezeichnet; sieht so sauberer aus. Kann natürlich rein, wenn man will.

Meine Idee war, dass man ganz schnell das Wichtige sieht.

Danke für die Hinweise, Mirko.

Ciao,
Andreas
 
Ansicht hell / dunkel umschalten
Oben Unten