exponenta event banner

Обработка полезных данных сообщений с использованием системного блока MATLAB

В этом примере показано, как отправлять, получать и обрабатывать сообщения с помощью системного блока MATLAB. Используйте системные объекты для создания блоков для моделирования пользовательского поведения при отправке и получении сообщений, а также для управления полезной нагрузкой сообщений.

Загрузить и открыть модель

Откройте модель системы отправки и получения сообщений. Эта модель содержит генератор случайных чисел в качестве источника данных. На основе этих данных отправитель сообщений посылает сообщение с синусоидальной полезной нагрузкой в блок очереди. Блок очереди сохраняет сообщения, и получатель сообщения преобразует сообщение обратно в данные.

open_system('slexMessageArrivalExample');

Использовать getInterfaceImpl API системного объекта для указания портов сообщений

getInterfaceImpl используется в этом примере для определения портов ввода и вывода сообщений в системном блоке MATLAB как для отправителя сообщения, так и для получателя сообщения. Для отправителя сообщения, getInterfaceImpl используется для определения вывода системного блока MATLAB в виде сообщения. Это действие предлагает объекту System создать вывод сообщения. Для получателя сообщения, getInterfaceImpl используется для определения ввода системного объекта в виде сообщения, а вывода в виде данных.

%Function to send messages
function interface = getInterfaceImpl(~)
    import matlab.system.interface.*;
    interface = Output("Out1", Message);
end
%Function to receive messages and output as data
function interface = getInterfaceImpl(obj)
    import matlab.system.interface.*;
    interface = [Input("In1", Message), ...
        Output("Out1", Data), Output("out2", Data)];
end

Установка распространителей и времени выборки

В отправителе сообщений необходимо установить следующие четыре распространителя: getOutputSizeImpl, getOutputDataTypeImpl, isOutputComplexImpl, isOutputFixedSizeImpl.

В этом примере очередь сообщений имеет максимальную емкость 16 сообщений. Генератор случайных чисел имеет время выборки 0,1. Приемное устройство имеет время выборки 1. Время выборки приемника сообщений устанавливается в системном блоке MATLAB с помощью getSampleTimeImpl API.

function sts = getSampleTimeImpl(obj)
    sts = createSampleTime(obj,'Type','Discrete', ...
    'SampleTime',obj.SampleTime);
end

Моделирование модели и анализ результатов

В блоке «Область» отображаются результаты. Эти результаты показывают, что при выполнении большего количества моделирования генератор случайных чисел создает число, превышающее 0 50% времени, как и ожидалось.