Simulink cannot propagate the variable-size mode from the input

156 visualizaciones (últimos 30 días)
Mehdi
Mehdi el 26 de Abr. de 2013
My model have Matlab Embedded Fcn. It(MEF) have variable size output. The output connected to a Multiply block. When I run the model the bellow error appeared: Simulink cannot propagate the variable-size mode from the input "From1"(#) of "MMM/Subsystem/Embedded MATLAB Function2"(#18) to the input port 1 of 'example/MMM/Matrix Multiply3'. This input port expects a fixed-size mode. The variable-size mode originates from 'example/MMM/Subsystem/Embedded MATLAB Function2/ SFunction '. Examine the configurations of 'example/MMM/Matrix Multiply3' for one of the following scenarios: 1) the block does not support variable-size signals; 2) the block supports variable-size signals but needs to be configured for them.
It seems Multiply block do not accept variable size data. Help me to fix the problem.
Regards,
  1 comentario
Kaustubha Govind
Kaustubha Govind el 30 de Abr. de 2013
You need to look at the list of Simulink blocks that support variable-size signals and implement your model using one of those blocks.

Iniciar sesión para comentar.

Respuestas (1)

Will Forfang
Will Forfang el 30 de Abr. de 2013
Editada: Will Forfang el 30 de Abr. de 2013
The key phrase in your error, i think, is this:
"2) the block supports variable-size signals but needs to be configured for them."
You can right-click the matlab function block, choose explore, and set its output to a "variable size" with upper and lower bounds on its dimension.
Then many blocks will accept it.
I created a custom function whose output dimensions depend on the value of the input:
function y = fcn(u)
y=ones(5); %this creates a 5x5 matrix of ones
if u>.5
y(2,:) = [];
end %The if statement removes the 2nd row of the output if the input>.5
I have this going into a "product" block and then to a "display" block. Both are working fine and I can see the dimensions of the output in the display changing with time. Here is a screenshot of the simulink model and the model explorer with circles around the parameters that you may need to adjust:
Hope this helps,
-Will
  1 comentario
Mehdi
Mehdi el 30 de Abr. de 2013
Editada: Mehdi el 30 de Abr. de 2013
I did the same but that error persists. My matlab embedded Fcn: function y = fcn(u) %#eml y = zeros(u); http://upload.tehran98.com/img1/sclyplfdeaq2tf3uci3t.jpg take care I have used Matrix Multiply block not simple product. Actually I multiply the Matlab Embedded output by another matrix that comes from a constant block. Any comments?

Iniciar sesión para comentar.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by