Рабочий процесс симуляции мобильного робота с System Composer

Обзор

Наряду с другими инструментами System Composer™ могут помочь вам организовывать и связывать требования, проектировать и распределять модели архитектуры, анализировать систему и реализовывать проект в Simulink ®. Этот пример демонстрирует рабочий процесс разработки системной архитектуры с помощью System Composer. Этот пример следует за разработкой ранней фазы для мобильного робота:

  • Настройка требований на основе рыночных исследований.

  • Создание архитектурных моделей, которые помогут организовать алгоритмы и оборудование.

  • Создание модели Simulink для симуляции реалистичного поведения мобильного робота.

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

Этот пример следует ранним шагам рабочего процесса из Модельно-ориентированное Проектирование с Simulink.

Организуйте и связывайте требования

Первым шагом в модельно-ориентированном проектировании является настройка требований. В этом примере существует три набора требований.

  1. Потребности заинтересованных сторон - набор потребностей конечных пользователей.

  2. Системные требования - организованный набор требований, тесно связанных с разработкой системы.

  3. Требования реализации - подробный набор требований, определяющих подсистемы модели.

Путем связывания одного набора требований с другим можно проследить каждое требование высокого уровня вплоть до реализации. Для получения дополнительной информации о ссылках требования смотрите Ссылки требования (Simulink Requirements).

Привязка требований заинтересованных сторон к техническим требованиям

Перейдите к папке с примером. Чтобы открыть scMobileRobotStakeholderNeeds.slreqx, scMobileRobotRequirements.slreqx, и scMobileRobotSubsystemRequirements.slreqx, дважды кликните каждый файл или запустите этот код в Командном окне MATLAB ®:

load_system('scMobileRobotHardwareArchitecture.slx') % Load systems in memory to view requirement links.
load_system('scMobileRobotFunctionalArchitecture.slx')
open('scMobileRobotStakeholderNeeds.slreqx')
open('scMobileRobotRequirements.slreqx')
open('scMobileRobotSubsystemRequirements.slreqx')

Связь заинтересованных сторон с производными требованиями для отслеживания целей высокого уровня. Некоторые ссылки уже определены в этом примере, как ссылка реализации от STAKEHOLDER-07 на SYSTEM-REQ-09. Эта информация сохранена в файле scMobileRobotStakeholderNeeds.slmx.

Можно создать другую ссылку для Autonomy требование. Необходимость перемещения объекта с заданным допуском STAKEHOLDER-04 будет реализовано в соответствии с требованиями системы SYSTEM-REQ-05. Робот должен иметь возможность определять свое текущее положение с заданным допуском. Щелкните правой кнопкой мыши SYSTEM-REQ-05 и выберите 'Select for Linking with Requirement'. Затем щелкните правой кнопкой мыши по STAKEHOLDER-04 и выберите Create a link from SYSTEM-REQ-05 to STAKEHOLDER-04.

Дополнительные сведения о ссылках см. в разделе View > Links. Измените тип ссылки на Implements начиная с STAKEHOLDER-04 реализован SYSTEM-REQ-05. Для получения дополнительной информации о типах ссылки см. раздел «Определение пользовательских требований и Ссылки типов» (Simulink Requirements).

Проектирование архитектурных моделей

Модели архитектуры описывают систему на разных уровнях абстракции. В этом примере представлены три архитектуры:

  1. Функциональная архитектура описывает функции высокого уровня.

  2. Аппаратная архитектура описывает физическое оборудование или платформу, необходимую для робота.

  3. Логическая архитектура описывает обмен данными.

Чтобы открыть функциональную архитектуру, дважды кликните файл или введите имя модели в Командное окно MATLAB.

scMobileRobotFunctionalArchitecture

Функциональная архитектура описывает функциональные зависимости: автономное управление мобильным роботом, локализацию, планирование пути и следование пути.

Ссылка требований к архитектурным моделям

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

The 'Self Localization Sensor Fusion' компонент в функциональной архитектуре реализует 'Localization' требования SYSTEM-REQ-05. Чтобы показать или скрыть связанные требования, щелкните связанный значок в правом верхнем углу компонента.

Можно добавить ссылок путем перетаскивания требований к компоненту.

Откройте модель аппаратной архитектуры. Чтобы открыть модель, дважды кликните файл или введите имя модели в Командном Окне MATLAB.

scMobileRobotHardwareArchitecture

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

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

Только требования, связанные с 'Life Expectancy' показаны. Связать другие требования можно путем перетаскивания из редактора требований. Для получения дополнительной информации о требованиях смотрите Ссылки и Требования к трассировке.

Ссылка функциональной на аппаратную архитектуру с помощью выделений

Выделять функциональную архитектуру аппаратной архитектуре можно с помощью редактора выделений.

Чтобы открыть Редактор выделения, щелкните Моделирование > Редактор выделения или введите следующее в Командное окно.

systemcomposer.allocation.editor

Загрузите набор ассигнований: scAllocationFunctionalHardware.mldatx в редакторе. Нажмите на 'Scenario 1'. Нажмите 'Component' в разделах «Фильтр строк» и «Фильтр столбцов» для фильтрации строк и столбцов по компонентам. Редактор распределения позволяет связывать различные модели архитектуры, чтобы установить трассируемость для вашего проекта. Компоненты функциональной архитектуры выделяются компонентам аппаратной архитектуры.

Нажмите 'Processor'на фильтре столбцов для дальнейшей фильтрации выделений. Поскольку стереотипы применяются только к аппаратной архитектуре в этом примере, фильтр стереотипов отображается в фильтре столбцов.

Автономность транспортного средства в основном обрабатывается целевой машиной, которая является встроенным компьютером, ответственным за обработку показаний датчика для вычисления входов управления. Поэтому многие функциональные компоненты, такие как 'Path FollowerWheel Kinematics', и' Scan Matching Algorithms'выделяются 'Target Machine'.

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

Стереотипы и анализ

Стереотипы добавляют дополнительный слой метаданных к компонентам, портам и коннекторам. Аппаратная архитектура обеспечивает базис для понимания применяемых стереотипов. Для создания профиля см. раздел «Определение профилей и стереотипов».

В этом примере HardwareBaseStereotype определяется как 'Abstract Stereotype' и распространяется на стереотипы разъемов и компонентов. Для примера, a DataConnector стереотип является стереотипом соединителя, который наследует HardwareBaseStereotype. Кроме таких свойств, как имя и масса, DataConnector стереотип имеет дополнительное свойство, TypeOfConnection, который описывает, какой из трех типов соединений - RS232, Ethernet или USB - он использует. Для получения дополнительной информации о настройке профилей см. Раздел «Использование стереотипов и профилей».

Чтобы сосредоточиться на ожидаемом времени до первого обслуживания, задайте такие свойства, как 'UsagePerDay', 'UsagePerYear', и 'Life'. Установка этих свойств позволяет вам анализировать каждый аппаратный компонент, чтобы убедиться, что мобильный робот продлится до первого ожидаемого года обслуживания. Чтобы открыть Редактор профилей, перейдите в меню Моделирование > Профили > Редактировать.

Задав стереотипы в редакторе профилей, можно применить их к компонентам и соединителям. Применить стереотипы можно с помощью Property Inspector. Чтобы открыть Property Inspector, перейдите в моделирование > проект > Property Inspector.

Чтобы добавить стереотипы к элементам, выберите элемент в схеме. В Property Inspector перейдите в Main > Stereotype. К одному и тому же элементу можно применить несколько стереотипов. Применить MobileRobotProfile.Sensor стереотипа к Lidar Sensor компонент для добавления соответствующих свойств.

Некоторые компоненты используются в течение более длительных периодов времени, чем другие. The Lidar Sensor компонент используется для предотвращения препятствий в этом сценарии, поэтому он всегда используется, кроме тех случаев, когда он заряжается. The RGB Camera выравнивает робота только к зарядной станции, поэтому он используется в течение более короткого периода в день. Можно изменить значения для 'UsagePerDay', 'UsagePerYear', и 'Life' свойства для определения ожидаемого времени обслуживания для компонентов, каждый из которых используется с различной частотой.

Свойство 'ExceedExpectedMaintenance' установлено в 'False' по умолчанию. Это свойство будет обновлено при запуске анализа.

Галерея видов архитектуры

Используйте Галерею видов архитектуры, чтобы просмотреть изменения, вносимые в модель архитектуры. Представления архитектуры позволяют вам создавать отфильтрованные представления и тем самым фокусироваться на нескольких элементах модели, что позволяет легче перемещаться по сложной модели. Для примера инженер-электрик может быть заинтересован только в электрических компонентах аппаратной архитектуры. Инженер мог применить фильтр, чтобы показать только компоненты с электрическими стереотипами.

В этом примере можно применить фильтр для просмотра компонентов относительно 'Life Expectancy' требование.

Чтобы открыть галерею видов архитектуры, перейдите в меню Views > Architecture Views.

Щелкните Создать вид (New View), затем выберите Выбрать все (Select All), чтобы выбрать все компоненты для представления. Нажмите Применить запрос. Выберите представление Схема иерархии. Иерархия компонентов сведена, чтобы показать все подкомпоненты в одном представлении.

Можно добавить логику фильтра, чтобы просмотреть соответствующие компоненты для 'Life Expectancy' требование. Щелкните Создать представление, затем выберите Добавить предложение.

Обратите внимание, что значение по умолчанию для MobileRobotProfile.HardwareBaseStereotype.Life стереотипом является 999999. Установите фильтр, чтобы показать компоненты с MobileRobotProfile.HardwareBaseStereotype.Life не равно 999999, что будет указывать, был ли задан стереотип.

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

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

Анализ модели

Проанализируйте систему, чтобы проверить, будут ли компоненты и разъемы работать дольше, чем ожидалось до начала технического обслуживания. Это значение устанавливается в 2 года в функции анализа. Откройте Просмотр анализа (Analysis Viewer) в меню Моделирование (Modeling) > Представления (Views) > Модель анализа (Analysis Model

Выберите все стереотипы, чтобы сделать их доступными в модели образца. Выберите scMobileRobotAnalysis.m как функция анализа. Порядок итерации определяет, в каком порядке анализируется иерархия компонентов. Однако, поскольку каждый компонент анализируется отдельно, порядок не имеет значения. Выберите 'Pre-order' по умолчанию.

Щелкните Экземпляр (Instantiate), чтобы создать экземпляр модели.

Показаны соответствующие компоненты и коннекторы со стереотипами. Поскольку все стереотипы выбраны, все элементы со стереотипами показаны в модели образца. Анализ модели позволит вычислить, какие компоненты и соединители будут работать дольше, чем ожидалось 2 года. Щелкните Анализ (Analyze), чтобы выполнить расчет.

Функция анализа scMobileRobotAnalysis вычисляет, если UsagePerDay*UsagePerYear*ExpectedYearsBeforeFirstMaintenance превысит Life, который установлен на 2 года, для каждого компонента и соединителя. В незакрытых коробках указывается, что компоненты и разъемы потребуют технического обслуживания в течение 2 лет с заданными спецификациями.

Чтобы обновить модель образца в средстве просмотра анализа», выберите Overwrite, затем нажмите «Обновить». Это действие вернет значения из исходной модели, в этом случае модели аппаратной архитектуры. Начиная с ExceedExpectedMaintenance было изменено только свойство, оно будет изменено на значение по умолчанию. И наоборот, нажатие кнопки Обновить изменит значения свойств в источнике аппаратной архитектуры согласно модели образца. Для получения дополнительной информации об анализе смотрите Analyze Architecture.

Моделирование поведения архитектуры

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

Чтобы открыть логическую архитектуру, дважды кликните файл или введите имя файла в Командном Окне MATLAB.

scMobileRobotLogicalArchitectureInitial

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

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

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

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

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

Чтобы создать новое поведение Simulink, щелкните правой кнопкой мыши «Создать поведение Simulink».

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

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

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

Соедините входные порты с выходными портами.

Обратите внимание, что в сценарии al, где модели датчика, такие как RGB Camera и Lidar Sensor добавлены, модель алгоритма будет включать инструменты, такие как нейронная сеть или метод сопоставления сканов.

Нажмите кнопку карандаша, чтобы открыть Параметры Блоков. Задайте 'Sensor Reading 1' Dimensions на 2.

Задайте 'Sensor Reading 2' Port dimensions на 4. Каждый порт соответствует положению x-y и кватерниону, соответственно.

Вернитесь к логической архитектуре и соедините компоненты.

Описанный выше процесс уже выполнен в scMobileRobotLogicalArchitecture. Дважды кликните файл, чтобы открыть модель, или введите имя в Командном Окне MATLAB.

scMobileRobotLogicalArchitecture

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

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

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

Возможности от 'MotorController' Показы, как хорошо работает простой контроллер P-усиления, чтобы следовать скорости ссылки для одного из колес на роботе.

Запустите следующий скрипт, чтобы хорошо наблюдать, как робот следует путевым точкам.

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')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Actual Trajectory, Commanded Trajectory.

Похожие темы