Erroneous feedback connection involving one or more virtual blocks

20 ビュー (過去 30 日間)
Salvation
Salvation 2013 年 4 月 21 日
回答済み: Antonio Palma 2013 年 11 月 27 日
I copied a model from "Autonomie" (a software based on Simulink). After debugging it I get the error "Erroneous feedback connection involving one or more virtual blocks starting at output port 1 of buscreator_main_info_bus". I have no idea how to solve this, searched some mathworks forums, they say its a bug in Simulink. I am using Simulink version 7.6. Tried feature('BusPropagationForVBlocks', 0); It says an unknown feature was specified. Any help would be highly appreciated. Thanks

回答 (3 件)

Andreas
Andreas 2013 年 7 月 17 日
Ok, my solution was to put gain-blocks (with factor 1) between every bus-signal and to rename the signal afterwards.
Example: bus consisting of flow, roh, theta
Bus selector 1.1 --> flow --|1>--"flow"--> bus creator 1.1
Bus selector 1.2 --> roh --|1>--"roh"--> bus creator 1.2
Bus selector 1.3 --> theta --|1>--"theta"--> bus creator 1.3

Antonio Palma
Antonio Palma 2013 年 11 月 27 日
Hi, Salvation.
If the diagnostic consists of exactly of 11 (eleven) equal messages, your problem is similar to mine.
By using the help I received some years ago from the excellent Official Mathworks Service, I fixed the bug, but the real root cause is not completely clear.
I am almost sure that the problem is in the syntax that Simulink uses (and that has been changing during the years, since 2001) in propagating the line's names (i.e., the optional names you can add to every single signal's line) through "bus creator" and "bus selector" (and, probably, even "mux" and "demux" boxes, that, anyway, I never use). As you know, usually the re-naming of a signal line is often forbidden (when the line name appears automatically inside a double-crochet). But,sometimes, the re-naming of the line is obviously allowed (or even desired, as the trick of "unity gain" adding suggests).
In this way, the same signal could have, in different (part of) sub-models, a different name and, even worse, it could be named differently and (re-)enter in the same (or other ones) "bus creator" or "bus selector". So there could be some bus selectors in which the same signal could be referenced only by different names, although it is the same signal.
In order to temporarily fix the problem, a correct way is to use the "Signal Conversion" block (in its "Bus copy" mode) to break the names' loop.
This trick has, anyway, a drawback: it breaks also the traceability of a signal, letting not anymore possible to trace a signal to its source or to every its destination, stopping it, instead, just on the nearest "Signal Conversion" block itself.
A tecnique that I started to use, in the last five years, is to avoid the re-naming of signals. It seems so simple to say, but, when the systems become complex (as ones I use), so difficult to do!
I hope that my indications have been useful for you. Only, let me know if it has been so, please.
Thank you.

Andreas
Andreas 2013 年 7 月 17 日
I even get this error while using 2012b, 2013a and 2013b beta. The model worked in 2012a and I don't know what happened.
So frustrating...
  1 件のコメント
Kaustubha Govind
Kaustubha Govind 2013 年 7 月 17 日
It's difficult to say anything without looking at the model. Please consider contacting MathWorks Technical Support with the model and reproduction steps to see if they have any insight. Alternatively, you might want to contact the vendor of the model (Autonomie?).

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSimulink Functions についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by