4.0 | 1 rating Rate this file 12 Downloads (last 30 days) File Size: 5.83 KB File ID: #37232

Dynamically create a bus testing harness in Simulink



Dynamically create a test harness in Simulink given a bus object with arbitrary underlying structure

| Watch this File

File Information

This script will dynamically create a test harness in Simulink for a bus object of arbitrary nesting structure. To use the script just update the first two lines of the Initialization section to use the name of your main bus object.

The script works by starting with the top level bus object and looping through its elements. For any elements that are not bus objects, it will add a Constant block to the model and copy over the data type and signal size. For elements that are nested bus objects, it adds a Bus Creator block, sets it to use the bus object as a nonvirtual bus, and increments a counter to loop back through the new bus's elements. Each new block is connected to the Bus Creator above it in the hierarchy when it is added to the model. The blocks are then repositioned for visual clarity. Finally the model is updated to check if there were any problems with the setup.

A mat file with a sample set of nested bus objects is included. Load the mat file into the workspace then run the script to see it work with the sample bus objects.

Required Products Simulink
MATLAB release MATLAB 7.14 (R2012a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (3)
02 Jul 2012 Gernot

Code documented well and nice simple example how to distribute the blocks.

The script defines all variables in the main Matlab workspace. Possibly, a function would be an idea.

26 Jun 2012 Adam Filion

Hi Gernot,

Thanks for pointing out that blog post. You're correct that there's a very simple solution pointed to in that post that will take care of checking initialization. However in that example you are initializing the bus through a constant block, so you can't use non-constant signals to check simulation behavior. In the attached file you could easily swap out the constant blocks for something else.

I originally built this such that it used sine blocks instead of constants, and read in the appropriate frequency and amplitudes from another source, but decided to reduce it to just constants to simplify the example. Once you get the hang of how the sorting works and using the Simulink API to construct a model, it's fairly easy to expand this example to more complex situations.


26 Jun 2012 Gernot

Great because I've been looking for an example building and connecting simulink blocks.
But is this problem not solved since 2010a?

Contact us