set non-tunable parameters to get rid of inferred variable size matrix error in simulink

13 次查看(过去 30 天)
I have a simulink file. And want to run a MATLAB function. Which runs fine as a script. I have then added the inputs in constant blocks in simulink and try to run it. I get the following error " 'freq' is inferred as a variable size matrix but its size is inherited or fixed. verify freq is defined in terms of non-tunable parameters or select the variable size check box and specify the upper bounds in the size box"
I am not going to change the constants during the simulation but I can't seem to get it to recognise they are non tunable parameters. I have tried taking them from the MATLAB workspace with a from workspace block. I have tried change the inputs to parameters but I can't seem to assign a value. I have tried making the permissions read only on the matlab function block. The variable size check box will not work for this sceanario
  1 个评论
Umar
Umar 2024-7-25

Hi Katherine,

It sounds like you made attempts to resolve the issue by using constant blocks, from workspace blocks, and changing inputs to parameters have not been successful. I would define 'freq' as a non-tunable parameter within the MATLAB Function block which can be achieved by using the coder.extrinsic function to declare 'freq' as an external variable. By doing so, you inform Simulink that 'freq' is a constant parameter and should not be treated as a variable size matrix during simulation. As an example,

coder.extrinsic('freq'); % Declare 'freq' as an external variable

function y = myMATLABFunction(x)

    % Use 'freq' as a constant parameter
    y = sin(freq*x); % Example operation using 'freq'

end

The above example code snippet should resolve the variable size matrix error during your simulation. Good luck!

请先登录,再进行评论。

回答(1 个)

Pramil
Pramil 2024-8-16
Hi Katherine,
I have faced a similar issue. You can follow the steps mentioned in the following MATLAB answer to resolve it:
Hope it helps.

类别

Help CenterFile Exchange 中查找有关 Simulink Functions 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by