Why in Simulink a Matlab function block changes its output when changing the solver?
1 次查看(过去 30 天)
显示 更早的评论
Hello,
I have in Simulink a Matlab function block with some equations written inside.
The problem comes when I change the solver from ODE1 (Euler) to ODE4 (Runge-Kutta), always using fixed step time.
How come that I get different output values if the outputs are direct equations of the inputs? Should not be they the same independently of the solver I chose?
Here the code:
function x = fcn(T, A, B, u)
persistent x_1 u_1
if isempty(x_1)
x_1 = 0;
u_1 = 0;
end
x = x_1 + T * (A * x_1 + B * u_1);
x_1 = x;
u_1 = u;
Thanks!
0 个评论
回答(1 个)
Azzi Abdelmalek
2016-4-22
编辑:Azzi Abdelmalek
2016-4-22
It happens that Simulink gives different results for different solvers, especially when the type of equations it has to solve, requires an appropriate solver. Read how to choose a solver. http://www.mathworks.com/help/simulink/ug/types-of-solvers.html
0 个评论
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!