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

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

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

Получите конструкцию манипулятора с помощью 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 открывается к 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. Добавьте компоненты Motion и Trajectory Planning.

    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 до компонентов Safety Rules и Motion Control.

    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.

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте