Why do I receive an error message on bus signals when initializing my model in Simulink 6.6 (R2007a)?
3 views (last 30 days)
My model contains nested bus structures. When I initialize my model I receive the following error message:
Selected signal 'KalmanFilter.StateVector.vx[m_s]' in 'VerySimple_sceleton_fail/Filter1/Date/Bus Selector1' is not part of the bus entering the Bus Selector.
This is a known limitation in the software, and has been documented along with tips on how to resolve it in the Simulink 7.0 (R2007b) documentation under the heading 'Circular Bus Definitions.'
The updated documentation is provided below, and is followed by the command that will open the appropriate section from a MATLAB 7.5 (R2007b) command window.
Simulink uses bus block and bus signal parameter values to check for bus errors insofar as possible, but these values do not support completely rigorous checking. You can specify complete bus error checking by associating a bus object with any bus signal, Bus Creator block, or Inport block, as described in Associating Bus Objects with Model Entities.
When a bus object is associated with a model entity, any deviation from the bus properties specified in the object causes an error. The requirements specified by a bus object apply only to the entity with which the object is directly associated; they do not propagate to other entities in the model. To apply the requirements to additional entities, explicitly associate the applicable bus object with each one.
Circular Bus Definitions:
The ability to include a bus as an element of another bus creates the possibility of a loop of Bus Creator blocks, Bus Selector blocks, and bus-capable blocks that inadvertently includes a bus as an element of itself. The resulting circular definition cannot be resolved, and causes an error when you try to build the model.
The error message that appears specifies the location at which Simulink determined that the circular structure exists. The error is not really at any one location: the structure as a whole is in error. Nonetheless, the location cited in the error message can be useful for beginning to trace the definition cycle, the structure of which may not be obvious on visual inspection.
1) Begin by selecting a signal line associated with the location
cited in the error message.
2) Choose Highlight to Source or Highlight to Destination from the signal's Context
menu. (See Displaying Signal Sources and Destinations for
3)Continue choosing signals and highlighting their sources and
destinations until the cycle becomes clear.
4) Restructure the model as needed to eliminate the circular
Because the problem is a circular definition rather than a circular computation, the cycle cannot be broken by inserting additional blocks, in the way that an algebraic loop can be broken by inserting a Unit Delay block. No alternative exists but to restructure the model to eliminate the circular bus definition.