exponenta event banner

Динамическая интерполяционная таблица

Аппроксимируйте одномерную функцию с помощью динамической таблицы

  • Библиотека:
  • Simulink / Интерполяционные таблицы

Описание

Как этот блок отличается от других блоков интерполяционной таблицы

Блок Lookup Table Dynamic вычисляет приближение функционального y = f(x) с помощью векторов ydat и xdat. Метод поиска может использовать интерполяцию, экстраполяцию или исходные значения входного параметра.

Используя блок Lookup Table Dynamic, можно изменить табличные данные, не останавливая моделирование. Например, можно включить новые табличные данные, если физическая система вы моделируете изменения.

Вводы для данных точки останова и таблицы

Вектор xdat является данными точки останова, которые должны строго монотонно увеличиваться. Значение следующего элемента в векторе должно быть больше, чем значение предыдущего элемента после преобразования в тип данных фиксированной точки. Из-за квантования, xdat может быть строго монотонным для типа данных с плавающей точкой, но не после преобразования в тип данных фиксированной точки.

Вектор ydat является табличными данными, который является оценкой функции в значениях точки останова.

Примечание

Входные параметры к xdat и ydat не могут быть скаляром (массив с одним элементом) значения. Если вы предоставляете скалярное значение любому из этих входных параметров, вы видите ошибку после моделирования. Предоставьте вектор 1 на n и xdat и входным параметрам ydat.

Определение интерполяционной таблицы

Вы задаете интерполяционную таблицу путем питания xdat и ydat как векторы 1 на n к блоку. Чтобы уменьшить использование ROM в сгенерированном коде для этого блока, можно использовать различные типы данных для xdat и ydat. Однако эти ограничения применяются:

  • Данные точки останова xdat и входной вектор x должны иметь тот же знак, смещение и дробный наклон. Кроме того, точность и область значений для x должны быть больше, чем или равными точности и области значений для xdat.

  • Данные таблицы ydat и выходной вектор y должны иметь тот же знак, смещение и дробный наклон.

Совет

Точки останова с ровным интервалом могут сделать сгенерированный код Simulink® Coder™ без делений. Для получения дополнительной информации смотрите fixpt_evenspace_cleanup в документации Simulink и Идентифицируйте сомнительные операции фиксированной точки (Embedded Coder) в документации Simulink Coder.

Как блок генерирует Вывод

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

Метод поискаБлокируйте действие
Interpolation-Extrapolation

Выполняет линейную интерполяцию и экстраполяцию входных параметров.

  • Если входной параметр совпадает с точкой останова, вывод является соответствующим элементом в табличных данных.

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

Примечание

Если вы выбираете этот метод поиска, программное обеспечение Simulink Coder не может сгенерировать код для этого блока.

Interpolation-Use End Values (значение по умолчанию)

Выполняет линейную интерполяцию, но не экстраполирует вне конечных точек данных точки останова. Вместо этого блок использует значения конца.

Use Input Nearest

Находит элемент в xdat самым близким текущий входной параметр. Соответствующим элементом в ydat является вывод.

Use Input Below

Находит элемент в xdat самым близким и ниже текущего входного параметра. Соответствующим элементом в ydat является вывод. Если нет никакого элемента в xdat ниже текущего входного параметра, блок находит самый близкий элемент.

Use Input Above

Находит элемент в xdat самым близким и выше текущего входного параметра. Соответствующим элементом в ydat является вывод. Если нет никакого элемента в xdat выше текущего входного параметра, блок находит самый близкий элемент.

Примечание

Use Input Nearest, Use Input Below и методы Use Input Above выполняют то же действие, когда входной параметр x совпадает со значением точки останова.

Некоторые непрерывные решатели подразделяют промежуток времени симуляции на главные и незначительные временные шаги. Незначительный временной шаг является подразделением главного временного шага. Решатель приводит к результату на каждом главном временном шаге и использует результаты на незначительных временных шагах, чтобы улучшить точность результата на главном временном шаге. Для непрерывных решателей вывод блока Lookup Table Dynamic может появиться как шаг ступеньки, потому что сигнал фиксируется в незначительном временном шаге, чтобы избежать неправильных результатов. Для получения дополнительной информации об эффекте решателей на блоке вывод, смотрите Решатели в документации Simulink.

Порты

Входной параметр

развернуть все

Блок принимает многомерные входные параметры с комплексным знаком или с действительным знаком.

Пример 2: 12

Зависимости

Входной вектор x и данные точки останова xdat должны иметь тот же знак, смещение и дробный наклон. Кроме того, точность и область значений для x должны быть больше, чем или равными точности и области значений для xdat.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка | шина

Вектор xdat является данными точки останова, которые должны строго монотонно увеличиваться. Значение следующего элемента в векторе должно быть больше, чем значение предыдущего элемента после преобразования в тип данных фиксированной точки. Из-за квантования, xdat может быть строго монотонным для типа данных с плавающей точкой, но не после преобразования в тип данных фиксированной точки.

Совет

Точки останова с ровным интервалом могут сделать сгенерированный код Simulink Coder без делений. Для получения дополнительной информации смотрите fixpt_evenspace_cleanup в документации Simulink и Идентифицируйте сомнительные операции фиксированной точки (Embedded Coder) в документации Simulink Coder.

Пример 1: 10

Зависимости

Данные точки останова xdat и входной вектор x должны иметь тот же знак, смещение и дробный наклон. Кроме того, точность и область значений для x должны быть больше, чем или равными точности и области значений для xdat.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка | шина

Входной параметр ydat является вектором 1 на n табличных данных с комплексным знаком или с действительным знаком, который является оценкой функции в значениях точки останова.

Пример: [0 3 12 27 48 75 108 147 192 243 300]

Зависимости

Данные таблицы ydat и выходной вектор y должны иметь тот же знак, смещение и дробный наклон.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка | шина

Вывод

развернуть все

Блок вычисляет приближение функционального y = f(x) с помощью входных векторов ydat и xdat. Метод поиска может использовать интерполяцию, экстраполяцию или исходные значения входного параметра.

Зависимости

Данные таблицы ydat и выходной вектор y должны иметь тот же знак, смещение и дробный наклон.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка

Параметры

развернуть все

Основная вкладка

Блок вычисляет выведенный путем применения Метода Поиска, который вы выбираете к входным векторам данных точки останова (xdat) и табличные данные (ydat). Для получения дополнительной информации смотрите, Как Блок Генерирует Вывод.

Программируемое использование

Блочный параметр: LookUpMeth
Ввод: символьный вектор
Значения: 'Экстраполяция интерполяции' | 'Значения конца использования интерполяции | 'Входной параметр использования, самый близкий' | 'Входной параметр использования ниже' | 'Входной параметр использования выше'
Значение по умолчанию: 'Interpolation-Use End Values'

Вкладка атрибутов сигнала

Задайте тип данных выходного сигнала y.

Нажмите ассистент типа данных Show кнопка, чтобы отобразить Ассистент Типа данных, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.

Зависимости

Данные таблицы ydat и выходной вектор y должны иметь тот же знак, смещение и дробный наклон.

Программируемое использование

Блочный параметр: OutDataTypeStr
Ввод: символьный вектор
Значения: 'Наследуйтесь: Наследуйтесь через обратное распространение' | 'дважды' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'булевская переменная' | 'fixdt (1,16,0)' | 'fixdt (1,16,2^0,0)' | <выражение типа данных>
Значение по умолчанию: 'double'

Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили тип Выходных данных, который вы задаете на блоке. Для получения дополнительной информации смотрите, что Тип Выходных данных Блокировки Использования Устанавливает (Fixed-Point Designer).

Программируемое использование

Блочный параметр: LockScale
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Задайте округляющийся режим для операций фиксированной точки. Для получения дополнительной информации смотрите Округление (Fixed-Point Designer).

Блокируйте параметры всегда вокруг к самому близкому представимому значению. Чтобы управлять округлением блочного параметра, введите выражение с помощью функции округления MATLAB® в поле маски.

Программируемое использование

Блочный параметр: RndMeth
Ввод: символьный вектор
Значения: 'Потолок' | 'Конвергентный' | 'Пол' | 'Самый близкий' | 'Вокруг' | 'Самый Простой' | 'Нуль'
Значение по умолчанию: пол

Когда вы устанавливаете этот флажок, переполнение насыщает к максимальному или минимальному значению, которое может представлять тип данных. В противном случае переполнение переносится.

Когда вы устанавливаете этот флажок, насыщенность применяется к каждой внутренней операции на блоке, не только выводу или результату. В целом процесс генерации кода может обнаружить, когда переполнение не возможно. В этом случае генератор кода не производит код насыщенности.

Программируемое использование

Блочный параметр: DoSatur
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Блокируйте характеристики

Типы данных

double | single | Boolean | base integer | fixed point

Прямое сквозное соединение

No

Многомерные сигналы

Yes

Сигналы переменного размера

No

Обнаружение пересечения нулем

No

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Преобразование фиксированной точки
Преобразуйте алгоритмы с плавающей точкой в фиксированную точку с помощью Фиксированной точки Designer™.

Представлено до R2006a

Была ли эта тема полезной?