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

Bedingungen zum Lösen eines LGS festlege (keine Anfangsbed.

 

Ufuk196
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 25.03.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2019, 13:03     Titel: Bedingungen zum Lösen eines LGS festlege (keine Anfangsbed.
  Antworten mit Zitat      
Hallo Leute,

ich möchte bei einem Balken aus der TM2 die Lagerkräfte/-momente (FL1, FL2, FA2y, MA2y) bestimmen. Da dieses System überbestimmt ist, habe ich mittels Biegelinientafel und Superposition ein Lineares Gleichungssystem (LGS) der Biegekennlinienfunktionen w(x) bzw. w'(x) erstellt (Matrix W im Code). Der Vektor w (kleingeschrieben!) enthält die Anfangsbedingungen resultierend aus der Art der Lagerung des Balkens sowie der auf den Balken einwirkenden Kraft FWC.


Ihr müsst das oben beschrieben nicht unbedingt verstehen, es soll nur einen kleinen Einblick in die Theamtik ermöglichen.

Worum es mir im Wesentlichen geht, ist das Problem, dass ich für die Lagerkräfte und -momente Ergebnisse erhalte, die größer als die einwirkende Kraft FWC sind und auch sonst wenig Sinn ergeben (zumindest kommt man auf eine Kräftesumme von 0).

Ich suche nun nach einer Möglichkeit, dem Programm mitzuteilen, dass FL1, FL2, und FA2y aus dem Vektor P kleiner als FCW sein sollen. Kann mir da jemand helfen?


Hier soweit der Code:
Code:
%%Berechnung Lagerkräfte WC-Halterung

wL1 = 0; wL2 = 0; wA2 = 0; wpA2 = 0;            %Anfangsbedinungen Biegekennlinie
FWC = 245.25; l = 0.5; a = 0.07; b = l-a;        %gegebene Werte (FWC in N; l, a, b in m)
syms FL1 FL2 FA2y MA2y; P = [FL1; FL2; FA2y; MA2y]; %Erstellen des Parametervektors P
w = [wL1+FWC*(a^2*l/4-a^3/6); wL2+FWC*(-l^3/48+b*l^2/8); wA2+FWC*5/48*l^3; wpA2+FWC*l^2/8];   %Anfangsbed. (inkl. FWC) in Vektor w einsetzen; Nächste Zeile: Zustandsmatrix W definieren
W = [a^3/3 a^2*l/2-2*a^3/3 a^2*l/2-a^3/6 -a^2/2; a^2*b/2-a^3/6 b^3/3 b^2*l/2-b^3/6 -b^2/2; a^2*l/2-a^3/6 b^2*l/2-b^3/6 l^3/3 -l^2/2; a^2/2 b^2/2 l^2/2 -l];

P = W\w                                         %Ausgabe der Lösung von P

%Zur Überprüfung der Matrizen w und W:
%syms  a l b FWC;
%pretty(w)
%pretty(W)


Anschließend noch das Ergebnis für P mit Kommentaren

Code:
P =

  338.1612          %FL1    Zu groß. Zumindest ident. mit FL2
  338.1612          %FL2    Zu groß. Zumindest ident. mit FL1
 -215.5362          %FA2y   Sollte nicht negativ sein.
   -5.0292          %MA2y   Zu kleiner Betrag


Ich bin für jeden Tipp dankbar!

VG, Ufuk


PS: Sorry für den Titel, hatte nicht genug Zeichen. ^^
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.03.2019, 13:32     Titel:
  Antworten mit Zitat      
Hallo,

für Nebenbedingungen kannst du z.B. lsqlin verwenden.
Das ist allerdings ein numerischer Solver, du müsstest also deinen Code etwas umschreiben.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Ufuk196
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 25.03.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2019, 15:27     Titel:
  Antworten mit Zitat      
Super, danke!

Also ich hab jetzt den Code folgendermaßen umgeschrieben (Matrixen Aeq und beq hinzugefügt und P mit lsqlin statt linksseitiger Division berechnet)

Code:
%%Berechnung Lagerkräfte WC-Halterung mit lisqin(für Kommentare nach
%%rechts scrollen

wL1 = 0; wL2 = 0; wA2 = 0; wpA2 = 0;                                                          %Anfangsbedinungen Biegekennlinie
FWC = 245.25; l = 0.5; a = 0.07; b = l-a;                                                     %gegebene Werte (FWC in N; l, a, b in m)
syms FL1 FL2 FA2y MA2y; P = [FL1; FL2; FA2y; MA2y];                                           %Erstellen des Parametervektors P
w = [wL1+FWC*(a^2*l/4-a^3/6); wL2+FWC*(-l^3/48+b*l^2/8); wA2+FWC*5/48*l^3; wpA2+FWC*l^2/8];   %Anfangsbed. (inkl. FWC) in Vektor w einsetzen; Nächste Zeile: Zustandsmatrix W definieren
W = [a^3/3 a^2*l/2-2*a^3/3 a^2*l/2-a^3/6 -a^2/2; a^2*b/2-a^3/6 b^3/3 b^2*l/2-b^3/6 -b^2/2; a^2*l/2-a^3/6 b^2*l/2-b^3/6 l^3/3 -l^2/2; a^2/2 b^2/2 l^2/2 -l];
Aeq = [1 1 2 0; 1 -1 0 0]; beq = [FWC; 0];                                                    %Nebenbedingung Summe Lagerkräfte gleich FWC und FL1 = FL2

P = lsqlin(W,w,[],[],Aeq,beq)                                                                   %Ausgabe der Lösung von P

%Zur Überprüfung der Matrizen w und W:
%syms  a l b FWC;
%pretty(w)
%pretty(W)


und folgendes Ergebnis erhalten:
Code:
P =

   70.4924              %FL1
   70.4924              %FL2
   52.1326              %FA2y
   11.0761              %MA2y


Ich hoffe, das ist alles stimmig soweit. (Sieht für mich zumindest so aus) Falls jemandem doch was auffallen sollte, gerne mitteilen. Ansosnten danke nochmal für die schnelle Antwort Harald ^^
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.03.2019, 15:44     Titel:
  Antworten mit Zitat      
Hallo,

Hinweis nur: die Zeile
Code:
syms FL1 FL2 FA2y MA2y; P = [FL1; FL2; FA2y; MA2y];

ist überflüssig, weil du ja numerisch rechnest. Sie könnte aber verwirren.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Ufuk196
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 25.03.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2019, 15:51     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

Hinweis nur: die Zeile
Code:
syms FL1 FL2 FA2y MA2y; P = [FL1; FL2; FA2y; MA2y];

ist überflüssig, weil du ja numerisch rechnest. Sie könnte aber verwirren.

Grüße,
Harald


Jo eig. schon... mach das dennoch gern so, damit man weiß, wie die einzelnen Parameter heißen, die man berechnen soll.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.03.2019, 16:02     Titel:
  Antworten mit Zitat      
Hallo,

den zweiten Teil finde ich als Kommentar gut.
Der erste Teil legt aber nahe, dass die folgenden Berechnungen symbolisch sind. Sie sind aber numerisch, daher ist der syms-Befehl aus meiner Sicht an der Stelle eher irreführend.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
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.