piecewise continuous function in SImulink

Hello!
I made a piecewise functions in Simulink:
function y = fcn(t)
y = piecewise(t < -1,-1, -1<t<1,0, t > 1,1);
pretty simple, but I got problem with output value of function.
"Simulink cannot determine sizes and/or types of the outputs for block "
How to deal with this problem?

 采纳的回答

piecewise is from symbolic toolbox. It will not work in Simulink. Use if-else block
function y = fcn(t)
if t < -1
y = -1;
elseif t < 1
y = 0;
else
y = 1;
end

2 个评论

this was my original function, but this one neither didn't work
function y = sign_with_deadzone (t,delay)
if(t > delay)
if(t > 0)
y = 1;
end
if(t < 0)
y = -1;
end
else
y = 0;
end
anyway thank you)
Is 't' the simulation time? If yes, then it will never be negative and t < 0 will never become true.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Event Functions 的更多信息

产品

版本

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by