hab hier ein Studienprojekt, in dem eine 12 teilige Oszilatorkette simuliert werden soll.
Jetzt wollte ich die DGLs erst einmal symbolisch lösen, allerdings stürzt Matlab ab, sobald er die Zeile der DGL erreicht.
Source Code:
Code:
syms U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 t %deklarieren der symbolische Variablen
%Lösen der einzelnen Bewegungsgleichungen
%und speichern in ein z-Array
z=dsolve('D2U1=(-d*(U1-U2)-d*(U1-U12)-DU1*rho)/m',...
'D2U2=(-d*(U2-U3)-d*(U2-U1)-DU2*roh)/m',...
'D2U3=(-d*(U3-U4)-d*(U3-U2)-DU3*roh)/m',...
'D2U4=(-d*(U4-U5)-d*(U4-U3)-DU4*roh)/m',...
'D2U5=(-d*(U5-U6)-d*(U5-U4)-DU5*roh)/m',...
'D2U6=(-d*(U6-U7)-d*(U6-U5)-DU6*roh)/m',...
'D2U7=(-d*(U7-U8)-d*(U7-U6)-DU7*roh)/m',...
'D2U8=(-d*(U8-U9)-d*(U8-U7)-DU8*roh)/m',...
'D2U9=(-d*(U9-U10)-d*(U9-U8)-DU9*roh)/m',...
'D2U10=(-d*(U10-U11)-d*(U10-U9)-DU10*roh)/m',...
'D2U11=(-d*(U11-U12)-d*(U11-U10)-DU11*roh)/m',...
'D2U12=(-d*(U12-U1)-d*(U12-U11)-DU12*roh)/m',...
'U1(0)=U1_x','U2(0)=U2_x','U3(0)=U3_x','U4(0)=U4_x','U5(0)=U5_x','U6(0)=U6_x',... %Zuweisen der Ranndbed. Anfangsauslenkung
'U7(0)=U7_x','U8(0)=U8_x','U9(0)=U9_x','U10(0)=U10_x','U11(0)=U11_x','U12(0)=U12_x',...
'DU1(0)=U1_v','DU2(0)=U2_v','DU3(0)=U3_v','DU4(0)=U4_v','DU5(0)=U5_v','DU6(0)=U6_v',... %Zuweisen der Ranndbed. Anfangsgeschwindigkeit
'DU7(0)=U7_v','DU8(0)=U8_v','DU9(0)=U9_v','DU10(0)=U10_v','DU11(0)=U11_v','DU12(0)=U12_v','t');
vielleich findet ja jemand einen Fehler in der DGL, es kommt mir so vor als währe das Programm in einer Schleife gefangen.
Es kommen keine Fehlermeldungen.
Wenn ich die Dämpfungsterme mit roh weglasse und das System auf 6 Oszis runterschraube, läuft es auch.
Hoffe einer kann helfen
Pascal
Edit: Ich hab das mit dem Editieren mal übernommen
mfg nschlange
mat_schlapp
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 12.06.2008, 11:26
Titel:
Sorry kann nicht editieren, keine Ahnung wie die Smiles da rein kommen, sie gehören jedenfalls nicht dahin
mat_schlapp
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 13.06.2008, 14:12
Titel:
Ok es lag daran, dass Matlab maximal 6 Inputargumente verarbeiten kann.
Musste es halt numerisch lösen.
Einstellungen und Berechtigungen
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
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.