WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Probleme mit fsolve

 

Paprika_25
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 04.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2011, 13:44     Titel:
  Antworten mit Zitat      
Hier die beiden Dateien die die direkte Kinematik berechnen....
Dabei ist einer Datei die fsolve Funktion und die andere ist mein Gleichungssystem mit den drei Kugelgleichungen.

Die anderen Dateien die du brauchst sind am Ende der ersten Seite hochgeladen Idea

Direct_Leg_Calc.m
 Beschreibung:

Download
 Dateiname:  Direct_Leg_Calc.m
 Dateigröße:  641 Bytes
 Heruntergeladen:  334 mal
Leg_Calculation_Direct_Kinematics.m
 Beschreibung:

Download
 Dateiname:  Leg_Calculation_Direct_Kinematics.m
 Dateigröße:  909 Bytes
 Heruntergeladen:  425 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.07.2011, 20:17     Titel:
  Antworten mit Zitat      
Hallo,

- Die Datei Calc_Trans_RB_R3.m fehlt.
- Warum schreibst du das Hauptskript nicht als Funktion, damit der arme Tester die Eingabewerte nicht immer von neuem eingeben muss?
- Welche Eingabewerte verwendest du?
- Hast du dir fval angeschaut? exitflag?
- Kannst du das Problem auf ein übersichtlicheres Problem runterbrechen?
- Kann es sein, dass du iterativ löst, zurück einsetzt, löst etc?
Private Nachricht senden Benutzer-Profile anzeigen
 
Paprika_25
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 04.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.08.2011, 09:11     Titel:
  Antworten mit Zitat      
Hallo Harald,

anbei findest du die fehlende Datei....sry das es so viele sind und es ein bisschen unübersichtlich ist Embarassed
Naja es sind halt diese drei Eingaben mit denen ich arbeite:
Code:
TCP_pos = input ('\n Please enter the TCP coordinates [x; y; z] in mm: ');
            TCP_speed = input ('\n Please enter the TCP speed [x; y; z] in mm/s: ');
            TCP_acc = input ('\n Please enter the TCP acceleration [x; y; z] in mm/s²: ');
           
            TCP(p) = {TCP_pos};


Damit kann der Benutzer vorgeben mit welcher Bewegung sein TCP sich positionieren soll.
Ich berechne wie gesagt die Rückwärtskinematik, also r_11, r_21, r_31; s_speed und s_acc. Darauß berechne ich dann wieder in der Fkt. Leg_Calculation_Direct_Kinematics die Vorwärtskinematik mit dem Schn ittpunkt der 3 Kugeln.
Hierbei passiert wie gesagt dann der Fehler, es kommt bei der Vorwärtsrechnung ein anderer TCP heraus wie man am Anfang eingegeben hat.

Das liegt meiner Meinung nach daran, dass Matlab numerisch rechnet und nicht symbolisch und sich deshalb bei minimalen Ungenauigkeiten die 3 Kugeln sich nicht genau in einem Punkt schneiden sondern in 2 oder sogar noch mehr Crying or Very sad
Matlab nimmt dann anscheinend irgendeins dieser Ergebnisse und gibt es aus...

Hoffe ich konnte es dir damit bisschen besser erläutern!
Gibt es eine Möglichkeit diese numerischen Ungenauigkeiten zu eliminieren?

Calc_Trans_RB_R3.m
 Beschreibung:

Download
 Dateiname:  Calc_Trans_RB_R3.m
 Dateigröße:  403 Bytes
 Heruntergeladen:  313 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.08.2011, 09:28     Titel:
  Antworten mit Zitat      
Hallo,

diese Eingaben könnte man eben auch leicht als Eingabeargumente einer Funktion sehen, aber egal.
Bitte stelle einen Beispiel-Datensatz an Eingabeargumenten zur Verfügung, damit man mit den gleichen Daten / Problemen arbeitet.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Paprika_25
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 04.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.08.2011, 09:43     Titel:
  Antworten mit Zitat      
Hier ein Beispiel für eine Berechnung:

Please enter the TCP coordinates [x; y; z] in mm: [0; 1800; 600]

Please enter the TCP speed [x; y; z] in mm/s: [1; 3; 2]

Please enter the TCP acceleration [x; y; z] in mm/s²: [1; 3; 2]

--> Ergebnisse sind dann:

TCP: [0; 1800; 600]

Stroke s1: 687.627 mm
Storke s2: 541.612 mm
Stroke s3: 532.292 mm

Speed s1: 1.74014 mm/s
Speed s2: 3.1307 mm/s
Speed s3: 3.56594 mm/s

Acceleration s1: 1.74854 mm/s²
Acceleration s2: 3.13632 mm/s²
Acceleration s3: 3.57273 mm/s²

Direct Kinematics TCP: [-10.4657; 1787.43; 580.689]

Wie man sieht unterscheiden sich der angebenene TCP und der direkt kinematische TCP....
In y und z ist eine gewisse Ungenauigkeit beinhaltet und x liegt mit seinem negativen Wert total daneben Confused
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.08.2011, 20:33     Titel:
  Antworten mit Zitat      
Hallo,

ich habe mal etwas experimentiert und bin mir ziemlich sicher, dass das Problem nicht in Ungenauigkeiten von FSOLVE liegt, sondern irgendwoanders.

Das kann z.B. an den Wurzeln Q1 bis Q3 liegen - wenn man die wieder in das Polynom einsetzt, bekommt man Abweichungen von bis zu 1e-10.

Ich würde auch empfehlen, nochmal sämtliche Gleichungen genau zu kontrollieren. Mir fällt auf, dass bei positiven ersten Komponenten die Unterschiede größer werden, während sie bei negativen ersten Komponenten kleiner werden. Und das ist dann doch ungewöhnlich.

Ansonsten: Wenn du die Zwischenergebnisse mit realen Werten vergleichen kannst und genau sagen kannst, in welchen Zeilen die Ungenauigkeiten auftreten bzw. verstärkt werden, kann ich mir das gerne nochmal ansehen. Ansonsten muss ich sagen, dass ich erstmal auch nicht mehr weiter weiß.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.