2016-08-27 10 views
0

Ich habe ein Problem in Simulink, ich habe eine Variable "k" als Konstante Block (Startwert k = 1) und ich möchte "k" nach jedem Klicken auf "die Simulation Schaltfläche erhöhen "bis" k "ist 4, dann wird es wieder auf 1 gesetzt.Inkrementieren einer Variablen mit Simulink

ich versuche es schon (siehe atached Bild 1), aber in diesem Fall wird es so lange inkmermen bis die Simulationszeit beendet ist (siehe atached Bild 2) und das ist nicht was ich will.

enter image description here enter image description here

ich Hilfe vielen Dank Jay apreciate wird

Antwort

2

Wenn Sie nur den Wert jedes Mal, wenn die Simulation ausgeführt werden soll aktualisieren, ist Ihre beste Option wäre, einen Code zu setzen in der InitFcn Rückrufen.

Dies ist ein (optionaler) Codeblock, der bei jeder Initialisierung des Modells ausgeführt wird. Um dies zu tun, navigieren Sie File > Model Properties > Model Properties

Wählen Sie die Registerkarte Callbacks und dann die InitFcn Rückruf auf der linken Seite. Der folgende Code überprüft, ob k noch im Arbeitsbereich vorhanden ist, und setzt ihn, falls nicht, und erhöht ihn, falls dies der Fall ist. Wenn Sie es in den Rückruf setzen und den konstanten Blockwert auf k setzen, sollten Sie das gewünschte Verhalten erhalten.

if ~exist('k', 'var') 
    k = 1; 
else 
    k = k + 1; 
end 

if k>4 
    k = 1; 
end 
+0

Vielen Dank Khalid für die schnelle Antwort, es funktioniert :) – Sami

+1

Keine Sorgen @Sami! Bitte markieren Sie meine Antwort so, als ob sie funktioniert hätte, damit andere mit einem ähnlichen Problem es versuchen. Danke – kabdulla

+0

Schöne Lösung! :) –

Verwandte Themen