Algebraic Loop Problem - Avoiding Algebraic Analysis

1 visualización (últimos 30 días)
Jordan Edmunds
Jordan Edmunds el 24 de Mayo de 2017
Comentada: Fangjun Jiang el 25 de Mayo de 2017
Hello,
I am trying to simulate a set of interconnected DT-LTI systems each modeled by discrete-time difference equations. I'm not exactly sure why Simulink is having an issue with this. It generates this error when I try to simulate:
Cannot solve algebraic loop involving 'test1/SingleLayer1/TLL/Product3' because it consists of blocks that cannot be assigned algebraic variables, such as blocks with discrete-valued outputs, blocks with non-double or complex outputs, Stateflow blocks, or nonvirtual subsystems. Consider breaking the algebraic loop. For example, add a delay or a memory block to the loop.
Since I am trying to model a set of discrete-time difference equations I cannot simply "add a delay" or "add a filter" or even break the loop, that defeats the whole purpose of the model. All I want is a numerical solution for the output of my simulation given an input and a set of constants that I know beforehand, and it only needs to be done all in discrete time. Is there a way to get Simulink to do this without solving things algebraically, or will I need to use other software?

Respuestas (1)

Fangjun Jiang
Fangjun Jiang el 24 de Mayo de 2017
If the contents inside the two subsystem blocks are all simple arithmetic math, then most likely the model does have algebraic loops since there are outputs crossing two subsystems and feeding back to inputs.
Search "algebraic loop" in MATLAB document to understand it. In the Simulink model, go to menu "Simulation" -> "Model Configuration Parameters" -> "Diagnostics", play with the "Algebraic loop" and "Minimize algebraic loop" settings to see if you can make the simulation.
  2 comentarios
Jordan Edmunds
Jordan Edmunds el 24 de Mayo de 2017
Editada: Jordan Edmunds el 24 de Mayo de 2017
I have tried this, unfortunately it still comes up with the error. Also, all of my signals must be complex (generally either pure real or pure imaginary), and MATLAB's loop solver can't handle that. Does this make this unsolvable?
Fangjun Jiang
Fangjun Jiang el 25 de Mayo de 2017
Can you reduce the complexity of your model yet keep the error, make them in one subsystem and post the snapshot?

Iniciar sesión para comentar.

Categorías

Más información sobre Block and Blockset Authoring en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by