• Регистрация
Элька
Элька 0.00
н/д

новый вопрос

14.07.2020
Добрый вечер всем, очень нужна ваша помощь У меня есть модель описывающая теплопередачу между некими ячейками. Когда ячейка доходит до определенной температуры она начинает гореть(тут возникает функци...

Добрый вечер всем, очень нужна ваша помощь

У меня есть модель описывающая теплопередачу между некими ячейками. Когда ячейка доходит до определенной температуры она начинает гореть(тут возникает функция горения ячейки)после того как ячейка дошла до максимальной температуры, она начинает остывать(т.е появляется снова формула теплопередачи)я написала код, но меня не устраивает результат, посмотрите пожалуйста и скажите что тут не так.Код в матлаб представлен ниже.

if(T(i,j,k)>=Tref)
Fired(i,j)=1; % началось возгорание
end
if(T(i,j,k)>=Tmax)
Fired(i,j)=2; % догорела ячейка
end

if(Fired(i,j)==1) % Проверяем идет ли горение
% если идет - включаем в уравнение добавочный член,
% описывающий "саморазогрев" ячейки
res=a*(T(i+1,j,k)-2*T(i,j,k)+T(i-1,j,k)+T(i,j+1,k)-2*T(i,j,k)+T(i,j-1,k))/(h^2);
func=@(t,Y)(A*(Y/Tref).^b+res); % определяем функцию, которая возвращает dT/dt
% T(i,j,k+1)
[Tout,Yout]=ode45(func,[0 tau],T(i,j,k)); % Находим новую температуру
res1=Yout(end);
if(res1>Tmax) % если новая температура слишком велика - ограничиваем её температурой горения
res1=Tmax;
T(i,j,k+1)=res1;
end
else
% Если не идет, то рассматриваем нормальный теплоперенос
T(i,j,k+1)=T(i,j,k)+a*tau*(T(i+1,j,k)-2*T(i,j,k)+T(i-1,j,k)+T(i,j+1,k)-2*T(i,j,k)+T(i,j-1,k))/(h^2);
end

 

Теги

    14.07.2020

    Комментарии

    • aBoomest
      aBoomest+942.89
      15.07.2020 06:14

      Узкоспециализированная тема. Лучше более конкретные вопросы. Тем более даже не ясно какие результаты и чем они не устраивают?

      PS: Это же не всесь код, а только кусок? Или не правильно думаю?

      • Элька
        Элька0.00
        15.07.2020 07:05

        Да, это кусок. Мой вопрос в том, что мне нужно подсказать какие функции могут учесть все условия. Например Если-это if, else это когда условие if не выполняется, но мне нужно добавить ещё одно условие, когда температура достигнет максимального значения, появится ещё одна функция.

        У меня описан процесс возгорания литиевых батарей. Т. Е сначала одна батарейка взорвалась, потом тепло начинает распространяться засчет теплопроводности на другие ячейки, когда температура ячеек достигнет 600 к, она взрывается, после достижения максимальной температуры(1300к)она должна начать остывать, т. К вы горела уже, т. Е опять должна пойти функция по теплопередаче.

        Мои результаты же показывают просто процесс теплопередачи и взрыва, не понимаю как добавить ещё одно условие остывания 

      • aBoomest
        aBoomest+942.89
        15.07.2020 08:29

        У меня описан процесс возгорания литиевых батарей. Т. Е сначала одна батарейка взорвалась, потом тепло начинает распространяться засчет теплопроводности на другие ячейки, когда температура ячеек достигнет 600 к, она взрывается, после достижения максимальной температуры(1300к)она должна начать остывать, т. К вы горела уже, т. Е опять должна пойти функция по теплопередаче.

        Очень интересная тема )))

        Да, это кусок. Мой вопрос в том, что мне нужно подсказать какие функции могут учесть все условия. Например Если-это if, else это когда условие if не выполняется, но мне нужно добавить ещё одно условие, когда температура достигнет максимального значения, появится ещё одна функция.

        if expression
            statements
        elseif expression
            statements
        elseif expression
            statements
        ...
        else
            statements
        end

        или оператор переключения

        switch switch_expression
           case case_expression
              statements
           case case_expression
              statements
            ...
           otherwise
              statements
        end