Системная компоновка верхнего уровня модели Simulink® является общим контекстом, который много команд инженеров могут использовать и являются базисом для многих задач в парадигме Модельно-ориентированного проектирования: анализ, проект, тест и реализация. Вы задаете систему в верхнем уровне путем идентификации структуры и отдельных компонентов. Вы затем организуете свою модель иерархическим способом, который соответствует компонентам. Затем вы задаете интерфейсы для каждого компонента и связей между компонентами.
Известная модель в этом примере является плоским роботом, который может перемещаться или вращаться с помощью двух колес, похожих на домашний робот - пылесос. Эта модель принимает, что робот перемещается одним из двух способов:
Linear — Оба поворота колес в том же направлении с той же скоростью и роботом перемещаются линейно.
Вращательный — поворот колес в противоположных направлениях с той же скоростью и робот вращается на месте.
Каждый тип движения начинает с покоящегося состояния, то есть, и вращательные и линейные скорости являются нулем. С этими предположениями линейные и вращательные компоненты движения могут быть смоделированы отдельно.
Прежде, чем спроектировать модель, рассмотрите свои цели и требования. Цели диктуют и структуру и уровень детализации для модели. Если цель состоит в том, чтобы просто выяснить, как быстро робот может пойти, моделирование только для линейного движения достаточно. Если цель состоит в том, чтобы спроектировать набор входных параметров для устройства, чтобы следовать за данным путем, то вращательный компонент включен. Если предотвращение препятствия является целью, то системе нужен датчик. Этот пример создает модель с целью разработки параметров датчика так, чтобы робот остановился вовремя, когда это обнаруживает препятствие в своем пути. Чтобы достигнуть этой цели, модель должна:
Определите, как быстро робот останавливается, когда двигатели останавливаются
Обеспечьте ряд команд для линейного и вращательного движения так, чтобы робот мог переместиться в двумерное пространство
Первая цель моделирования позволяет вам анализировать движение, таким образом, можно спроектировать датчик. Вторая цель позволяет вам протестировать свой проект.
Если вы изучаете свои требования моделирования, можно начать идентифицировать компоненты системы. Идентификация отдельных компонентов и их отношений в структуре верхнего уровня помогает систематически создавать потенциально сложную модель. Вы выполняете эти шаги вне Simulink, прежде чем вы начнете создавать свою модель.
Эта задача включает ответ на эти вопросы:
Каковы структурные и функциональные компоненты системы? Когда размещение отражает физическую и функциональную структуру, оно помогает вам изучить, создать, передать, и протестировать систему. Это становится более важным, когда части системы должны быть реализованы на различных этапах в процессе проектирования.
Каковы вводы и выводы для каждого компонента? Нарисуйте изображение, показывающее связи между компонентами. Это изображение помогает вам визуализировать поток сигналов в модели, идентифицировать источник и приемник каждого сигнала, и определить, существуют ли все необходимые компоненты.
Какой уровень детализации необходим? Включайте главные системные параметры в свою схему. Создание изображения системы может помочь вам идентифицировать и смоделировать части, которые важны для поведений, которые вы хотите наблюдать. Каждый компонент и параметр, который способствует цели моделирования, должны иметь представление в модели, но существует компромисс между сложностью и удобочитаемостью. Моделирование может быть итеративным процессом. Можно начать с высокоуровневой модели с немногими деталями и затем постепенно увеличивать сложность при необходимости.
Это часто выгодно, чтобы рассмотреть следующее:
Какие части системы необходимо тестировать?
Каковы критерии успеха и тестовые данные?
Какие выходные параметры необходимы для задач анализа и проектирования?
Система в этом примере задает робота, который перемещается с двумя электрическими колесами в двух измерениях. Это включает:
Линейные характеристики движения
Вращательные характеристики движения
Преобразования, чтобы определить местоположение системы в двух измерениях
Датчик, чтобы измерить расстояние робота от препятствия
Модель для этой системы включает два идентичных колеса, входные силы обратились к колесам, вращательной динамике, координатному преобразованию и датчику. Модель использует Subsystem, чтобы представлять каждый компонент:
Откройте новую модель Simulink. См. Открытую Новую Модель.
Откройте браузер библиотеки. Смотрите открытый браузер библиотеки Simulink.
Добавьте блоки Subsystem. Перетащите пять блоков Subsystem от библиотеки Ports & Subsystems до новой модели.
Кликните по подсистеме. Во вкладке Format кликните по выпадающему имени Auto. Снимите флажок Hide Automatic Block Names.
Расположите и переименуйте блоки Subsystem как показано. Чтобы изменить имена блока, дважды кликните имя блока и отредактируйте текст.
Идентифицируйте связи ввода и вывода между подсистемами. Значения ввода и вывода изменяются динамически во время симуляции. Соединительные блоки линий представляют передачу данных. Эта таблица показывает вводы и выводы для каждого компонента.
Блок | Входной параметр | Вывод | Сопутствующая информация |
---|---|---|---|
Входные параметры | 'none' | Сила к правому колесу Сила к левому колесу | Не применяется |
Правое колесо | Сила к правому колесу | Правильная скорость колеса | Направленный, отрицательный означает обратное направление |
Левое колесо | Сила к левому колесу | Оставленная скорость колеса | Направленный, отрицательный означает обратное направление |
Вращение | Различие скорости между правыми и левыми колесами | Вращательный угол | Измеренный против часовой стрелки |
Координатное преобразование | Нормальная скорость Вращательный угол | Скорость в X Скорость в Y | Не применяется |
Датчик | X координат Y координата | 'none' | Никакой блок, необходимый для моделирования |
Некоторые входные параметры блока точно не соответствуют, блокируют выходные параметры. Поэтому в дополнение к динамике отдельных компонентов, модель должна вычислить следующее:
Введите к расчету вращения — Вычитают скорости этих двух колес и делятся на два.
Введите к координатному преобразованию — Составляют в среднем скорости этих двух колес.
Введите к датчику — Интегрируют выходные параметры координатного преобразования.
Скорости колеса всегда равны в величине, и расчеты с точностью до того предположения.
Добавьте необходимые компоненты и завершите связи:
Добавьте необходимые порты ввода и вывода в каждую подсистему. Дважды кликните блок Subsystem.
Каждый новый блок Subsystem содержит один Inport (In1) и один блок Outport (Out1). Эти блоки задают интерфейс сигнала со следующим более высоким уровнем в иерархии модели.
Каждый блок Inport создает входной порт на блоке Subsystem, и каждый блок Outport создает выходной порт. Модель отражает имена этих блоков как имена порта ввода/вывода. Добавьте больше блоков для дополнительных сигналов ввода и вывода. На панели инструментов Simulink Editor нажмите кнопку Navigate Up To Parent, чтобы возвратиться к верхнему уровню.
Для каждого блока добавьте и переименуйте блоки Outport и Inport.
При копировании блока Inport, чтобы создать новый, используйте Paste (Ctrl+V) опция.
Вычислите требуемые входные параметры к Coordinate Transform и подсистемам Rotation от левого колеса и правильных скоростей колеса.
Вычислите Линейный вход скорости к подсистеме Coordinate Transform. Добавьте блок Add из библиотеки Math Operations и соедините выходные параметры компонентов 2D колеса. Добавьте блок Gain и установите параметр усиления на 1/2
. Соедините выход блока Add с этим блоком Gain.
Вычислите вход Различия в скорости к подсистеме Rotation. Добавьте блок Subtract из библиотеки Math Operations. Соедините правильную скорость колеса с входом + и левую скорость колеса к входу -. Соедините выходные параметры двух компонентов колеса. Добавьте блок Gain и установите параметр усиления на 1/2
. Соедините выход блока Subtract с этим блоком Gain.
Вычислите координаты X и Y из скоростей X и Y. Добавьте два блока Integrator из библиотеки Continuous и соедините выходные параметры блока Coordinate Transform. Оставьте начальные условия набора блоков Integrator к 0
.
Завершите связи для системы.
Определите параметры, которые являются частью модели и их значений. Используйте цели моделирования определить, фиксируются ли эти значения всегда или изменение от симуляции до симуляции. Параметры, которые способствуют цели моделирования, требуют явного представления в модели. Эта таблица помогает определить уровень детализации при моделировании каждого компонента.
Параметр | Блок | Символ | Значение | Ввод |
---|---|---|---|---|
Масса | Левое колесо Правое колесо | m | 2,5 кг | Переменная |
Сопротивление качению | Левое колесо Правое колесо | k_drag | 30 Ns2/m | Переменная |
Радиус робота | Вращение | r | 0,15 м | Переменная |
Начальный угол | Вращение | 'none' | 0 рад | Фиксированный |
Начальные скорости | Левое колесо Правое колесо | 'none' | 0 м/с 0 м/с | Фиксированный |
Начальная буква (X, Y) координаты | Интеграторы | 'none' | (0, 0) m | Фиксированный |
Simulink использует рабочую область MATLAB®, чтобы оценить параметры. Установите эти параметры в окне команды MATLAB:
m = 2.5; k_drag = 30; r = 0.15;