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

Werte in den Integrator hineingeben

 

alduro
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 30.01.08
Wohnort: Tucson , AZ
Version: ---
     Beitrag Verfasst am: 19.01.2010, 11:16     Titel: Werte in den Integrator hineingeben
  Antworten mit Zitat      
Hallo liebes Forum

Ich habe eine frage bzgl. Integration :

Hier mein Code

:

Main :
[code]


global u

u = 1000 ;

[T,zT] = ode45 (@BC_eqsmo_lin,[start_time end _time])

[\code]


DGL m-file :

[code]

function z_d = BC_eqsmo_lin(t,z)

global u

c_dd = ( 1 / theta ) * u

z_d=[z(2) ; c_dd];

[\code]

u ist ein Moment. Dieses is momentan ein konstanter Wert , nämlich u = 1000


Ich möchte diesen aber nun variabel gestallten.
Die Werte für u, abhängig von der Zeit, habe ich nämlich ein eine Vektor (u_tilde) gespeichert.

Also :

Ich möchte nun anstatt dem konstanten u Wert einen Vektor u_tilde in das DGL m-file bringen und abhängig
von der Simulationszeit Werte aus diesem auslesen und in der DGl nutzen.

Main :
[code]


global u_tilde

u_tilde = [1000 ;1021:1014;1025;1410;........]

[T,zT] = ode45 (@BC_eqsmo_lin,[start_time end _time])

[\code]

DGL m-file :

[code]

function z_d = BC_eqsmo_lin(t,z)

global u_tilde

c_dd = ( 1 / theta ) * u_tilde(anhängig von t)

z_d=[z(2) ; c_dd];

[\code]


Ich hoffe das ich verständlich ausdrücken konnte worum es geht.

Kann mir jemand helfen ??

Gruß ALDURO !
_________________

Hallo,
ich arbeite zur Zeit an einer verbesserten Kontaktabbildung im MKS Tool ADAMS.
Spannenden Sache, aber im Moment gibt es noch viel offene Fragen ... Aber das wird schon P-)
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

du benötigst zusätzlich zu u_tilde auch einen Zeitvektor t_tilde, der angibt, zu welchen Zeitpunkten diese u's zugeordnet sein sollen. Dann muss man wohl interpolieren. Dazu würde ich folgendermaßen vorgehen:

Code:
function z_d = BC_eqsmo_lin(t,z)

global t_tilde
global u_tilde

c_dd = ( 1 / theta ) * interp1(t_tilde, u_tilde, t)

z_d=[z(2) ; c_dd];


Hinweise:
- globale Variablen sollte man nach Möglichkeit vermeiden. Ich würde entweder über das Function Handle die Variablen mitgeben, oder die Funktion als nested function verwenden, damit sie Zugriff auf die Variablen im übergeordneten Workspace hat.
- ode45 erwartet als 3. Argument einen Vektor mit Anfangswerten.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 30.01.08
Wohnort: Tucson , AZ
Version: ---
     Beitrag Verfasst am: 19.01.2010, 12:02     Titel:
  Antworten mit Zitat      
Harald,

das sieht sehr gut aus !

Danke für deinen schnelle Antwort.


Ich weiß im die Gefahr der globalen Variablen.
(War nur ein "Schnellschuss")


Wünsche dir alles gute !
_________________

Hallo,
ich arbeite zur Zeit an einer verbesserten Kontaktabbildung im MKS Tool ADAMS.
Spannenden Sache, aber im Moment gibt es noch viel offene Fragen ... Aber das wird schon P-)
Private Nachricht senden Benutzer-Profile anzeigen
 
alduro
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 30.01.08
Wohnort: Tucson , AZ
Version: ---
     Beitrag Verfasst am: 19.01.2010, 12:09     Titel:
  Antworten mit Zitat      
PS :

Zu dem dritten Wert :

Der is mir beim Abtippen vom Laptop durchgegangen.....

Trotzdem danke für den Hinweis !
_________________

Hallo,
ich arbeite zur Zeit an einer verbesserten Kontaktabbildung im MKS Tool ADAMS.
Spannenden Sache, aber im Moment gibt es noch viel offene Fragen ... Aber das wird schon P-)
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 - 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.