Komplexes Diagramm in Funktion umsetzen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von christian_B.

    Komplexes Diagramm in Funktion umsetzen

    Hallo,
    ich habe hier ein Problem beim erstellen einer Funktion. Mein Programm soll das selbe tun was man manuell mit beiliegendem Diagramm könnte, nur stehe ich gerade total auf dem Schlauch wie man das Umsetzt.

    Eine Lösung wäre dafür dem Programm Tabellen beizulegen und den entsprechenden Wert je nach Input herauszusuchen und auszugeben, was aber sehr aufwändig wäre da es sich um mehrere Diagramme dieser Art handelt.

    Hat jemand von euch eine Idee, wie man das berechnen könnte ohne die Funktion der Linien zu kennen?(Möglicherweise sind in dem Diagramm auch nur Erfahrungswerte abgebildet)
    Ein Ansatz wäre das Diagramm selbst in das Programm zu integrieren und von diesem die Pfeillinie wie im Beispiel zeichnen zu lassen(Entsprechend der Eingabe), nur das wäre wohl eher die Notlösung und das Ergebnis sehr ungenau.


    Was man hier nicht gut erkennen kann, die Pfeillinie die nach rechts steigt beginnt an einer Senkrechten Referenzlinie und folgt dann den eingezeichneten Kurven. Bei Bedarf kann ich das Diagramm nochmal in einer besseren Qualität hochladen.
    @christian_B Zwei Jahre nach der Registriereung der erste Beitrag? ;)
    Was genau willst Du?
    • aus vorhandenen Punkten solch ein Diagramm malen?
    • Aus dem Diagramm Punkte einer Linie auslesen?
    • aus einer x|y-Koordinate die kommunizierende y|x-Koordinate bestimmen?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo, erstmal danke für deine Antwort,

    ich will eine Funktion schreiben, mit der ich die "Field Lenght Limit Brake Release Weight" ermitteln kann.
    Das soll in entwa so aussehen:
    -Textbox für "Airport OAT" (-60 bis 140 °F oder -60 bis 70 °C)
    -Combobox(-2,-1,0,1,2,3,4,5,6,7,8,8.4) für "Airport Pressure Altitude
    -Textbox für "Field Lenght Available" (14 bis 42 * 100M oder 4.5 bis 14 * 1000 Feet)
    -Texbox oder Slider für "Runway Slope %" (-2 bis 2%)
    -Textbox für "Wind" (-15 bis 40 KTS)

    aus diesem Input soll dann entsprechend des Diagrammes die "Field Lenght Limit Brake Release Weight" bestimmt werden, aber wie gesagt möglichst ohne Tabellen, die man manuell erstellen könnte(Es gibt einfach zu viele mögliche Kombinationen).

    Leider habe ich keinen richtigen Ansatz wie ich das in Software umsetzen könnte.



    Wie das ganze manuell Funktioniert:

    Wenn man jetzt einfach mal ganz unten im Diagramm bei "Field Lenght Available" anfängt, trifft man auf die Referenzline(bei Slope 0%), angenommen "Slope" entspricht jetzt 1%, denkt man sich dort eine horizontale Linie und folgt den nach links steigenden Linien bis man die gedacht 1% Linie kreuzt, danach geht es weiter zur "Wind" Referenzline und macht das selbe.

    Jetzt gibt man unten Links die "Airport OAT" ein und zieht sich senkrecht nach oben eine Line, bis man die entsprechende "Airport Pressure Altitude" Line erreicht, von dort aus geht es horizontal nach rechts bis man auf die nächste Referenzlinie trifft. Dort folgt man wieder den eingezeichneten Linien. Das ganze schneidet sich dann mit dem letzten Schritt des letzten Absatzes. Es geht noch einmal horizontal nach rechts und man kann die entsprechende "Field Lenght Limit Brake Release Weight" ablesen


    Ich habe nochmal versucht ein besseres Screenshot zu machen. Blaue Linie = Referenzlinen
    Rote Linien = gedachte/gezeichnete Linie um "Field Lenght Limit Brake Release Weight" zu ermitteln,
    Grüne Linie = ausgewählte Werte bei Wind, Airprt. Press. Alt. und Rwy. Slop, bzw. im allerletzen Schritt Linien denen gefolgt wird um zum Ergebniss zu kommen


    Noch eine kurze Info:
    Die "Field Lenght Limit Brake Release Weight" wird bei Flugzeugen von Boeing dazu benutzt um die V-Speeds aus einer Tabelle abzulesen. Die V-Speeds sind wichtige Geschwindigkeiten bei der der Pilot z.b. den Start noch abbrechen kann und sicher zum stehen kommt, bevor das Ende der Startbahn erreicht wird. Dazu wird eben erstmal die Temperatur, Länge der Startbahn, Gefälle/Steigung der Startbahn, Windverhältnisse und Höhe der Startbahn(Luftdruck) benötigt. Das Diagramm im ersten Beitrag zeigt die Daten für Maximal vorhandenen Schub und bei trockener Runway, das ganze gibt es dann nochmal für rutschige Runway, Runway mit stehendem Wasser und in der Kombination mit gedrosselten Schub(Insgesamt 9 mal). Mein Programm soll dann für 3 Flugzeugtypen besagte V-Speeds ermitteln(Nur für Simulatorflüge, kein echter Betrieb)



    RodFromGermany schrieb:

    @christian_B Zwei Jahre nach der Registriereung der erste Beitrag?

    Bisher konnte ich halt einfach alles mithilfe Googel und des Forums lösen, nur hier habe ich keine Ahnung... Ist schon lange her der Mathematikunterricht :saint: Wenn es nur Geraden wären würde ich das vielleicht auch noch hinbekommen, leider kann man es auf dem Screenshot nicht gut erkennen, das es zum Teil eher eine Spline ist. Adobe lässt mich die entsprechende Seite in dem .pdf leider nicht entnehmen.
    @christian_B OK.
    [OT]
    Dieses Flugzeugproblem ist mir bekannt, bei der Armee (Jagdflugzeuge) wurde ein Alarmstart für zwei Flugzeuge befohlen und mitten auf der Startbahn kam der Abbruchbefehl.
    Der junge Pilot brach ab, der erfahrene Pilot startete durch.
    Nachdem der erfahrene Pilot durch Verfliegen von Treibstoff die zulässige Landemasse erreichte, landete er, wir tankten auf und feddich.
    Das Flugzeug des jungen Piloten mussten wir vom Gottesacker bergen, reinigen und vollständig überprüfen...
    [/OT]
    Du hast auf dem Bild 4 Diagrammbereiche mit je einer Reihe von Kennlinien.
    Die müsstest Du vereinzeln.
    Also Du müsstest 4 einzelne Diagramme so aufbereiten, dass Du aus einem x oder y und einem Parameter das kommunizierende y bzw. x bekommst.
    Das ist echt eine stressige Fleißarbeit.
    Gut wären Gleichungen, die für die Parameter und auch Zwischenwerte die Kurven liefern.
    Für die 3 Kurvenscharen rechts sehe ich da kein Problem. Die linke Schar müsste geschickt zusammengesetzt werden.
    Konzentriere Dich zunächst darauf, die Kurve der Knickpositionen zu beschreiben, dann machst Du für links und rechts davon einen in sich geschlossenen Ansatz.
    Jede Kurve einzeln per Spline zu beschreiben halte ich für nicht gut, da Du bei einer Änderung der Kurve von vorn anfängst.
    Mit einem solchen Ansatz sehe ich bessere Chancen (höhere Ordnungen nach belieben):
    P sei der Parameter-Wert
    y = ... + (a1 + P * a2) * x^2 + (b1 + P * b2) * x^1 + (c1 + P * c2) * x^0 + (d1 + P * d2) * x^-1 + ...
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Sorry das die Antwort erst jetzt kommt, aber ich hatte in den letzten Wochen einiges zu tun.

    Für die zwei unteren Diagramme habe ich jetzt schon funktionierenden Code. Wenn man diese anders darstellt bekommt man verschiedene Geraden, aus der mit mit f(x)=1*x+0 und maximale bzw. minimale Steigung kann ich jetzt auch die Zwischenwerte für die unteren Diagramme ausreichend genau ermitteln. In der nächsten Zeit werde mich an den Rest machen und dann mal berichten, je nachdem wie ich Zeit habe.

    Auf jeden Fall vielen Dank für deine Hilfe, das hat mir schon mal viel weitergeholfen.