Wo steckt der Fehler??? - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Wo steckt der Fehler??? (/Thread-Wo-steckt-der-Fehler) Seiten: 1 2 |
Wo steckt der Fehler??? - eg - 23.10.2007 16:49 Hallo Leute, habe ein VI zur Umrechnung der XYZ Koordinaten in ellipsoidische GPS-Koordinaten erstellt, finde aber nicht wo der Fehler steckt. Wenn jemand Zeit und Lust hat, kann mal seine Mathekenntnisse bzw. LV-Kenntnisse ausprobieren. (VI LV 8.0) Wo steckt der Fehler??? - Lucki - 23.10.2007 18:10 ' schrieb:Hallo Leute, habe ein VI zur Umrechnung der XYZ Koordinaten in ellipsoidische GPS-Koordinaten erstellt, finde aber nicht wo der Fehler steckt. Wenn jemand Zeit und Lust hat, kann mal seine Mathekenntnisse bzw. LV-Kenntnisse ausprobieren. Es wäre da schon ein Erleichterung, wenn Du für wenigstens einen Inputwert [X,Y,Z] den dazugehörenden richtigen Ausgangswert [B,L,h] zur Verfügung stellen könntest. Wo steckt der Fehler??? - eg - 23.10.2007 21:04 ' schrieb:Es wäre da schon ein Erleichterung, wenn Du für wenigstens einen Inputwert [X,Y,Z] den dazugehörenden richtigen Ausgangswert [B,L,h] zur Verfügung stellen könntest. Zum Beispiel: antenna WGS 84 (xyz) : -1587177.6436 -4267813.2764 4454771.3505 (m) muss sein: antenna WGS 84 (geo) : 44.565083 deg 249.600093 deg 2462.0423 m Diese Werte habe ich auf einer Intrernetseite gefunden und denke, daß sie richtig sind, aber trotzdem keine Haftung dafür. Andere Sache wäre die Gegenprüfung, die soll auf jeden Fall klappen. Ein paar Werte sind auch auf dem FP Screenshot zu sehen. Danke schon mal für dein Interesse, eg Wo steckt der Fehler??? - derTetris - 24.10.2007 08:51 Hi, ich hab mich auch mal dran versucht und eine andere Formel für H gefunden, allerdings funktioniert L noch nicht! Gruß [attachment=9288](VI LV 8.5) Wo steckt der Fehler??? - Lucki - 24.10.2007 09:26 Hab mirs mal zur Brust genommen, jetzt scheint es zu stimmen. Die Fehler waren:[list=1] [*]Die Formel (4.14) muß richtig heißen: L=atan(y/x)<> [*]N(i) falsche Berechnung, es wurde sin(B^2) statt (sin(B))^2 verwendet<> [*]Zur Berechnung von B(i) muß N(i) verwendet werden und nicht N(i-1)<> [*]atan ist nicht eindeutig, Für X<0 sollte Pi addiert werden.<> [st]Habe auch die For-Schleife durch while ersetzt. Hoffe damit geholfen zu haben (VI LV 8.0) Wo steckt der Fehler??? - Y-P - 24.10.2007 09:48 Was mich interessiert ist, wieso am Anfang der Realteil von x und der Realteil von y in r umgewandelt werden (mit Re/Im to polar). Gruß Markus Wo steckt der Fehler??? - eg - 24.10.2007 09:55 ' schrieb:Hab mirs mal zur Brust genommen, jetzt scheint es zu stimmen. Ich kann nur eins sagen: ich bin kein Mathematiker, gut, daß sich jemand (Lucki) damit auskennt und Zeit dafür genommen hat. Ich glaube, man kann für atan atan2 nehmen um die Eindeutigkeit zu schaffen. Zum Punkt 2 - echt peinlich für mich Zum Punkt 3 - ich hätte viel Zeit gebraucht um drauf zu kommen. ' schrieb:Habe auch die For-Schleife durch while ersetzt. Hoffe damit geholfen zu habenUnd wie!!! Übrigens, die For-Schleife wollte ich später auch durch While ersetzen, ich wusste nur die Abbruchbedingug nicht, Ist denn Epsilon nicht zu klein dafür? Ist es eine sichere Abbruchbedingung, nicht daß, das Programm hier hängen bleibt? Ich danke vielmals, eg P.S. noch eine kurze Frage: wie kommst du auf die Verwendung von komplexen Zahlen hier? Wo steckt der Fehler??? - Lucki - 24.10.2007 09:59 ' schrieb:Was mich interessiert ist, wieso am Anfang der Realteil von x und der Realteil von y in r umgewandelt werden (mit Re/Im to polar). Ja, das ist etwas irritierend, da es ein "Missbräuchliche Verwendung" dieser Funktion ist. Vergiß die komplexen Zahlen, ich verwende sie einfach zur Berechnung von sqrt(x^2 + y^2). Für eine "normale" Berechnung (siehe eg) würde man dafür 3 Funktionssymbole verbrauchen müssen. Wo steckt der Fehler??? - eg - 24.10.2007 10:18 ' schrieb:Ja, das ist etwas irritierend, da es ein "Missbräuchliche Verwendung" dieser Funktion ist. Vergiß die komplexen Zahlen, ich verwende sie einfach zur Berechnung von sqrt(x^2 + y^2). Für eine "normale" Berechnung (siehe eg) würde man dafür 3 Funktionssymbole verbrauchen müssen. Geiler Trick. Wo steckt der Fehler??? - Lucki - 24.10.2007 10:45 ' schrieb:Ich glaube, man kann für atan atan2 nehmen um die Eindeutigkeit zu schaffenDanke für den Hinweis, natürlich geht das, ich kannte die Funktion nur nicht. Wenn Du erreichen willst, daß die Werte im Bereich 0...359 und nicht im Bereich -180..+180 angezeigt werden, solltes Du aber danach noch die Operation if(winkel<0) then Winkel=Winkel+2*Pi ausführen. Zitat:Ist denn Epsilon nicht zu klein dafür? Ist es eine sichere Abbruchbedingung, nicht daß, das Programm hier hängen bleibt?Das hatte ich auch befürchtet, und wollte eigentlich als Abbruchbedingung nicht die Maschinenungenauigkeit, sondern z.B das 10fache davon verwenden. Dann habe ich aber gesehen, daß nicht mehr als 6 Iterationen gebraucht werden. Ich denke auch, daß NI diese Konstante genau für diesen Zweck geschaffen hat, so daß deshalb ein solcher Abbruch immer sauber funktioniert. Die Schleife bleibt glaube ich hängen bzw. läuft ewig, wenn für x,y,z Nullen eingegeben werden (Oder vielleicht wenn nur einer davon null ist) Das sollte man mal checken. Zitat:wie kommst du auf die Verwendung von komplexen Zahlen hier?Das hat mit komplexen Zahlen überhaupt nichts zu tun, man kann diese komplexen Funktionen auch ganz allgemein zur Umrechnung vom zweidimensionalen kartesischen Kooardinaten (x,y) in Polarkoordinaten (r, phi) und umgekehrt verwenden. Also denke Dir einfach die Eingangsnamen (re, im) durch die Bezeichnungen (x,y) ersetzt, und damit sollten dann alle Assoziationen zu komlexen Zahlen beseitigt sein. |