how to check weather the values are constant or fluctuating over a period of time and give a output in one or zeros in a simulink model

2 visualizaciones (últimos 30 días)
in the above image the values are changing between 1 and 0 this is because vales are not in an increasing order
in the above image the values are constant 1 ( for 50 seconds)
i want to develop a model that can read the values till the 50 seconds and return a value of 1 if the values are flautuating like image 1 and 0 if the values remain constant (1) for fifty seconds

Respuestas (1)

Manish
Manish el 2 de En. de 2025
Editada: Manish el 2 de En. de 2025
Hi abhijeet.
I understand that you want to check whether values are constant or fluctuating during the first 50 seconds and output a 1 or 0 accordingly.
To achive this follow the below steps:
  • Add the 'MATLAB function' block to the Simulink model.
  • Implement the code in the 'MATLAB Function' block to determine if values are constant or fluctuating over 50 seconds and output the result. (See the sample code below.)
  • Connect the input signal to the 'MATLAB Function' block.
  • Add a 'Display' block to the model and connect it to the output of the 'MATLAB Function' block to visualize the result.
Here is sample code for the step 2:
function y = checkFluctuation(u)
persistent valuesArray index
% Initialize persistent variables
if isempty(valuesArray)
valuesArray = -1 * ones(1, 50); % Initialize with -1
index = 1;
end
if index <= 50
valuesArray(index) = u;
index = index + 1;
end
% Check if the array is filled
if index > 50
% Check if all values are 1
if all(valuesArray == 1)
y = 0;
% Check for alternating pattern 101010...
elseif isequal(valuesArray, repmat([1 0], 1, 25))
y = 1;
else
y = -1;
end
else
y = -1;
end
end
Refer the below links for better understanding:
Hope it helps!

Categorías

Más información sobre Interactive Model Editing en Help Center y File Exchange.

Productos


Versión

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by