Парадигма проектирования на основе моделей основана на моделях физических компонентов и систем в качестве основы для проектирования, тестирования и реализации. В этом учебном пособии к существующей системной модели добавляется проектируемый компонент.
Модель представляет собой плоского робота, который может двигаться или вращаться с помощью двух колёс, аналогично домашнему вакуумирующему роботу. Откройте модель, введя в командной строке MATLAB ®:
open_system('system_model.slx')

В этом учебном пособии анализируется эта система и добавляются к ней дополнительные функциональные возможности.
Определение цели проектирования является важным первым шагом к задаче проектирования. Даже при использовании простой системы могут существовать многочисленные и даже конкурирующие цели проектирования. Рассмотрим следующие цели для примера модели:
Сконструируйте контроллер, который изменяет вводимую силу так, чтобы колеса вращались с требуемой скоростью.
Расчетные входные данные, которые заставляют устройство перемещаться по заданной траектории.
Сконструируйте датчик и контроллер таким образом, чтобы устройство следовало по линии.
Разработайте алгоритм планирования так, чтобы устройство достигало определенной точки, используя максимально короткий путь, избегая при этом препятствий.
Сконструируйте датчик и алгоритм так, чтобы устройство перемещалось по определенной области, избегая препятствий.
В данном учебном пособии разрабатывается система оповещения. Определяются параметры датчика, измеряющего расстояние от препятствия. Идеальный датчик точно измеряет расстояние от препятствия. Система оповещения производит выборку этих измерений с фиксированными интервалами, так что выходной сигнал всегда находится в пределах 0,05 м от измерения. Система генерирует предупреждение вовремя, чтобы робот остановился перед ударом о препятствие.
Конструкция нового компонента требует анализа линейного движения робота для определения:
Как далеко робот может двигаться с верхней скоростью, когда отключается питание колес
Максимальная скорость робота
Запустите модель с вводом силы, который начинает движение, ждет, пока робот не достигнет постоянной скорости, а затем установит входную силу равной нулю:
В модели дважды щелкните подсистему входов.
Удалите существующий ввод шага и добавьте блок генератора импульсов.
Задайте параметры для блока генератора импульсов:
Амплитуда: 1
Период: 20
Ширина импульса: 15
Эти параметры предназначены для обеспечения достижения максимальной скорости. Можно изменить параметры, чтобы увидеть их эффект.
Запустите модель в течение 20 секунд.


Первый объем показывает, что скорость быстро начинает уменьшаться, когда во время отключения питания 3. Скорость тогда асимптотически приближается к нулю, но не совсем достигает его. Это ограничение моделирования; динамика на низких скоростях без внешней силы требует более сложного представления. Однако для данной цели можно сделать аппроксимации. Увеличьте изображение позиционного сигнала.

В момент времени 3положение робота составляет около 0,55 м. Когда моделирование заканчивается, положение составляет менее 0,71 м. Можно с уверенностью сказать, что робот перемещается менее 0,16 м после отключения питания.
Чтобы найти максимальную скорость:
Увеличьте масштаб стабильной области выходного сигнала скорости во времени от 1 с до 3 с.
Выйдите из режима зумирования, снова нажав кнопку зумирования. Нажмите кнопку Cursor Measurements (измерения курсора).
Установите второй курсор в область, в которой кривая скорости является плоской.

Столбец Значение (Value) на панели Измерения курсора (Cursor Measurements) указывает, что верхняя скорость робота составляет 0,183 м/с. Чтобы рассчитать время, необходимое роботу для перемещения 0,05 м, разделите 0,05 м на 0,183 м/с. Ты получишь 0,27 секунды.
Конструкция датчика состоит из следующих компонентов:
Измерение расстояния между роботом и препятствием - в этом примере предполагается, что измерение является идеальным.
Интервал времени, в течение которого система оповещения измеряет расстояние - Чтобы погрешность измерения не превышала 0,05 м, этот интервал выборки должен быть меньше 0,27 сек. Используйте 0,25 сек.
Расстояние, на котором датчик выдает предупреждение - анализ показывает, что замедление должно начинаться на расстоянии 0,16 м от препятствия. Фактическое расстояние оповещения также должно учитывать погрешность дискретных измерений, 0,05 м.
Создайте датчик:
Создайте подсистему с портами, как показано на рисунке.

Создайте подсистему измерения расстояния. В блоке модели сенсора используйте функцию Вычитание, Математическая функция с функцией magnitude^2, Суммировать и блоки Sqrt, как показано на рисунке. Обратите внимание на изменение порядка входных портов.

Выборка модели. Добавьте в подсистему блок удержания нулевого порядка из библиотеки дискретных данных и установите для параметра Sample time значение 0.25.
Смоделировать логику алармов. Добавьте блок сравнения с константой из библиотеки логических и битовых операций и задайте следующие параметры:
Оператор: <=
Постоянное значение: 0.21
Тип выходных данных: boolean
Этот логический блок устанавливает свой выход в 1 когда его вход меньше или равен 0.21.
Завершите соединение блоков.

Протестируйте конструкцию с расположением препятствия X = 0,65, Y = 0 с использованием постоянных блоков в качестве входных данных для подсистемы модели сенсора. Этот тест проверяет функциональность конструкции в направлении X. Можно создать аналогичные тесты для различных путей. Эта модель генерирует только предупреждение. Он не управляет роботом.
Задайте местоположение препятствия. Добавьте два блока констант из библиотеки источников, установив значения констант как 0.65 и 0. Подсоедините позиционные выходы робота к входам датчика.
Добавьте область в вывод аларма.

Запустите модель.


Обратите внимание, что состояние аларма становится 1 после того, как положение находится в пределах 0,21 м от места препятствия, и проектные требования для этого компонента удовлетворяются.
Для реальных систем со сложными компонентами и формальными требованиями семейство продуктов Simulink ® включает дополнительные инструменты для уточнения и автоматизации процесса проектирования. Requirements™ Simulink предоставляют инструменты для формального определения требований и связывания их с компонентами модели. Simulink Control Design™ может облегчить проектирование, если вы хотите построить контроллер для этого робота. Продукты Simulink Verification и Validation™ создают формальную основу для тестирования компонентов и систем .