Function call failed when calling matlab function inside function block

17 次查看(过去 30 天)
clear
close all
clc
x = sym('x',[3 1],'real');
u = sym('u',[1 1],'real');
%% Plant definition
R = 0.1;
alpha = 10.4;
beta = 16.5;
rho = -1.16*x(1)+0.041*x(1)^3;
f = [alpha*(x(2)-x(1)-rho)
x(1)-x(2)-x(3)
-beta*x(2)-R*x(3)];
g = [0;1;0];
h = x(1);
C = [1 0 0];
x_dot = f+g*u;
matlabFunction(x_dot,'File','fg_chua','Vars',{[u;x]});
The function is called in a Simulink MatlabFunction block:
fg_chua_sim is defined as:
function x_dot = fg_chua_sim(ux)
x_dot = fg_chua(ux);
end
The execution of the Simulink model fails with:
Error:Function call failed.
Function ' ' (#53.41.52), line 2, column 9:
"fg_chua(ux)"
Launch diagnostic report.
Why is that?

采纳的回答

Fangjun Jiang
Fangjun Jiang 2024-4-8
编辑:Fangjun Jiang 2024-4-8
Okay, fg_chua() is generated by matlabFunction(). You need to specify the size of ux in the MATLAB Function block.
Open the MATLAB Function block Editor, click Edit Data, set the size of ux to be 4, based on the diagram.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Programmatic Model Editing 的更多信息

产品


版本

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by