Verfasst am: 04.06.2012, 09:56
Titel: Zweimassenschwinger mit Reibung und ode45
Hallo zusammen,
ich habe ein Problem beim lösen der Differentialgleichung eines Zweimassenschwingeers mit Reibung. Ich habe die DGL des Zweimassenschwingers mit ode45 gelöst und möchte nun für die Reibung noch die Bedingung für die Unterscheidung von Haftreibung zu Gleitreibung einbauen. Dabei muss ich die Lösung der DGL für den Zeitschritt n-2 kennen. Ich habe dies momentan folgendermaßen gelöst:
C=dlmread('C:\Datei.txt'); % Öffnen der Datei als Matrix und Aufruf der Daten für d((dx2)/dt) und t zum Zeitschritt n-2
c=length(C);
t_= C(:,1);
v_2=C(:,5);
if c<2
xalt=0;
talt=0;
else
xalt=v_2(end-2);
talt=t_(end-2);
end
% DGL mit Fallunterscheidung
ifabs((m_gesamt)*a_2DOF+m_2*((X(4)-xalt)/(t-talt))+c_FPS*X(1)) < abs(r)% Haften und dadurch nur als Einmassenschwinger simuliert
dX= [X(1);X(2);X(3);A(2,2)*X(2)+B(2,2)*X(4)-a_2DOF];
else% Gleiten -> 2DOF system und Bewegung entgegen negativer verschiebung
dX = [zeros(2)eye(2);-inv(M)*Q -inv(M)*P]*[X(1);X(2);X(3);X(4)]+[0;0;-(a_2DOF-r);-a_2DOF];
end
fid = fopen('C:Datei.txt', 'at'); % Öffnen der Datei und Speichern der Variablen t und X fprintf(fid,'\n %f %f %f %f %f',t,X(1),X(2),X(3),X(4));
fclose(fid);
Es werden also jedes Mal beim Aufruf der Funktion die errechneten Werte für t und X in einer txt-Datei gespeichert und aufgerufen. Dies dauert natürlich extrem lange. Gibt es eine elegantere Variante? Mit Einfügen der Option odeprint werden die Daten nur im Command Window angezeigt und nicht im Workspace. So dass ich die errechneten Werte irgendwie nicht schon vor der Gesamtlösung verwenden kann.
Ich hoffe ich konnte mein Problem halbwegs verständlich schildern und würde mich sehr freuen wenn Ihr mir weiterhelfen könntet!
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.