MATLAB Answers

Benjamin Wang
0

Using merge block with bus signal inputs.

Asked by Benjamin Wang
on 16 Nov 2012

Hi, guys

I am really confused with the 'If/else -> Action -> Merge' pattern in Simulink, especially when working with Bus Signals.

Say, I created a bus with two members, 'a' and 'b', both are scalars with initial value of 0. I want to repeatedly increase 'a' by 1 when it is less than 5, and otherwise do nothing.

I know I could have merged the member 'a' rather than the whole bus signal. It's just an over-simplified version of my real work, which does lots of stuff in the 'If Action Subsystem'.

I was gonna upload a .mdl file to demonstrate my question more clear. Then I found that there is no way to do that here. So, for short, my question is: how to merge bus signals?

Thanks!

Ben

  0 Comments

Products

1 Answer

Answer by Kaustubha Govind
on 16 Nov 2012
 Accepted answer

The Merge block does support bus signals. Look for the section called Bus Support in the documentation.

  2 Comments

Thank you Kaustubha. Sorry, I'm late.

I knew that the Merge block supports bus signals. But I couldn't make it work in a straight forward way. Then I found out that I had to put a 'Signal Conversion' block in each 'If Action Subsystem', with its 'Output' parameter setting to 'Bus Copy'. Now my model works fine.

Great! Thanks for posting your solution.


Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!