Winkelfunktion

  • Hallo Robotergemeinde,


    wie muss ich folgende Formel eingeben, dass mir die Steuerung den Winkel Alper errechnet
    Die Formel lautet ja so:
    Tangens Alpha = Gegenkathete/Ankathete


    Die Formel würde mit meinen Variablen so sein.
    Tangens Alpha= 30/Messwert_3


    Habe schon einige Varianten ausprobiert, nur bekomme ich es leider nicht hin. :hilfe:

  • Schritt für Schritt zum Roboterprofi!
  • Erst mal musst du uns etwas genauer erklären welcher Wert was darstellt.
    So wie ich das aus deiner Erklärung lese ist dein "Messwert_3" die Gegenkathete vom Winkel Alpha, "30.0" die Ankathete von Alpha. Wenn das soweit alles Stimmt müsste der Code von "notime" passen. Ich würde allerdings etwas klarere Variablennamen vergeben:



    Somit könnte man sich schöne Module zusammenbauen, die man wieder nutzen kann wenn mehrere Sachen berechnet werden sollen. Dazu müsste die Berechnung natürlich in einer unterroutine sein...


  • Somit könnte man sich schöne Module zusammenbauen, die man wieder nutzen kann wenn mehrere Sachen berechnet werden sollen. Dazu müsste die Berechnung natürlich in einer unterroutine sein...


    :genau:
    ... und in eine solche Routine baut man dann so schöne Sachen ein wie z.B.
    Plausibilitätsprüfung(en)/Fehlerhandling, in diesem Fall auf Messwert_3 == 0 bzw. Gegenkathete_Alpha ==0 prüfen


    gruß

  • Hallo Robotergemeinde


    Habe zu der Winkelberechnung leider noch eine Frage :(.
    Folgende Variablen und Werte sind im Programm angegeben.


    ;Wertzuweisung für Formel
    Gegenkathete_Alpha=30
    Ankathete_Alpha=50


    ;Rechnung
    Alpha= TAN (Ankathete_Alpha/Gegenkathete_Alpha)


    Bekomme leider nach der Rechnung nicht den richtigen Winkel.
    Beim Taschenrechner muss man tan hoch-1 rechnen, aber wie schreibe ich
    die Formel, damit die Steuerung mich versteht. :huh:

  • Hi,


    des Rätsels Lösung lautet:
    ATAN2(Y,X) (Standardfunktion)


    Zitat Doku:
    [...]Arcustangens
    Der Tangens eines Winkels ist definiert als Gegenkathete (Y) dividiert durch Ankathete (X)
    im rechtwinkligen Dreieck. Hat man die Länge der beiden Katheten, kann man also den Winkel
    zwischen Ankathete und Hypotenuse mit dem Arcustangens berechnen.
    Betrachtet man jetzt einen Vollkreis, so ist es entscheidend, welches Vorzeichen die Komponenten
    X und Y haben.Würde man nur den Quotienten berücksichtigen, so könnten mit dem
    Arcustangens nur Winkel zwischen 0° und 180° berechnet werden. Dies ist auch bei allen
    üblichen Taschenrechnern der Fall: Der Arcustangens von positiven Werten ergibt einen
    Winkel zwischen 0° und 90°, der Arcustangens von negativen Werten einen Winkel zwischen
    90° und 180°.
    Durch die explizite Angabe von X und Y ist durch deren Vorzeichen eindeutig der Quadrant
    festgelegt, in dem der Winkel liegt (s. Abb. 6). Sie können daher auch Winkel in den
    Quadranten III und IV berechnen. Deshalb sind zur Berechnung des Arcustangens in der Funktion
    ATAN2(Y,X) auch diese beiden Angaben notwendig, z.B.:
    A = ATAN2(0.5,0.5) ;A=45
    B = ATAN2(0.5,-0.5) ;B=135
    C = ATAN2(-0.5,-0.5) ;C=225
    D = ATAN2(-0.5,0.5) ;D=315

    [...]


    Ansonsten hilft: Doku lesen....


    gruß
    rmac

  • Danke für die Antwort,


    habe diesen Teil schon in der Docu gelesen.
    Nur muss ich zugeben das ich im ersten Moment nicht ganz schlau daraus wurde. :D


  • ich hab leider etwas falsches geschrieben. Die Richtige formel lautet

    Code
    TAN(alpha)=(Gegenkathete_Alpha/Ankathete_Alpha)


    Wenn man die Formel nach alpha umstellen will würde es mathematisch so aus sehen

    Code
    alpha=1/TAN(Gegenkathete_Alpha/Ankathete_Alpha)


    (Natürlich nicht das Ergebnis von TAN(a/b) "eins durch nehmen", sondern nur den Tangens, allerdings kann die Steuerung genau so wie's Forum kein TAN hoch minus eins lesen)
    In KRL ist sieht das dann so aus:

    Code
    alpha=ATAN2(Gegenkathete_Alpha,Ankathete_Alpha)


    die Reihenfolge bei den Übergebenen Werten darf dabei nicht durcheinander gebracht werden. Sonst rechnest du ja den Beta aus

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden