Как преобразовать скрипт Matlab для сбора данных в Simulink? - PullRequest
0 голосов
/ 26 октября 2018

Скрипт Matlab, который я написал, будет использоваться в качестве обратной связи для моей системы управления. Я скачал библиотеку Николаса Джакобони под названием «Custom Arduino Library для HX711».

Я хочу конвертировать скрипт Matlab, который я написал Скрипт Matlab . Я также протестировал скрипт самостоятельно, и он работает.
HX711 - АЦП с усилителем с тензодатчиком.

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 .

И я запускаю Simulink в обычном режиме, и время остановки симуляции в inf возникает с ошибкой . Как мне решить эту ошибку и заставить ее работать?

С уважением,

Allan

1 Ответ

0 голосов
/ 26 октября 2018

Как минимум, вам нужно определить размер data в верхней части файла. Парсер не имеет представления о том, что возвращает read_HX711, и поэтому не может выделить память для data. Вы, вероятно, должны сделать то же самое для a и LoadCell.

То есть вам нужно что-то вроде

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

вверху файла.

Если это не сработает, то я бы посоветовал вам поместить весь вышеприведенный код в функцию в отдельном m-файле, где эта функция возвращает только вашу переменную data. Тогда в вашем блочном коде MATLAB Function достаточно одного вызова вашей новой функции (которую все равно необходимо определить как внешнюю).

...