Можно использовать Simulink®, чтобы смоделировать систему и затем моделировать динамическое поведение той системы. Основные методы, которые вы используете, чтобы создать простую модель в этом примере, совпадают с теми, вы используете для более сложных моделей. Этот пример моделирует упрощенное движение автомобиля. Автомобиль обычно находится в движении, в то время как газовая педаль нажимается. После того, как педаль отпущена, автомобиль бездействует и останавливается.
Блок Simulink является элементом модели, который задает математическое отношение между его вводом и выводом. Чтобы создать эту простую модель, вам нужны четыре блока Simulink.
Имя блока | Блокируйте цель | Образцовая цель |
---|---|---|
Импульсный генератор | Сгенерируйте входной сигнал для модели | Представляйте педаль акселератора |
Усиление | Умножьте входной сигнал на фактор | Вычислите, как нажатие акселератора влияет на автомобильное ускорение |
Интегратор, второго порядка | Интегрируйте входной сигнал дважды | Получите положение из ускорения |
Выходной порт | Определяйте сигнал как вывод из модели | Определяйте позицию вывода из модели |
Симуляция этой модели интегрирует краткий импульс дважды, чтобы получить пандус. Результаты отображаются в окне Scope. Входной импульс представляет нажатие газовой педали — 1, когда педаль нажимается и 0, когда это не. Выходной пандус является увеличивающимся расстоянием от отправной точки.
Используйте Редактор Simulink, чтобы создать ваши модели.
Запустите MATLAB®. От панели инструментов MATLAB нажмите кнопку Simulink .
Кликните по шаблону Blank Model.
Редактор Simulink открывается.
Из меню File выберите Save as. В текстовом поле File name введите имя для своей модели, Например, simple_model
. Нажмите Save. Модель сохранена с расширением файла .slx
.
Simulink обеспечивает набор библиотек блоков, организованных функциональностью в Браузере Библиотеки. Следующие библиотеки характерны для большинства рабочих процессов:
Непрерывный — Блоки для систем с непрерывными состояниями
Дискретный — Блоки для систем с дискретными состояниями
Математические операции — Блоки, которые реализуют алгебраические и логические уравнения
Приемники — Блоки, которые хранят и показывают сигналы, которые соединяются с ними
Источники — Блоки, которые генерируют значения сигналов, которые управляют моделью
От панели инструментов Simulink Editor нажмите кнопку Library Browser.
Настройте Браузер Библиотеки остаться сверху других настольных окон. На панели инструментов Library Browser нажмите кнопку Stay on top.
Чтобы просмотреть библиотеки блоков, выберите категорию и затем функциональную область на левой панели. Чтобы искать все доступные библиотеки блоков, введите критерий поиска.
Например, найдите блок Pulse Generator. В поле поиска на панели инструментов браузера введите pulse
, и затем нажмите клавишу ENTER. Simulink ищет библиотеки блоки с pulse
на их имя или описание, и затем отображает блоки.
Получите подробную информацию о блоке. Щелкните правой кнопкой по блоку, и затем выберите 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 | Номер порта: 1 |
Добавьте второй блок Outport путем копирования существующего и вставки его в другой точке с помощью горячих клавиш.
Ваша модель теперь имеет блоки, в которых вы нуждаетесь.
Расположите блоки можно следующим образом путем перетаскивания каждого блока. Чтобы изменить размер блока, перетащите угол.
Соедините блоки путем создания строк между выходными портами и входными портами.
Кликните по выходному порту на правой стороне блока Pulse Generator.
Выходной порт и все входные порты, подходящие для связи, подсвечены.
Кликните по входному порту блока Gain.
Simulink соединяет блоки со строкой и стрелкой, указывающей на направление потока сигналов.
Соедините выходной порт блока Gain к входному порту на Интеграторе, блока Second Order.
Соедините два выходных параметров Интегратора, блока Second Order к двум блокам Выходного порта.
Сохраните свою модель. Выберите File > Save и обеспечьте имя.
Чтобы просмотреть результаты симуляции, соедините первый вывод со Средством просмотра Сигнала.
Доступ к контекстному меню путем щелчка правой кнопкой по сигналу. Выберите Create & Connect Viewer > Simulink > Scope. Значок средства просмотра появляется на сигнале, и окно scope открывается.
Можно открыть осциллограф в любое время путем двойного клика по значку.
После того, как вы зададите параметры конфигурации, вы готовы моделировать свою модель.
На окне модели, набор время остановки симуляции путем изменения значения на панели инструментов.
Время остановки по умолчанию 10.0
подходит для этой модели. Эта временная стоимость не имеет никакого модуля. Единица измерения времени в Simulink зависит от того, как уравнения создаются. Этот пример моделирует упрощенное движение автомобиля в течение 10 секунд — другие модели могли иметь единицы измерения времени в миллисекундах или годы.
Чтобы запустить симуляцию, нажмите кнопку Run .
Симуляция запускает и производит вывод в средстве просмотра.
Этот пример берет существующую модель, moving_car.slx
, и моделирует датчик близости на основе этой модели движения. В этом сценарии цифровой датчик измеряет расстояние между автомобилем препятствие 10 м (30 футов) далеко. Образцовые выходные параметры измерение датчика и положение автомобиля, принимая эти условия во внимание:
Автомобиль прибывает в жесткую остановку, когда он достигает препятствия.
В материальном мире датчик измеряет расстояние неточно, вызывая случайные числовые ошибки.
Цифровой датчик действует в фиксированных временных интервалах.
Чтобы запуститься, откройте модель moving_car
. В Окне Команды MATLAB войти
open_system(fullfile(matlabroot,... 'help', 'toolbox', 'simulink', 'examples', 'moving_car'))
Сначала необходимо смоделировать жесткую остановку, когда автомобильное положение достигает 10
. Интегратор, блок Second Order имеет параметр с этой целью.
Дважды кликните Интегратор, блок Second Order. Диалоговое окно Block Parameters появляется.
Выберите Limit x и введите 10
для Upper limit x.
Цвет фона для параметра изменяется, чтобы указать на модификацию, которая не применяется к модели.
Нажмите OK, чтобы применить изменения и закрыть диалоговое окно.
Добавьте датчик, который измеряет расстояние от препятствия.
Измените модель. Расширьте окно модели, чтобы разместить новые блоки по мере необходимости.
Найдите фактическое расстояние. Чтобы найти расстояние между положением препятствия и положением автомобиля, добавьте блок Subtract. Также добавьте блок Constant, чтобы установить постоянное значение 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
.
Добавьте другой Выходной порт, чтобы соединить с датчиком вывод. Оставьте параметр Port number как значение по умолчанию.
Соедините новые блоки. Обратите внимание на то, что вывод Интегратора, блок Second-Order уже соединяется с другим портом. Чтобы создать ответвление в том сигнале, щелкните левой кнопкой по сигналу подсветить потенциальные порты для связи и кликнуть по соответствующему порту.
Добавьте имена сигнала к модели, чтобы облегчить понимать.
Дважды кликните сигнал. Появляется доступное для редактирования текстовое поле.
Введите имя сигнала.
В заключение, щелкните далеко от текстового поля.
Повторите эти шаги, чтобы добавить имена как показано.
Сравните фактический сигнал расстояния с измеренным сигналом расстояния.
Создайте и соедините Осциллограф с фактическим расстоянием. Обратите внимание на то, что имя сигнала появляется в заголовке средства просмотра.
Добавьте измеренный сигнал расстояния в то же средство просмотра. Щелкните правой кнопкой по сигналу и выберите Connect to Viewer > Scope1. Убедитесь, что вы соединяетесь со средством просмотра, которое вы создали на предыдущем шаге.
Запустите модель. Средство просмотра показывает два сигнала, фактическое расстояние в желтом и измеренном расстоянии синего цвета.
Масштабируйте в график, чтобы наблюдать эффект шума и выборки. Нажмите кнопку Zoom. Щелкните левой кнопкой и перетащите окно вокруг области, которую вы хотите видеть.
Можно неоднократно увеличивать масштаб, чтобы наблюдать детали.
Из графика вы видите, что измерение может отклониться от фактического значения на целых 0,3 м. Эта информация становится полезной при разработке функции безопасности, например, предупреждения столкновения.