Парадигма Модельно-ориентированного проектирования центрируется вокруг моделей физических компонентов и систем как основание для дизайна, тестирования и действий реализации. Этот пример добавляет разработанный компонент к существующей системной модели.
Модель является плоским роботом, который может переместить или вращать с помощью двух колес, подобных домашнему роботу уборки пылесосом. Откройте модель путем ввода кода в командной строке MATLAB®.
open_system(fullfile(matlabroot,... 'help', 'toolbox', 'simulink', 'examples', 'system_model'))
Этот пример анализирует эту систему и добавляет функциональность к нему.
Соответствующая спецификация цели является критическим первым шагом к задаче дизайна. Даже с простые системы, могли быть несколько и даже конкурирующие цели дизайна. Рассмотрите их для модели в качестве примера:
Разработайте контроллер, который отличается входной параметр силы так, чтобы колеса повернулись на желаемой скорости.
Разработайте входные параметры, которые заставляют устройство переместиться в предопределенный путь.
Разработайте датчик и контроллер так, чтобы устройство следовало за строкой.
Разработайте алгоритм планирования так, чтобы устройство достигло определенного момента с помощью кратчайшего пути, возможного при предотвращении препятствий.
Разработайте датчик и алгоритм так, чтобы устройство отодвинулось определенная область при предотвращении препятствий.
Этот пример разрабатывает систему предупреждений. Вы определяете параметры для датчика, который измеряет расстояние от препятствия. Совершенный датчик измеряет расстояние от препятствия точно, система предупреждений выбирает те измерения в фиксированные интервалы так, чтобы вывод всегда был в 0,05 м измерения и сгенерировал предупреждение как раз к роботу, чтобы прибыть в остановку.
Дизайн нового компонента требует анализирующего линейного движения определить:
Как далеко робот может переместиться в максимальной скорости, если электроснабжение к колесам отключено
Максимальная скорость робота
Запустите модель с входным параметром силы, который запускает движение, ожидает, пока робот не достигает устойчивой скорости, и затем обнуляет силу:
В модели дважды кликните Входную подсистему.
Удалите существующий входной параметр и добавьте блок Pulse Generator с Амплитудным параметром по умолчанию.
Установите параметры для блока Pulse Generator:
Период: 20
Ширина импульса: 15
Эти параметры разработаны, чтобы гарантировать, что максимальная скорость достигнута. Можно изменить параметры, чтобы видеть их эффект.
Запустите модель в течение 20 секунд.
Первый осциллограф показывает, что скорость быстро начинает уменьшаться, когда электроснабжение отключено во время 3
, и затем асимптотически приближается к нулю, но действительно не совсем достигает его. Это - ограничение моделирования — динамика в низких скоростях без внешней силы может потребовать более комплексного представления. Для цели здесь, однако, возможно сделать приближения. Масштабируйте в сигнал положения
Во время 3, положение робота на уровне приблизительно 0,55 м, и когда моделирование заканчивается, это - меньше чем 0,71 м. Безопасно сказать, что перемещения робота меньше чем 0,16 м после степени сокращаются.
Найти максимальную скорость,
Масштабируйте на стабильной области скорости вывод вовремя с 1 с до 3 с.
Оставьте режим изменения масштаба путем нажатия кнопки изменения масштаба снова. Нажмите кнопку Cursor Measurements.
Установите второй курсор на область, где строка является горизонталью.
Столбец значений в Измерениях Курсора указывает, что максимальная скорость робота составляет 0,183 м/с. Разделитесь 0.05 на эту скорость, чтобы получить время, это берет робот, чтобы переместиться с на 0,05 м — 0.27.
Дизайн датчика состоит из этих компонентов:
Измерение расстояния между роботом и препятствием — Этот пример принимает, что измерение совершенно.
Интервал, в котором система датчика измеряет расстояние: Чтобы сохранить погрешность измерения ниже 0,05 м, этот интервал должен составить меньше чем 0,27 секунды. Используйте 0,25 секунды.
Расстояние, на котором датчик производит предупреждение — Анализ, показывает, что это замедляется, должен запуститься на уровне 0,16 м, но фактическое аварийное расстояние должно также взять погрешность измерения, 0.05, во внимание.
Создайте датчик:
Создайте подсистему с портами как показано.
Создайте измерение расстояния. В блоке модели датчика использование Вычитает, Математическая функция с функцией magnitude^2
, Суммой и блоками Sqrt как показано. Отметьте переупорядочение входных портов.
Образцовая выборка. Добавьте блок Zero-Order Hold от библиотеки Discrete до подсистемы и установите ее параметр Частоты дискретизации на 0.25
.
Смоделируйте аварийную логику. Используйте Сравнивание с Постоянным от Математических операций и установите его параметры:
Оператор: <=
Постоянное значение: 0.21
Этот логический блок устанавливает свой вывод на 1
, когда его входной параметр является меньше, чем 0.21
.
Протестируйте дизайн с местоположением препятствия X=0.65, Y=0, с помощью блоков Константа в качестве входного параметра. Этот тест проверяет функциональность в направлении X, можно создать подобные тесты для различных путей. Эта модель только генерирует предупреждение. Это не управляет роботом.
Установите местоположение препятствия: Добавьте, что два блока Константа от библиотеки Sources устанавливают постоянные значения к 0.65
и 0
. Соедините положение выходные параметры робота к входным параметрам датчика.
Добавьте осциллограф к Alert вывод.
Запустите модель.
Заметьте, что аварийное состояние становится 1
, если положение в 0,21 м местоположения препятствия, и конструктивные требования для этого компонента удовлетворены.
Для реальных систем с комплексными компонентами и формальными требованиями, семейство продуктов Simulink® включает дополнительные инструменты, совершенствовали и автоматизируют процесс проектирования. Simulink Requirements™ обеспечивает инструменты, чтобы официально задать требования и соединить их с компонентами модели. Design™ Управления Simulink может упростить дизайн, если вы хотите создать контроллер для этого робота. Верификация Simulink и продукты Validation™ устанавливают формальную среду для тестирования компонентов и систем.