Algebraic Loop Problem - Avoiding Algebraic Analysis

7 vues (au cours des 30 derniers jours)
Jordan Edmunds
Jordan Edmunds le 24 Mai 2017
Commenté : Fangjun Jiang le 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?

Réponses (1)

Fangjun Jiang
Fangjun Jiang le 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 commentaires
Jordan Edmunds
Jordan Edmunds le 24 Mai 2017
Modifié(e) : Jordan Edmunds le 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 le 25 Mai 2017
Can you reduce the complexity of your model yet keep the error, make them in one subsystem and post the snapshot?

Connectez-vous pour commenter.

Catégories

En savoir plus sur General Applications dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by