Приложение системы позиционирования DDS

В этом примере показано, как импортировать, смоделируйте и разверните приложение DDS. Пример приложения является системой позиционирования мультидатчика, спроектированной, чтобы оценить положение транспортного средства. Система позиционирования состоит из трех компонентов: компонент датчика, компонент оценки и компонент отображения. В системе позиционирования датчики отправляют данные в компонент оценки, который вычисляет, положение транспортного средства оценивают, что это отправляет к компоненту отображения, чтобы показать визуальным представлением предполагаемого положения транспортного средства.

Импортируйте определения DDS для системы позиционирования

Для системы позиционирования определения DDS (например, Области, Темы, Типы и политики QoS) были заданы в XML. В общем рабочем процессе DDS Blockset вы используете Быстрый запуск Приложения DDS, чтобы импортировать эти определения XML. В данном примере XML был уже импортирован. Чтобы просмотреть спецификации XML для системы позиционирования, откройте XML-файл positioning_system.xml. Чтобы просмотреть представление этих определений в DDS Blockset, откройте Словарь DDS:

open positioning_system.sldd

Модель и конфигурирует компонент датчика

Первый компонент в системе позиционирования является датчиками. Система позиционирования использует акселерометр и GPS, каждый представленный моделью, чтобы оценить положение транспортного средства. Каждая модель датчика создается как Издатель. Чтобы просмотреть структуру модели и интерфейс, откройте модели:

open_system('ex_accelerometer');

open_system('ex_gps');

В каждой модели датчика можно просмотреть каждый аспект Издателя, смоделированного в Simulink:

  1. Логика модели Sensor, которая состоит из Функционального блока, который симулирует входные данные датчика.

  2. Блок Write DDS Sample, который преобразует данные о датчике от типа данных Simulink до типа данных DDS.

  3. Блок Bus Element Out, который отправляет тип данных DDS.

В дополнение к моделированию датчиков интерфейс DDS был сконфигурирован для каждой модели датчика. Можно просмотреть интерфейс DDS для каждого датчика в редакторе Отображений Кода:

  1. На панели инструментов кликните по Интерфейсу Кода и выберите Individual Elements Code Mappings.

  2. На вкладке Outports можно просмотреть это, Режим Настройки установлен в Use Writer XML Path. Это конфигурации модели DataWriters к определениям задано в XML.

Модель и конфигурирует оценочный компонент положения

Второй компонент является оценочной моделью. Оценочная модель получает данные из датчиков и вычисляет предполагаемое положение транспортного средства. Модель оценки создается как Подписчик на датчики и как Издатель к компоненту отображения. Чтобы просмотреть структуру модели и интерфейс, откройте модель:

open_system('ex_positionestimator');

В модели оценки можно просмотреть каждый аспект Подписчика и Издателя, смоделированного в Simulink:

  1. Модель оценки имеет два Элемента Шины В блоках, сконфигурированных как типы данных DDS, чтобы получить данные о датчике.

  2. Модели присоединили блок Take DDS Sample к каждому блоку Bus Element In, чтобы преобразовать типы данных DDS в типы данных Simulink.

  3. Модель оценки вычисляет логику, чтобы оценить положение транспортного средства.

  4. Модель использует блок Write DDS Sample, чтобы преобразовать типы данных Simulink в типы данных DDS.

  5. Оценочная модель использует блок Bus Element Out, чтобы отправить оценку как тип данных DDS к компоненту отображения.

В дополнение к моделированию модели оценки интерфейс DDS был сконфигурирован для модели оценки. Можно просмотреть интерфейс DDS в редакторе Отображений Кода:

  1. На панели инструментов кликните по Интерфейсу Кода и выберите Individual Elements Code Mappings.

  2. На вкладке Inports можно просмотреть это, Режим Настройки установлен в Use Reader XML Path. Это конфигурации модели DataReaders к определениям задано в XML.

  3. На вкладке Outports можно просмотреть это, Режим Настройки установлен в Use Writer XML Path. Это конфигурации модели DataWriter к определению задано в XML.

Модель и конфигурирует компонент отображения

Третий компонент является моделью дисплея. Модель дисплея получает и графически отображает предполагаемое положение транспортного средства. Модель дисплея создается как Подписчик на компонент оценки. Чтобы просмотреть структуру модели и интерфейс, откройте модель:

open_system('ex_resultdisplay');

В модели дисплея можно просмотреть каждый аспект приложения, которое действует как Подписчик, смоделированный в Simulink:

  1. Модели оценки сконфигурировали блок Bus Element In как тип данных DDS, чтобы получить оценку положения транспортного средства.

  2. Модель имеет блок Take DDS Sample, чтобы преобразовать тип данных DDS в тип данных Simulink так, чтобы это могло отобразить оценку транспортного средства.

  3. Логика модели компонента отображения графически показывает оценку положения транспортного средства.

В дополнение к моделированию модели дисплея был сконфигурирован интерфейс DDS. Можно просмотреть интерфейс DDS в редакторе Отображений Кода:

  1. На панели инструментов кликните по Интерфейсу Кода и выберите Individual Elements Code Mappings.

  2. На вкладке Inports можно просмотреть это, Режим Настройки установлен в Use Reader XML Path. Это конфигурации модели DataReader к определению задано в XML.

Создайте и разверните систему позиционирования

Чтобы визуально показать приложение системы позиционирования DDS, этот пример симулирует сеть DDS, чтобы показать результаты системы позиционирования. Блок Queue помещается между блоками модели Средства оценки Акселерометра и Положения, чтобы симулировать HISTORY QoS. Когда вы симулируете приложение, вы видите на инструментальной панели, что система оценки положения производит более точное положение транспортного средства, чем вход датчика.

open_system('ex_positioningsystem');

set_param('ex_positioningsystem/DDS Samples: GPSPos','TimeSpan','10');
set_param('ex_positioningsystem/DDS Samples: EstPos','TimeSpan','10');
sim('ex_positioningsystem');
set_param('ex_positioningsystem/DDS Samples: GPSPos','TimeSpan','100');
set_param('ex_positioningsystem/DDS Samples: EstPos','TimeSpan','100');

Чтобы видеть эффект Качества сервиса (QoS) на оценке, если QoS не чествуется, результаты неточны.

set_param(['ex_positioningsystem/Queue for HISTORY' newline 'QoS Simulation'], ...
    'Commented','through')
set_param('ex_positioningsystem/DDS Samples: GPSPos','TimeSpan','10');
set_param('ex_positioningsystem/DDS Samples: EstPos','TimeSpan','10');
sim('ex_positioningsystem');
set_param('ex_positioningsystem/DDS Samples: GPSPos','TimeSpan','100');
set_param('ex_positioningsystem/DDS Samples: EstPos','TimeSpan','100');

После рассмотрения симуляции системы позиционирования, если требуется развернуть этот пример, можно создать модель и использовать исполняемый файл, чтобы развернуть это приложение на сети DDS.

Похожие темы

Внешние веб-сайты