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

Feder Masse System

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2012, 10:21     Titel: Feder Masse System
  Antworten mit Zitat      
Hallo,

ich habe ein Feder-Dämpfungs-Masse-System mit 25 Massen. Zwischen den Massen sind verschiedene Feder-Dämpfungs-verbindungen. was ich habe ist die globale Steifigkeitsmatrix, Dämfpungsmatrix und Massenmatrix.

Die Steifigkeitsmatrix ist vom Typ

K=[ k1+k2 -k2 0 0 0 0 ....
-k2 k2+k3 -k3 0 0 0 0...
0 -k3 k3+k4 -k4 0 0 0 0 ...
...]

ähnlich die Dämpfungsmatrix

und die Massenmatrix, bei der nur auf der Diagonalen Werte sind

M=[m1 0...
0 m2 0...
0 0 m3....
...]

Das ganze versuche ich jetzt mit ode23 zu integrieren und versuche dann die einzelnen Bewegungsformen der Massen mir anzuschauen. Leider reichen meine Kenntnisse über ode23 nur für ein Feder-Dämpfungselement mit einer Masse.

Ich suche jetzt nach einem kleinen Programmcode der mir die DGLs aus den globalen Matrizen zusammenschreibt und ich nicht händisch jede einzelne DGL definieren muss. Dies ist auf Grund der Größe der Matrizen ineffizient. Dies wäre mein Hauptproblem, wenn das gelöst ist, bin ich schon ein ganzes Stück weiter.

Teilproblem zwei wäre dann die gedämpften Eigenfrequenzen zu ermitteln.

Vielen Dank schon mal im Voraus.

mit freundlichen Grüßen

Wildkatz


Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2012, 11:41     Titel:
  Antworten mit Zitat      
Hallo,

das hab ich mich auch schon mal gefragt, aber auch nicht so recht auf die Lösung gekommen.
Du hast ja ein Dgl System der Form

M\ddot{x}+D\dot{x}+C{x}=0

Das müsste man dann doch wenn ich mich nicht vertue nach \ddot{x} auflösen um es dann auf ein dgl System 1.Ordnung zu bringen um es in ode23 einzugeben.

Bin mir da aber auch nicht sicher.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.11.2012, 11:59     Titel:
  Antworten mit Zitat      
Hallo,

ausgehend von der im zweiten Beitrag angegebenen DGL 2. Ordnung:

Umformulieren als System von DGLen 1. Ordnung. M kann dann als "mass matrix" übergeben werden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2012, 12:03     Titel:
  Antworten mit Zitat      
wenn du die 25 Massen in einen Massenvektor der Form Massen=[m1 m2 m3 ...m25] und die Steifigkeiten auch in einem Steifigkeitenvektor hast dann kannste das so ungefähr machen:
Code:

M=eye(25)*Massen'

for i=1:24
K(i,i)=Steifigkeitenvektor(i)+Steifigkeitenvektor(i+1)  %erstellen der Hauptdiagonalen
end
K(25,25)=Steifigkeitenvektor(25);
 


und dann

Code:

for i=2:25
K(i-1,i)=-Steifigkeitenvektor(i)   %erstellen einer Nebendiagonale
end
 

...


Das geht bestimmt noch schöner aber für kleine Matrizen geht es ja noch.
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2012, 12:34     Titel:
  Antworten mit Zitat      
Hey also ich hab das jetzt so hingekriegt:

Das erste File
Code:

function dy=Feder(t,y)
global k;
global mi;
global c;
global a;

dy=zeros(2*a,1);

for i=1:1:a;
dy(i)=y(i+a);
end

dy(a+1:2*a,1)=-c*mi*y(a+1:2*a,1)-k*mi*y(1:a,1);
 


das zweite m-file
Code:

function solve_Feder(k, m, s, tend,c)
global k; global mi; global s; global tend; global c; global a;

m=[1 0 0
    0 3 0
    0 0 2];
k=[1 -1 0
  -1 3 -2
  0 -2 2];

aa=size(k);
a=aa(1,1);
c=zeros(a,a);


mi=inv(m);
s=10;
tend=10;


y0=zeros(6,1);
y0(1)=1;
tspan=[0,tend];

[t,y]=ode45('F2',tspan,y0);
p=y(:,1);
q=y(:,2);
r=y(:,3);

plot(t,p,t,q,t,r)
grid on;
 


wobei man nun m,k,c beliebig einsetzen kann. Vielen Dank für eure Hilfe. Jezt muss ich nur noch die gedämpften Eigenfrequenzen ermitteln.
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2012, 12:59     Titel:
  Antworten mit Zitat      
achso und da is nocht ein kleiner Fehler:

y0=zeros(2*a,1);

tauscht das noch aus Wink
 
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.