如何将数据采集 Matlab 脚本转换为 Simulink?

How to convert a data acquisition Matlab script to Simulink?

我编写的 Matlab 脚本将用作我的控制系统的反馈。我已经下载了一个由 Nicholas Giacoboni 完成的名为“HX711 的自定义 Arduino 库”的库。

我想转换我写的 Matlab 脚本 Matlab script。我也自己测试了脚本并且它有效。
HX711是一款称重传感器放大器ADC转换器。

function data = Loadcell()
eml.extrinsic('arduino','addon','read_HX711')

a = arduino('COM5','Mega2560','libraries','ExampleAddon/HX711');
scale = -338000;
while 1
    LoadCell = addon(a, 'ExampleAddon/HX711',{'D6','D5'});
    data = (read_HX711(LoadCell)-7388092)/scale
    
end
end

此时simulink的布局Simulink function block.

而我 运行 Simulink 的正常模式和仿真停止时间在 inf 它得出了这个 error。我该如何解决这个错误并让它正常工作?

此致,

艾伦

您至少需要在文件顶部定义 data 的大小。解析器不知道 read_HX711 returns 是什么,因此无法为 data 分配内存。您可能需要对 aLoadCell.

执行相同的操作

也就是说,你需要这样的东西,

data = zeros(1,1);
a = zeros(1,1);
LoadCell = zeros(1,1);

在文件的顶部。

如果这不起作用,那么我建议您将上述所有代码放入单独的 m 文件中的一个函数中,其中该函数 returns 只是您的 data 变量.然后在您的 MATLAB Function 块代码中只需调用一次新函数(仍需要将其定义为外部函数)。