Updating Initial Conditions from last calculated values
조회 수: 2 (최근 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!