Error using pde.Transi​entThermal​Results (line 56) Solution does not correspond to time-dependent PDE.

1 回表示 (過去 30 日間)
I have a transient thermal script that produces this error
Error using pde.TransientThermalResults (line 56)
Solution does not correspond to time-dependent PDE.
Error in pde.ThermalModel/solve (line 119)
R = pde.TransientThermalResults(self,u,tlist);
Error in thermalmodel4 (line 328)
result = solve(thermalModelT,tlist);
I believe it may be a problem with my q func?
qFunc = @(region,state) (loadcurrentcurve(state.time)/Vcell).*...
((OCVcurve(SoCcurve(state.time))-Vcurve(SoCcurve(state.time)))+...
((state.u).*dScurve(SoCcurve(state.time))/F));
internalHeatSource(thermalModelT,qFunc);
My q function also uses the curve fitting toolbox

採用された回答

Alan Weiss
Alan Weiss 2017 年 9 月 7 日
How are you including Vcell and F in the function qFunc? Are you passing them in a nested function? Perhaps you need to refresh yourself on how to pass extra parameters. I assume that you defined your other functions such as SoCcurve and OCVcurve correctly.
Alan Weiss
MATLAB mathematical toolbox documentation
  11 件のコメント
Ben Sheard
Ben Sheard 2017 年 9 月 13 日
Hi Alan, I'm glad too, now onto my next problem!
Thank you again for your help.
Maybe a section on how to pass extra parameters into the PDE toolbox would be a good idea, especially because the toolbox stops you passing them as arguments and specifically have to be passed as parameters. Maybe a page on the error code or something just saying a link to how to pass parameters with a specific example. (Like the one you typed above)
Thank you
Ben
Ben Sheard
Ben Sheard 2017 年 9 月 13 日
Hi Alan,
Hoping you can point me in the right direction with the next step of my code.
Thank you again
Ben

サインインしてコメントする。

その他の回答 (1 件)

Svetlana Pease
Svetlana Pease 2017 年 9 月 7 日
編集済み: Svetlana Pease 2017 年 9 月 7 日
Hi Ben, I suggest checking carefully which times qFunc is using vs. the times you provide to the solve function as the tlist argument. Your definition of qFunc does not directly depend on time, as in, for example,
qFunc = @(region,state)state.time*...
My suspicion is, and I can be mistaken here, that qFunc either does not depend on time at all or there is a mismatch between the times used for qFunc and solution times you pass to solve as the tlist argument.
Regards,
Svetlana Pease
Technical Writer, MathWorks Documentation Group
  1 件のコメント
Ben Sheard
Ben Sheard 2017 年 9 月 8 日
"mismatch between the times used for qFunc and solution times you pass to solve as the tlist argument."
i suspect this is the reason too, especially with the error
Error using pde.TransientThermalResults (line 86)
The number of input solution times is not consistent with the results.
Error in pde.ThermalModel/solve (line 119)
R = pde.TransientThermalResults(self,u,tlist);
Error in thermalmodel4 (line 332)
result = solve(thermalModelT,tlist);
I just need to figure out why...
No the qfunc doesn't directly depend on time, but the SoC and V both do, therefore require time as an Input. And then qfunc directly depends on these.
I don't see why they wouldn't have the same times, I'll use the debug process Alan suggested and spend some more time on this today

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by