Создайте модель архитектуры

В этом примере создайте модель архитектуры мобильного робота, который состоит из датчиков, движения и алгоритма планирования. Задайте интерфейсы и соедините требования.

Визуально представляйте систему

Получите конструкцию манипулятора с помощью System Composer™. Манипулятор состоит из компонентов, показанных в этом предварительном эскизе.

Diagram with arrow from the left pointing toward trajectory planning called target position, and a cycle of trajectory planning, sensors, and motion within.

Создайте модель архитектуры

  1. В Командном окне MATLAB® ввести

    systemcomposer

    Simulink® Start Page открывается к System Composer.

    Accessing a new System Composer architecture model from the Simulink start page.

  2. Нажмите Architecture Model.

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

    A new untitled architecture model in System Composer.

  3. Дважды кликните заголовок модели архитектуры и измените untitled в Robot. Имя модели обычно отражает систему, архитектуру которой вы создаете.

    Renamed architecture model called 'Robot'.

  4. Сохраните модель.

Чертите компоненты

  1. Перетащите Component из палитры левой стороны.

    Click and drag a component from the left-side palette to add it to the architecture model.

  2. Переименуйте компонент в Sensors.

  3. Добавьте Trajectory Planning и Motion компоненты.

    An architecture model called 'Robot' with three components

Создайте порты и связи

Можно добавить порт в компонент на любой стороне, и порт может иметь любого направление ввода или вывода. Чтобы создать порт, приостановите курсор мыши по стороне компонента. Кликните и отпустите кнопку мыши, чтобы просмотреть опции направления. Выберите илиthe right arrow илиthe left arrow выбрать направление. Переименуйте порт с помощью имени, которое является представительным для получения информации, которая течет через тот порт.

  1. Создайте выходной порт на нижней стороне компонента Датчиков. Переименуйте его SensorData.

    'Robot' architecture model with a downward facing output port below the 'Sensors' component called 'Sensor Data'.

  2. Перетащите линию от SensorData выходной порт к Motion компонент. Когда вы видите входной порт, созданный в стороне компонента, отпускаете кнопку мыши. По умолчанию этот новый порт имеет то же имя как исходный порт.

  3. Наведите в углу SensorData линия, пока вы не видите значок ветви.. Щелкните правой кнопкой и перетащите ответвление к Trajectory Planning компонент.

    'Robot' architecture model with a 'Sensor Data' connection out-port from the 'Sensors' component connected to two in-ports into the 'Trajectory Planning' and 'Motion' components.

  4. Полные связи как показано в следующем рисунке.

    To the 'Robot' architecture model, add a 'Motion Command' connection from the 'Trajectory Planning' component to the 'Motion' component, and an 'Encoder' connection from the 'Motion' component to the 'Sensors' component.

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

  1. Кликните по левому краю модели архитектуры и введите имя порта TargetPosition.

  2. Соедините порт архитектуры с компонентом путем перетаскивания линии от TargetPosition входной порт к Trajectory Planning компонент. Связи с или от порта архитектуры появляются как теги.

    Final 'Robot' model has an architecture port connected from the 'Trajectory Planning' component to the 'Target Position' input port.

Отредактируйте интерфейсы

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

Рассмотрите интерфейс между Sensors и Motion компоненты. Данные о датчике состоят из:

  • Данные о положении из двух двигателей

  • Данные о близости препятствия из двух датчиков

  • Метка времени, чтобы получить свежесть данных

Данные имеют эти технические требования.

ИмяТип данныхМодуль
метка времени'double'секунды
position1 для моторного 1'double'степени
position2 для моторных 2'double'степени
distance1 для датчика 1'double'метры
direction1 для датчика 1'double'степени
distance2 для датчика 2'double'метры
датчик direction2 2'double'степени
  1. Во вкладке Modeling выберите Interface Editor.

  2. Нажмите кнопку, чтобы добавить интерфейс и назвать ее sensordata.

    Интерфейс называют и задают отдельно от порта компонента и затем присваивают порту.

  3. Нажмите SensorData выходной порт на Sensors компонент. В Интерфейсном Редакторе щелкните правой кнопкой по sensordata и выберите Assign to Selected Port(s).

    Если вы нажимаете sensordata снова, три SensorData порты подсвечены, указав, что порты сопоставлены с тем интерфейсом.

    Model with three 'Sensor Data' ports highlighted in purple.

  4. Добавьте элемент в выбранный интерфейс. Нажмитеadd interface element кнопку, чтобы добавить элемент и назвать ее timestamp.

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

  6. Отредактируйте свойства интерфейсного элемента с помощью Property Inspector. Щелкните правой кнопкой по любому элементу и выберите Inspect Properties. Property Inspector открывается выше Интерфейсного Редактора.

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

    The RobotDD dictionary with interface named 'sensor data' and interface elements named 'time stamp', 'direction 1', direction 2', distance 1', distance 2', 'position 1', and 'position 2.

Анализируйте компоненты

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

  1. Дважды кликните Trajectory Planning компонент. Заголовок или Model Browser указывают на положение компонента в иерархии модели.

    The inside of the 'Trajectory Planning' component shows three architecture ports called 'Target Position, 'Sensor Data', and 'Motion Command'.

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

  2. Добавьте Motion Control и Safety Rules компоненты как часть Trajectory Planning архитектура.

    Перетащите TargetPosition порт к Motion Control компонент. Добавьте Command выходной порт к Motion Control, и затем перетащите линию к Safety Rules компонент. Перетащите линии от SensorData порт к Motion Control и Safety Rules компоненты.

    Port connections for the 'Trajectory Planning' component.

Реализуйте поведение компонента

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

  1. Щелкните правой кнопкой по Motion Control компонент и выбирает Create Simulink Behavior.

  2. Введите имя для новой модели Simulink. Выберите или пустой шаблон Simulink (значение по умолчанию) или шаблон, который вы создали, и нажмите OK. Для получения дополнительной информации о создании ваших собственных шаблонов Simulink, смотрите, Создают Шаблон из Модели.

    'Create Simulink behavior' dialog with new model name specified as 'Motion Controller' from a Default Simulnk template and data dictionary RobotDD.

    Это создает новую модель Simulink в текущем каталоге, преобразует компонент в ссылочный компонент (тот, который обращается к другой модели, сохраненной как отдельный артефакт), и добавляет значок модели Simulink с именем модели, на которую ссылаются, на компоненте. Модель поведения Simulink предварительно сконфигурирована с портами от компонента в модели архитектуры. Можно теперь использовать Simulink, чтобы разработать модель поведения Управления Движением.

    Simulink icon in the top right of the 'Motion Control' component specifying a Simulink behavior inside.

  3. Дважды кликните Motion Control. Добавьте блок Sum, чтобы вычесть SensorData от TargetPosition, и добавьте блок Gain прежде, чем соединиться с выходом Command представлять простой пропорциональный контроллер.

    A Simulink model inside the 'Motion Control' component.

Соединитесь с существующей моделью поведения Simulink

Можно также соединиться с существующей моделью поведения Simulink от компонента System Composer, если вы уже доступны из предыдущего проекта.

  1. Щелкните правой кнопкой по компоненту и выберите Link to Model.

  2. Введите имя модели Simulink.

    Link to model dialog with existing Simulink model called 'Data Processing'.

Любые субкомпоненты и порты, которые присутствуют в компоненте, удалены, когда компонент соединяется с моделью Simulink. Компонент затем создается с портами, которые совпадают с описанными в модели Simulink.

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

Функции

Блоки

Похожие темы