Как увеличить время на 1 с и заменить старый DT_i на новый - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь вычислить значение DT из модели, которую я настроил на Sim4Life.
Во-первых, я хотел бы сказать, что я начинающий, и я пытаюсь понять, как работает программирование в целом.,

Теперь у меня есть function с некоторыми constants и two variables, один из которых является временем Dt (начиная с 1 секунды до 900 секунд), а другой является начальным значением DT_i,
Я хочу рассчитать повышение температуры для каждой секунды и создать цикл, который заменяет значение DT_i значением DT_1_i, а также рассчитывает повышение температуры DT_i_1.
Функция выглядит следующим образом: DT_1_i=DT_i+Dt.

Я знаю, что это очень простая проблема, но я не мог разобраться с другими подобными вопросами.Любая помощь будет оценена.

1 Ответ

1 голос
/ 22 мая 2019

Изменение температуры:

  • Вам необходимо начальное изменение температуры, я использовал 0

  • T(i+1) обозначает следующее изменение температуры

  • T(i) обозначает текущее изменение температуры

  • i обозначает временной шаг, dt


Прочитайте комментарий в моем коде

Время

Используйте for loop, чтобы установить время for i = 1 : 900 %Temperature increase end

i= 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...