Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB-ADAMS FEMM联合仿真过程中如何在Simulink中使用MATLAB函数_Matlab - Fatal编程技术网

MATLAB-ADAMS FEMM联合仿真过程中如何在Simulink中使用MATLAB函数

MATLAB-ADAMS FEMM联合仿真过程中如何在Simulink中使用MATLAB函数,matlab,Matlab,我正在尝试做一个MATLAB-ADAMS联合仿真,它工作得很好,但我也希望 将其他部件添加到此系统。此部分获取有关ADAMS中某些点的位置的信息 我想用这些信息来画一个FEMM中的磁性问题。我已经写了一个MATLAB脚本,它用FEMM完成所有的绘图和计算。剧本本身就很好 现在因为ADAMS与Simulink合作,我将我的MATLAB脚本更改为一个函数,以在Simulink中作为MATLAB函数块实现它 并将其连接到另一部分 但我不知道如何将从ADAMS块中获得的Simulink信号传递到Simu

我正在尝试做一个MATLAB-ADAMS联合仿真,它工作得很好,但我也希望 将其他部件添加到此系统。此部分获取有关ADAMS中某些点的位置的信息

我想用这些信息来画一个FEMM中的磁性问题。我已经写了一个MATLAB脚本,它用FEMM完成所有的绘图和计算。剧本本身就很好

现在因为ADAMS与Simulink合作,我将我的MATLAB脚本更改为一个函数,以在Simulink中作为MATLAB函数块实现它 并将其连接到另一部分

但我不知道如何将从ADAMS块中获得的Simulink信号传递到Simulink中的MATLAB功能块,以便 MATLAB函数(脚本调用该函数)在FEMM中创建一个几何体并计算一个新的力,该力应传递给ADAMS块

现在我有一些问题:

  • 甚至可以运行这样的模拟吗?Simulink必须等到FEMM完成计算后,才能将函数的输出值传递给ADAMS

  • 如何从Simulink中的MATLAB函数块中调用一些MATLAB函数(脚本中的函数)。因为现在Simulink告诉我它不知道这个函数

  • 如何在MATLAB功能块中定义变量,以便Simulink能够正确使用它们


  • 将整个脚本放在外部函数中,然后使用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。