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

Anfangswertproblem

 

sabsn
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2013, 17:15     Titel: Anfangswertproblem
  Antworten mit Zitat      
Hallo ich brauch hilfe bei meiner Bewegungsgleichung ich bekomme dieser error und weiß nicht was ich bei der implementierung falsch gemacht habe?

??? In an assignment A(I) = B, the number of elements in B and
I must be the same.

Error in ==> neu at 8
alpha_dot(2)=(a*cos(winkel)*((m*(g - ((a*cos(winkel)*(alpha_punkt)^2)/2 + (a*sin(winkel)*(alpha_dot))/2 -
(a^2*cos(winkel)^2*(alpha_punkt)^2)/(c*(1 - (b - a*sin(winkel))^2/c^2)^(1/2)) - (a*sin(winkel
>>
Im folgenden habe ich mein file angehängt!
Bitte dringend um Hilfe!!Danke

neu.m
 Beschreibung:

Download
 Dateiname:  neu.m
 Dateigröße:  4.87 KB
 Heruntergeladen:  316 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 01.06.2013, 21:47     Titel: Re: Anfangswertproblem
  Antworten mit Zitat      
Hallo sabsn,

Der Code enthält einige Probleme. Zunächst mal ist eine Zeile mit 4699 Zeichen vollkommen unlesbar. Matlab versteht das zwar noch, debuggen kann man das aber auf gar keinen Fall. Und ein Programm, dass man nicht debuggen kann, sollte man unbedingt löschen. Im Ernst.

Dann wird "alpha" einerseits als Input-Argument eingegeben, dann aber wieder überschrieben.
"alpha_dot" und"alpha_punkt" zu verwenden ist zumindest verwirrend. Und dann noch den Inhalt aus alpha(1) in "winkel" zu kopieren macht meine Konfusion komplett. Ich habe keine Ahnung mehr, welche Variablen woher stammen.
Mit 0.5 zu potenzieren kostet viel mehr Zeit als die SQRT()-Funktion.

Aber die Fehlermeldung erscheint, weil "alpha_dot" auf der rechten Seite der langen Formel-Zeile als Vektor erscheint, so dass der gesamte Ausdruck ebenfalls ein [2 x 1] Vektor ist. Auf der linken Seite steh aber "alpha_dot(2)", also ein einzelnes Vektor-Element. Und man kann einen [2 x 1] Vektor nicht in eine [1 x 1] Skalar schreiben.

Wenn die Formel dann bereinigt ist, tritt das nächste Problem auf: Die Funktion soll intergriert werden. Der Integrator ODE45 wird aber von innerhalb der Funktion aufgerufen. ODE45 wird dann wieder die Funktion auswerten und damit bekommt man eine unendliche Rekursion:
Code:
function [alpha_dot]=bewegungsgleichung(t,alpha)
...
[t, loesung]=ode45(@bewegungsgleichung, tspan, [1.047197551,0]);

Der Aufruf von ODE45 muss von ausserhalb der zu integrierenden Funktion aufgerufen werden. Bitte schaue Dir noch mal die Beispiele aus der Dokumentation an.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
sabsn
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2013, 23:10     Titel:
  Antworten mit Zitat      
Danke Jan für deine schnelle Hilfe! Ich habe jetzt glaube ich alles bereinigt und auch versucht das ganze übersichtilicher zu machen.
Doch jetzt hab ich das Problem, dass ich nicht weiß wie ich die Bewegungsgleichung lösen soll wenn alphapunkt (die variable die ich berechnen will) auch in meiner gleichung auch alpha2punkt vorkommt, gibt es eine Möglichkeit die Gleichung in matlab umzuformen oder muss ich es mit der Hand rechnen!?
lg Sabsn

Balken.m
 Beschreibung:

Download
 Dateiname:  Balken.m
 Dateigröße:  1.56 KB
 Heruntergeladen:  285 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 03.06.2013, 14:07     Titel:
  Antworten mit Zitat      
Hallo sabsn,

Ich keinen keine Art Bewegungsgleichungen so aufzustellen, dass die Zeit-Ableitung auf beiden Seiten gleichzeitig vorkommt. Falls dies bei Dir aber wirklich passiert, wäre ein Aufläsen per Hand sicherlich eine gute Lösung.

Gruß, Jan
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 - 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.