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

function Funktions- Werte auslesen

 

mueller17
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 15.02.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2021, 14:38     Titel: function Funktions- Werte auslesen
  Antworten mit Zitat      
Wie kann ich die Parameter phi1, phi2, omega1, omega2 extrahieren..? Ich benötige diese Parameter im Workspace?


Code:
function Doppelpendel (phi1Anf , phi2Anf)

if nargin == 2                          % Start mit vorgegebenen Anfangswerten?
   x0 = [phi1Anf ; phi2Anf ; 0 ; 0] ;   % Anfangswerte  [phi1 ; phi2 ; omega1 ; omega2]
else
   x0 = [pi/2 ; 0 ; 0 ; 0] ;            % Default-Anfangswerte
end

% Parameter (global definiert, damit Wertaenderung nur an einer Stelle erforderlich):
global mdm  J1  J2  s1  s2  gdl
mdm = 1 ; J1 = 1./12 ; J2 = 1./12 ; s1 = .5 ; s2  = .5 ; gdl = 9.81 ;

tspan = [0 ; 10] ;                       % Zeitintervall

% Integration des Anfangswertproblems:
options = odeset('Mass' , @Massenmatrix , 'MaxStep' , 0.01) ;
[t xv]  = ode45 (@RechteSeite , tspan , x0 , options) ;

% Grafische Ausgabe von phi1 und phi2, zunaechst "Sortieren der Ergebnisse":
phi1 = xv(:,1) ;
phi2 = xv(:,2) ;                         % phi1i und phi2i sind Vektoren

subplot(2,1,1) ; plot (t , phi1) , grid on , title  ('\phi_1(t) (oberes Pendel)')
subplot(2,1,2) ; plot (t , phi2) , grid on , title  ('\phi_2(t) (unteres Pendel)')

% ============================================================
% Funktion, die die "Massenmatrix" des Dgl.-Systems definiert:
function M = Massenmatrix (t , xv)

global mdm  J1  J2  s1  s2  gdl

phi1   = xv(1) ;
phi2   = xv(2) ;
omega1 = xv(3) ;
omega2 = xv(4) ;

c = cos(phi1-phi2);
M = [ 1  0      0             0      ;
      0  1      0             0      ;
      0  0  s1^2+J1+mdm    mdm*s2*c  ;
      0  0    mdm*s2*c   mdm*s2^2+J2 ] ;

% ============================================================
% Funktion, die die "rechte Seite" des Dgl.-Systems definiert:
function xvp = RechteSeite (t , xv)

global mdm  J1  J2  s1  s2  gdl

phi1   = xv(1) ;
phi2   = xv(2) ;
omega1 = xv(3) ;
omega2 = xv(4) ;

s = sin(phi1-phi2);

phi1p   = omega1 ;
phi2p   = omega2 ;
omega1p = -mdm*s2*omega2^2*s - (s1+mdm)*gdl*sin(phi1) ;
omega2p =  mdm*s2*omega1^2*s -   mdm*s2*gdl*sin(phi2) ;

xvp = [phi1p ; phi2p ; omega1p ; omega2p] ;


http://www.tm-aktuell.de/TM5/Doppel...../doppelpendel_matlab.html
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 15.02.2021, 14:51     Titel:
  Antworten mit Zitat      
Was hast du denn schon versucht?

Du könntest dir die Werte ausgeben lassen, könntest Breakpoints setzen.
Könntest du Werte innerhalb der Unterfunktionen in mat-files schreiben lassen.
Könntest die Werte mit der Funktion zurückgeben und auf Vektoren schreiben.
...
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
mueller17
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 15.02.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2021, 15:12     Titel:
  Antworten mit Zitat      
Wie könnte ich den die Parameter phi1,phi2, omega1 und omega2 in m- files schreiben.. wie geht das ? Bin Matlab Neuling....
Private Nachricht senden Benutzer-Profile anzeigen
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 17.02.2021, 08:04     Titel:
  Antworten mit Zitat      
Bitte keine Doppelpostings.

Wenn du Neuling bist, dann fange doch bitte auch mit den einfach Themen an. Als Fahranfänger wirst du auch nicht sofort bei 200km/h auf die Autobahn geschmissen.

Wenn du irgend einen Nutzen (= Wissenszuwachs) erhalten willst oder sollst, fange mit den Matlab-Onramp-themen an.
https://de.mathworks.com/learn/tutorials/matlab-onramp.html

Die benötigten Variablen werden fortlaufend in xv abgelegt.
phi1 & phi2 werden außerdem bereits extrahiert und geplottet.


Code:
phi1 = xv(:,1) ;
phi2 = xv(:,2) ;
omega1 = xv(:,3) ;
omega2 = xv(:,4) ;



Was genau ist deine Frage?
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
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.