Вы можете использовать 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 предоставляет набор библиотек блоков, организованных по функциям в Library Browser. Следующие библиотеки являются общими для большинства рабочих процессов:
Непрерывный - Блоки для систем с непрерывными состояниями
Дискретный - Блоки для систем с дискретными состояниями
Математические операции - Блоки, которые реализуют алгебраические и логические уравнения
Раковины - Блоки, которые хранят и показывают сигналы, которые соединяются с ними
Источники - Блоки, которые генерируют значения сигналов, которые управляют моделью
На вкладке Simulation нажмите кнопку Library Browser.
Установите браузер библиотек на верхнюю часть из других окон рабочего стола. На панели инструментов браузера библиотеки Simulink нажмите кнопку 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.
Порт выхода и все входы порты, подходящие для соединения, обозначены синим символом шеврона.
Укажите, чтобы увидеть сигнал соединения.
Нажмите клавишу. Simulink соединяет блоки с линией и стрелой, указывающей направление потока сигналов.
Подключите выход порт Gain block к входу порту на блоке Integrator, Second-Order.
Соедините два выхода блока Integrator, Second-Order с двумя блоками Outport.
Сохраните модель. На вкладке Simulation нажмите Save.
Чтобы просмотреть результаты симуляции, соедините первый выход с Signal Viewer.
Нажмите на сигнал. На вкладке Simulation под Prepare нажмите Add Viewer. Выберите Scope. На сигнале появится значок Viewer, и откроется окно scope.
Вы можете открыть возможности в любое время, дважды щелкнув значок.
После того, как вы определите параметры конфигурации, вы готовы симулировать модель.
На вкладке Simulation установите время остановки симуляции путем изменения значения на панели инструментов.
Время остановки по умолчанию 10.0
подходит для этой модели. Это значение времени не имеет модуля. Время, модуль в Simulink, зависит от того, как построены уравнения. Этот пример описывает упрощенное движение автомобиля в течение 10 секунд - другие модели могут иметь модули времени в миллисекундах или годах.
Чтобы запустить симуляцию, нажмите кнопку Run .
Симуляция выполняется и формирует выход в средстве просмотра.
Этот пример берёт существующую модель, moving_car.slx
, и моделирует датчик близости на основе этой модели движения. В этом сценарии цифровой датчик измеряет расстояние между автомобилем и препятствием на расстоянии 10 м (30 футов). Модель выводит измерение датчика и положение автомобиля, принимая во внимание эти условия:
Машина приходит в жёсткий упор, когда достигает препятствия.
В физическом мире датчик измеряет расстояние неточно, вызывая случайные числовые ошибки.
Цифровой датчик работает с фиксированными временными интервалами.
Чтобы начать, откройте moving_car
модель. В командной строке MATLAB введите:
open_system('moving_car.slx')
Вам сначала нужно смоделировать жёсткий упор, когда положение автомобиля достигает 10
. Блок Integrator, Second-Order имеет параметр для этой цели.
Дважды кликните «Интегратор, Second-Order» блок. Откроется диалоговое окно Параметров блоков.
Выберите Limit x и введите 10
для Верхний предел x. Цвет фона для параметра изменяется, чтобы указать изменение, которое не применяется к модели. Нажмите кнопку ОК, чтобы применить изменения и закрыть диалоговое окно.
Добавьте датчик, который измеряет расстояние от препятствия.
Измените модель. Разверните окно модели, чтобы разместить новые блоки по мере необходимости.
Найдите фактическое расстояние. Чтобы найти расстояние между положением препятствия и положением транспортного средства, добавьте Subtract блок из Math Operations
библиотека. Также добавьте Constant блок из Sources
библиотека, чтобы задать постоянное значение 10
для положения препятствия.
Моделируйте несовершенные измерения, которые были бы типичны для реального датчика. Сгенерируйте шум при помощи блока Band-Limited White Noise из Sources
библиотека. Установите параметр 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 м. Эта информация становится полезной при разработке функции безопасности, например, предупреждения столкновения.