Guten Abend! Ich hoffe Ihr könnt mir bei der folgenden Problemstellung behilflich sein, da ich mit den vorhandenen Simulinkblöcken nicht das von mir gewünschte Verhalten hinbekomme. Ich möchte eine Berechnung einmalig starten nachdem ein Pulssignal detektiert wurde (z.b. nach der ersten steigenden Flanke). Bei weiteren Flankenwechsel gleichen Typs (zweite, dritte, vierte, etc. steigende Flanke) soll diese Berechnung jedoch nicht gestartet werden! Daher kann ich kein triggerd Subsystem nutzen, da nach meinen Testerkenntnissen eben das Subsystem beim nächsten Flankenwechsel wieder aktiviert wird. Nun möchte ich außerdem die Berechnung wieder nach bestimmten Kriterien (bzw. Abhängig von anderen Signalwerten oder nach einer definierten "Pufferzeit") wieder starten. So bei meinen bisherigen Tests habe ich versucht den Zustand "Subsystem einmalig ausgeführt/nicht ausgeführt" auf irgendeine Weise zu speichern und dies als Kriterium zu nutzen um das Signal für den Trigger (oder Enable) freizuschalten. Allerdings beißt sich da auch die Katze in den Schwanz und ich bekomme eine Race Condition oder der zweite Fall, dass Subsystem ist nur kurz aktiv kann wohl nicht die komplette Berechnung in einem Step Durchführen (zumindest scheint das Subsystem für mich inaktiv zu sein?). So hab ich irgendetwas übersehen oder liege ich zumindest mit meinen Beobachtungen richtig und wie nun das Problem lösen? Ich habe mal ein Beispiel angehängt und hoffe Ihr könnt mir vielleicht weiterhelfen wie ich dieses Problem lösen kann.
> dass Subsystem ist nur kurz aktiv kann wohl > nicht die komplette Berechnung in einem Step > Durchführen Ich bin zwar nicht sicher, aber ich denke, Simulink sollte die ganze Berechnung in einem Schritt machen. > Allerdings beißt sich da auch die Katze in den > Schwanz und ich bekomme eine Race Condition Meinst du, wenn du einen Ausgang 'System abgearbeitet' wieder auf den Eingang zurückführst? Dabei könnte ein einfaches (diskretes?) Verzögerungsglied in der Rückkopplung helfen. In deinem Beispiel hast du ein Enabled Subsystem. Ich denke, du solltest bei dem Triggered Subsystem bleiben.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.