новый вопрос
Добрый вечер всем, очень нужна ваша помощь
У меня есть модель описывающая теплопередачу между некими ячейками. Когда ячейка доходит до определенной температуры она начинает гореть(тут возникает функция горения ячейки)после того как ячейка дошла до максимальной температуры, она начинает остывать(т.е появляется снова формула теплопередачи)я написала код, но меня не устраивает результат, посмотрите пожалуйста и скажите что тут не так.Код в матлаб представлен ниже.
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
Лучший ответ
Да, это кусок. Мой вопрос в том, что мне нужно подсказать какие функции могут учесть все условия. Например Если-это if, else это когда условие if не выполняется, но мне нужно добавить ещё одно условие, когда температура достигнет максимального значения, появится ещё одна функция.
У меня описан процесс возгорания литиевых батарей. Т. Е сначала одна батарейка взорвалась, потом тепло начинает распространяться засчет теплопроводности на другие ячейки, когда температура ячеек достигнет 600 к, она взрывается, после достижения максимальной температуры(1300к)она должна начать остывать, т. К вы горела уже, т. Е опять должна пойти функция по теплопередаче.
Мои результаты же показывают просто процесс теплопередачи и взрыва, не понимаю как добавить ещё одно условие остывания
Ответы
Узкоспециализированная тема. Лучше более конкретные вопросы. Тем более даже не ясно какие результаты и чем они не устраивают?
PS: Это же не всесь код, а только кусок? Или не правильно думаю?
Да, это кусок. Мой вопрос в том, что мне нужно подсказать какие функции могут учесть все условия. Например Если-это if, else это когда условие if не выполняется, но мне нужно добавить ещё одно условие, когда температура достигнет максимального значения, появится ещё одна функция.
У меня описан процесс возгорания литиевых батарей. Т. Е сначала одна батарейка взорвалась, потом тепло начинает распространяться засчет теплопроводности на другие ячейки, когда температура ячеек достигнет 600 к, она взрывается, после достижения максимальной температуры(1300к)она должна начать остывать, т. К вы горела уже, т. Е опять должна пойти функция по теплопередаче.
Мои результаты же показывают просто процесс теплопередачи и взрыва, не понимаю как добавить ещё одно условие остывания
Очень интересная тема )))
или оператор переключения