Lookup Table Dynamic

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

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

  • Lookup Table Dynamic block

Описание

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

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

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

Входные параметры для данных точек по оси Х и данных таблицы

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

The ydat вектор - это данные таблицы, которая является оценкой функции в значениях точек по оси Х.

Примечание

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

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

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

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

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

Совет

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

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

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

Метод поискаДействие блока
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 над текущим входом блок находит ближайший элемент.

Примечание

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

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

Порты

Вход

расширить все

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

Пример: 2:12

Зависимости

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | bus

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

Совет

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

Пример: 1:10

Зависимости

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | bus

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

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

Зависимости

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | bus

Выход

расширить все

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

Зависимости

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

Параметры

расширить все

Главная вкладка

Блок вычисляет вывод путем применения Lookup Method, которую вы выбираете, к входным векторам данных точек по оси Х (xdat) и табличные данные (ydat). Для получения дополнительной информации смотрите Как блок генерирует выход.

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

Параметры блоков: LookUpMeth
Тип: Вектор символов
Значения: 'Interpolation-Extrapolation' | 'Interpolation-Use End Values' | 'Use Input Nearest' | 'Use Input Below' | 'Use Input Above'
По умолчанию: 'Interpolation-Use End Values'

Вкладка Атрибуты Сигнала

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

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать атрибуты type данных. Для получения дополнительной информации смотрите Задать типы данных Используя Data Type Assistant.

Зависимости

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

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

Параметры блоков: OutDataTypeStr
Тип: Вектор символов
Значения: 'Inherit: Inherit via back propagation' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | <data type expression>
По умолчанию: 'double'

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

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

Параметры блоков: LockScale
Тип: Вектор символов
Значения: 'off' | 'on'
По умолчанию: 'off'

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

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

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

Параметры блоков: RndMeth
Тип: Вектор символов
Значения: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
По умолчанию: 'Floor'

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

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

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

Параметры блоков: DoSatur
Тип: Вектор символов
Значения: 'off' | 'on'
По умолчанию: 'off'

Характеристики блоков

Типы данных

Boolean | double | fixed point | integer | single

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

no

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

yes

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

no

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

no

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

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

..

Преобразование с фиксированной точкой
Разрабатывайте и моделируйте системы с фиксированной точкой с помощью Fixed-Point Designer™.

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