S-Function Logical Modelisation
이전 댓글 표시
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
답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 General Applications에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!