Спроектируйте систему в Simulink

Парадигма Модельно-ориентированного проектирования сосредоточена на моделях физических компонентов и систем как основание для проекта, тестирования и действий реализации. Этот пример добавляет спроектированный компонент в существующую системную модель.

Модель открытой системы

Модель является плоским роботом, который может перемещаться или вращаться с помощью двух колес, похожих на домашний робот - пылесос. Откройте модель путем ввода в командную строку MATLAB:

open_system('system_model.slx')

Этот пример анализирует эту систему и добавляет функциональность в него.

Идентифицируйте спроектированные компоненты и спроектируйте цели

Спецификацией цели проекта является критический первый шаг к задаче проекта. Даже с простой системой, могли быть несколько и даже конкурирующие цели проекта. Рассмотрите эти цели для модели в качестве примера:

  • Спроектируйте контроллер, который варьируется вход силы так, чтобы колеса повернулись на желаемой скорости.

  • Спроектируйте входные параметры, которые заставляют устройство переместиться в предопределенный путь.

  • Спроектируйте датчик и контроллер так, чтобы устройство следовало вдоль линии.

  • Спроектируйте алгоритм планирования так, чтобы устройство достигло определенного момента с помощью кратчайшего пути, возможного при предотвращении препятствий.

  • Спроектируйте датчик и алгоритм так, чтобы устройство отодвинулось определенная область при предотвращении препятствий.

Этот пример проектирует систему предупреждений. Вы определяете параметры для датчика, который измеряет расстояние от препятствия. Совершенный датчик измеряет расстояние от препятствия точно. Система предупреждений производит те измерения в фиксированные интервалы так, чтобы выход всегда был в 0,05 м измерения. Система генерирует предупреждение как раз к роботу, чтобы остановиться прежде, чем поразить препятствие.

Анализируйте поведение системы Используя симуляцию

Проект нового компонента требует анализа линейного движения робота определить:

  • Как далеко робот может переместиться в максимальной скорости, когда электроснабжение к колесам отключено

  • Максимальная скорость робота

Запустите модель с входом силы, который запускает движение, ожидает, пока робот не достигает устойчивой скорости, и затем обнуляет входную силу:

  1. В модели дважды кликните Входную подсистему.

  2. Удалите существующий вход шага и добавьте блок Pulse Generator.

  3. Установите параметры для блока Pulse Generator:

    • Амплитуда: 1

    • Период: 20

    • Ширина импульса: 15

    Эти параметры спроектированы, чтобы гарантировать, что максимальная скорость достигнута. Можно изменить параметры, чтобы видеть их эффект.

  4. Запустите модель в течение 20 секунд.

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

Во время 3, положение робота на уровне приблизительно 0,55 м. Когда симуляция заканчивается, положение меньше 0,71 м. Безопасно сказать, что перемещения робота меньше чем 0,16 м после степени сокращаются.

Найти максимальную скорость:

  1. Масштабируйте на стабильной области скорости выход вовремя с 1 с до 3 с.

  2. Оставьте режим изменения масштаба путем нажатия кнопки изменения масштаба снова. Нажмите кнопку Cursor Measurements.

  3. Установите второй курсор на область, где скоростная кривая является плоской.

Столбец Value в панели Cursor Measurements указывает, что максимальная скорость робота составляет 0,183 м/с. Чтобы вычислить время, это берет для робота, чтобы переместиться 0,05 м, разделить 0,05 м на 0,183 м/с. Вы получаете 0,27 секунды.

Компоненты проекта и проверяют проект

Проект датчика состоит из этих компонентов:

  • Измерение расстояния между роботом и препятствием — Этот пример принимает, что измерение совершенно.

  • Временной интервал, в котором система предупреждений измеряет расстояние — Чтобы сохранить погрешность измерения ниже 0,05 м, этот интервал выборки, должен быть меньше 0,27 секунд. Используйте 0,25 секунды.

  • Расстояние, на котором датчик производит предупреждение — Анализ, показывает, что это замедляется, должен запуститься на уровне 0,16 м от препятствия. Фактическое аварийное расстояние должно также взять ошибку из дискретных измерений, 0,05 м, во внимание.

Добавьте спроектированный компонент

Создайте датчик:

  1. Создайте подсистему с портами как показано.

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

  3. Выборка модели. Добавьте блок Zero-Order Hold от библиотеки Discrete до подсистемы и установите параметр Sample time на 0.25.

  4. Смоделируйте аварийную логику. Добавьте блок Compare to Constant из библиотеки Logic и Bit Operations и установите параметры:

    • Оператор: <=

    • Constant Value: 0.21

    • Output data type: boolean

    Этот логический блок устанавливает свой выход на 1 когда его вход меньше чем или равен 0.21.

  5. Конец, соединяющий блоки.

Проверьте проект

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

  1. Установите местоположение препятствия. Добавьте, что два блока Constant из библиотеки Sources устанавливают постоянные значения к 0.65 и 0. Соедините положение выходные параметры робота к входным параметрам датчика.

  2. Добавьте осциллограф в Alert выход.

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

Заметьте, что аварийное состояние становится 1 если положение в 0,21 м местоположения препятствия, и конструктивным требованиям для этого компонента удовлетворяют.

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

Похожие темы