Matlab Ableitungen

  • Hallo,

    Im Zuge eines Projets (Gleichgewichtsstudie eines inversen Pendels) muss ich Lagransche Kooridanten berechnen. Die haben die Form:

    Qk = dF/dt ( dF / dqk') - (dF / dqk)

    Im Grunde Leite ich nach drei Variablen ab x, lh und der Winkel phi sowie nach deren ersten Ableitungen. Ich will das in matlab rechnen und habe Folgednes gemacht:

    Meine Frage ist nun wie bringe ich matlab bei dass x, lh und phi auch nach der Zeit abzuleiten sind. In Mathematica (kenne mich leider nicht zu gut aus mit dem Tool) kann man nach unbekannten Funktionen ableiten.

    http://reference.wolfram.com/mathematica/tu…nFunctions.html

    Das ist es was ich im Grunde auch machen möchte in Matlab.

    Vielen Danke für jedweige Hilfe in Vorhinein.

    “For God's sake, give me the young man who has brains enough to make a fool of himself”, Robert Louis Stevenson

  • Prinzipiell ist MATLAB eine Numerik-Geschichte, dass MATLAB ableiten kann hängt mit der Symbolic-Math-Toolbox zusammen (MuPAD)
    Ich würde für solche Aufgaben eindeutig Maple (hat auch eine MATLAB Schnittstelle, zB Modellieren in Maple rechnen in MATLAB) oder Mathematica benutzen.
    (Ich bin mehr Mathematica-Fan geworden, aber Maple hat am Anfang eine intuitiviere Bedienung)

    Im Falle dass du bei MATLAB bleiben möchtest würd ich mal das MuPAD aufmachen und mich da ein wenig durch die Hilfe lesen, ist ja die Grundlage von der Symbolic Math Geschichte.

    Zu Mathematica, ist eigentlich relativ simpel zu benutzen solange man sich an die Syntax hält ;)

    Code
    sin(x) = Sin[x]
    cos(x) = Cos[x]
    diff(x, y) = D[x, y]

    Thomas

    P.S.: Du kannst mal das versuchen in Mathematica einzufügen und rumspielen

    Code
    ls = (lh[t] + lf) / 2;
    ftl =  m/2 * ((D[phi[t],t]*x[t])^2 + D[lh[t],t]^2);
    ful = m * g * ((lh[t] + lf) * ( 1 - Cos[phi[t]]) - (x[t] * Sin[phi[t]]));
    ftt =  Jz/2 * D[phi[t],t]^2 + m/2*(D[phi[t],t]*(lf+lh[t])+D[x[t],t]+D[lh[t],t])^2;
    fut = ls * M * (Cos[phi[t]] - 1);
    tges = ftl + ftt;
    uges = ful + fut;
    Lges = tges + uges

    P.P.S:
    Und da es auf der TU auch so etwas gibt:
    http://www.acin.tuwien.ac.at/fileadmin/cds/…point_klein.wmv
    http://www.acin.tuwien.ac.at/fileadmin/cds/…ng_up_klein.wmv

    Einmal editiert, zuletzt von anwesender (11. Dezember 2011 um 00:24)

  • Danke für die flotte Antwort. Die Lösung mit Matlab so wie du sie gepostet hast ist schon mal eine sehr große Hilfe! Das MuPAD werde ich mir auch noch ansehen.
    Lg

    “For God's sake, give me the young man who has brains enough to make a fool of himself”, Robert Louis Stevenson

  • hehe eine Frage hätte ich noch. Mathematica spuckt mir die nötigen Lagranschen koordinaten aus. Da drinnen habe ich dann je nach Term zB. x x' und x''. ich muss eine Zustandsmatrix Erzeugen die folgendermaßen aussieht.

    |x'' |
    |phi'' | = A^-1 * B
    |lh'' |


    Ist es in Mathematic möglich den Term nach einer Speziellen Varialbe ausdrücken zu lassen und am besten auch gleich die entsprechende Koeffizienten Matrix A zu erzeugen?

    “For God's sake, give me the young man who has brains enough to make a fool of himself”, Robert Louis Stevenson

  • Hi,
    Sorry für die verspätete Antwork. Nein also Lösen möchte ich die homogene Differentialgleichung nicht. Ich will ihn eigentlich nur umformen ohne die Lösung zu bekommen. Alos in meinem fall so:

    x'' = x + x' + l + l' usw.

    Lg

    “For God's sake, give me the young man who has brains enough to make a fool of himself”, Robert Louis Stevenson

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!