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

sybolic toolbox: mupad - text2expr - domainattribut missing

 

jackomo
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 25.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2013, 17:43     Titel: sybolic toolbox: mupad - text2expr - domainattribut missing
  Antworten mit Zitat      
Hallo Forum,

ich will einen zugegeben etwas ausladenden Ausdruck der mein Ergebnis aus mehreren Ableitungen, String-Substitutionen usw. ist in die drei Zeilen einer Matrix einordnen. (Es geht darum Bewegungsgleichungen in Mechanik aufzustellen).

T ist bereits ein größerer Ausdruck der aus mehreren '&phiv_1`(t), usw. besteht.
Code:

T := (m_3*(l_2*sin(`ϕ_1`(t) + `ϕ_2`(t))*(diff(`ϕ_1`(t), t) + diff(`ϕ_2`(t), t)) + n_3*sin(`ϕ_1`(t) + `ϕ_2`(t) + `ϕ_3`(t))*(diff(`ϕ_1`(t), t) + diff(`ϕ_2`(t), t) + diff(`ϕ_3`(t), t)) + l_1*sin(`ϕ_1`(t))*diff(`ϕ_1`(t), t))^2)/2 + (I_z_z_1*diff(`ϕ_1`(t), t)^2)/2 + (I_z_z_2*diff(`ϕ_2`(t), t)^2)/2 + (I_z_z_3*diff(`ϕ_3`(t), t)^2)/2 + (m_2*(n_2*cos(`ϕ_1`(t) + `ϕ_2`(t))*(diff(`ϕ_1`(t), t) + diff(`ϕ_2`(t), t)) + l_1*cos(`ϕ_1`(t))*diff(`ϕ_1`(t), t))^2)/2 + (m_3*(l_2*cos(`ϕ_1`(t) + `ϕ_2`(t))*(diff(`ϕ_1`(t), t) + diff(`ϕ_2`(t), t)) + n_3*cos(`ϕ_1`(t) + `ϕ_2`(t) + `ϕ_3`(t))*(diff(`ϕ_1`(t), t) + diff(`ϕ_2`(t), t) + diff(`ϕ_3`(t), t)) + l_1*cos(`ϕ_1`(t))*diff(`ϕ_1`(t), t))^2)/2 + (m_2*(n_2*sin(`ϕ_1`(t) + `ϕ_2`(t))*(diff(`ϕ_1`(t), t) + diff(`ϕ_2`(t), t)) + l_1*sin(`ϕ_1`(t))*diff(`ϕ_1`(t), t))^2)/2 + (m_1*n_1^2*cos(`ϕ_1`(t))^2*diff(`ϕ_1`(t), t)^2)/2 + (m_1*n_1^2*sin(`ϕ_1`(t))^2*diff(`ϕ_1`(t), t)^2)/2

//a ist die Ableitung hier vereinfacht nach `&phi_3`(t), muss allerdings umschrieben werden da (t) probleme machte
a := stringlib::subs(expr2text(diff(text2expr(stringlib::subs(expr2text(T), "`(t)"="_a`")),`ϕ_3_a`)), "_a`"="`(t)")
 


will ich jetzt a wieder mit text2expr wieder in einen Ausdruck zurück umwandeln um ihn in eine Matrix einzubauen bekomme ich den Fehler:
Code:

Error: The domain attribute 'text2expr' is missing.
 


Kann leider nichts zu der Fehlermeldung finden. Wie arbeitet denn die Funktion text2expr, bzw. was sind die geforderten Attribute? Ich benutze eigentlich die Funktion schon lange, hatte aber noch nie Probleme.

Anmerkung/Ergänzung:
Es kommt vor, dass man nach Rechnungen/Ableitungen Variablen vom Typ "_expr..." bekommt, mit eval(...) kann man diese zu DOM_STRING umwandeln und theoretisch für text2expr() zugänglich machen.

Wenn ich nun mein Ergebnis a aus der vorherigen Rechnung weiter verwende:
Code:

M := matrix(2,2);
M[1,1] := text2expr(a);
M;
Error: The variable is invalid. [stdlib::diff]
 



Liebe Grüße
Jack
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



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 - 2024 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.