- LiTime Speicher und Akkus         
Ergebnis 1 bis 8 von 8

Thema: Bascom und Sinus will nicht klappen

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    01.10.2009
    Ort
    Niedersachsen
    Alter
    41
    Beiträge
    33

    Bascom und Sinus will nicht klappen

    Anzeige

    Powerstation Test
    Hallo ihr Roboterfreunde,

    ich habe ein kleines Problem was mich so langsam richtig zum verzweifeln bringt.
    Eigentlich ist alles ganz einfach.
    Ich will lediglich zwei Positionen bestimmen.
    Einmal X und Y Standpunkt
    und
    X und Y Zielpunkt!
    Ich errechne mir daraus die Weg Koordinaten X und Y Fahrweg
    und setzte das in ein Zeigerdiagramm.
    Daraus entnehme ich den Quadranten und will mir eigentlich den Drehwinkel errechnen.
    Dazu wollte ich mir der Winkelfunktionen behelfen aber das will und will nicht hinhauen. Die gesamte Rechnung stimmt bis zu einem ganz entscheidenen Punkt.
    Code:
    $regfile = "m128def.dat"
    $crystal = 16000000
    $baud = 9600
    
    'Sound Portg.2 , 400 , 250
    
    Dim Xst As Single
    Dim Xzi As Single
    Dim Xw As Single
    
    Dim Yst As Single
    Dim Yzi As Single
    Dim Yw As Single
    
    Dim Zw As Single
    Dim Zw1 As Single
    Dim Xqua As Single
    Dim Yqua As Single
    
    Dim I As Single
    
    Dim Winkel1 As Single
    
    Xst = 0
    Yst = 0
    
    Xzi = 2
    Yzi = 3
    
    Xw = Xzi - Xst
    Yw = Yzi - Yst
    
    If Xw = 0 And Yw = 0 Then
       Winkel1 = 0
       Print "Wir befidnen uns genau auf dem Nullpunkt"
    End If
    If Xw > 0 And Yw >= 0 Then
       Winkel1 = 0
       Print "Wir befidnen uns im I Quadranten"
    End If
    If Xw <= 0 And Yw > 0 Then
       Winkel1 = 180
       Print "Wir befidnen uns im II Quadranten"
    End If
    If Xw < 0 And Yw <= 0 Then
       Winkel1 = -270
       Print "Wir befidnen uns im III Quadranten"
    End If
    If Xw >= 0 And Yw < 0 Then
       Winkel1 = 360
       Print "Wir befidnen uns im IV Quadranten"
    End If
    
    
    Print "Der Winkel ist " ; Winkel1 ; "°"
    Print "Der Weg auf der X-Achse beträgt " ; Xw
    Print "Der Weg auf der Y-Achse beträgt " ; Yw
    
    Xqua = Xw * Xw
    Yqua = Yw * Yw
    
    Zw1 = Xqua + Yqua
    Zw = Sqr(zw1)
    
    Print "Die Hypotenuse ist " ; Zw
    
    I = Yw / Zw
    Print I      '0.832050201 stimmt
    Print Yw     '3.0 stimmt
    Print Zw     '3.60555124 stimmt auch
    I = Sinh(i)  '0.931434269 STIMMT NICHT Eigentlich 0.98281... Warum ???
    
    Print I
    I = Rad2deg(i)
    Print I
    I = I + Winkel1
    
    Print "Das sollte der Winkel vom Ursprung sein " ; I
    
    'Sound Portg.2 , 800 , 125
    
    End
    Ab dem Moment wo ich den Sinus aus I errechnen will passt es einfach nicht mehr, dabei ist doch das gar nicht besonderes!
    Kann mir irgendwer erklären warum. Ich habe es über Cosinus versucht genau das gleiche Problem. Wenn ich genau den selben Rechenschritt mit dem Taschenrechner nachrechne, mit den gleichen Zahlen etc. komme ich immer auf den richtigen Wert. Damit ich auch weiß welches der richtige Wert ist habe ich das ganze im CAD nachgezeichnet und die Winkel gemessen, dass ist schon glatt peinlich. Au Back und ich wette es ist wieder eine Kleinigkeit!
    Schonmal vielen Dank im vorraus.
    MfG Simon
    Ein Vorteil zieht immer einen Nachteil mit sich! Ohhh wie war!
    www.frequenz-shop.de | www.SHP-Team.de

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    43
    Beiträge
    1.273
    Hi!
    Ich habe mir den Code jetzt nicht angeschaut, aber ich wette, dass du vergessen hast, dass Winkelfunktionen mit RAD rechnen und nicht mit DEG. Guck dir mal "RAD2DEG" etc. in der Bascom Hilfe an...
    Viele Grüße, William
    -> http://william.thielicke.org/

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    01.10.2009
    Ort
    Niedersachsen
    Alter
    41
    Beiträge
    33
    Hi Willa,
    thx für deine quick Antwort aber ich habe mich mit der Funktion schon vertraut gemacht. siehe 6 Zeile von unten im Code.
    Ich habe es auch mit meinen Taschenrechner im DEG sowie im RAD Modus gerechnet. Ich komme einfach nicht auf den Wert den mir Bascom errechnet!
    Total komisch, irgendwo ist da entweder ein denkfehler oder ich verwechsel irgendwas. Aber eigentlich kann ich auch nicht soviel falsch machen da ich ja den Fehler genau lokalisiert habe und ihn somit nachrechnen kann. Hmmm
    Ein Vorteil zieht immer einen Nachteil mit sich! Ohhh wie war!
    www.frequenz-shop.de | www.SHP-Team.de

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Total komisch, irgendwo ist da entweder ein denkfehler oder ich verwechsel irgendwas.
    Du hast die Werte ja in dinem Quelltext angegeben und der Wert den Bascom ausrechnet ist ja entlich nicht völlig falsch.
    Fliesskomma-Berechnungn sind nicht unbedingt die Stärke eines µC. Könnte es sein, dass sich der relative hohe Fehler (ca. 5%) aus der Ungenaugikeit des Datentypen "Single" ergibt?

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    01.10.2009
    Ort
    Niedersachsen
    Alter
    41
    Beiträge
    33
    Hmmm, also das Beispiel das ich jetzt gerade gepostet habe ist relativ harmlos, wenn ich jedoch andere Koordinaten benutze kann es sich im Winkel mit ca. +- 20Grad auswirken. Kann ich diesen Fehlerquotienten irgendwie eindämmen ?
    Ein Vorteil zieht immer einen Nachteil mit sich! Ohhh wie war!
    www.frequenz-shop.de | www.SHP-Team.de

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    01.10.2009
    Ort
    Niedersachsen
    Alter
    41
    Beiträge
    33
    Eines ist vieleicht noch dazu zu erwähnen sowohl die Berechnung der Hypotenuse und des Ergebnises aus der Division stimmen exakt mit dem Ergebnisen meines Taschenrechners überein nur der Sinuswert treibt enorm ab vom eigentlichen. Komisch komisch
    Ein Vorteil zieht immer einen Nachteil mit sich! Ohhh wie war!
    www.frequenz-shop.de | www.SHP-Team.de

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    01.10.2009
    Ort
    Niedersachsen
    Alter
    41
    Beiträge
    33
    Ach ganz kurze Zwischenfrage die Funktion COS und COSH in Bascom kann ich doch als Cosinius und Cosinus-1 ableiten oder?
    Ein Vorteil zieht immer einen Nachteil mit sich! Ohhh wie war!
    www.frequenz-shop.de | www.SHP-Team.de

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    01.10.2009
    Ort
    Niedersachsen
    Alter
    41
    Beiträge
    33
    Hoppala jetzt nach rund 30 Std. Kopf vermatern ist mir der Fehler aufgefallen. Ich habe anstatt den Arcsinus (Asin Funktion Bascom) den Sinh Funktion genommen. Natürlich völliger Blödsinn. Jetz mit dem Asim stimmt das Ergebnis fast 100% erst nach der 6ten Stelle treten Fehler auf! Nun kann ich mit dem Konvertieren des GPS Signal anfangen und dann hab ich schon die halbe Miete
    Ein Vorteil zieht immer einen Nachteil mit sich! Ohhh wie war!
    www.frequenz-shop.de | www.SHP-Team.de

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus