Bus Selector 500 signal limit workaround? (Simulink)

6 views (last 30 days)
Hello, I have a large model with a significant number of unique signals. I have been trying to keep them in a single bus, without a hierarchy (so that I can preserve my naming conventions. This is how I had planned to execute this. (Hope that it makes sense.)
(top level)
  • inport[1..N] > Goto[1..N] (a lot of these)
(sub level - Bus creation)
  • From[1..400] > BusCreatorA
  • From[400..N] > BusCreatorB (This is repeated with breaks at 400 signals so that I could automate it. But because of the automation, I do not know which signals belongs to BusCreatorA [Do to find_system alphabetizing?])
  • BusCreatorA..X > BusCreator_out > Goto_in
(Main System)
  • From_in > BusSelector (output as bus, removing hierarchy)> 'stuff'
  • 'stuff' > BusCreator_out > Goto_out (I would like to have all my signals in a 'pool' before working on the signals. The problem is after the [From_in], I have the signals in 400signal buses but want them in the same level, so use a BusSelector to remove the hierarchy. The BusSelector doesn't like that.)
(top level)
  • From_out> BusSelector(individual signal names) > outport[1..N](a lot of these as well)
At first, Matlab gave me a recursion limit error, and didn't let me choose more than 500. So I applied the suggestion in the error box. set(0,'RecursionLimit', 2000) At first I thought this worked, as I could put everything into the BusSelector, and out as a bus. But realized after saving, closing Matlab and opening, that it does not apply and was reset to 500, and just cut my signal list off. [Also tried saving then setting the recursion limit before opening the model, but that did not help.]
I then tried to manually group the signals logically, but found that some of the groups go over 500 signals as well.
Is there any way to go over the 500 signal limit for a BusSelector? Or a way to remove the hierarchy in a Bus without using a BusSelector? (Any suggestions on architecture?)
Simulink 6.6 / Matlab 2007a

Accepted Answer

Albert Yam
Albert Yam on 27 Oct 2011
Found a workaround.
The limitation is with the BusSelector Only. So for me, the step where I split up the inputs into 400 signal BusCreators, I just make 'One really large BusCreator.' The model is very messy (that subsystem anyways), but all the signals are in the 'pool'. Also used inports to pass them into functions to reduce the use of Bus Selectors.

More Answers (0)

Categories

Find more on Programmatic Model Editing in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!