Hi Peter,
I understand that you are trying to separate a three-phase signal using the Simulink “Demux” block and are encountering the error - “Signal name 'signal' doesn't match with the signal name 'vabc1' specified at port 1“. Furthermore, you are seeking assistance regarding the following queries:
- What logic does “Demux” block uses to separate signals or waveforms?
- How can you resolve the error you encountered while running your model?
Addressing your first query, when using the “Demux” block to extract elements from a vector input, we can use positive values in the “Number of outputs” parameter in “Block Parameters” to specify exact sizes for some outputs and ‘-1 ‘to let the block dynamically determine the size for that port.
Here is how it works:
If you have a vector ‘[a, b, c, d, e]’ and configure the “Demux” block “Number of Outputs” parameter with [2, -1, -1]:
- The first port will get 2 elements ([a, b]).
- The remaining 3 elements ([c, d, e]) will be evenly distributed among the other two ports ([c, d] and [e]).
- If you are not specifying output size configuration, “Demux” evenly distributes elements among all the ports. E.g. if you have [a b c d e] and 3 ports, ([a, b]), ([c, d]) and ([e]) will be distributed among the ports.
Refer to the following documentation link of “Demux” block for more detail:
Regarding your second query, the error you encountered can be resolved by ensuring the following steps:
- Ensure that input signal to the “Demux” block is a correctly formatted vector. For a three-phase signal, this should be a 1x3 vector. Also, ensure that the names of the signals should match exactly what the “Demux” block expects.
- Set number of outputs of “Demux” block to 3. If you configure it for two outputs, it will not know how to handle the third element, leading to errors.
- If you are using a "Bus Selector", ensure that the bus contains the signals you are trying to select and that the signal names match exactly.
Hope it helps.
Regards,
Shubham