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

Mehrere Zeitschrittweiten in einem Block?

 

Horst Borst

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.12.2010, 14:50     Titel: Mehrere Zeitschrittweiten in einem Block?
  Antworten mit Zitat      
Hallo zusammen,

ich modelliere in Simulink ein paar chemische Reaktionen zusammen mit einer Energiebilanz (liefert die Temperatur).
Nun ist aufgrund der Reaktionsmodellierung das DGL-System relativ steif, so dass sehr kleine Zeitschritte verwendet werden müssen.
Nun hab ich mir überlegt, die Simulation derart zu beschleunigen, dass die Energiebilanz nicht bei jedem dieser kleinen Zeitschritte berechnet werden muss.

Also lange Rede kurzer Sinn:

Ich habe zwei Subsysteme:
Das eine soll mit dem Zeitschritt des Simulink Lösers berechnet werden, das andere mit einem von mir vorgebenen Zeitschritt (z.B. 1s) berechnet werden.

Geht das? Macht das überhaupt bzgl einer Zeitersparnis Sinn?

Beste Grüße Horst


dany2k3k
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 66
Anmeldedatum: 01.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.12.2010, 17:41     Titel:
  Antworten mit Zitat      
in welcher Form liegen die Differentialgleichungen vor ??


Übertragungsfunktionen ?
Statespace?
s-function ?


LG
Daniel


btw: Besonders geignet für steiffe Systeme ist der ode15s Solver,falls du das noch nicht versucht hast.
Private Nachricht senden Benutzer-Profile anzeigen
 
Phate
Forum-Guru

Forum-Guru



Beiträge: 283
Anmeldedatum: 09.11.09
Wohnort: Stuttgart
Version: R2008b
     Beitrag Verfasst am: 07.12.2010, 18:16     Titel:
  Antworten mit Zitat      
Hi,

Ja das geht auf jeden Fall. Wie das in deinem konkreten Fall aussehen muss kann ich dir leider nicht sagen aber ich hab das ganze mit einer Kombination aus den Blöcken "Rate Transition" und "Memory" gemacht. Also das Signal erst in den Memory Block und dann in Rate Transition. Im Rate Transition kannst du dann die Schrittweite deines Subsystems angeben.
Hoffe das hilft dir bzw ist verständlich genug.

Falls nicht einfach nochmal fragen.

Eins noch zum memory Block, der kann bei Steifen Systemen auch die Simulationszeit verschlechtern laut Matlab Docu.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Horst Borst

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.12.2010, 19:49     Titel:
  Antworten mit Zitat      
Vielen Dank für die Infos.
Also die DGLs habe ich jetzt ganz einfach in Simulink zusammengeklickt. Wäre natürlich auch über eine SFunction gegangen. Es gibt also einen Integrator für die Konzentrationen und einen Integrator für die Temperatur.

Memory Blöcke würde ich gerne vermeiden, da die wirklich die Lösung erheblich verlangsamen. Mit Rate Transition müsste es gehen. Ich werde es mal testen. Ich hatte daran gedacht, evtl. den Block mit der Temperaturberechnung als "Triggered Subsystem" zu gestalten, wobei der Trigger dann mit der entsprechenden Frequenz läuft.

Die Temperaturberechnung könnte so beispielsweise mit ner 1/10 Sekunde ablaufen. Die Konzentrationsberechnung würde dann mit ODE15s oder ODE23tb erfolgen, wobei da die Schrittweite dann durch den Löser vorgegeben wird (wahrsch. 1/1000s).

Wenn ich's dann mal raushab, melde ich mich
Andi
 
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.