I need help for a very simple function in Matlab

1 view (last 30 days)
In the picture a part of my simulink model is shown. It works like this:
"Data" is what is sent from serialport. "Status" is 1 when there is data on serialport and 0 when there is not any data sent.
When I start simulation, if there is data sent "Data" has the value of it. When there is not any data sent "Data" sends 0 as output.
What I want it to do is "If there is any data, give "y" the value of sent data. If there is no data sent keep "y" as the previous value"
So I added my own User Defined Function
function y = fcn(u,x)
if (x == 0)
y = y;
else
y = u;
end
end
But this gives me the error says "y" is not defined. How can I achieve this simple solution wiht or without any user defined function? Can somebody, please, figure it out? Thanks in advance

Answers (1)

the cyclist
the cyclist on 16 Mar 2014
You have not input the previous value of y to fcn(), so at the line
y = y;
the value is unknown. You need something like
function y = fcn(u,x,y0)
if (x == 0)
y = y0;
else
y = u;
end
end
where y0 is the prior value of y.

Categories

Find more on MATLAB Support Package for Arduino Hardware in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!