INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

extrem hohe Rechenzeit in Matlab-Skriptknoten



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

19.08.2010, 11:42
Beitrag #11

Fiinrod Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Jan 2010

8.5.1
2009
de

18057
Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
Hier ist das zugehörige Matlab-Programm. (Matlab R2009b) Ich hab den unteren Teil auskommentiert. (Dort hab ich nur mit Beispielen umhergerechnet)
Die Teile von meinem Betreuer (Drehmatrizen ect.) gehen bis Zeile 35. Danach hab ich halt noch die nötigen Schritte dazu geschrieben um letztendlich die Jacobimatrix auszurechnen.

@GerdW Hab das irgendwann mal in einem anderen VI so gesehen und für mich als "übersichtlichste" Methode übernommen.Wink

edit:"Hochladen fehlgeschlagen. Dir ist es nicht gestattet, eine Datei dieses Dateitypes hochzuladen"

keine .m-files?

Dann halt in Textform:

clear all
close all
clc

syms d1 d23 s1 s4 s6 sB1 cB1 sB2 cB2 sB3 cB3 sB4 cB4 sB5 cB5 sB6 cB6

T11_=[cB1 -sB1 0; sB1 cB1 0; 0 0 1];
T22_=[cB2 -sB2 0; sB2 cB2 0; 0 0 1];
T33_=[cB3 -sB3 0; sB3 cB3 0; 0 0 1];
T44_=[cB4 -sB4 0; sB4 cB4 0; 0 0 1];
T55_=[cB5 -sB5 0; sB5 cB5 0; 0 0 1];
T66_=[cB6 -sB6 0; sB6 cB6 0; 0 0 1];

T1_2=[1 0 0; 0 0 1; 0 -1 0];
T2_3=eye(3);
T3_4=[1 0 0; 0 0 -1; 0 1 0];
T4_5=T1_2;
T5_6=T3_4;
T6_7=eye(3);

T17=T11_*T1_2*T22_*T2_3*T33_*T3_4*T44_*T4_5*T55_*T5_6*T66_*T6_7;

r12in1_=[d1; 0; s1];
r23in2_=[d23; 0; 0];
r34in3_=[0; 0; 0];
r45in4_=[0; 0; s4];
r56in5_=r34in3_;
r67in6_=[0; 0; s6];

r12=T11_*r12in1_;
r23=T11_*T1_2*T22_*r23in2_;
r34=T11_*T1_2*T22_*T2_3*T33_*r34in3_;
r45=T11_*T1_2*T22_*T2_3*T33_*T3_4*T44_*r45in4_;
r56=T11_*T1_2*T22_*T2_3*T33_*T3_4*T44_*T4_5*T55_*r56in5_;
r67=T11_*T1_2*T22_*T2_3*T33_*T3_4*T44_*T4_5*T55_*T5_6*T66_*r67in6_;
r17=r12+r23+r34+r45+r56+r67; %Ortsvektor x,y,z
r27=r23+r34+r45+r56+r67;
r37=r34+r45+r56+r67;
r47=r45+r56+r67;
r57=r56+r67;

u1in1=[0 ;0; 1];
u2in2=[0 ;0; 1];
u3in3=[0 ;0; 1];
u4in4=[0 ;0; 1];
u5in5=[0 ;0; 1];
u6in6=[0 ;0; 1];
u2in1=T11_*T1_2*u2in2;
T1_3=T11_*T1_2*T22_*T2_3;
u3in1=T1_3*u3in3;
T1_4=T11_*T1_2*T22_*T2_3*T33_*T3_4;
u4in1=T1_4*u4in4;
T1_5=T11_*T1_2*T22_*T2_3*T33_*T3_4*T44_*T4_5;
u5in1=T1_5*u5in5;
T1_6=T11_*T1_2*T22_*T2_3*T33_*T3_4*T44_*T4_5*T55_*T5_6;
u6in1=T1_6*u6in6;

J_hilf1=cross(u1in1,r17);
J_hilf2=cross(u2in1,r27);
J_hilf3=cross(u3in1,r37);
J_hilf4=cross(u4in1,r47);
J_hilf5=cross(u5in1,r57);
J_hilf6=cross(u6in1,r67);

Jacobi=[ u1in1(1) u2in1(1) u3in1(1) u4in1(1) u5in1(1) u6in1(1);
u1in1(2) u2in1(2) u3in1(2) u4in1(2) u5in1(2) u6in1(2);
u1in1(3) u2in1(3) u3in1(3) u4in1(3) u5in1(3) u6in1(3);
J_hilf1(1) J_hilf2(1) J_hilf3(1) J_hilf4(1) J_hilf5(1) J_hilf6(1);
J_hilf1(2) J_hilf2(2) J_hilf3(2) J_hilf4(2) J_hilf5(2) J_hilf6(2);
J_hilf1(3) J_hilf2(3) J_hilf3(3) J_hilf4(3) J_hilf5(3) J_hilf6(3)];
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.08.2010, 11:55 (Dieser Beitrag wurde zuletzt bearbeitet: 19.08.2010 11:56 von dimitri84.)
Beitrag #12

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
Ich kann verstehen, dass dir das kein Spaß machen wird:Daber da ist bis auf eye (erzeugt eine n*n Matrix mit 1ern in der Hauptdiagonalen) keine andere MATLAB Funktion.

Du solltest dich in die Mathematik davon einarbeiten, das kann man bestimmt gut mit LV Mitteln lösen.

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2010, 11:57
Beitrag #13

kaiman Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 146
Registriert seit: Dec 2008

7.1.1, 2011
2007
EN

28***
Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
Tja, bei der Diskussion, was nun tatsächlich schneller ist, wird man sich wohl ewig im Kreis drehen...WackoFight

Es wird aber in diesem Fall wohl das beste sein, den MATLAB-Code komplett in LV zu übertragen. Es werden ja keine Toolboxen verwendet, die rechtfertigen, warum man weiterhin MATLAB nutzen sollte.
Also: Alles in LV übertragen, wobei ich mir parallel noch die mathematischen Aufzeichnungen besorgen würde, um das m-Skript besser verstehen zu können.Tippen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2010, 12:09
Beitrag #14

Fiinrod Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Jan 2010

8.5.1
2009
de

18057
Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
Im Moment ist ja die Herangehensweise so, dass die Jacobimatrix ein mal symbolisch berechnet wird und anschließend spaltenweise die 6 Gelenkwinkel beta eingesetzt werden.

Ich glaube ich wüsste ungefähr, wie ich das Ganze in LV in der Art und Weise umsetze, dass ich für jede Spalte den kompletten Berechnungsgang gehe, aber das wird ja von vorneherein viel mehr Rechenaufwand sein, als das einmalige ausrechnen der Jacobimatrix und die anschließende spaltenweise Substitution der Gelenkwinkel und Berechnung der zugehörigen Spalte in beta_d.

Wie könnte man das Ganze denn in LV so umsetzen, dass eben auch erst 1 mal symbolisch gerechnet und anschließend n mal eingesetzt wird?
Denn wenn ich LV die ganze Berechnung n mal machen lass, kann ich mir die Mühe sparen, da der Rechenaufwand, wie gesagt, sehr viel größer sein dürfte, als mit dem jetzigen Skriptknoten.

(Ich habe übrigens mittlerweile eine Ersatzlösung gefunden, die die Rechenzeit zumindest auf 1/10 der bisherigen Rechenzeit beschränkt: ich berechne nur jede zehnte Spalte von beta_d. Da von beta_d im Nachhinein nur das Max. und Min. interessieren und die Abstände zwischen den einzelnen Spalten sehr klein sind, ist das Ergebnis dennoch ziemlich genau gewesen beim testen. Aber die Lösung ist natürlich trotzdem irgendwie "schwammig".)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2010, 12:15
Beitrag #15

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
Hallo Fiinrod,

"Wie könnte man das Ganze denn in LV so umsetzen, dass eben auch erst 1 mal symbolisch gerechnet und anschließend n mal eingesetzt wird?"
Alle deine Hilfsvariablen oben im m-Skript sind in LV nur Drähte und Konstanten. Da wird auch nur einmal berechnet und dann zur Jacobi-Matrix zusammengesetzt...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2010, 12:53
Beitrag #16

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
Mache doch einfach mal, unter Verwendung des geposteten SubVI, ein lauffähiges Proramm mit Beispieldaten, poste das und schreibe dazu, wie lange es bei Dir braucht. Dann könnten andere es mit LV2009 laufen lassen und die Zeit vergleichen. Ich prophezeie eine positive Überraschung.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2010, 12:58
Beitrag #17

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
' schrieb:Mache doch einfach mal, unter Verwendung des geposteten SubVI, ein lauffähiges Proramm mit Beispieldaten, poste das und schreibe dazu, wie lange es bei Dir braucht. Dann könnten andere es mit LV2009 laufen lassen und die Zeit vergleichen. Ich prophezeie eine positive Überraschung.
Man braucht aber eine MATLAB Lizenz für den Script-KnotenMellow

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

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
' schrieb:Man braucht aber eine MATLAB Lizenz für den Script-KnotenMellow
Ja klar, deshalb war mein Formulierung ja auch "Dann könnten Andere es mit LV2009 laufen lassen" - also nicht ich armer Hund, der ich nur die prof. Version ohne Zusatztools habe. Gestern ist übrigesn LV2010 (deutsch) mit der Post gekommen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2010, 18:31 (Dieser Beitrag wurde zuletzt bearbeitet: 19.08.2010 18:37 von dimitri84.)
Beitrag #19

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
' schrieb:Ja klar, deshalb war mein Formulierung ja auch "Dann könnten Andere es mit LV2009 laufen lassen" - also nicht ich armer Hund, der ich nur die prof. Version ohne Zusatztools habe.
MATLAB ist doch kein Zusatztool:huh:Das weißt du doch aber auch.

Andererseits interessanter Blickwinkel. Das müsste denen von mathworks mal einer sagen, dass die nur eine Toolbox für LabVIEW herstellenRofl

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2010, 19:20
Beitrag #20

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
extrem hohe Rechenzeit in Matlab-Skriptknoten
@Dimitri
Ja klar weiß ich das.
Ich würde auch den Code in LV übertragen und würde mit der Anfangsvermutung an die Sache herangehen, daß, wenn diese Jacobi-Matrix außerhalb akademischer Kreise eine praktische Bedeutung >0 hat, eine entprechende oder sehr ähnliche Funktion, vielleicht auch unter anderem Namen, in der LV-Palette mit enthalten ist.
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 in Labview newbiedubie 1 5.361 04.09.2012 06:43
Letzter Beitrag: rolfk
  matlab-scriptknoten oder dll? Hep 17 18.102 15.09.2011 16:40
Letzter Beitrag: Hep
  Vektoren, Matrizen an Matlab Skriptknoten übergeben Fiinrod 2 8.114 13.07.2010 16:02
Letzter Beitrag: Fiinrod
  dll vonLabVIEW in Matlab Simulink verwenden /LabVIEW -> Matlab XPC hans_p 0 5.228 10.12.2009 10:19
Letzter Beitrag: hans_p
  mxarray und Matlab hepman 3 7.193 11.03.2008 12:08
Letzter Beitrag: rolfk
  MATLAB und LabVIEW Anderli 1 6.508 15.02.2008 17:45
Letzter Beitrag: thomas.sandrisser

Gehe zu: