如何将时间增加1秒,并用新的DT_i替换旧的DT_i

时间:2019-05-22 08:43:29

标签: matlab

我正在尝试根据在Sim4Life.上建立的模型计算DT值。首先,我想说我是一个完整的初学者,并且我试图了解编程的原理一般工作。

现在,我有一个function,其中有一些constantstwo variables,一个是时间Dt(从1秒到900秒),另一个是时间初始DT_i值。
我想计算每秒的温度升高,并创建一个循环,将DT_i值替换为DT_1_i值,并计算升高的温度DT_i_1
函数看起来像这样:DT_1_i=DT_i+Dt

我知道这是一个非常简单的问题,但是我无法解决其他类似问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

温度变化:

  • 您需要初始温度变化,我用过0

  • T(i+1)代表下一个温度变化

  • T(i)代表当前温度变化

  • i代表时间步长,dt


通读我的代码中的注释

时间

使用for loop设置时间for i = 1 : 900 %Temperature increase end

我= 1:900意味着

  • 首次运行使用时间= 1秒,

  • 第二次运行时间= 1 + 1 = 2

  • 直到900

代码如下

% Initial Temperature variation is set to zero, unless you have some data
d = 1.3;
c = 3.7;
S_i = 3*10^3;

t_reg = 900;
%Time
t = 1:900;
% Length oftime to help me know the size of the variable needed to
% initialize
l = length(t);
% Initialize variable that used to store DT  it helps speed up
% comutation
% Initial Temperature variation is set to zero, unless you have some data
DT = zeros(1, l);


for i = 1:900
    % the value of i represent dt, first run i = 1, dt = 1, second run           
    % i = 2 and dt = 2 so on 
    if i == 900
         %do nothing already reached the last index 900, i+1 = 901 will be
         %out of range
    else 
         DT(i+1) = DT(i) + (i./t_reg).*(d.*sqrt(c*S_i)-DT(i+1));
    end


end