如何将M文件调用为Simulink模型?

时间:2018-12-18 13:44:53

标签: matlab arduino simulink

我从link中获得了一个脚本,它可以在MATLAB中正确运行。但是,当我创建Simulink模型时,它可以正常运行,但是我可以从m文件中获取数据。

MATLAB脚本:

function data = Loadcell()
    eml.extrinsic('arduino','addon','read_HX711')
    a = arduino('COM5','Mega2560','libraries','ExampleAddon/HX711');
    while 1
        LoadCell = addon(a, 'ExampleAddon/HX711',{'D2','D3'});
    data = read_HX711(LoadCell)
    end
end

Simulink功能

function data = Loadcell()
    coder.extrinsic('Loadcell');
    Loadcell = zeros('double');
    data = zeros('double');
    data = Loadcell
end

我使用Arduino在外部模式下运行Simulink,但没有从该代码中获取数据。如何使用那个MATLAB脚本在Simulink块模型中使用它并获取数据?

1 个答案:

答案 0 :(得分:1)

最有可能是几个问题

  1. 在Simulink中将嵌入式MATLAB函数命名为与MATLAB函数相同。 (您希望Simulink知道应该调用哪个函数?MATLAB函数,还是重新输入Embedded MATLAB函数?)

  2. Loadcell定义为extrinsic函数,然后将其重新定义为双0.0,然后尝试将其作为函数执行。

我怀疑你想要类似的东西,

function data = Loadcell_Wrapper()
    coder.extrinsic('Loadcell');
    data = zeros(1,1,'double');
    data = Loadcell()
end

(也是,这不是您的问题的一部分,但是MATLAB代码中没有无限循环吗?)