Index exceeds array dimensions. Index value 7 exceeds valid range [1-6] for array 'u'. Error in 'control/MATLAB Function' (line 8) y=u(row,:);

2 次查看(过去 30 天)
i would out of function is 0 in 6 out all time when theta_array is empty or first colloum is [0,0,0,0,0,0]
function y = fcn(u)
persistent row
if isempty(row)
row=0;
end
row=row+1;
y=u(row,:);
end

回答(1 个)

Abhaya
Abhaya 2024-9-16
Hi Ahmed,
It looks like you're facing an issue with a persistent variable in your Simulink simulation. The error arises because the value of the variable ‘row’ exceeds the allowable limit, specifically the size of the variable ‘u’, which is 6.
This happens because ‘row’ is declared as a persistent variable. In a typical Simulink simulation, the model runs 51 iterations within a given interval. The function block is called with each iteration, and the variable ‘row’ increases each time the function block is called. By the seventh iteration, 'row' becomes 7, which results in the error.
To resolve this, you can adjust your simulation to run according to the length of the input vector. This can be achieved by modifying the value of parameter ‘fixed step size’ in model configurations to align with the size of your data.
For further information about persistent variables, please follow the MATLAB documentation for persistent variables.
To know more about Simulink model configuration, please follow the given link to MATLAB documentation for 'Manage Configuration Sets for a Model'.
Hope this helps.

类别

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

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by