matlab 在simulink中的每个时间步更新功能块中的参数

ru9i0ody  于 2023-04-06  发布在  Matlab
关注(0)|答案(1)|浏览(282)

我有体温(1)增加或减少a(delta_T),其初始值为(T_0)和a(T_max = 100)所以我定义了(delta_T = 10或等式)和(T_0 = 20),它应该是一个循环(T = T + delta_T),它在每个时间步更新T的值。我将把这个函数放在Simulink中的一个块中。我希望结果T等于30,然后是40,50,等,直到它达到100并停止。我尝试了for和while循环,但失败了,我希望我的问题是明确的,并提前非常感谢。
我已经尝试了以下操作,但无法更新T

function [delta_T,T] = fcn(u) 
m=100; 
T = 20; 
delta_T = u/m;
T_max = 100; 
while T <= T_max 
T = T + delta_T;
end
mo49yndu

mo49yndu1#

如果您将代码包含在MATLAB函数块中,它将在每个时间步执行整个“while”循环。
将“while”循环改为

if T < T_max
T = min(T + delta_T, T_max); 
end

并且T的值将在每个时间步长更新。

相关问题