Можно использовать Simulink®, чтобы смоделировать систему и затем симулировать динамическое поведение той системы. Основные методы, которые вы используете, чтобы создать простую модель в этом примере, совпадают с теми, вы используете в более сложных моделях. Этот пример симулирует упрощенное движение автомобиля. Автомобиль обычно находится в движении, в то время как газовая педаль нажимается. После того, как педаль отпущена, автомобиль бездействует и останавливается.
Блок Simulink является элементом модели, который задает математическое отношение между его вводом и выводом. Чтобы создать эту простую модель, вам нужны четыре блока Simulink.
Имя блока | Блокируйте цель | Цель модели |
---|---|---|
Pulse Generator | Сгенерируйте входной сигнал для модели | Представляйте педаль акселератора |
Gain | Умножьте входной сигнал на постоянное значение | Вычислите, как нажатие акселератора влияет на автомобильное ускорение |
Integrator, Second-Order | Интегрируйте входной сигнал дважды | Получите положение из ускорения |
Outport | Определяйте сигнал как выход из модели | Определяйте позицию выхода из модели |
Симуляция этой модели интегрирует краткий импульс дважды, чтобы получить пандус. Результаты отображаются в окне Scope. Входной импульс представляет нажатие газовой педали — 1, когда педаль нажимается и 0, когда это не. Выходной пандус является увеличивающимся расстоянием от начальной точки.
Используйте Редактор Simulink, чтобы создать ваши модели.
Запустите MATLAB®. От панели инструментов MATLAB нажмите кнопку Simulink .
Кликните по шаблону Blank Model.
Редактор Simulink открывается.
От вкладки Simulation выберите Save > Save as. В текстовом поле File name введите имя для своей модели. Например, simple_model
. Нажмите Save. Модель сохранена с расширением файла .slx
.
Simulink обеспечивает набор библиотек блоков, организованных функциональностью в Браузере Библиотеки. Следующие библиотеки характерны для большинства рабочих процессов:
Непрерывное — Блоки для систем с непрерывными состояниями
Дискретное - Блоки для систем с дискретными состояниями
Математические операции — Блоки, которые реализуют алгебраические и логические уравнения
Приемники — Блоки, которые хранят и показывают сигналы, которые соединяются с ними
Источники — Блоки, которые генерируют значения сигналов, которые управляют моделью
От вкладки Simulation нажмите кнопку Library Browser.
Настройте Браузер Библиотеки остаться сверху других настольных окон. На панели инструментов Simulink Library Browser нажмите кнопку Stay on top.
Чтобы просмотреть библиотеки блоков, выберите категорию и затем функциональную область на левой панели. Чтобы искать все доступные библиотеки блоков, введите критерий поиска.
Например, найдите блок Pulse Generator. В поле поиска на панели инструментов браузера введите pulse
, и затем нажмите Enter. Simulink ищет библиотеки блоки с pulse
на их имя или описание и затем отображает блоки.
Получите подробную информацию о блоке. Щелкните правой кнопкой по блоку Pulse Generator, и затем выберите Help for the Pulse Generator block. Браузер документации открывается страницей с описанием для блока.
Блоки обычно имеют несколько параметров. Можно получить доступ ко всем параметрам блоков путем двойного клика по блоку.
Чтобы начать создавать модель, просмотрите библиотеку и добавьте блоки.
От Sources
библиотека, перетащите блок Pulse Generator к Редактору Simulink. Копия блока Pulse Generator появляется в вашей модели с текстовым полем для значения параметра Amplitude. Введите 1
.
Значения параметров сохранены в течение симуляции.
Добавьте следующие блоки в свою модель с помощью того же подхода.
Блок | Библиотека | Параметр |
---|---|---|
Gain | Simulink/Math Operations | Усиление: |
Integrator, Second-Order | Simulink/Continuous | Начальное условие: |
Outport | Simulink/Sinks | Номер порта: |
Добавьте второй блок Outport путем копирования существующего и вставки его в другой точке с помощью горячих клавиш.
Ваша модель теперь имеет блоки, в которых вы нуждаетесь.
Расположите блоки путем перетаскивания каждого блока. Чтобы изменить размер блока, перетащите угол.
Соедините блоки путем создания линий между выходными портами и входными портами.
Кликните по выходному порту на правой стороне блока Pulse Generator.
Выходной порт и все входные порты, подходящие для связи, подсвечены.
Кликните по входному порту блока Gain.
Simulink соединяет блоки с линией и стрелой, указывающей на направление потока сигналов.
Соедините выходной порт Gain block к входному порту на блоке Integrator, Second-Order.
Соедините два выходных параметров блока Integrator, Second-Order с двумя блоками Outport.
Сохраните свою модель. Во вкладке Simulation нажмите кнопку Save.
Чтобы просмотреть результаты симуляции, соедините первый выход с Signal Viewer.
Кликните по сигналу. Во вкладке Simulation под Prepare нажмите Add Viewer. Выберите Scope. Значок средства просмотра появляется на сигнале, и окно scope открывается.
Можно открыть осциллограф в любое время путем двойного клика по значку.
После того, как вы зададите параметры конфигурации, вы готовы симулировать свою модель.
Во вкладке Simulation, набор время остановки симуляции путем изменения значения на панели инструментов.
Время остановки по умолчанию 10.0
подходит для этой модели. Эта временная стоимость не имеет никакого модуля. Единица измерения времени в Simulink зависит от того, как уравнения создаются. Этот пример симулирует упрощенное движение автомобиля в течение 10 секунд — другие модели могли иметь единицы измерения времени в миллисекундах или годы.
Чтобы запустить симуляцию, нажмите кнопку Run .
Симуляция запускает и производит выход в средстве просмотра.
Этот пример берет существующую модель, moving_car.slx
, и модели датчик близости на основе этой модели движения. В этом сценарии цифровой датчик измеряет расстояние между автомобилем и препятствием 10 м (30 футов) далеко. Выходные параметры модели измерение датчика и положение автомобиля, принимая эти условия во внимание:
Автомобиль прибывает в жесткий упор, когда он достигает препятствия.
В материальном мире датчик измеряет расстояние неточно, вызывая случайные числовые ошибки.
Цифровой датчик действует в фиксированных временных интервалах.
Чтобы запуститься, откройте moving_car
модель. В командной строке MATLAB, введите:
open_system('moving_car.slx')
Сначала необходимо смоделировать жесткий упор, когда автомобильное положение достигает 10
. Интегратор, блок Second-Order имеет параметр с этой целью.
Дважды кликните "Интегратор, Second-Order" блок. Диалоговое окно Block Parameters появляется.
Выберите Limit x и введите 10
для Верхнего предела x. Цвет фона для параметра изменяется, чтобы указать на модификацию, которая не применяется к модели. Нажмите ОК, чтобы применить изменения и закрыть диалоговое окно.
Добавьте датчик, который измеряет расстояние от препятствия.
Измените модель. Расширьте окно модели, чтобы разместить новые блоки по мере необходимости.
Найдите фактическое расстояние. Чтобы найти расстояние между положением препятствия и положением транспортного средства, добавьте блок Subtract из Math Operations
библиотека. Также добавьте блок Constant из Sources
библиотека, чтобы установить постоянное значение 10
для положения препятствия.
Смоделируйте несовершенное измерение, которое было бы типично к действительному датчику. Сгенерируйте шум при помощи блока Band-Limited White Noise из Sources
библиотека. Установите the Noise power параметр на 0.001
. Добавьте шум в измерение при помощи блока Add из Math Operations
библиотека.
Смоделируйте цифровой датчик, который стреляет каждую 0.1 секунды. В Simulink выборка сигнала в данном интервале требует выборки, и содержать. Добавьте блок Zero-Order Hold из Discrete
библиотека. После того, как вы добавляете блок в модель, изменяете параметр Sample Time в 0.1
.
Добавьте другой Outport, чтобы соединить с датчиком выход. Сохраните значение по умолчанию параметра Port number.
Соедините новые блоки. Выход блока Integrator, Second-Order уже соединяется с другим портом. Чтобы создать ветвь в том сигнале, щелкните левой кнопкой по сигналу подсветить потенциальные порты для связи и кликнуть по соответствующему порту.
Добавьте имена сигнала к модели.
Дважды кликните сигнал и введите имя сигнала.
В заключение, щелкните далеко от текстового поля.
Повторите эти шаги, чтобы добавить имена как показано.
Сравните actual distance
сигнал с measured distance
сигнал.
Создайте и соедините Scope Viewer с actual distance
сигнал. Щелкните правой кнопкой по сигналу и выберите Create & Connect Viewer > Simulink > Scope. Имя сигнала появляется в заголовке средства просмотра.
Добавьте measured distance
предупредите к тому же средству просмотра. Щелкните правой кнопкой по сигналу и выберите Connect to Viewer > Scope1. Убедитесь, что вы связываете со средством просмотра, которое вы создали на предыдущем шаге.
Запустите модель. Средство просмотра показывает два сигнала, actual distance
в желтом и measured distance
в синем.
Масштабируйте в график, чтобы наблюдать эффект шума и выборки. Нажмите кнопку Zoom. Щелкните левой кнопкой и перетащите окно вокруг области, которую вы хотите видеть более тесно.
Можно неоднократно увеличивать масштаб, чтобы наблюдать детали.
Из графика обратите внимание, что измерение может отклониться от фактического значения на целых 0,3 м. Эта информация становится полезной при разработке функции безопасности, например, предупреждения столкновения.