|
|
Timer von vorne starten, wenn Flag gesetzt wird |
|
floetix |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.09.2022, 14:41
Titel: Timer von vorne starten, wenn Flag gesetzt wird
|
|
Hallo,
ich habe ein Fahrzyklus über Simulink mit der 1D-lookup table implementiert. Als Eingangswert habe ich die "Clock" also die aktuelle Simulationszeit genommen.
Jetzt möchte ich den Eingang so ändern, dass der Timer bzw. die Clock immer bei Null beginnt, wenn mein Flag = 1 ist. Sobald das Flag = 0 soll der Timer anhalten und auf Null zurück gesetzt werden.
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 05.09.2022, 15:14
Titel:
|
|
Hallo,
mir ist nicht bekannt, dass Clock direkt zurückgesetzt werden kann.
Machen flag==0 und flag == 1 nicht im Endeffekt das gleiche?
Ich würde den Timer als Clock - Offset umsetzen, wobei Offset eine auf 0 initialisierte persistent Variable ist. Wenn Timer zurückgesetzt werden soll, aktualisierst du Offset auf die momentane Clock.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
floetix |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.09.2022, 16:20
Titel:
|
|
Hallo Harald,
vielen Dank für deine Antwort.
Das ist eine gute Idee. Was ist eine persistent Variable?
Wenn ich die Matlab Function in Simulink nutze um die Abfrage als C-Code zu implementieren muss ich die Variable offset und timer initialisieren.
Wie initialisiere ich die Variablen, wenn das fixed-point format verwendet wird?
Wenn ich das wie folgt Initialisiere erhalte ich immer einen Fehlercode
Viele Grüße,
Louisa
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 05.09.2022, 18:26
Titel:
|
|
Hallo,
eine persistent - Variable behält von einer zur nächsten Blockausführung ihren Wert. Hier ein Beispiel:
https://www.mathworks.com/help/simu.....persistent-variables.html
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
floetix |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.09.2022, 10:33
Titel:
|
|
Hallo,
vielen dank für die Hilfe.
Mein Code sieht aktuell so aus:
Allerdings bin ich auf ein weiteres Problem gestoßen:
Aktuell wird immer der erste offset übernommen, der definiert wurde. Der offset soll aber bei jedem erneuten setzen der flag einen neuen Wert zugewiesen bekommen.
Wie lässt sich die persistent variable zurücksetzen?
Über die clear function funktioniert das bei mir nicht.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 06.09.2022, 12:23
Titel:
|
|
Hallo,
ich würde Offset auf 0 initialisieren.
Wenn du den Offset aktualisieren willst, dann kannst du das "ganz normal" machen:
Durch die Deklaration als persistent bleibt dieser Wert dann erhalten, wenn der Block das nächste Mal ausgeführt wird.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|