How schould the matlab function be to hold an signal between two values?
2 次查看(过去 30 天)
显示 更早的评论
I have a rising signal of a temperature. As long as the value has not reached a limit, e.g. 90%, "0" is to be displayed. If the value is reached, 1 is displayed. After that, the value can drop to e.g. 30% until "0" is output again. This is to achieve that the value remains between the two limits by the output of 0 and 1.
It is about a Simulink model and the code for it should be in a matlab-fct block.
I tried a lot with if-functions but i dont get it.
0 个评论
采纳的回答
Les Beckham
2022-10-7
编辑:Les Beckham
2022-10-7
Perhaps something like this in a MATLAB Function block?
function out = determineStatus(in)
persistent out
if isempty(out)
out = 0; % initial output value
end
% implement the hysteresis
if out = 0 && in > 90
out = 1;
elseif out = 1 && in < 30
out = 0;
end
end
4 个评论
Les Beckham
2022-10-7
编辑:Les Beckham
2022-10-7
Of course you are right (== instead of =). Thanks for pointing that out. I thought about true/false vs. 1/0 but since OP specifically asked for 0 and 1, I went with that.
Also, good call on the relay block. I knew there was a simpler way to do this with a built-in block but I don't currently have Simulink to browse through the library.
Then feed B/A into the function and change 90 and 30 to 0.9 and 0.3.
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Sources 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!