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...
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.
Ab dem Moment wo ich den Sinus aus I errechnen will passt es einfach nicht mehr, dabei ist doch das gar nicht besonderes!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
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
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/
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
Du hast die Werte ja in dinem Quelltext angegeben und der Wert den Bascom ausrechnet ist ja entlich nicht völlig falsch.Total komisch, irgendwo ist da entweder ein denkfehler oder ich verwechsel irgendwas.
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?
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
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
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
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
Lesezeichen