Matlab-Prozeduren und Simulink-Blöcke

Gast #3337592
Lesenswert?

Hallo,

ich bin ganz neu mit Matlab/Simulink und habe etwas Probleme, einige 
Konzepte zu erfassen (Programmiere sonst schon viele Jahre C++ etc.).

Ich möchte z.B. folgendes tun:

a.) Zwei Funktionen, eine update(x) und ergebnis(). Die Funktion 
update(x) verarbeitet x und speichert irgendwo ein Zwischenergebnis, und 
die Funktion ergebnis() liefert eben das Ergebnis und setzt das 
Zwischenergebnis wieder zurück. Also etwa so:


  a = ...;
  b = ...;
  update(a);
  update(b);
  x = ergebnis();

  c = ...;
  d = ...;
  e = ...;
  update(c);
  update(d);
  update(e);
  y = ergebnis();

Ich möchte keine Funktionen mit variablen Parametern oder so. Sondern 
das Zwischenergebnis soll zwischen den Aufrufen erhalten bleiben.


b.) In Simulink möchte ich einen Block programmieren, der auch einen 
eigenen Zustand/Zwischenergebnis hat, und mit einer festen 
Sample-Frequenz aufgerufen wird und dann eben jedesmal ein neues 
Ergebnis liefert, das aus dem aktuellen Eingangswert und dem vorherigen 
Ergebnis besteht.


Wie löse ich diese beiden Probleme? Stichwort, Hinweise zu Doku oder 
Trivial-Beispiel reichen mir vollkommen, dann kann ich schon selbst 
weiter suchen. Aber im Moment weiß ich nicht nach welchen Stichwörtern 
ich suchen soll und habe das Gefühl, dass ich konzeptionell 
Matlab/Simulink noch nicht ganz verstanden habe.
Gast #3337602
Lesenswert?

Zu b)

Matlab Function mit persistent variable. Taktrate mit Rechtsklick auf 
den Block und bei "Subsystem Parameters" einstellen. Vor und nach dem 
Block wirst du dann vermutlich rate Transition Blocks benötigen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren