Limitations on the Use of SubSystems in Feedback Loops

SubSystems are specialized Containers that are completely “self-contained” so that from the outside, they behave like a single element.

That is, SubSystems are treated by other elements as if they were a single element (analogous to a complex Expression element A function element that produces a single output by calculating user-specified mathematical expressions.). This has an important implication for systems that include feedback loops. In particular, in some cases,GoldSim will not allow feedback loops to extend between SubSystems (or from one Subsystems to the main model).

As a result, if you try to create a feedback loop A looping system in which the variables in the loop represent a closed chain of cause and effect. Note that the terms “feedback” and “cause and effect” intentionally imply that the relationship between the variables is dynamic and the system changes over time (although systems with feedback loops can also reach a dynamic equilibrium). Feedback loops contain at least one state variable. by referencing a state variable The output of an element in GoldSim whose value is computed based on the historical value of the element’s inputs (as opposed to only being a function of the current value of the element’s inputs). State variables have well-defined initial conditions. Feedback loops can only be created if they contain at least one state variable. contained within one SubSystem A specialized Container that is completely “self-contained”. SubSystems can take on some useful features and properties (e.g., conditionality, having an internal clock, and being able to loop), but also have some limitations (with regard to how they can be incorporated into feedback loops). to a different SubSystem, GoldSim may not be able to create the loop (and will provide an error message).

In most cases, the most appropriate way to “close” such a loop is to insert a Material Delay A delay element that delays flows of materials (e.g., masses, volumes, items). element between the two SubSystems to connect the two elements forming the loop.