Используйте MATLAB для использования ваших данных IoT в реальном времени
Если вы когда-либо выполняли анализ данных с датчика или другого типа источника данных, вы, скорее всего, следовали процессу, в котором вы собираете данные, вы конвертируете данные, а затем используете MATLAB для обработки и анализа данных. Использование MATLAB для анализа данных - очень известный инструмент для выполнения этой задачи. Сбор и преобразование данных, чтобы их можно было использовать в MATLAB, может занять огромное количество времени. Благодаря интеграции, выполненной MathWorks, теперь можно легко подключить MATLAB к оперативным данным, которые публикуются и на которые подписываются в DDS. Поскольку MATLAB является одним из лучших инструментов, используемых для анализа данных, а DDS быстро становится промежуточным программным обеспечением передачи данных приложений IIoT, эта интеграция позволит разработчикам очень быстро создавать прототипы и анализировать тесты. В этом сообщении блога будет рассмотрено несколько примеров того, как публиковать данные DDS, а также как подписаться на данные DDS с помощью MATLAB.
Начало работы
Для начала вам необходимо убедиться, что на вашем компьютере установлены и MATLAB, и RTI Connext DDS. Для этого набора примеров были использованы следующие версии:
- MathWorks MATLAB R2016b
- MathWorks DDS Blockset 2.9.2
- RTI Connext DDS 5.2.3 (видеоурок - установка для Linux и Windows)
- Демонстрационное приложение RTI Shapes (устанавливается с Connext DDS; см. руководство здесь).
- ПК с Windows 10
После того, как вы их установили, просто просмотрите видео по этой ссылке, чтобы завершить и проверить установку:Видео по установке
Инициализация
После того, как вы все установили и проверили, остается всего несколько шагов, чтобы правильно настроить DDS в MATLAB.
- Импортируйте типы данных, которые будут использоваться в вашем проекте.
- Создать участника домена DDS
- Создать DDS DataWriter
- Создать DDS DataReader
Импортировать тип данных в MATLAB просто. В DDS типы данных указываются с помощью файлов IDL. Оператор импорта MATLAB может читать файл IDL напрямую и создает файлы ".m", необходимые для работы с этим типом данных в интерпретаторе MATLAB. Следующий вызов MATLAB импортирует тип данных под названием «ShapeType» из файла ShapeType.idl, расположенного в текущем рабочем каталоге:
>> DDS.import ('ShapeType.idl', 'matlab', 'f')
Теперь этот тип данных доступен для использования при создании DataReaders и DataWriters тем в DDS. Также обратите внимание, что после завершения импорта этот шаг больше не нужно выполнять в будущем. Тип будет доступен в MATLAB в будущем. Следующее, что нужно сделать, чтобы начать обнаружение DDS, - это создать участника домена DDS. Это можно сделать с помощью этого звонка:
>> dp =DDS.DomainParticipant;
Используя этот объект DomainParticipant (dp), вы можете затем создать объекты DataWriter и DataReader. Следующие две команды добавят объект Datawriter и datareader в dp, указав его тип как вновь созданный «ShapeType», а их темы - «Triangle» и «Square» соответственно.
>> dp.addWriter ('Тип формы', 'Треугольник')>> dp.addReader ('Тип формы', 'Квадрат')
Подписка на демонстрацию данных в фигурах
ShapeType используется для связи со стандартным приложением RTI Shapes Demonstration (Shapes), предоставляемым RTI. Фигуры позволяют создавать как DataWriters, так и DataReader тем «Square», «Circle» и «Triangle», которые, в свою очередь, основаны на типе данных «ShapeType». Для получения дополнительной информации о том, как использовать приложение Shapes, щелкните здесь, чтобы просмотреть наш видеоурок.
Следующим шагом в Shapes является создание подписчика Triangle. На следующем экране просто оставьте все остальные параметры QoS по умолчанию.
Публикация данных в MATLAB
Теперь, когда у нас есть настройка DataWriter в MATLAB для отправки ShapeType по теме «Треугольник», а также у нас есть настройка Shapes Demo для получения публикации, давайте поупражняем автора. Следующие команды заполнят поля ShapeType, а затем опубликуют данные в теме треугольника:
%% создать экземпляр ShapeTypemyData =ShapeType; myData.x =int32 (75); myData.y =int32 (100); myData.shapesize =int32 (50); myData.color ='GREEN'; %% записывать данные в DDSdp.write (myData);
Результатом в теме «Треугольник» в демонстрации фигур будет один зеленый треугольник, показанный здесь:
Еще несколько интересных вариантов использования публикации Triangle в MATLAB:
%% Публикация зеленых треугольников в строке с частотой 1 Гц для i =1:10 myData.x =int32 (20 + 10 * i); myData.y =int32 (40 + 10 * я); dp.write (myData); pause (1); end %% Публикация зеленых треугольников в круге с частотой 20 Гц для i =1:1000 angle =10 * pi * (i / 200); myData.x =int32 (100 + (50 * cos (угол))); myData.y =int32 (100 + (50 * грех (угол))); myData.shapesize =int32 (40); myData.color ='ЗЕЛЕНЫЙ'; dp.write (myData); пауза (0,05); конец
Результатом демонстрации форм являются соответственно:
Демонстрация публикации данных в фигурах
В демонстрации Shapes создайте издателя Square. На следующем экране просто выберите цвет и оставьте все остальные параметры QoS по умолчанию. На следующем снимке экрана показан экран Square Publish. Для демонстрации я выбрал Оранжевый квадрат. Положение X, Y будет публиковаться на экране каждые 30 мсек.
Подписка на данные в MATLAB
Если вы помните, как раньше мы добавили DataReader с квадратной темой к участнику домена в MATLAB. Мы будем использовать этот DataReader для подписки на данные, которые мы сейчас публикуем из демонстрации форм. Следующие команды в MATLAB будут читать 10 выборок с частотой 1 Гц.
%% читать данные для i =1:10 dp.read () pause (1); end
В результате в MATLAB будет 10 отчетов следующего содержания:
Что-нибудь поинтереснее
Теперь, когда у нас есть оба направления, давайте сделаем что-нибудь более творческое с данными. Сначала мы прочитаем данные Square и изменим их, чтобы переключить координаты X и Y, а затем повторно опубликуем их в КРАСНОМ Треугольнике. Во-вторых, мы возьмем полученные данные Position и построим их прямо в MATLAB. Это команды, которые нужно использовать в MATLAB для достижения этой цели.
%% выделить массив из 100 элементов xArray =zeros (1,100); %% запустить цикл для сбора данных и сохранения их в массиве %% также переключить координаты X и Y и затем повторно опубликовать на %% тему «Треугольник» для я =1:100 [моиДанные, статус] =dp.read (); если ~ isempty (myData) x =myData (1) .x; y =myData (1) .y; xArray (я) =х; yArray (i) =y; myData (1) .y =x; myData (1) .x =y; myData (1) .color ='КРАСНЫЙ'; dp.write (myData (1)); end pause (0.05) end %% Постройте данные позиции Xatat =1:100; plot (t, xArray); legend ('xPos'); xlabel ('Time'), ylabel ('Position'); title ('X Позиции ');
Результирующий вывод в Shapes Demo будет красным треугольником, движущимся в противоположность оранжевому квадрату, а также в MATLAB будет сгенерирован график, показывающий данные X Position:
Как видите, интеграция DDS с MATLAB очень проста в использовании и позволяет очень легко собирать данные, вводить данные и анализировать данные. Для этой демонстрации мы использовали простое приложение Shapes, но используемые данные также могут быть данными вашего собственного приложения. Если вы хотите узнать больше об интеграции MATLAB с RTI Connext DDS, посетите этот сайт на сайте MathWorks:MATLAB DDS Integration. Если вы хотите узнать больше об использовании Connext DDS, нажмите здесь, чтобы получить доступ к нашим ресурсам для разработчиков.
Интернет вещей
- MQTT и DDS:межмашинное взаимодействие в IoT
- Уроки Hannover Messe:5 способов использовать ИТ для производственных операций
- Сохранение совместимости данных в IoT
- Готова ли ваша система к IoT?
- Демократизация Интернета вещей
- Максимизация ценности данных IoT
- Как заставить данные IoT работать на ваш бизнес
- Интернет вещей и ваше понимание данных
- Лучшие платформы анализа данных Интернета вещей
- MATLAB — типы данных