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

Matlab: Addition von Matrizen als Schleife

 

Grigory

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2012, 02:37     Titel: Matlab: Addition von Matrizen als Schleife
  Antworten mit Zitat      
Hi Leute,
sitze gerade an meiner Projektarbeit im Fach Faserverbundwerkstoffe. Mein Problem ist die Anzahl der Schichten. Ich habe ungefaehr 50 Lagen Laminat mit unterschiedlicher Schichtdicke und Winkel. Ich habe die einzelnen Schichten einer h(1,50) Matrix zugeordnet. Jede einzelne Schicht muss ich mit der Steifigkeitsmatrix multiplzieren. Die resultierenden Matrizen moechte ich alle addieren. Ich weiß aber nicht wie das geht. Bin bisher soweit gekommen:
Code:
for y=3:2:21
  for x=1:10
    Tx=Q1*(h(1,y)-h(1,y-1));
  end
end

Funktioniert aber nicht. Weiß einer Rat?

Vielen Dank
Gruß Grigory

[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]


Grigory

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2012, 03:36     Titel:
  Antworten mit Zitat      
Q(3,3) ist die Steifigkeitsmatrix. Einfach zusammengefasst wäre die Formel eigentlich: Q*h1+Q*h2+Q*h3+usw. Am Ende sollte wieder eine drei mal drei Matrix raus kommen.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.11.2012, 09:30     Titel:
  Antworten mit Zitat      
Hallo,

Für mich ist das schwierig nachzuvollziehen.
Besteht jede Schicht nur aus einem Wert?
Wie stehen die 50 Schichten mit der 3, 2, 21 und 10 aus deinem Beispielcode in Verbindung?
Soll dieser Wert dann skalar auf Q multipliziert werden?

So wie es dasteht könnte man Q ausklammern und dann sagen:
Code:


Grüße,
Harald

P.S.: Bitte an übliche MATLAB-Konventionen halten. Q(3,3) bedeutet in MATLAB nunmal, dass man das Element in der 3. Zeile und 3. Spalte verwenden will. Wenn du sagen willst, dass die Matrix 3 Zeilen und 3 Spalten hat, wäre es besser, von einer "3x3 - Matrix Q" zu schreiben.
Private Nachricht senden Benutzer-Profile anzeigen
 
Grigory

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2012, 17:18     Titel:
  Antworten mit Zitat      
Hi,
erst mal vielen Dank für die rasche Antwort. Danke Harald aber sum ist nicht die Funktion die ich suche. Ich versuche mein Problem noch mal zu erläutern.
Es sind 50 Lagen. Unterschiedlicher Winkel und Schichtdicke. Also z.b.: 90°/0°/90°/0°/90°....45°/-45°/45/-45...usw.
Ich habe vier unterschiedliche Winkel und dazu gehörige Steifigkeitsmatrizen.
Q ist eine 3x3 - Matrix Q. In "h" habe ich alle schichtdicken je nach Reihenfolge eingetragen. d.h. "
Code:
h(1,1)=t0, h(1,2)=t90
,
Code:
h(1,3)=t0,h(1,4)=t90 usw."
(t- Schichtdicke). Deshalb läuft in der Schleife y in zweier Schritten d.h. ich rufe immer h für 90°er Schicht auf. Ausgeschrieben würde die Gleichung eigentlich ungefähr so aussehen:
Code:
(Q(für 90°) * h(1,2)-h(1,1))+Q(für90°)*h(1,4)-h(1,3)+Q(für90°)*h(1,6)-h(1,5)...usw

D.h. am Ende soll eine Q 3x3 Matrix entstehen.
Deshalb habe ich versucht die einzelnen Gleichungen unter "Tx" abzuspeichern und x als index laufen lassen. Am Ende wollte ich die summe bilden.
Noch ein Hinweis. Ich muss es mit "h" auf die Weise machen weil "h" sich auf die Gesamtdicke des übrigen Laminats bezieht. h=h(ges)-h90°-h0°..usw
Im Anhang ist die Formel aus dem Buch.

Unbenannt.png
 Beschreibung:

Download
 Dateiname:  Unbenannt.png
 Dateigröße:  2.9 KB
 Heruntergeladen:  416 mal
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.11.2012, 18:27     Titel:
  Antworten mit Zitat      
Hallo,

und was sind t0 und t90?
In welcher Form sind die verschiedenen Qs abgespeichert?
Woher weiß man, welches Q zu welchem h gehört?

In deiner ausgeschriebenen Gleichung fehlen noch viele Klammern, oder?

Die Formel im Buch legt zudem nahe, dass man alles aufeinanderfolgenden Schichtdicken nehmen muss, also z.B. auch h(3)-h(2).

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2012, 20:08     Titel:
  Antworten mit Zitat      
t0 und t90 sind Beispielhafte Bezeichnung fuer die Schichtdicke. Es gibt vier Q Matrizen. Also fuer alle vorhandenen Winkel.
Und du hast recht. Eigentlich muesste es aufeinander folgen laut der Gleichung aus dem Buch. Ich wusste aber nicht wie ich es machen soll. Weil dan muesste auch bei jeder Schicht die Q Matrix aendern. also
z.B. Q90 - steht fuer Faser die in 90 grad zeigt.
Q0 - fuer Faser in 0 grad.

dann waeren die ersten Glieder der Formel:
Q0*h2-h1+Q90*h3-h2+Q0*h4-h3...usw.
Da ich nicht weiss wie ich das machen soll multipliziere ich die Q90 mit jedem zweiten Glied und wollte es am Ende alles zusammen addieren. Klappt aber auch nicht.

P.S. sorry fuer die Schreibweise. Sitze gerade vor einer Amerikanischen Tastatur.
 
Grigory

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2012, 21:08     Titel:
  Antworten mit Zitat      
Jetzt habe ich es so probiert:
Code:

Code:
for y=2:2:21;summe=summe+Q1*(h(1,y)-h(1,y-1));end


funktioniert auch nicht
 
Grigory

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2012, 22:42     Titel:
  Antworten mit Zitat      
Ich glaube ich habe jetzt hingekriegt was ich wollte:

Code:


Code:
for y=2:2:6;Q00=Q00+Q1*(h(1,y)-h(1,y-1));end


Ich danke euch fuer eure Hilfe
 
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.