Matlab-Prozeduren und Simulink-Blöcke

Gast #3337592
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
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

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.