For inbuilt solvers ODE23/DDE23, how to keep saving/output all solution values intermediately (eg: every 1 hour, save/output the solution instead of only after reaching tf)
조회 수: 1 (최근 30일)
이전 댓글 표시
For long run simulations, there is a chance the simulations might stop prematurely after running for a week.
tspan = [0 500];
sol = dde23(@ddefun, lags, @history, tspan);
In that case, if the simulation ends prematurely before t = 500, the above code doesn't return anything. Is there an efficient way to keep saving/outputing the sol at every value of eg., tf = [50, 100, 150...500] so that if the simulation stops, still I can use the sol values saved until that point to restart the simulation
댓글 수: 0
답변 (2개)
Bjorn Gustavsson
2021년 8월 31일
You could request output for a selected set of points in time instead of only setting the time-span:
t_all = [0:1:500];
[t_out,Y] = dde23(@ddefun, lags, @history, t_all);
You'll have to judge how many time-steps to include in t_all. It seems a bit strange to me to not get anything out after dde23 quits prematurely, in my work I typically get the [t_out,Y] output up to the point where the ode-integrating functions give up (that is admittedly the odeNN-functions, dde23 might work differently).
HTH
참고 항목
카테고리
Help Center 및 File Exchange에서 Scope Variables and Generate Names에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!