piecewise continuous function in SImulink

9 visualizaciones (últimos 30 días)
Mikhail Fedkin
Mikhail Fedkin el 7 de Nov. de 2020
Comentada: Ameer Hamza el 7 de Nov. de 2020
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?

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 7 de Nov. de 2020
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 comentarios
Mikhail Fedkin
Mikhail Fedkin el 7 de Nov. de 2020
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)
Ameer Hamza
Ameer Hamza el 7 de Nov. de 2020
Is 't' the simulation time? If yes, then it will never be negative and t < 0 will never become true.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Event Functions en Help Center y File Exchange.

Productos


Versión

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by