Ich versuche initialisieren eine benutzerdefinierte Funktion zu machen, ist Simulink die Wie eine Variable in einer benutzerdefinierten MATLAB-Funktion (Simulink)
so etwas wie diese
function [minTR,maxTR,out] = Temperature(u)
[minTR] = min(u);
[maxTR] = max(u);
if((maxTR - minTR > 1.5))
out = 1;
else
out = 0;
end
end
sieht Wo
u
eine für jede Abtastzeit 1200x1 Array , jetzt ist das Problem, ich will ist, wenn diese Bedingung
if((maxTR - minTR > 1.5))
gilt, will ich die
out
bleiben 1, bis der Unterschied zwischen Maximum und Minimum weniger als sagen wir 0,7, mein Plan war, eine
flag
setzen, die ich in der Bedingung zu setzen würde werde 1, so wird mein anderer Code ungefähr so aussehen:
else if((maxTR - minTR < 1.5) && flag == 0)
out = 0;
end
aber das Problem ist die Initialisierung, ich muss dieses Flag einmal initialisieren, aber simulink führe diese ganze Funktion für jede Abtastzeit aus und das Flag würde immer wieder reinitialisiert werden, weiß jemand was ich tun kann, um das zu erreichen?
Was Sie tun, ist ein Vergleich und Hysterese in Serie. Verwenden Sie bereitgestellte Blöcke. – percusse