Симулируйте архитектурное поведение

Чтобы симулировать мобильную логическую архитектуру робота, соедините Simulink® модели к компонентам. Эти соединенные модели действие как поведения Simulink и могут быть симулированы в System Composer™ путем выбора Run. Чтобы получить доступ к моделям и вспомогательным файлам, используемым в этом примере, смотрите, Симулируют Мобильного Робота с Рабочим процессом System Composer.

Добавьте поведение Simulink в модели архитектуры с входами шины

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

% Open the initial logical architecture model for the mobile robot
systemcomposer.openModel('scMobileRobotLogicalArchitectureInitial');

The initial logical architecture of the mobile robot.

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

Каждый компонент ответственен за одну или несколько функций, определяемых в модели функциональной архитектуры. Trajectory Follower компонент ответственен за вычисление скорости колеса робота на основе пути созданный генератор. Motor Controller низшего уровня компонент контролирует скорость каждого двигателя привода согласно выходу от Trajectory Follower компонент.

Обратите внимание на то, что некоторые компоненты не использованы из этой модели в качестве примера. Например, модели датчика как Lidar Sensor и RGB Camera не требуются в этой модели, потому что истинное значение от симуляции получает x-y положение и ориентацию робота. Для более комплексных симуляций можно добавить модели датчика как RGB Camera протестировать различные алгоритмы, такие как алгоритм распознавания. Если необходимо было добавить такую модель датчика, Lidar Sensor, другой компонент поведения, потребовался бы, чтобы дешифровать данные о датчике в Scan Matching Algorithm компонент.

Добавьте компонент алгоритма датчика с поведением Simulink

Симулируйте модель логической архитектуры путем добавления поведения Simulink в Sensor Algorithm компонент.

  1. Создайте Sensor Algorithm компонент. Добавьте два входных порта на правой стороне под названием Sensor Reading 1 и Sensor Reading 2. Добавьте два выходных порта на левой стороне под названием xy для x-y положения и q для кватерниона.

    A new sensor algorithm component is highlighted in blue to show it has been added to the initial logical architecture.

  2. Чтобы создать новое поведение Simulink, щелкните правой кнопкой по Sensor Algorithm компонент и выбирает Create Simulink Behavior. Из списка Type выберите Model Reference. Выберите новое имя модели. В этом примере это - SensorAlgorithm.

    The create Simulink behavior dialog for the Sensor Algorithm component.

    Нажмите OK. Новая модель Simulink сохранена в текущей папке. Компонент преобразован в ссылочный компонент.

    The mobile robot logical architecture with sensor algorithm behavior.

  3. Чтобы отредактировать поведенческую модель, дважды кликните Sensor Algorithm компонент. Заметьте, что порты элемента шины создаются во время процесса преобразования. Для получения дополнительной информации об установке входов шины смотрите, Исследуют Возможности Шины Simulink.

    Bus ports in the sensor algorithm component.

  4. Любая блокировка порта может использоваться, чтобы соединить различные компоненты. Преобразуйте Sensor Reading 2 вход шины и q вход шины в регулярный Inport и Outport блоки путем удаления их и воссоздания их как Inport и Outport.

    Two new inport and outport blocks converted from bus ports.

  5. Дважды кликните Sensor Reading 1 вход шины, чтобы просмотреть его свойства, затем приостановите на имени Sensor Reading 1 и кликните по значку карандаша, чтобы открыть Attributes. Установите Dimensions на 2.

    The properties of the input port sensor reading 1. The dimensions attribute is set to 2.

  6. Дважды кликните Sensor Reading 2 порт, чтобы открыть Block Parameters, затем переключитесь на вкладку Signal Attributes. Установите Sensor Reading 2 порт Port dimensions к 4.

    The sensor reading 2 block parameters. The port dimensions is set to 4.

  7. Возвратитесь к логической архитектуре и соедините компоненты. Результат должен быть похожим на scMobileRobotLogicalArchitecture.slx в следующем разделе.

Модель логической архитектуры для мобильного робота

Модель логической архитектуры описывает поведение мобильной системы робота — генератора траектории, последователя траектории, моторного диспетчера, алгоритма датчика, и робота и среды — для симуляции. Связи представляют взаимодействия в системе. Чтобы открыть модель логической архитектуры, дважды кликните файл или введите эту команду в командное окно MATLAB.

% Open the logical architecture model for the mobile robot
systemcomposer.openModel('scMobileRobotLogicalArchitecture');

The mobile robot example logical architecture model.

Алгоритм поведения создается на основе информации порта только. При разработке логической архитектуры можно установить интерфейс порта задавать информацию более подробно. Например, если вы знаете, что 800 x, 600 изображений RGB, полученных на уровне 24 кадров в секунду, передаются от датчика камеры, затем можно установить соответствующие интерфейсы порта соответственно гарантировать эффективную передачу данных. Для получения дополнительной информации об установке интерфейсов, смотрите Интерфейсы Порта Define Между Компонентами.

Выполнение симуляции Используя логическую архитектуру

Если модели поведения соединены, можно симулировать модель архитектуры точно так же, как любая другая модель Simulink путем нажатия на Run. Симуляция проверяет требования, такие как Transportation, Collision Avoidance, и Path Generation.

Осциллограф от MotorController поведение компонента показывает, как хорошо простой контроллер P-усиления выполняет, чтобы следовать за ссылочной скоростью для одного из колес на роботе.

The scope for the P-gain controller for the robot wheels

Запустите этот скрипт, чтобы наблюдать, как хорошо робот следует за waypoints.

out = sim('scMobileRobotLogicalArchitecture.slx');
% waypoints are manually defined in Constant block
waypoints = eval(get_param('TrajectoryGenerator/Manual Waypoints','Value'));

figure
hold on
plot(out.pose.Data(:,1),out.pose.Data(:,2))
plot(waypoints(:,1),waypoints(:,2))
hold off
xlabel('X Position (m)')
ylabel('Y Position (m)')
legend('Actual Trajectory','Commanded Trajectory')

The simulation plot output with the trajectory of the mobile robot

Смотрите также

Похожие темы