MATLAB-ADAMS FEMM联合仿真过程中如何在Simulink中使用MATLAB函数
我正在尝试做一个MATLAB-ADAMS联合仿真,它工作得很好,但我也希望 将其他部件添加到此系统。此部分获取有关ADAMS中某些点的位置的信息 我想用这些信息来画一个FEMM中的磁性问题。我已经写了一个MATLAB脚本,它用FEMM完成所有的绘图和计算。剧本本身就很好 现在因为ADAMS与Simulink合作,我将我的MATLAB脚本更改为一个函数,以在Simulink中作为MATLAB函数块实现它 并将其连接到另一部分 但我不知道如何将从ADAMS块中获得的Simulink信号传递到Simulink中的MATLAB功能块,以便 MATLAB函数(脚本调用该函数)在FEMM中创建一个几何体并计算一个新的力,该力应传递给ADAMS块 现在我有一些问题:MATLAB-ADAMS FEMM联合仿真过程中如何在Simulink中使用MATLAB函数,matlab,Matlab,我正在尝试做一个MATLAB-ADAMS联合仿真,它工作得很好,但我也希望 将其他部件添加到此系统。此部分获取有关ADAMS中某些点的位置的信息 我想用这些信息来画一个FEMM中的磁性问题。我已经写了一个MATLAB脚本,它用FEMM完成所有的绘图和计算。剧本本身就很好 现在因为ADAMS与Simulink合作,我将我的MATLAB脚本更改为一个函数,以在Simulink中作为MATLAB函数块实现它 并将其连接到另一部分 但我不知道如何将从ADAMS块中获得的Simulink信号传递到Simu
将整个脚本放在外部函数中,然后使用Exterinsic关键字从MATLAB函数块调用此函数
function out = matlab_function_block(in)
coder.extrinsic('femm_fcn');
out = zeros(size(in)); % pre-initialize out to help coder propagate
out = femm_fcn(in);
这将使MATLAB功能块能够使用MATLAB调用femm_fcn。不过,这只支持模拟,不支持独立代码生成。您好,只是一个小更新,我已经设法使函数工作(复制脚本时遗漏了一行),现在变量也被正确定义。但是现在我收到很多错误,说调用的函数失败了,或者代码生成不支持XXX。我现在可以做什么?我需要使用S函数还是其他simulink块?如果是,请告诉我在哪里可以找到一个很好的例子,定义变量,将数据分配给变量,调用函数,最后将这些函数的结果作为我的块的输出传递。感谢advanceSee coder.extrinsic文档,以检查您是否可以将其用于代码生成不支持的函数。好的,谢谢这已经帮了我一点忙,但是我尝试转换的这个脚本有很多函数,现在我必须向每个人添加coder.extrinsic。所有它所做的,它说Simulink在Matlab中做这部分(据我所知)。有没有办法让Simulink理解我想用Simulink输入运行一个Matlab脚本,并用一个命令将输出再次返回Simulink?如果我发布调用FEMM的Matlab脚本,而不是将整个脚本放在Matlab功能块中,是否有助于回答问题,将脚本放入外部函数中,然后从块中调用该函数。这样,您只需要在该函数上使用Exterinstic。