S-Function Logical Modelisation
4 views (last 30 days)
Show older comments
Hello Every Body,
I'm starting to develop in Matlab Language to translating some Simulink code into S-Function. My first library is to check the varaition of my input signal. In the picture, I check if the old value of the input is for exemple False, and the new alue of the input is True, then the output is true. If the old input is an other value, and the new input is True then the output is false because I just Check if the Input change False to True.
The picture in my post is my simulink model. Here is the Simulink S-Function
function [output, oldInput_Out, change, FlagDetectChange_Out]= fcn(Init,input,oldInput_In, FlagDetectChange_In)
INITIAL_VALUE = 0;
FINAL_VALUE = 1;
OTHERS_VALUE = 2;
Changed = 1;
NoChanged = 0;
False = 0;
True = 1;
if (Init)
output = 0;
oldInput_Out = 0;
change = uint8(NoChanged);
FlagDetectChange_Out = False;
else
if (((oldInput_In==INITIAL_VALUE) || (oldInput_In==FINAL_VALUE))&&((input==INITIAL_VALUE)||(input==FINAL_VALUE)))
change = uint8(xor(input, oldInput_In));
else
change = uint8(OTHERS_VALUE);
end
if (FlagDetectChange_In== False && change==NoChanged && oldInput_In==INITIAL_VALUE && input==INITIAL_VALUE)
output = 0;
FlagDetectChange_Out = False;
elseif (FlagDetectChange_In== False && change==Changed && oldInput_In==INITIAL_VALUE && input==FINAL_VALUE)
output = 1;
FlagDetectChange_Out = True;
elseif (FlagDetectChange_In== True && change==Changed && oldInput_In==INITIAL_VALUE && input==FINAL_VALUE)
output = 1;
FlagDetectChange_Out = True;
elseif (FlagDetectChange_In== True && change==NoChanged && oldInput_In==FINAL_VALUE && input==FINAL_VALUE)
output = 1;
FlagDetectChange_Out = False;
elseif (FlagDetectChange_In== False && change==NoChanged && oldInput_In==FINAL_VALUE && input==FINAL_VALUE)
output = 1;
FlagDetectChange_Out = False;
elseif (change==OTHERS_VALUE)
output = 5;
FlagDetectChange_Out = False;
else
output = 5;
FlagDetectChange_Out = False;
end
oldInput_Out = input;
%FlagDetectChange_Out = double(change);
end
end
Answers (0)
See Also
Categories
Find more on General Applications in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!