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 次查看(过去 30 天)
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

回答(1 个)

Manish
Manish 2025-1-2
编辑:Manish 2025-1-2
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!

类别

Help CenterFile Exchange 中查找有关 Interactive Model Editing 的更多信息

产品


版本

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by