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

Kleines Problem mit dem solver???

 

J.T.

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2009, 19:59     Titel: Kleines Problem mit dem solver???
  Antworten mit Zitat      
Schönen guten Abend zusammen,

ich habe da ein kleines Problem mit dem solver von MATLAB bzw. der solver hat ein Problem mit meiner Eingabe und rechnet mir zwar meine Ergebnisse korrekt aus, liefert aber unterwegs eine Warnmeldung, die mich ein wenig nervös macht und in einem weiteren Programmschritt zu einem Abbruch führt.

Das Programm ermittelt in einem Fachwerk mit den Mitteln der Statik die einzelnen Stabkräfte. Das Verfahren nennt sich Kraftgrößenmethode.

Im ersten Durchlauf für einen Winkel von 0 Grad ist auch alles noch hübsch in Ordnung und ohne Fehlermeldung.

Aber wenn ich dann unter einem Winkel von 180 Grad berechnen lasse, dann kommt beim Lösen des Gleichungssystems eine Warnmeldung, die da lautet:

Warning: Out of range or non-integer values truncated during conversion to character.
> In sym.solve at 46
Warning: Out of range or non-integer values truncated during conversion to character.
> In sym.solve at 46

Ich kann mir auch schon denken, wo das Problem liegen könnte. Vermutlich ergeben sich irgendwo Werte, die ganz nahe an Null sind und durch die dann geteilt werden muss. Dies lässt sich aber nicht vermeiden, weil das System eben nunmal so ist, wie es ist. Die Konstruktion gibt das so vor.

In einem weiteren Schritt will ich dann noch Werte für den Winkel 90 Grad berechnen lassen und da steigt das Programm dann aus und bricht die Berechnung beim Lösen des Gleichungssystems ab.

Ihr müsst Euch die Sache so vorstellen, dass ich quasi ein Fachwerk habe, was an einem Punkt aufgehängt bzw. gelagert wird und sich um diesen dann dreht.

Meine Programmierung ist so gestaltet, dass ich nicht das System drehe, sondern die, an das System angreifenden Kräfte, damit ich die Matrix für das System nicht noch öfter programmieren muss. Und im Endeffekt macht es auch nach den Regeln der Statik keinen Unterschied, ob das System, oder die angreifenden Kräfte gedreht werden. Das würde nur zum Tragen kommen, wenn man das Eigengewicht einer Konstruktion berücksichtigen würde. Dies tue ich aber in diesem Fall nicht.

Aber vielleicht interessiert das hier ja auch niemanden, was das Programm so produzieren soll und wie…

In jedem Fall ist meine Frage, ob jemand von Euch eine Möglichkeit sieht, dass diese Warnmeldung verschwindet und es auch möglich wird, noch den Teil mit dem Winkel 90 Grad ohne Abbruch zu realisieren. Programmiert habe ich ihn, aber er funktioniert eben noch nicht, weil es diesmal keine Warnmeldung, sondern eine Fehlermeldung gibt.

Im Anhang findet Ihr noch das notwendige Simulink-Tool “Koordinatentransformation“.
Wundert Euch bitte nicht, dass das Programm noch mehr beinhaltet, als notwendig. Es soll noch um mehr Optionen erweitert werden.

Hier mal die notwendigen Zeilen aus meinem Programm (Ich habe die betreffenden Stellen kommentiert, damit man grob erkennt, was wo passiert):

Code:
%

close all
clear all
clc
echo off
 
syms s1 s2 s3 s4 s5 s6 s7 s8 s9 V1 H1 H4 A B G D P K H X_1 X_2
 
Hoehe = 1000;  % Eingabe muss manuell gemacht werden in mm
Breite = 1400; % Eingabe muss manuell gemacht werden in mm
S_Hoehe = 100;  % Eingabe muss manuell gemacht werden in mm
Windlast_y = 13605.63;  %Eingabe muss manuell gemacht werden in Newton
Windlast_x = 0;   %Eingabe muss manuell gemacht werden in Newton z.B. 4743.65, verbleibt hier aber bei 0, weil das Modell nur zur Verifikation des FEM-Modells bei 0 Grad ohne Last in x-Richtung dient.
Eigengewicht = 2132,899; %Eingabe muss manuell gemacht werden in kg
S = 1; % Querschnittsfläche der Vierkantrohre für die höher belasteten Stäbe der Modulendplatte muss in mm^2 eingegeben werden
S_c = 1; % Querschnittsfläche der Vierkantrohre aus dem Fachwerk muss in mm^2 eingegeben werden
 
%Kraft auf einen Aufnahmepunkt
 
K_y = ((Eigengewicht * 9.81) + Windlast_y) / 8 /1000
K_x = Windlast_x / 8 / 1000
 
%Abmessungen
G_Hoehe = Hoehe + S_Hoehe
Arm_1 = sqrt(S_Hoehe^2 + (Breite/2)^2)
Arm_2 = sqrt ((Hoehe+S_Hoehe)^2 + (Breite/2)^2)
Diag = sqrt (Hoehe^2 + Breite^2)
 
%Winkel Alpha zwischen einem inneren Tragarm und der Mittelsenkrechten
 
A = atan((Breite/2)/G_Hoehe)*180 / pi
 
%Winkel Beta zwischen unterem Horizontalstab und einem innerem Tragarm
 
B = atan (G_Hoehe / (Breite/2)) * 180 / pi
 
%Winkel Delta zwischen einem äußeren Tragarm und oberem Horizontalstab
 
D = atan (S_Hoehe / (Breite / 2)) * 180 / pi
 
%Winkel Gamma zwischen den beiden Tragarmen
 
G = atan ((Breite/2)/S_Hoehe) * 180 / pi -A
 
%Winkel Eta zwischen Diagonalstab s9 und rechtem senkrechten Stab s2 oder
%s5
 
E = atan (Breite / Hoehe) * 180 / pi
 
 
%Ermittlung der Knotenkoordinaten für die FEM Software und um die Hebelarme
Hier befindet sich normalerweise noch ein Programmteil, der aber für die Lösung des aktuellen Problems nicht notwendig ist

%für die Momentengleichungen variabel zu ermitteln
p=pi;
 
M=zeros(7,2);
 
for n= 0 : 30 :180
 
 
phi=n % Winkel der Gesamtkonstruktion in Grad einzugeben
 
 
x=-(Breite/2)
y=-(Hoehe+S_Hoehe)
sim ('Koordinatentransformation')
x_1 = simout.signals.values
y_1 = simout1.signals.values
 
 
x=(Breite/2)
y=-(Hoehe+S_Hoehe)
sim ('Koordinatentransformation')
x_2 = simout.signals.values
y_2 = simout1.signals.values
 
 
x=(Breite/2)
y=-(S_Hoehe)
sim ('Koordinatentransformation')
x_3=simout.signals.values
y_3=simout1.signals.values
 
 
x=-(Breite/2)
y=-(S_Hoehe)
sim ('Koordinatentransformation')
x_4=simout.signals.values
y_4=simout1.signals.values

end;
 
 
 
%Koeffizientenmatrix (spaltenweise aufgestellt) des ersten Hauptsystems
 
M = zeros(10,10);
%Stab2
M(:,1)= [0, 0, 1, 0, -1, 0, 0, 0, 0, 0];
%Stab3
M(:,2)= [0, 0, 0, 0, sin(D*pi/180), -cos(D*pi/180), -sin(D*pi/180), cos(D*pi/180), 0, 0];
%Stab4
M(:,3)= [0, 0, 0, 0, 0, 0, -sin(D*pi/180), -cos(D*pi/180), sin(D*pi/180), cos(D*pi/180)];
%Stab6
M(:,4)= [cos(A*pi/180), sin(A*pi/180), 0, 0, 0, 0, -cos(A*pi/180), -sin(A*pi/180), 0, 0];
%Stab7
M(:,5)= [0, 0, cos(A*pi/180), -sin(A*pi/180), 0, 0, -cos(A*pi/180), sin(A*pi/180), 0, 0];
%Stab8
M(:,6)= [0, 0, 0, 0, 0, -1, 0, 0, 0, 1];
%Stab9
M(:,7)= [cos(E*pi/180), sin(E*pi/180), 0, 0, -cos(E*pi/180), -sin(E*pi/180), 0, 0, 0, 0];
%V1
M(:,8)= [0, 0, 0, 0, 0, 0, 1, 0, 0, 0];
%H1
M(:,9)= [0, 0, 0, 0, 0, 0, 0, 1, 0, 0];
%Hilfslager
M(:,10)= [0, 0, 0, 1, 0, 0, 0, 0, 0, 0];
%Rechte Seite des Gleichungssystems
r_S = [K_y; K_x; K_y; K_x; K_y; K_x; 0; 0; K_y; K_x];
 
ERG_0 =  M \ r_S  ;
 
%Zweites Hauptsystem
 
 x_1 = 1;
 
M_2 = zeros(10,10);
%Stab2
M_2(:,1)= [0, 0, 1, 0, -1, 0, 0, 0, 0, 0];
%Stab3
M_2(:,2)= [0, 0, 0, 0, sin(D*pi/180), -cos(D*pi/180), -sin(D*pi/180), cos(D*pi/180), 0, 0];
%Stab4
M_2(:,3)= [0, 0, 0, 0, 0, 0, -sin(D*pi/180), -cos(D*pi/180), sin(D*pi/180), cos(D*pi/180)];
%Stab6
M_2(:,4)= [cos(A*pi/180), sin(A*pi/180), 0, 0, 0, 0, -cos(A*pi/180), -sin(A*pi/180), 0, 0];
%Stab7
M_2(:,5)= [0, 0, cos(A*pi/180), -sin(A*pi/180), 0, 0, -cos(A*pi/180), sin(A*pi/180), 0, 0];
%Stab8
M_2(:,6)= [0, 0, 0, 0, 0, -1, 0, 0, 0, 1];
%Stab9
M_2(:,7)= [cos(E*pi/180), sin(E*pi/180), 0, 0, -cos(E*pi/180), -sin(E*pi/180), 0, 0, 0, 0];
%V1
M_2(:,8)= [0, 0, 0, 0, 0, 0, 1, 0, 0, 0];
%H1
M_2(:,9)= [0, 0, 0, 0, 0, 0, 0, 1, 0, 0];
%Hilfslager
M_2(:,10)= [0, 0, 0, 1, 0, 0, 0, 0, 0, 0];
 
 
r_S_2 = [0; -x_1; 0; x_1; 0; 0; 0; 0; 0; 0];
 
ERG_1 =  M_2 \ r_S_2 ;
 
 
%Drittes Hauptsystem
 
 x_2 = 1;
 
M_3 = zeros(10,10);
%Stab2
M_3(:,1)= [0, 0, 1, 0, -1, 0, 0, 0, 0, 0];
%Stab3
M_3(:,2)= [0, 0, 0, 0, sin(D*pi/180), -cos(D*pi/180), -sin(D*pi/180), cos(D*pi/180), 0, 0];
%Stab4
M_3(:,3)= [0, 0, 0, 0, 0, 0, -sin(D*pi/180), -cos(D*pi/180), sin(D*pi/180), cos(D*pi/180)];
%Stab6
M_3(:,4)= [cos(A*pi/180), sin(A*pi/180), 0, 0, 0, 0, -cos(A*pi/180), -sin(A*pi/180), 0, 0];
%Stab7
M_3(:,5)= [0, 0, cos(A*pi/180), -sin(A*pi/180), 0, 0, -cos(A*pi/180), sin(A*pi/180), 0, 0];
%Stab8
M_3(:,6)= [0, 0, 0, 0, 0, -1, 0, 0, 0, 1];
%Stab9
M_3(:,7)= [cos(E*pi/180), sin(E*pi/180), 0, 0, -cos(E*pi/180), -sin(E*pi/180), 0, 0, 0, 0];
%V1
M_3(:,8)= [0, 0, 0, 0, 0, 0, 1, 0, 0, 0];
%H1
M_3(:,9)= [0, 0, 0, 0, 0, 0, 0, 1, 0, 0];
%Hilfslager
M_3(:,10)= [0, 0, 0, 1, 0, 0, 0, 0, 0, 0];
 
 
r_S_3 = [-x_1; 0; 0; 0; 0; 0; 0; 0; x_1; 0];
 
ERG_2 =  M_3 \ r_S_3;
 
 
%Generieren eines Vektors für die einzelnen Stablängen
l = [Hoehe; Arm_1* (S_c/S); Arm_1* (S_c/S); Arm_2* (S_c/S); Arm_2* (S_c/S); Breite; Diag; 0; 0; 0];
 
 
%Gegenseitige Verschiebungen
for i = 1:1:10;
b_1_0(i, 1) = ERG_0(i, 1) * ERG_1(i, 1) * l(i, 1);
b_1_1(i, 1) = ERG_1(i, 1) * ERG_1(i, 1) * l(i, 1);
b_1_2(i, 1) = ERG_1(i, 1) * ERG_2(i, 1) * l(i, 1);
b_2_0(i, 1) = ERG_2(i, 1) * ERG_0(i, 1) * l(i, 1);
b_2_1(i, 1) = ERG_2(i, 1) * ERG_1(i, 1) * l(i, 1);
b_2_2(i, 1) = ERG_2(i, 1) * ERG_2(i, 1) * l(i, 1);
 
end;
 
d_1_0 = b_1_0(1,1)+b_1_0(2,1)+b_1_0(3,1)+b_1_0(4,1)+b_1_0(5,1)+b_1_0(6,1)+b_1_0(7,1)+b_1_0(8,1)+b_1_0(9,1)+b_1_0(10,1);
d_1_1 = b_1_1(1,1)+b_1_1(2,1)+b_1_1(3,1)+b_1_1(4,1)+b_1_1(5,1)+b_1_1(6,1)+b_1_1(7,1)+b_1_1(8,1)+b_1_1(9,1)+b_1_1(10,1);
d_1_2 = b_1_2(1,1)+b_1_2(2,1)+b_1_2(3,1)+b_1_2(4,1)+b_1_2(5,1)+b_1_2(6,1)+b_1_2(7,1)+b_1_2(8,1)+b_1_2(9,1)+b_1_2(10,1);
d_2_0 = b_2_0(1,1)+b_2_0(2,1)+b_2_0(3,1)+b_2_0(4,1)+b_2_0(5,1)+b_2_0(6,1)+b_2_0(7,1)+b_2_0(8,1)+b_2_0(9,1)+b_2_0(10,1);
d_2_1 = b_2_1(1,1)+b_2_1(2,1)+b_2_1(3,1)+b_2_1(4,1)+b_2_1(5,1)+b_2_1(6,1)+b_2_1(7,1)+b_2_1(8,1)+b_2_1(9,1)+b_2_1(10,1);
d_2_2 = b_2_2(1,1)+b_2_2(2,1)+b_2_2(3,1)+b_2_2(4,1)+b_2_2(5,1)+b_2_2(6,1)+b_2_2(7,1)+b_2_2(8,1)+b_2_2(9,1)+b_2_2(10,1);
 
 
 
%Auflösung der Elastizitätsgleichungen
GL_1 ='d_1_0 + d_1_1 * X_1 + d_1_2 * X_2 =0';
GL_1 = subs(GL_1,{'d_1_0','d_1_1','d_1_2'}, {d_1_0,d_1_1,d_1_2});
GL_2 ='d_2_0 + d_2_1 * X_1 + d_2_2 * X_2 =0';
GL_2 = subs(GL_2,{'d_2_0','d_2_1','d_2_2'}, {d_2_0,d_2_1,d_2_2});
 
[erg_x_1, erg_x_2]=solve(GL_1, GL_2, X_1, X_2);
 
X_1 = double(erg_x_1);
X_2 = double(erg_x_2);
 
S = ERG_0 + ERG_1 * X_1 + ERG_2 * X_2;
 
% Stabkräfte bei 0 Grad
%echo off
 
Stab_1 = X_1
Stab_2 = S(1,1)
Stab_3 = S(2,1)
Stab_4 = S(3,1)
Stab_5 = X_2
Stab_6 = S(4,1)
Stab_7 = S(5,1)
Stab_8 = S(6,1)
Stab_9 = S(7,1)
Lager = S(8,1)
 
 
%Unter Winkel 180 Grad:
 
M = zeros(10,10);
%Stab2
M(:,1)= [0, 0, 1, 0, -1, 0, 0, 0, 0, 0];
%Stab3
M(:,2)= [0, 0, 0, 0, sin(D*pi/180), -cos(D*pi/180), -sin(D*pi/180), cos(D*pi/180), 0, 0];
%Stab4
M(:,3)= [0, 0, 0, 0, 0, 0, -sin(D*pi/180), -cos(D*pi/180), sin(D*pi/180), cos(D*pi/180)];
%Stab6
M(:,4)= [cos(A*pi/180), sin(A*pi/180), 0, 0, 0, 0, -cos(A*pi/180), -sin(A*pi/180), 0, 0];
%Stab7
M(:,5)= [0, 0, cos(A*pi/180), -sin(A*pi/180), 0, 0, -cos(A*pi/180), sin(A*pi/180), 0, 0];
%Stab8
M(:,6)= [0, 0, 0, 0, 0, -1, 0, 0, 0, 1];
%Stab9
M(:,7)= [cos(E*pi/180), sin(E*pi/180), 0, 0, -cos(E*pi/180), -sin(E*pi/180), 0, 0, 0, 0];
%V1
M(:,8)= [0, 0, 0, 0, 0, 0, 1, 0, 0, 0];
%H1
M(:,9)= [0, 0, 0, 0, 0, 0, 0, 1, 0, 0];
%Hilfslager
M(:,10)= [0, 0, 0, 1, 0, 0, 0, 0, 0, 0];
 
 
r_S = [-K_y; K_x; -K_y; K_x; -K_y; K_x; 0; 0; -K_y; K_x]; %Hier wurden die Vorzeichen der K_y geändert, weil die Kräfte bei 180 Grad ja entgegengesetzt wirken. Im Teil, der für den Winkel von 90 Grad erstellt wurde, gibt es hier eine Änderung. Alle K_y werden in diesem Fall Null und K_x erhält jeweils den Wert, den hier K_y hat. X steht ja symbolisch für die x-Ebene und y für die y-Ebene. Und unter 0 Grad und 180 Grad wirken die Kräfte in der y-Ebene und bei 90 Grad wirken sie dann in der x-Ebene.

 
ERG_0 =  M \ r_S;  
 
%Zweites Hauptsystem
 
 x_1 = 1;
 
M_2 = zeros(10,10);
%Stab2
M_2(:,1)= [0, 0, 1, 0, -1, 0, 0, 0, 0, 0];
%Stab3
M_2(:,2)= [0, 0, 0, 0, sin(D*pi/180), -cos(D*pi/180), -sin(D*pi/180), cos(D*pi/180), 0, 0];
%Stab4
M_2(:,3)= [0, 0, 0, 0, 0, 0, -sin(D*pi/180), -cos(D*pi/180), sin(D*pi/180), cos(D*pi/180)];
%Stab6
M_2(:,4)= [cos(A*pi/180), sin(A*pi/180), 0, 0, 0, 0, -cos(A*pi/180), -sin(A*pi/180), 0, 0];
%Stab7
M_2(:,5)= [0, 0, cos(A*pi/180), -sin(A*pi/180), 0, 0, -cos(A*pi/180), sin(A*pi/180), 0, 0];
%Stab8
M_2(:,6)= [0, 0, 0, 0, 0, -1, 0, 0, 0, 1];
%Stab9
M_2(:,7)= [cos(E*pi/180), sin(E*pi/180), 0, 0, -cos(E*pi/180), -sin(E*pi/180), 0, 0, 0, 0];
%V1
M_2(:,8)= [0, 0, 0, 0, 0, 0, 1, 0, 0, 0];
%H1
M_2(:,9)= [0, 0, 0, 0, 0, 0, 0, 1, 0, 0];
%Hilfslager
M_2(:,10)= [0, 0, 0, 1, 0, 0, 0, 0, 0, 0];
 
 
r_S_2 = [0; -x_1; 0; x_1; 0; 0; 0; 0; 0; 0];
 
ERG_1 =  M_2 \ r_S_2 ;
 
 
%Drittes Hauptsystem
 
 x_2 = 1;
 
M_3 = zeros(10,10);
%Stab2
M_3(:,1)= [0, 0, 1, 0, -1, 0, 0, 0, 0, 0];
%Stab3
M_3(:,2)= [0, 0, 0, 0, sin(D*pi/180), -cos(D*pi/180), -sin(D*pi/180), cos(D*pi/180), 0, 0];
%Stab4
M_3(:,3)= [0, 0, 0, 0, 0, 0, -sin(D*pi/180), -cos(D*pi/180), sin(D*pi/180), cos(D*pi/180)];
%Stab6
M_3(:,4)= [cos(A*pi/180), sin(A*pi/180), 0, 0, 0, 0, -cos(A*pi/180), -sin(A*pi/180), 0, 0];
%Stab7
M_3(:,5)= [0, 0, cos(A*pi/180), -sin(A*pi/180), 0, 0, -cos(A*pi/180), sin(A*pi/180), 0, 0];
%Stab8
M_3(:,6)= [0, 0, 0, 0, 0, -1, 0, 0, 0, 1];
%Stab9
M_3(:,7)= [cos(E*pi/180), sin(E*pi/180), 0, 0, -cos(E*pi/180), -sin(E*pi/180), 0, 0, 0, 0];
%V1
M_3(:,8)= [0, 0, 0, 0, 0, 0, 1, 0, 0, 0];
%H1
M_3(:,9)= [0, 0, 0, 0, 0, 0, 0, 1, 0, 0];
%Hilfslager
M_3(:,10)= [0, 0, 0, 1, 0, 0, 0, 0, 0, 0];
 
 
r_S_3 = [-x_1; 0; 0; 0; 0; 0; 0; 0; x_1; 0];
 
ERG_2 =  M_3 \ r_S_3;
 
 
%Generieren eines Vektors für die einzelnen Stablängen
%l = [Hoehe; Arm_1* (S_c/S); Arm_1* (S_c/S); Arm_2* (S_c/S); Arm_2* (S_c/S); Breite; Diag; 0; 0; 0];
 % Dieser Punkt ist hier unnötig, weil der Stabvektor von oben übernommen werden kann, bleibt aber an dieser Stelle erstmal stehen
 
%Gegenseitige Verschiebungen
for i = 1:1:10;
b_1_0(i, 1) = ERG_0(i, 1) * ERG_1(i, 1) * l(i, 1);
b_1_1(i, 1) = ERG_1(i, 1) * ERG_1(i, 1) * l(i, 1);
b_1_2(i, 1) = ERG_1(i, 1) * ERG_2(i, 1) * l(i, 1);
b_2_0(i, 1) = ERG_2(i, 1) * ERG_0(i, 1) * l(i, 1);
b_2_1(i, 1) = ERG_2(i, 1) * ERG_1(i, 1) * l(i, 1);
b_2_2(i, 1) = ERG_2(i, 1) * ERG_2(i, 1) * l(i, 1);
 
end;
 
d_1_0 = b_1_0(1,1)+b_1_0(2,1)+b_1_0(3,1)+b_1_0(4,1)+b_1_0(5,1)+b_1_0(6,1)+b_1_0(7,1)+b_1_0(8,1)+b_1_0(9,1)+b_1_0(10,1);
d_1_1 = b_1_1(1,1)+b_1_1(2,1)+b_1_1(3,1)+b_1_1(4,1)+b_1_1(5,1)+b_1_1(6,1)+b_1_1(7,1)+b_1_1(8,1)+b_1_1(9,1)+b_1_1(10,1);
d_1_2 = b_1_2(1,1)+b_1_2(2,1)+b_1_2(3,1)+b_1_2(4,1)+b_1_2(5,1)+b_1_2(6,1)+b_1_2(7,1)+b_1_2(8,1)+b_1_2(9,1)+b_1_2(10,1);
d_2_0 = b_2_0(1,1)+b_2_0(2,1)+b_2_0(3,1)+b_2_0(4,1)+b_2_0(5,1)+b_2_0(6,1)+b_2_0(7,1)+b_2_0(8,1)+b_2_0(9,1)+b_2_0(10,1);
d_2_1 = b_2_1(1,1)+b_2_1(2,1)+b_2_1(3,1)+b_2_1(4,1)+b_2_1(5,1)+b_2_1(6,1)+b_2_1(7,1)+b_2_1(8,1)+b_2_1(9,1)+b_2_1(10,1);
d_2_2 = b_2_2(1,1)+b_2_2(2,1)+b_2_2(3,1)+b_2_2(4,1)+b_2_2(5,1)+b_2_2(6,1)+b_2_2(7,1)+b_2_2(8,1)+b_2_2(9,1)+b_2_2(10,1);
 
 
 
%Auflösung der Elastizitätsgleichungen
GL_1 ='d_1_0 + d_1_1 * X_1 + d_1_2 * X_2 =0';
GL_1 = subs(GL_1,{'d_1_0','d_1_1','d_1_2'}, {d_1_0,d_1_1,d_1_2});
GL_2 ='d_2_0 + d_2_1 * X_1 + d_2_2 * X_2 =0';
GL_2 = subs(GL_2,{'d_2_0','d_2_1','d_2_2'}, {d_2_0,d_2_1,d_2_2});
 
[erg_x_1, erg_x_2]=solve(GL_1, GL_2, X_1, X_2);
% An dieser Stelle meckert der solver !!!
 
X_1 = double(erg_x_1);
X_2 = double(erg_x_2);
 
S = ERG_0 + ERG_1 * X_1 + ERG_2 * X_2;
 
 
% Stabkräfte bei 180 Grad
 
 
Stab_1 = X_1
Stab_2 = S(1,1)
Stab_3 = S(2,1)
Stab_4 = S(3,1)
Stab_5 = X_2
Stab_6 = S(4,1)
Stab_7 = S(5,1)
Stab_8 = S(6,1)
Stab_9 = S(7,1)
Lager = S(8,1)

 


Koordinatentransformation.mdl
 Beschreibung:

Download
 Dateiname:  Koordinatentransformation.mdl
 Dateigröße:  23.5 KB
 Heruntergeladen:  505 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: 14.11.2009, 11:19     Titel:
  Antworten mit Zitat      
Hallo,

da kann ich leider zunächst auch nicht weiterhelfen. Das ist ein wenig unübersichtlich.

Anmerkungen aber:

Eigengewicht = 2132,899; -> Dezimaltrennzeichen . !!

for n= 0 : 30 :180 -> in dieser for-Schleife wird in jeder Iteration das vorherige Ergebnis überschrieben. Ist das so gedacht?

Ich sehe zudem nicht, wo die Ergebnisse dieser Simulationen verwendet werden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
J.T.

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2009, 21:15     Titel:
  Antworten mit Zitat      
Hallo,

vielen Dank schonmal für die Antwort.

Das mit der Simulation soll erstmal so sein Wink

Die Ergebnisse werden erstmal nur ausgegeben, damit ich die Koordinaten der Fachwerksknoten in einem FEM-Programm nutzen kann.

Später werden die Ergebnisse der Simulation dann in einer Matrix abgelegt und sollen zur Bestimmung von Hebelarmen dienen, welche ich zur Berechnung der Drehmomente benötige. Dieser Punkt ist aber noch nicht eingepflegt.

Das mit dem Dezimaltrennzeichen war ein Übertragungsfehler. Sorry!
Hatte grade den Wert ändern müssen, weil meine andere Projektgruppe mir neue Ergebnisse geschickt hatte. Ganz schön peinlich, dass mir immer noch diesen Anfängerfehler unterlaufen*schäm*. Typischer Fall von zuviel Handrechnerei im Vorfeld...


Ansonsten läuft das Programm so, dass drei Matrizen aus einem Gleichungssystem (hab ich vorher von Hand aufgestellt) erstellt werden,die dann Zwischenergebnisse liefern, welche zunächst in Verschiebungsgleichungen einfließen.
Und aus diesen Gleichungen ergeben sich dann Delta-Werte (im Programm z.B. d_1_0), welche in sogenannte Elastizitätsgleichungen eingesetzt werden.

Diese beiden Elastizitätsgleichungen GL_1 und GL_2 ergeben ein System mit zwei Gleichungen und zwei Unbekannten, welches von MATLAB gelöst werden soll. Und an der Stelle ergibt sich dann eben mein geschildertes Problem.

Ich hoffe, dass ich damit vielleicht einen gewissen roten Faden durch mein Programm gegeben habe, der es für den geneigten Leser hier ein wenig besser überschaubar macht.

Ich wäre wirklich für jeden Vorschlag dankbar, da ich selber schon diverse Dinge ausprobiert habe und merke, dass mir doch deutlich Routine mit MATLAB fehlt. Aber ich arbeite ja daran Wink

Vielen Dank fürs Lesen!

Gruß

J.T.
 
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.