!!

Willkommen Besucher...

...um das das LabVIEWForum.de als Benutzer in vollem Umfang nutzen zu können, ist eine kostenlose Registrierung nötig...
Registrierte Benutzer können Beiträge schreiben, Dateien uploaden, Beiträge lesen :) uvm.


Antwort schreiben 
extrem hohe Rechenzeit in Matlab-Skriptknoten
19.08.2010, 09:09
Beitrag #1

Fiinrod Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Jan 2010

LV-Version: 8.5.1
LV-Erfahrung seit: 2009
LV-Sprachversion: de

PLZ: 18057
Land: Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
Hallo

ich habe hier im Anhang ein SubVI hochgeladen, das Teil einer Robotersteuerung für einen 6-achsigen Knickarmroboter auf LV basierend ist.
Um den Sachverhalt evtl nachvollziehen zu können, beschreibe ich kurz, was das SubVI macht:

Das VI hat folgende Eingaben:
6xn Matrix beta (in radiant): 6 Gelenkstellungen des Roboters zu jedem der n berechneten Zeitpunkte (i.d.R. 1000<n<20000)
6xn Matrix y_d: Translationsgeschwindigkeiten und Orientierungsänderungsgeschwindigkeiten der Kardanwinkel des Endeffektors zu jedem der n berechneten Zeitpunkte
DH-Parameter: Devanit-Hartenberg Parameter.. einfach hinnehmen. Sie sind zur weiteren Berechnung notwendig.

Ausgang:
6xn Matrix beta_d: Winkelgeschwindigkeiten der 6 Gelenke

In dem Skriptknoten ist nun zu erst die Jacobimatrix in der symbolischen Form definiert. (vorher in Matlab berechnet)
Nun werden zu erst die DH-Parameter substituiert.
Anschließend substituiert die Schleife für jeden Zeitschritt die aktuelle Spalte der beta-Matrix in die Jacobimatrix und rechnet anschließend die entsprechende Spalte der beta_d-Matrix aus. (beta_d = Jacobi^-1 * y_d, bzw beta_d = Jacobiy_d).
So werden nach und nach in der for-Schleife alle Spalten von beta_d berechnet.
Das Problem ist, dass diese Schleife alleine je nach Eingaben zwischen 50 und 500 sekunden rechnet und das ist leider nicht akzeptabel für die Anwendung in welcher das SubVI gebraucht wird.

Hat jemand eine Idee, wie man die Berechnung beschleunigen könnte?

LV Version 8.5.1
für y_d, beta und DH sollten Beispielwerte gespeichert sein

Danke schon mal, falls jemand bis hier gelesen hat.Smile

Gruß
Fiinrod


Angehängte Datei(en)
Sonstige .vi  Jacobi_sym_SubVI_.vi (Größe: 90,89 KB / Downloads: 55)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
. .
19.08.2010, 09:46 (Dieser Beitrag wurde zuletzt bearbeitet: 19.08.2010 09:58 von A.Berndsen.)
Beitrag #2

A.Berndsen Offline
LVF-Team
LVF-Team

Beiträge: 2.250
Registriert seit: Feb 2005

LV-Version: 8.2 - 8.5, 2011
LV-Erfahrung seit: 2004
LV-Sprachversion: DE

PLZ: 724xx
Land: Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
Hallo Fiinrod,

ich habe bis zum Schluß gelesen.Wink
Ich meine gestern gab es einen Beitrag da ging es ebenfalls um Matlab.
Ich plappere nur nach was dort gesagt wurde. Matlab ist nicht wirklich auf Performance getrimmt.
Vielleicht solltest Du die Matritzenrechnung aus dem Scriptknoten herausholen und in LabVIEW lösen.
LabVIEW muß zum ausführen dies Skriptknotens ersmal einen Scriptserver starten, der dann meines Wissens den Knoten im Hintergrund von Matlab bearbeiten läßt. Das resultat bekommst Du dann zurück zu LabVIEW.

Wenn Du die gesamte Rechnung in LabVIEW machst dürfte das um Welten schneller sein.

Grüße
Andreas

PS: <klugscheiss> Denavit-Hartenberg sollte es eigentlich heissen.</klugscheiss>
Falls jemand mal mit dem richtigen Begriff suchen sollte.

Edit: Hab den Beitrag eben gefunden. http://www.labviewforum.de/index.php?s=&am...ost&p=94210

Geht nicht, gibts nicht!
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2010, 10:06
Beitrag #3

Fiinrod Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Jan 2010

LV-Version: 8.5.1
LV-Erfahrung seit: 2009
LV-Sprachversion: de

PLZ: 18057
Land: Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
Wäre mir grundsätzlich auch lieber, alles in LV zu rechnen. Das Problem ist folgendes: Die symbolische Jacobimatrix, die man in dem Skriptknoten sieht, ist wie gesagt in Matlab vorberechnet (das hat irgendwann mal mein Betreuer in seiner Diplomarbeit gemacht, oder so... auf jeden Fall kann/will ich da das Rad nicht neu erfinden). Und ich habe keine Ahnung, wie ich diese symbolische Matrix in LV übertragen könnte und dort dann die entsprechenden Werte rein substituiere, weiterrechne ect..

(Denavit? Ich glaub den schreib ich falsch, seit ichs das erste mal gehört hab.Big Grin)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2010, 10:13
Beitrag #4

A.Berndsen Offline
LVF-Team
LVF-Team

Beiträge: 2.250
Registriert seit: Feb 2005

LV-Version: 8.2 - 8.5, 2011
LV-Erfahrung seit: 2004
LV-Sprachversion: DE

PLZ: 724xx
Land: Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
Hi Fiinrod!

Wenn Dein Betreuer in seiner Diplomarbeit die Jacobimatrix berechnet hat, dann kann er Dir sicher weiterhelfen, daß die auch den Weg in LV findet. Ich bin leider überhaupt kein Matrizen-Künstler und kann Dir da nicht wirklich einen Ratschlag geben.
Aber es gibt hier im Forum ein paar Kandidaten, die da einiges auf dem Kasten haben.

Grüße
Andreas

Geht nicht, gibts nicht!
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2010, 10:41
Beitrag #5

Fiinrod Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Jan 2010

LV-Version: 8.5.1
LV-Erfahrung seit: 2009
LV-Sprachversion: de

PLZ: 18057
Land: Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
Schön wärs, aber mein Betreuer arbeitet nicht mit Labview. Und auch sonst so ziemlich niemand an dem Lehrstuhl. Deswegen bin ich da relativ auf mich allein gestellt und eben das große weite Web.
edit: und um auch gleich die Frage zum beantworten, warum dann diese Robotersteuerung überhaupt auf LV basiert: weil irgendwann mal ein Student damit angefangen hat, diese Steuerung mit LV zu entwerfen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2010, 10:49
Beitrag #6

GerdW Offline
LVF-Guru
*****


Beiträge: 4.037
Registriert seit: May 2009

LV-Version: 8.5.1, 09SP1, 10SP1
LV-Erfahrung seit: 1995
LV-Sprachversion: DE_EN

PLZ: 10xxx
Land: Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
Hallo Finrod,

diese Jacobi-matrix wird doch (so wie ich es sehe) "nur" durch diverse Polynome berechnet. Es mag zwar mühsam sein, diese nach LV umzusetzen, aber durchaus machbar. (Außerdem könnte es hilfreich, sein, dieses Matlab-Skript besser zu formatieren. Momentan sieht man ja nur einen Bruchteil des gesamten Skripts.)

Wer hat dir übrigens gesagt, dass man Array-Elemente liest, indem man das Array nach Cluster umwandelt und dann "unbundelt"? Wozu gibt es wohl IndexArray?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
.. .
19.08.2010, 10:49
Beitrag #7

A.Berndsen Offline
LVF-Team
LVF-Team

Beiträge: 2.250
Registriert seit: Feb 2005

LV-Version: 8.2 - 8.5, 2011
LV-Erfahrung seit: 2004
LV-Sprachversion: DE

PLZ: 724xx
Land: Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
Hi!

aber von Matritzenrechnung wird der Betreuer ja noch Ahnung haben.
Er muß ja nur erklären was in Matlab passiert, damit Du es in LabVIEW umsetzen kannst.

Grüße
Andreas

Geht nicht, gibts nicht!
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2010, 10:57
Beitrag #8

kaiman Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 140
Registriert seit: Dec 2008

LV-Version: 7.1.1, 2011
LV-Erfahrung seit: 2007
LV-Sprachversion: EN

PLZ: 28***
Land: Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
Kurzer Einwurf:
Matlab ist auf Matrizen-Rechnung optimiert und sollte um einiges schneller Laufen als LV, vorraus gesetzt es ist vernünftig programmiert.

Könntest du das Matlab-Skript mal hochladen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2010, 11:01 (Dieser Beitrag wurde zuletzt bearbeitet: 19.08.2010 11:42 von dimitri84.)
Beitrag #9

dimitri84 Offline
Astronaut
*****


Beiträge: 1.316
Registriert seit: Aug 2009

LV-Version: 2010 Developer Suite
LV-Erfahrung seit: 2009
LV-Sprachversion: DE

PLZ: 53111
Land: Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
' schrieb:Kurzer Einwurf:
Matlab ist auf Matrizen-Rechnung optimiert und sollte um einiges schneller Laufen als LV, vorraus gesetzt es ist vernünftig programmiert.
Um einiges schneller - sicher nicht. Optimiert auf Bedienfreundlichkeit - ok, Performance - ich weiß nicht. Das Problem ist nicht wie schnell MATLAB rechnet, sondern die Schnittstelle zwischen MATLAB und LV.

' schrieb:Matlab ist auf Matrizen-Rechnung optimiert
Diesen Satz habe ich auch schon oft gehört ... Der wird meiner Meinung nach falsch interpretiert. Optimiert ja - weil's einen riesigen Haufen Tool-Boxen dafür gibt und man muss sich nur die richtige rauspicken. Was der Compiler daraus macht steht auf einem ganz anderen Blatt.

Ich hab mal Kreuzkorrelationen gemacht. Erst mit MATLAB, viel später mit LabVIEW - identiche Daten und LabVIEW war um Welten schneller.

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2010, 11:09 (Dieser Beitrag wurde zuletzt bearbeitet: 19.08.2010 11:10 von Lucki.)
Beitrag #10

Lucki Offline
Guru-Simulator
LVF-Team

Beiträge: 5.362
Registriert seit: Mar 2006

LV-Version: ..2011prof.ohne Addons
LV-Erfahrung seit: 1995
LV-Sprachversion: DE

PLZ: 01108
Land: Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
' schrieb:Hat jemand eine Idee, wie man die Berechnung beschleunigen könnte?
Habe einen Freund, den ich jetzt leider nicht fragen kann, der hatte das gleiche Problem. Wenn ich nicht ganz irre, war die entscheidende Verbesserung ein Update von Labview, wahrscheinlich schon von 8.5 auf 8.6.

"Die Wahrheit triumphiert nie, ihre Gegner sterben nur aus" (Max Planck)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  matlab-scriptknoten oder dll? Hep 17 1.841 15.09.2011 16:40
Letzter Beitrag: Hep
  Vektoren, Matrizen an Matlab Skriptknoten übergeben Fiinrod 2 1.821 13.07.2010 16:02
Letzter Beitrag: Fiinrod
  dll vonLabVIEW in Matlab Simulink verwenden /LabVIEW -> Matlab XPC hans_p 0 1.415 10.12.2009 10:19
Letzter Beitrag: hans_p
  mxarray und Matlab hepman 3 2.617 11.03.2008 12:08
Letzter Beitrag: rolfk
  MATLAB und LabVIEW Anderli 1 2.014 15.02.2008 17:45
Letzter Beitrag: thomas.sandrisser
  Matlab Skript aktivieren abi 0 1.202 14.03.2006 12:06
Letzter Beitrag: abi

Gehe zu: