Ошибка памяти Simulink в режиме обработки кадров

Ошибка: не удается передать покадровый сигнал через вход «MATLAB Function5», потому что этот вход

ожидает сигнал на основе выборки. Сигнал на основе кадра исходит от 'mzmzmzcpy/MATLAB

Функция5/ SFunction '. Рассмотрите возможность вставки Unbuffer в путь прохождения сигнала.

Я использую обработку на основе кадров, я сохраняю весь кадр в памяти и хочу прочитать этот кадр

в то время, когда мне это нужно на входе того же блока, но каждый раз, когда я получаю эту ошибку, я пробовал

блоки "память" и "память хранилища данных", может ли кто-нибудь помочь мне узнать, как я могу изменить

режим выборки ввода, поскольку я пытался использовать блок «конвертер», чтобы изменить вывод «прочитанных данных».

memory» для вывода кадра, даже тогда я обнаружил ту же ошибку (невозможно распространить на основе кадров

сигнал через вход «MATLAB Function5», потому что этот вход ожидает сигнал на основе выборки), затем

Я пытался использовать буфер, но потом обнаружил ошибку, указанную в начале этой заметки.


person Saira Bashir    schedule 05.09.2013    source источник


Ответы (1)


Определили ли вы выходные данные вашего блока MATLAB Function «MATLAB Function5» как основанные на кадрах, а не на выборках? См. редактор функциональных блоков MATLAB в документации для более подробной информации.

РЕДАКТИРОВАТЬ: Если я правильно понял, из вашего изображения похоже, что проблема связана с сигналом, выходящим из блока памяти. Я думаю, что блоки памяти не поддерживают сигналы на основе кадров (по крайней мере, из того, что я вижу в документации). Как предложено в комментариях, попробуйте вставить блок спецификации сигнала перед подачей сигнала в блок MATLAB Function, чтобы обеспечить сигнал на основе кадра. В противном случае, я не уверен, вы можете обратиться за помощью в MathWorks.

person am304    schedule 05.09.2013
comment
Да, ранее я определял только вывод фрейма данных как основанный на кадрах, но теперь я попытался использовать все выходные данные как основанные на кадрах, хотя они были либо флагами, либо числами, хотя я получаю ту же ошибку: Ошибка интерфейса функции MATLAB: - Cannot распространяйте основанный на кадре сигнал через вход 'MATLAB Function2', потому что этот вход ожидает основанный на выборке сигнал. Сигнал на основе кадра исходит от 'mzk/MATLAB Function2/SFunction'. Рассмотрите возможность вставки Unbuffer в путь прохождения сигнала. - person Saira Bashir; 05.09.2013
comment
Было бы полезно увидеть код в ваших различных блоках MATLAB Function. Я подозреваю, что некоторые из функций, которые вы там используете, не поддерживают сигналы на основе кадров. - person am304; 05.09.2013
comment
Кроме того, вы пробовали блок спецификации сигнала? mathworks.co.uk/help/simulink/slref/signalspecification.html< /а> - person am304; 05.09.2013
comment
1-й блок: функция [пакет, номер_пакета1, stp] = форма_пакета (contdata, pass, номер_пакета, предыдущий пакет) %#codegen prevpack=zeros(1,256); если пройти==1 || номер_пакета==0 && номер_пакета‹1000 номер_пакета1=номер_пакета+1; пакет=контданные; еще пакет = предыдущий пакет; номер_пакета1=номер_пакета; конец, если номер_пакета›=1000 stp=1; иначе стп=0; конец - person Saira Bashir; 05.09.2013
comment
могу ли я отправить вам всю модель, это просто? - person Saira Bashir; 05.09.2013
comment
К сожалению, у меня больше нет доступа к Simulink, но было бы полезно сделать снимок экрана, показывающий, какие сигналы вызывают проблему. - person am304; 05.09.2013