Why do I receive "Error in port widths or dimensions"?
4 views (last 30 days)
Show older comments
I have a system as shown in the picture. y is a scalar defined in the function(also shown in picture).
However I have received such errors. Why is this happening?
Error in port widths or dimensions. Invalid dimension has been specified for 'input port 2' of 'slxlx/Add'.
Error in port widths or dimensions. 'output port 1' of 'slxlx/Transfer Fcn' is a one dimensional vector with 1 elements.
2 Comments
Infinite_king
on 5 Aug 2024
Hi 禹辰,
It looks like the dimensions of some signals are not as expected by the solver. Check the dimensions of various signals in your model and verify that they match your expectations. Focus specifically on the 'Add' block input and the 'Transfer Fcn' output, as the errors suggest issues with these blocks.
For more detailed information on how to view signal dimensions, refer to this MATLAB resource :- Signal Dimensions Display
Answers (1)
Fangjun Jiang
on 9 Aug 2024
Edited: Fangjun Jiang
on 9 Aug 2024
Simulink uses forward propagation and back propagation to determine the size of the signal. There is a conflict in this propagation in your model.
The root cause seems to be from the square "Add" block on the left. It seems to be that there is enough info to determine the size of the output of this "Add" block is 4. The size of the first input of this "Add" block is 1. The only chance that this could work is that the second input of this "Add" block is 4. But it is not. It is determined to be size 1.
Check the downstream signal of that square "Add" block. See if there is anywhere that specify that signal to be size 4. It probably should be size 1. Correct that then your model should be working properly.
0 Comments
See Also
Categories
Find more on Sources in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!