Forum: Digitale Signalverarbeitung / DSP / Machine Learning Simulink Berechnung einmalig starten (Tigger auf Pulssignal) + Reset möglich?


von dominik (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Dussel (Gast)


Lesenswert?

> 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
Noch kein Account? Hier anmelden.