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

13 views (last 30 days)
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 Comment
Umar
Umar on 25 Jul 2024

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!

Sign in to comment.

Answers (1)

Pramil
Pramil on 16 Aug 2024
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.

Categories

Find more on Simulink Functions 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!