exponenta event banner

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

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

  • Библиотека:
  • Таблицы Simulink/Lookup

  • Lookup Table Dynamic block

Описание

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

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

С помощью блока «Динамический поиск таблицы» можно изменять данные таблицы без остановки моделирования. Например, можно включить новые табличные данные при изменении физической системы, которую вы моделируете.

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

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

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

Примечание

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

Определение таблицы подстановки

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

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

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

Совет

Точки останова с четным интервалом могут сделать систему Simulink ® Coder™ свободной от кодового деления. Дополнительные сведения см. в разделеfixpt_evenspace_cleanup в документации Simulink и определить сомнительные операции с фиксированной точкой (встроенный кодер) в документации 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 соответствует значению точки останова.

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

Порты

Вход

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

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

Пример: 2:12

Зависимости

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

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

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

Совет

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

Пример: 1:10

Зависимости

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

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

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

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

Зависимости

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

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

Продукция

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

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

Зависимости

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

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

Параметры

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

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

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

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

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

Вкладка «Атрибуты сигнала»

Укажите тип данных выходного сигнала y.

Нажмите кнопку Показать помощник по типам данных, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.

Зависимости

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'

Выберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли тип данных «Вывод», указанный в блоке. Дополнительные сведения см. в разделе Использование параметров типа выходных данных блокировки (конструктор фиксированных точек).

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

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

Укажите режим округления для операций с фиксированной точкой. Дополнительные сведения см. в разделе Округление (конструктор фиксированных точек).

Параметры блока всегда округляются до ближайшего представимого значения. Для управления округлением параметра блока введите выражение с помощью функции округления 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++ с помощью Simulink ® Coder™

..

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

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