Algebraic Loop Problem - Avoiding Algebraic Analysis

1 Ansicht (letzte 30 Tage)
Jordan Edmunds
Jordan Edmunds am 24 Mai 2017
Kommentiert: Fangjun Jiang am 25 Mai 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?

Antworten (1)

Fangjun Jiang
Fangjun Jiang am 24 Mai 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 Kommentare
Jordan Edmunds
Jordan Edmunds am 24 Mai 2017
Bearbeitet: Jordan Edmunds am 24 Mai 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 am 25 Mai 2017
Can you reduce the complexity of your model yet keep the error, make them in one subsystem and post the snapshot?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Block and Blockset Authoring finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by