MATLAB Answers

How to connect bus signal with different data size using multiport switch?

3 views (last 30 days)
And Meng
And Meng on 29 Dec 2020
Commented: And Meng on 4 Jan 2021
Hi,
I have two subsystems, and I want to minimized the data size for the signal that is been transfered in between the subsystems. The following figure shows the ideal case. When Constant1 = 1, the first signal with size {1} is transmitted; when Constant1 = 2, the second signal with size {2} is transmitted; Unfortunately, there will be error pop-up regarding to data size mistmatching in this model, which is attached. How could I solve this error or is there other approach to minized this data size. Noted that the constant value should be constant during the simulation.
Regards,
Andy

Accepted Answer

Mark McBroom
Mark McBroom on 4 Jan 2021
I made a number of changes to your model, most importably was to remove mux blocks. Mux blocks should not be used. Use Vector/Matrix concat blocks to create vectors/matrices, use Bus Creater blocks to create buses.
  1 Comment
And Meng
And Meng on 4 Jan 2021
The Vector concat approach works great. In case of the bus creater, I wasn't able to use bus selector on the signal receving end, but I found this: https://www.mathworks.com/matlabcentral/answers/93227-is-it-possible-to-use-a-multiport-switch-to-select-between-several-buses-in-simulink-6-1-r14sp1. Both approachs work good to me. Thank you Mark.

Sign in to comment.

More Answers (1)

Mark McBroom
Mark McBroom on 1 Jan 2021
On the Multi-port switch block, on the Signal Attirbutes tab, check the box "Allow different data input sizes".
  1 Comment
And Meng
And Meng on 4 Jan 2021
Thank you for your reply, but if using this approach the bus selector cannot accurately capture the virtual bus signal. Would there be other approach to deal with this data size? I have also attached the model for your reference.

Sign in to comment.

Products


Release

R2015b

Community Treasure Hunt

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

Start Hunting!