【发布时间】:2016-09-06 08:46:12
【问题描述】:
我正在尝试使用户定义的函数是 simulink,它看起来像这样
function [minTR,maxTR,out] = Temperature(u)
[minTR] = min(u);
[maxTR] = max(u);
if((maxTR - minTR > 1.5))
out = 1;
else
out = 0;
end
end
u 是每个采样时间的 1200x1 数组,现在我想要的问题是,如果这个条件 if((maxTR - minTR > 1.5)) 成立,我希望 out 保持 1,直到最大值和最小值之间的差小于假设 0.7 ,我的计划是设置一个 flag ,我将其设置为 1 ,所以我的 else 代码看起来像
else if((maxTR - minTR < 1.5) && flag == 0)
out = 0;
end
但问题是初始化,我必须初始化这个标志一次,但是 simulink 为每个采样时间运行整个函数,并且标志会一次又一次地重新初始化,有谁知道我能做些什么来实现这一点?
【问题讨论】:
-
您所做的是串联比较和滞后。使用现成的积木。
标签: matlab function user-defined-functions simulink