More about the Simulink algebraic loop solvers?

3 ビュー (過去 30 日間)
Jawhar Chebbi
Jawhar Chebbi 2016 年 4 月 4 日
コメント済み: Jawhar Chebbi 2016 年 4 月 7 日
Dear all
The solvers that Simulink uses to break algebraic loops seem to be really efficient.
But I need to disable the automatic algebraic loop solver and to do it by myself (by adding a memory or a low pass filter etc.) because I want to keep track of what's happening inside my implementation. The problem is that without the Simulink solver my results are really noisy (numerical damped noise oscillating at the simulation frequency, like a ringing artifact) and I cannot tolerate the error induced by this noise.
So I want to know more about the solvers that Matlab uses (the idea behind them if Mathworks cannot reveal the code), I didn't find that much about them on the net...
Any other suggestions about how to solve algebraic loops would also be really helpful, thank you very much!
Jawhar

採用された回答

Jeevan Joishi
Jeevan Joishi 2016 年 4 月 7 日
More information could be found on this link. What it says that it tries to run for some/few iterations to see if the loop can converge. If it does then good enough, but if it does not then it throws an error. It is then left to the user to add some delay/memory blocks to kind of break the loop.
Alternatively, you could set the diagnostics to error out when an algebraic loop is detected instead of giving a warning and attempting to continue forward. This will point you to the location where the loop is detected and you may then introduce some blocks manually.
Although, this link does mentions about LineSearch and TrustRegion as types of AlgebraicLoopSolver, I believe you will have to raise a query with the Technical Support to understand it better.
  1 件のコメント
Jawhar Chebbi
Jawhar Chebbi 2016 年 4 月 7 日
Thank you Jeevan for your answer.
You are right I asked the technical support yesterday and they gave some hints. I will try to understand what is done inside the solvers so that I can maybe build something similar...

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by