Создайте модель архитектуры мобильного робота, который состоит из датчиков, движения и алгоритма планирования. Задайте требования ссылки и интерфейсы.
Получите архитектуру манипулятора с помощью System Composer™. Манипулятор состоит из этих компонентов:
Введите systemcomposer
в строке MATLAB®command, чтобы запустить System Composer. Это открывает начальную страницу Simulink®:
Начните сочинять путем нажатия на Architecture Model.
Можно идентифицировать модель архитектуры значком на левом нижнем углу, палитрой элементов на левой стороне и меню Architecture.
Поле в окне состава представляет мобильную архитектуру робота. Дважды кликните заголовок архитектуры и назовите его Robot
:
Имя модели отражает имя архитектуры. Сохраните модель с помощью File > Save.
Добавьте компонент путем перетаскивания Component от палитры.
Введите имя компонента, Sensors
, в текстовом поле, которое становится активным. Также добавьте Motion
и компонент Controller
. Имена компонентов должны быть соответствующими именами переменных. Кликните по компонентам и перетащите их, чтобы переместиться, чтобы завершить размещение.
Создайте порты на компонентах путем нажатия на одно из ребер. Отпустите кнопку мыши, чтобы видеть опции направления и выбрать направление, чтобы добавить порт. Назовите порт. Можно добавить порты на любом ребре в любом направлении.
Создайте выходной порт в правой стороне компонента Датчиков под названием SensorData
. Имена порта должны быть соответствующими именами переменных. Выберите порт и переместите его в базовый край с помощью стрелки вниз.
Соедините этот порт с левой стороной компонента Движения путем перетаскивания строки от порта. Отпустите кнопку мыши, когда вы будете видеть входной порт, созданный в целевом блоке. По умолчанию этот новый порт имеет то же имя как исходный порт.
Ответвление связь путем щелчка правой кнопкой и перетаскивания его к компоненту Trajectory Planning
.
Полные связи, как дали в эскизе.
Сама архитектура может также иметь порты. В этом примере целевое положение для робота обеспечивается компьютером, внешним к архитектуре робота. Представляйте это с портом на архитектуре. Кликните по левому краю архитектуры и введите имя порта TargetPosition
.
Можно соединить порт архитектуры с компонентом путем перетаскивания строки. Связи с или от порта архитектуры появляются как теги.
Завершите связи между компонентами, как дали в эскизе:
Задайте поток данных между компонентами системы путем структурирования интерфейса данных с типами данных, модулями, размерностями, и т.д. Интерфейс может быть столь же простым как отправка целочисленного значения, но это может быть набор чисел, перечисления, комбинации чисел и строк или пакета другого, предопределенных интерфейсов.
Рассмотрите интерфейс между компонентом Датчика и Controllercomponent. Данные о датчике состоят из следующего:
Данные о положении из двух двигателей
Данные о близости препятствия из двух датчиков
Метка времени это добавляет к этому набору данных
Данные имеют эти спецификации:
Имя | Тип данных | Модуль |
---|---|---|
Метка времени | 'double' | секунды |
Моторное 1 положение | 'double' | степени |
Моторные 2 положения | 'double' | степени |
Расстояние близости Sensor1 | 'double' | метры |
Направление близости Sensor1 | 'double' | степени |
Расстояние близости Sensor2 | 'double' | метры |
Направление близости Sensor2 | 'double' | степени |
Выберите вкладку Architecture > Interfaces, чтобы начать задавать интерфейс. Нажмите кнопку.
Введите от имени интерфейса, sensordata
. Добавьте элемент в выбранный интерфейс: Кликните и введите timestamp
.
Продолжите добавлять элементы в интерфейс путем нажатия кнопки многократно. Дважды кликните интерфейсные элементы, чтобы отредактировать имена как показано:
Отредактируйте свойства интерфейсного элемента с помощью Property Inspector. Щелкните правой кнопкой по элементу и выберите Inspect Properties.
Property Inspector открывается выше редактора Интерфейсов.
Кликните по каждому интерфейсному элементу и добавьте модули как показано в спецификации. Кликните по выпадающему рядом с кнопкой, чтобы сохранить интерфейс в словарь данных. Здесь это сохранено как MotionControl
.
Каждый компонент может иметь собственную архитектуру. Начните разлагать компонент на его субкомпоненты путем двойного клика. Например, дважды кликните Траекторию, Планирующую задавать ее архитектуру. Вы видите, где компонент находится в иерархии в заголовке или Model Browser.
Этот компонент сначала вычисляет идеальную команду положения и скорости с помощью моторных данных о положении, которые являются частью интерфейса SensorData
, и затем используют информацию о близости препятствия от того же интерфейса, чтобы обусловить эту команду движения согласно некоторым правилам безопасности. Добавьте управление Движением и компоненты Правил безопасности как часть архитектуры Планирования Траектории и соедините их как показано:
Если у вас есть компонент, который представляет один функциональный блок, для которого не нужно дальнейшее архитектурное разложение, можно задать его поведение в Simulink. Щелкните правой кнопкой по компоненту и выберите Create Simulink Behavior.
Введите имя для новой модели Simulink и нажмите OK.
Это создает новую модель в текущем каталоге и добавляет значок Simulink и имя эталонной модели на компоненте, чтобы указать на ссылку. Сгенерированная модель поведения отражает порты от компонента в модели архитектуры и позволяет вам задавать поведение в Simulink.
Модель Architecture:
Модель Behavior:
Можно соединиться с существующей моделью поведения Simulink от компонента System Composer, при условии, что компонент уже не соединяется с эталонной архитектурой. Щелкните правой кнопкой по компоненту и выберите Link to Model. Введите или просмотрите имя модели Simulink.
Любые субкомпоненты и порты, которые присутствуют в компонентах, удалены, когда компонент соединяется с моделью Simulink.