Initial Condition (IC) block does not output initial state

3 次查看(过去 30 天)
I'm trying to start the simulation of my model containing an algebraic loop. In order to start it I use an Initial Condition block to assign a start value to a parameter. When running the simulation it stops immediately. It cannot solve the algebraic loop as the parameter I used the IC block for is somehow not defined. Indeed, the IC block seems not to output its initial condition at the start of the simulation. I checked this by outputting the signal values just after the IC block to the workspace. The first and only value logged is not the same as the initial condition set in the IC block.
Why is that? It seems to me that an IC block should first output its initial condition and that this value should thus be found in the signal log at t=0s
Could someone clarify what I'm doing wrong? Or could this be a bug in Simulink?

采纳的回答

Titus Edelhofer
Titus Edelhofer 2016-6-10
Hi Luca,
the algebraic loop needs to be solved by Simulink in each time step, including the very first step. The output of the IC block is used as starting point for the nonlinear solver for solving the loop. At the end of the timestep (i.e., after solving the algebraic equation), the output is usually not the value of the IC block (only in those cases, where the IC gives the correct value already, i.e., the IC block gives the result of the algebraic equation).
Hope this helps,
Titus
  2 个评论
UDIT SARASWAT
UDIT SARASWAT 2018-4-4
Hi Titus,
Does this mean that the initial value set in the IC block would always be exhausted for running the loop for the first time and the results obtained at time, t=0, would actually correspond to input signal value after first iteration ?
Regards
Udit

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 General Applications 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by