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

Первым шагом в проектировании на основе модели является настройка требований. В этом примере существует три набора требований.
Потребности заинтересованных сторон - набор потребностей конечных пользователей.
Системные требования - организованный набор требований, тесно связанных с проектом системного уровня.
Требования к реализации - подробный набор требований, определяющих подсистемы модели.
Связывая один набор требований с другим, можно отслеживать каждое высокоуровневое требование вплоть до внедрения. Дополнительные сведения о связях требований см. в разделе Связи требований (требования Simulink).
Перейдите к папке примера. Открыться 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.
Дополнительные сведения о ссылках см. в разделе Просмотр > Ссылки. Изменение типа ссылки на Implements с тех пор STAKEHOLDER-04 реализуется SYSTEM-REQ-05. Дополнительные сведения о типах связей см. в разделе Определение пользовательских требований и типов связей (требования к Simulink).

Архитектурные модели описывают систему на различных уровнях абстракции. В этом примере представлены три архитектуры:
Функциональная архитектура описывает функции высокого уровня.
Аппаратная архитектура описывает физическое оборудование или платформу, необходимые для робота.
Логическая архитектура описывает обмен данными.
Чтобы открыть функциональную архитектуру, дважды щелкните файл или введите имя модели в окне команд MATLAB.
scMobileRobotFunctionalArchitecture

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

Можно добавлять связи, перетаскивая требования к компоненту.
Откройте модель архитектуры оборудования. Чтобы открыть модель, дважды щелкните файл или введите имя модели в окне команды MATLAB.
scMobileRobotHardwareArchitecture
Модель аппаратной архитектуры описывает аппаратные компоненты - датчик, исполнительные механизмы и встроенный процессор - и их соединения. Цвета и значки указывают стереотипы, используемые для каждого элемента.
Требования, связанные с моделью архитектуры оборудования, можно просмотреть в Диспетчере требований.

Только требования, связанные с 'Life Expectancy' показаны. Свяжите другие требования, перетащив их из редактора требований. Дополнительные сведения о требованиях см. в разделе Требования к связям и трассировке.
Функциональную архитектуру можно назначить аппаратной архитектуре с помощью редактора распределения.
Чтобы открыть редактор распределения, щелкните «Моделирование» > «Редактор распределения» или введите в командное окно следующее.
systemcomposer.allocation.editor
Загрузите набор распределения: scAllocationFunctionalHardware.mldatx в редакторе. Нажмите на 'Scenario 1'. Щелкнуть 'Component' в разделах «Фильтр строк» и «Фильтр столбцов» для фильтрации строк и столбцов по компонентам. Редактор распределения позволяет связывать различные модели архитектуры для определения возможности отслеживания для проекта. Компоненты функциональной архитектуры распределяются между компонентами аппаратной архитектуры.

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

Автономностью транспортного средства в основном занимается целевая машина, которая представляет собой встроенный компьютер, отвечающий за обработку показаний датчиков для вычисления входных сигналов управления. Поэтому многие функциональные компоненты, такие как 'Path Follower', 'Wheel Kinematics', и'Scan Matching Algorithms«» «» «» «» «» «» 'Target Machine'.
Можно также добавить назначения для портов и соединителей. Дважды щелкните пересечения таблицы, чтобы выделить или освободить два элемента. Дополнительные сведения о распределении см. в разделе Выделение архитектур в системе мониторинга давления в шинах.
Стереотипы добавляют дополнительный уровень метаданных к компонентам, портам и соединителям. Аппаратная архитектура обеспечивает основу для понимания применяемых стереотипов. Сведения о создании профиля см. в разделе Определение профилей и стереотипов.
В этом примере HardwareBaseStereotype определяется как 'Abstract Stereotype' и распространяется на стереотипы соединителей и компонентов. Например, DataConnector стереотип является стереотипом соединителя, который наследует HardwareBaseStereotype. Кроме свойств, таких как имя и масса, DataConnector стереотип имеет дополнительное свойство, TypeOfConnection, в котором описывается, какой из трех типов соединений - RS232, Ethernet или USB - он использует. Дополнительные сведения о настройке профилей см. в разделе Использование стереотипов и профилей.
Чтобы сосредоточиться на ожидаемом времени перед первым техническим обслуживанием, определите такие свойства, как 'UsagePerDay', 'UsagePerYear', и 'Life'. Установка этих свойств позволяет проанализировать каждый компонент оборудования, чтобы убедиться, что мобильный робот продлится до первого ожидаемого года технического обслуживания. Чтобы открыть редактор профилей, перейдите в меню «Моделирование» > «Профили» > «Редактировать».

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

Чтобы добавить стереотипы к элементам, выберите элемент на схеме. В Инспекторе свойств перейдите в раздел Главное > Стереотип. К одному и тому же элементу можно применить несколько стереотипов. Применить MobileRobotProfile.Sensor стереотипа к Lidar Sensor для добавления соответствующих свойств.
Некоторые компоненты используются дольше, чем другие. Lidar Sensor компонент используется для предотвращения препятствий в этом сценарии, поэтому он всегда используется, за исключением тех случаев, когда он заряжается. RGB Camera выравнивает робот только по зарядной станции, поэтому он используется в течение более короткого периода времени в день. Можно изменить значения для 'UsagePerDay', 'UsagePerYear', и 'Life' свойства для определения ожидаемого времени технического обслуживания компонентов, каждый из которых используется с различной частотой.

Собственность 'ExceedExpectedMaintenance' имеет значение 'False' по умолчанию. Это свойство будет обновляться при выполнении анализа.
Для просмотра изменений, внесенных в архитектурную модель, используйте галерею архитектурных представлений. Архитектурные виды позволяют создавать отфильтрованные виды и тем самым фокусироваться на нескольких элементах модели, что позволяет легче перемещаться по сложной модели. Например, инженер-электрик может быть заинтересован только в электрических компонентах архитектуры аппаратных средств. Инженер может применить фильтр для отображения только компонентов с электрическими стереотипами.
В этом примере фильтр применяется для просмотра компонентов относительно 'Life Expectancy' требование.
Чтобы открыть коллекцию архитектурных представлений, перейдите в раздел «Представления» > «Архитектурные представления».
Щелкните Создать вид (New View), затем выберите Выбрать все (Select All), чтобы выбрать все компоненты для просмотра. Щелкните Применить запрос (Apply Query). Выберите представление Схема иерархии. Иерархия компонентов выравнивается для отображения всех подкомпонентов в одном представлении.

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

Щелкните Применить запрос (Apply Query). Перейдите к диаграмме иерархии для просмотра интересующих компонентов.

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

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

Функция анализа scMobileRobotAnalysis вычисляется, если UsagePerDay*UsagePerYear*ExpectedYearsBeforeFirstMaintenance превысит Lifeдля каждого компонента и соединителя установлено значение 2 года. Флажки указывают на то, что компоненты и разъемы нуждаются в техническом обслуживании в течение 2 лет в соответствии с данной спецификацией.
Чтобы обновить модель экземпляра в средстве просмотра анализа, выберите Overwriteи нажмите кнопку «Обновить». Это действие вернет значения из исходной модели, в данном случае модели архитектуры оборудования. С тех пор ExceedExpectedMaintenance было изменено единственное свойство, оно будет изменено на значение по умолчанию. И наоборот, нажатие кнопки «Обновить» приведет к изменению значений свойств в источнике архитектуры оборудования в соответствии с моделью экземпляра. Дополнительные сведения об анализе см. в разделе Анализ архитектуры.
Для выполнения моделирования можно проверить логическую архитектуру и связать с моделями поведения 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 сохраняется в текущей папке. Компонент 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, щелкнув Выполнить (Run).

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

Выполните следующий сценарий, чтобы убедиться, что робот следует за ППМ.
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')
