如何将数据采集 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
分配内存。您可能需要对 a
和 LoadCell
.
执行相同的操作
也就是说,你需要这样的东西,
data = zeros(1,1);
a = zeros(1,1);
LoadCell = zeros(1,1);
在文件的顶部。
如果这不起作用,那么我建议您将上述所有代码放入单独的 m 文件中的一个函数中,其中该函数 returns 只是您的 data
变量.然后在您的 MATLAB Function
块代码中只需调用一次新函数(仍需要将其定义为外部函数)。
我编写的 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
分配内存。您可能需要对 a
和 LoadCell
.
也就是说,你需要这样的东西,
data = zeros(1,1);
a = zeros(1,1);
LoadCell = zeros(1,1);
在文件的顶部。
如果这不起作用,那么我建议您将上述所有代码放入单独的 m 文件中的一个函数中,其中该函数 returns 只是您的 data
变量.然后在您的 MATLAB Function
块代码中只需调用一次新函数(仍需要将其定义为外部函数)。