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