Updating Initial Conditions from last calculated values
1 次查看(过去 30 天)
显示 更早的评论
I am trying to find a way to update the initial conditions (x0=[y1,y2,y3,y4,y5]) needed for fsolve in Simulink using Matlab Function user-defined block. The initial values are defined inside the block as a numerical vector. I want the last calculated values of the block's output to be considered as its new initial values. I see fsolve solves the problem but for only some starting iterations. Any ideas to update these values? Thanks
0 个评论
回答(1 个)
Walter Roberson
2017-2-26
Make the guess a signal (or set of signals) that you input into the function block, and route the outputs back into those. You should be able to initialize them somehow.
I am not sure of the best way to initialize something like this. I know that initialization blocks exist but I have not seen how to use them. I know one way is to use a switch block that would take a constant as one input and the feed-back values as another input and use a compare on the time as the signal to decide which of the two to use. There might be a much better way than this.
2 个评论
Walter Roberson
2017-2-26
See http://blogs.mathworks.com/simulink/2015/07/18/why-you-should-never-break-an-algebraic-loop-with-with-a-memory-block/ for how to break the loop.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Sources 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!