Преобразование по интерполяции: 1-D Lookup Table

Предположим, есть некий входной сигнал. Необходимо задать каждому значению этого входного сигнала некоторое значение выходного сигнала. Соответствие должно быть непрерывным, но функции в явном виде нет. Закон соответствия (преобразования) в таком случае может быть задан не функцией, а интерполяцией по набору пар соответственных значений входного и выходного сигналов. Заметка о применении блока 1-D Lookup Table.

Схема такая:

Схема.
Схема для отработки интерполяционного преобразования сигнала.

Пусть, закон преобразования определяется точками {1;0.5} {3;1} {5;3} {6;5}. Это значит, что если сигнал на входе в блок 1-D Lookup Table равен 1, то на выходе из этого блока будет 0.5. Если 3, то на выходе будет 1. Именно это и видно на приведенных ниже графиках запуска модели: в момент времени, когда синий сигнал равен 3, желтый равен 1. И так со всеми указанными точками.

Результат запуска модели на 10 секунд выглядит так:

График результатов
Исходный сигнал из Signal Builder (синий) преобразован блоком 1-D Lookup Table по закону, заданному интерполяцией (желтый).

Ценность блока 1-D Lookup Table в том, что он интерполирует преобразование между точками. Может линейно, может кубическим сплайном. Именно кубическая интерполяция показана на графике. При выходе за пределы массива точек, данные экстраполируются линейно. В нашем случае, экстраполяция происходит до первой секунды, а также после 6-й (линейные участки на желтом графике). Но обо всем по порядку.

Сначала рассмотрим то, как формируется исходный сигнал. Это происходит в блоке Signal Builder. Блок представляет собой визуальный редактор сигнала (кликнуть на блок дважды, чтобы войти в редактор). По оси х — время, а по оси y — величина сигнала. Для редактирования графика сигнала, его надо активировать, щелкнув мышью. Появятся маркеры-точки. Можно добавлять точки (Shift+ЛКМ в области графика), можно двигать точки (выделив точку ЛКМ, двигать мышью или стрелками на клавиатуре). Можно выделив точку задать для неё время и величину сигнала.

Источник (график сигнала)
Simulink Signal Builder. Внизу — строка подсказки. Кликните, чтобы выбрать или нажмите Shift+Click, чтобы добавить точку.

Теперь, о блоке 1-D Lookup Table. Нужно кликнуть на него дважды, чтобы войти в настройки. Для определения набора точек интерполяции, нужно нажать кнопку Edit table and breakpoints…:

Параметры блока 1-D Lookup Table
Lookup Table Parameters. Набор точек задан и отображается.

Так выглядит окно редактора таблицы точек:

Simulink Lookup Table Editor. Таблица данных.
Simulink Lookup Table Editor. Точки для интерполяции и экстраполяции закона преобразования сигнала. Красным квадратиком выделил инструмент добавления и удаления строчек. Каждая строка — точка, устанавливающая соответствие между входным и выходным сигналом.

После задания всех точек, редактор можно закрыть. Вернемся к настройкам блока 1-D Lookup Table. На вкладке Algorithm определяется интерполяция и экстраполяция.

Окно настроек 1-D Lookup Table. Lookup Table вкладка Algorithm.
Lookup Table вкладка Algorithm. Интерполяция — кубический сплайн, экстраполяция линейная.

Если интерполяцию установить линейной, то график желтого цвета станет ломаным.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.