exponenta event banner

n-D таблица подстановки

Аппроксимация n-мерной функции

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

    Таблицы кодера/поиска HDL

  • n-D Lookup Table block

Описание

Поддерживаемые операции с блоками

Блоки 1-D, 2-D и n-D Lookup Table оценивают выборочное представление функции в N переменных

y = F (x1,x2,x3,...,xN)

где функция F может быть эмпирической. Блок отображает входные данные на выходное значение путем просмотра или интерполяции таблицы значений, определенных с помощью параметров блока. Блок поддерживает плоский (постоянный), линейный (линейный точечный наклон), лагранж (линейный лагранж), ближайший, кубический сплайн и методы интерполяции сплайнов Акимы. Эти методы можно применить к таблице любого размера от 1 до 30.

В следующем блоке первый вход идентифицирует точки останова первого размера (строки), второй вход идентифицирует точки останова второго размера (столбца) и т.д.

Описание порядка расположения портов для различных ориентаций блоков см. в разделе Расположение портов после поворота или разворота.

При установке параметра конфигурации Math and Data Types > Use algoriths optimized for row-major array layout (Математические типы и типы данных > Использовать алгоритмы, оптимизированные для конфигурационного параметра компоновки массива типа «главная строка») поведение блока 2-D и n-D Lookup Table изменяется с column-major на row-major. Для этих блоков алгоритмы «большой столбец» и «большая строка» могут отличаться в порядке выходных вычислений, что может привести к несколько различным числовым значениям. Для этой возможности требуется лицензия Simulink ® Coder™ или Embedded Coder ®. Дополнительные сведения о поддержке основных строк см. в разделе Создание кода матриц и массивов (Simulink Coder ).

Спецификация данных точки останова и таблицы

Эти параметры блока определяют точку останова и данные таблицы.

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

Совет

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

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

N-D, 1-D и 2-D блоки таблицы поиска генерируют выходные данные путем поиска или оценки значений таблицы на основе входных значений.

Входы блоковПоведение блока таблицы поиска n-D
Сопоставление значений индексов в наборах данных точек остановаВывод значения таблицы на пересечении контрольных точек строки, столбца и более высокого размера
Не соответствуют значениям индексов в наборах данных точек останова, но находятся в пределах диапазонаИнтерполяция соответствующих значений таблицы с помощью выбранного метода интерполяции
Не соответствуют значениям индексов в наборах данных точек останова и находятся вне диапазонаЭкстраполяция выходного значения с помощью выбранного метода экстраполяции

Другие блоки, выполняющие эквивалентные операции

Для выполнения эквивалентной операции одного n-D блока таблицы подстановки можно использовать блок «Интерполяция с использованием Prelookup» с блоком «Prelookup». Эта комбинация блоков обеспечивает большую гибкость, что может привести к более эффективной производительности моделирования для линейных интерполяций.

Если операция поиска представляет собой доступ к массиву, не требующий интерполяции, используйте блок «Таблица прямого поиска» (n-D). Например, если имеется целое значение k и вы хотите, чтобы kтретий элемент таблицы, y = table(k)интерполяция не нужна.

Порты

Вход

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

Действительные входы в порт u1, отображаемые на выходное значение путем просмотра или интерполяции определяемой таблицы значений.

Пример: 0:10

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

Действительные входы в порт uN, отображаемые на выходное значение путем просмотра или интерполяции определяемой таблицы значений.

Пример: 0:10

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

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

Во время моделирования размер матрицы должен соответствовать размерам, определенным параметром Number of table dimensions. Однако во время редактирования блок-схемы можно ввести пустую матрицу (указанную как []) или неопределенной переменной рабочей области. Этот метод позволяет отложить задание правильно рассчитанной матрицы для данных таблицы и продолжить редактирование блок-схемы.

Зависимости

Чтобы включить этот порт, установите:

  • Спецификация данных для Table and breakpoints.

  • Данные таблицы в Input port.

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

Явно укажите данные точек останова на основе значения параметра спецификации точек останова с сигналом, который можно настроить во время выполнения

  • Если для спецификации точек останова задано значение Explicit values, введите набор точек останова, соответствующий каждому измерению данных таблицы в каждой строке точек останова. Для каждого размера укажите точки останова как вектор 1 на n или n на 1, значения которого строго монотонно увеличиваются.

Можно создать до трех портов ввода данных точек останова. Для точек останова 4-30 можно указать данные точек останова только через соответствующий параметр Точки останова.

Примечание

Чтобы указать точки останова в формате спецификации четного интервала, задайте для параметра Спецификация точек останова значение Even spacing и используйте параметры Breakpoints First point (первая точка останова) и Spacing (интервал).

Зависимости

Чтобы включить этот порт, установите:

  • Спецификация данных для Table and breakpoints.

  • Спецификация точек останова для Explicit values.

  • Точки останова от 1 до Input port.

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

Явно укажите данные точки останова на основе значения параметра спецификации Точки останова с сигналом, который можно настроить во время выполнения.

  • Если для спецификации точек останова задано значение Explicit values, введите набор точек останова, соответствующий каждому измерению данных таблицы в каждой строке точек останова. Для каждого размера укажите точки останова как вектор 1 на n или n на 1, значения которого строго монотонно увеличиваются.

Можно создать до трех портов ввода данных точек останова. Для точек останова 4-30 можно указать данные точек останова только через соответствующий параметр Точки останова.

Примечание

Чтобы задать равномерно расположенные данные точек останова, используйте параметр Точки останова. Нельзя задать равномерно разнесенные данные точек останова через входной порт.

Зависимости

Чтобы включить этот порт, установите:

  • Спецификация данных для Table and breakpoints.

  • Спецификация точек останова для Explicit values.

  • Точки останова от 2 до Input port.

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

Явно укажите данные точки останова на основе значения параметра спецификации Точки останова с сигналом, который можно настроить во время выполнения.

  • Если для спецификации точек останова задано значение Explicit values, введите набор точек останова, соответствующий каждому измерению данных таблицы в каждой строке точек останова. Для каждого размера укажите точки останова как вектор 1 на n или n на 1, значения которого строго монотонно увеличиваются.

Можно создать до трех портов ввода данных точек останова. Для точек останова 4-30 можно указать данные точек останова только через соответствующий параметр Точки останова.

Примечание

Чтобы задать равномерно расположенные данные точек останова, используйте параметр Точки останова. Нельзя задать равномерно разнесенные данные точек останова через входной порт.

Зависимости

Чтобы включить этот порт, установите:

  • Спецификация данных для Table and breakpoints.

  • Спецификация точек останова для Explicit values.

  • Точки останова от 3 до Input port.

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

Продукция

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

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

Когда блок входов...Блок n-D таблицы подстановки...
Сопоставление значений индексов в наборах данных точек остановаВывод значения таблицы на пересечении контрольных точек строки, столбца и более высокого размера
Не соответствуют значениям индексов в наборах данных точек останова, но находятся в пределах диапазонаИнтерполяция соответствующих значений таблицы с помощью выбранного метода интерполяции
Не соответствуют значениям индексов в наборах данных точек останова и находятся вне диапазонаЭкстраполяция выходного значения с помощью выбранного метода экстраполяции

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

Параметры

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

Таблица и точки останова

Введите количество измерений таблицы подстановки. Этот параметр определяет:

  • Количество независимых переменных для таблицы и количество входов блоков

  • Количество наборов точек останова для указания

СтоимостьНастройка

1, 2, 3 или 4

Выберите значение из раскрывающегося списка.

Большее количество табличных измерений

Введите положительное целое число непосредственно в поле.

Максимальное количество табличных размеров, поддерживаемых данным блоком, составляет 30.

Например, таблица размером M x N x... означает, что размер 1 равен М, размер 2 равен N и т.д. M должна соответствовать первой длине точки останова, N - второй длине точки останова и т.д.

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

Параметр блока: NumberOfTableDimensions
Текст: символьный вектор
Значения: '1' | '2' | '3' | '4' | ... | 30
По умолчанию: '3'

В списке выберите:

  • Table and breakpoints - Укажите данные таблицы и точки останова. При выборе этой опции включаются следующие параметры:

    • Данные таблицы

    • Спецификация точек останова

    • Точки останова 1

    • Точки останова 2

    • Точки останова 3

    • Изменение таблицы и точек останова

    Чтобы указать таблицу и точки останова с помощью входных портов, см. параметр Source.

  • Lookup table object - использовать существующую таблицу подстановки (Simulink.LookupTable) объект. При выборе этой опции активируются поле Имя и кнопка Редактировать таблицу и точки останова.

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

Параметр блока: DataSpecification
Текст: символьный вектор
Значения: 'Table and breakpoints' | 'Lookup table object'
По умолчанию: 'Table and breakpoints'

Введите имя таблицы подстановки (Simulink.LookupTable) объект. Если Simulink.LookupTable объект не существует, нажмите кнопку действия и выберите Создать. Соответствующие параметры нового объекта таблицы подстановки автоматически заполняются информацией о блоке.

Зависимости

Чтобы включить этот параметр, установите в поле Спецификация данных значение Lookup table object.

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

Параметр блока: LookupTableObject
Текст: символьный вектор
Значения: имя Simulink.LookupTable объект
По умолчанию: ''

Укажите, следует ли вводить данные как явные точки останова или как параметры, создающие равномерно расположенные точки останова.

  • Чтобы явно указать данные точки останова, задайте для этого параметра значение Explicit values и введите данные точек останова в текстовое поле рядом с параметрами точек останова.

  • Чтобы задать параметры, создающие равномерно расположенные точки останова, задайте для этого параметра значение Even spacing и введите значения параметров Первая точка (First point) и Интервал (Spacing) для каждого размера данных точки останова. Блок вычисляет количество точек для генерации на основе данных таблицы.

Зависимости

  • Чтобы включить этот параметр, установите в поле Спецификация данных значение Table and breakpoints.

  • Если для этого параметра установлено значение Even spacing, данные точки останова можно указать только через диалоговое окно.

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

Параметр блока: BreakpointsSpecification
Текст: символьный вектор
Значения: 'Explicit values' | 'Even spacing'
По умолчанию: 'Explicit values'

Укажите источник данных таблицы и точки останова как:

  • Dialog - Укажите данные таблицы или точки останова в параметре Value.

  • Input port - Укажите данные таблицы или точки останова через соответствующий входной порт.

    Можно создать до трех портов ввода данных точек останова. Для точек останова 4-30 можно указать данные точек останова только через соответствующий параметр Точки останова.

Примечание

Использование входного порта для указания данных таблицы или точки останова может негативно повлиять на производительность блока при моделировании из-за проверок во время выполнения.

Зависимости

  • Чтобы включить этот параметр, установите в поле Спецификация данных значение Table and breakpoints.

  • Чтобы включить связанное значение, установите для этого параметра значение Dialog.

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

  • Установка для этого параметра значения Input port отключает поле Значение и скрывает соответствующий параметр на вкладке Типы данных.

  • Установка для этого параметра значения Input port для любого из параметров отключает кнопку Edit Table и Breakpoints.

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

Параметр блока: TableSource | BreakpointsForDimension1Source | BreakpointsForDimension2Source | BreakpointsForDimension3Source
Текст: символьный вектор
Значения: Dialog | Input port
По умолчанию: 'Dialog'

Введите таблицу выходных значений в соответствующее поле Значение.

Во время моделирования размер матрицы должен соответствовать размерам, определенным параметром Number of table dimensions. Однако во время редактирования блок-схемы можно ввести пустую матрицу (указанную как []) или неопределенной переменной рабочей области. Этот метод позволяет отложить задание правильно рассчитанной матрицы для данных таблицы и продолжить редактирование блок-схемы.

Зависимости

Чтобы включить этот параметр, установите:

  • Спецификация данных для Table and breakpoints.

  • Данные таблицы: Источник в Dialog.

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

Параметр блока: Table
Текст: символьный вектор
Значения: матрица значений таблицы
По умолчанию: 'reshape(repmat([4 5 6;16 19 20;10 18 23],1,2),[3,3,2])'

Укажите данные точек останова в явном виде или в виде равномерно распределенных точек останова на основе значения параметра спецификации точек останова.

  • Если для спецификации точек останова задано значение Explicit values, введите набор точек останова, соответствующий каждому измерению данных таблицы в каждой строке Точки останова в соответствующем поле Значение. Для каждого размера укажите точки останова как вектор 1 на n или n на 1, значения которого строго монотонно увеличиваются.

  • Если для спецификации точек останова задано значение Even spacingвведите параметры Первая точка (First point) и Интервал (Spacing) в каждой строке Точки останова (Breakpoints), чтобы создать равномерно расположенные точки останова в соответствующем размере. Табличные данные определяют количество равномерно разнесенных точек.

Зависимости

  • Чтобы включить этот параметр, установите:

    • Спецификация данных для Table and breakpoints.

    • Данные таблицы: Источник в Dialog.

  • Если для параметра спецификации точек останова установлено значение Even spacing, данные точки останова можно указать только через диалоговое окно.

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

Параметр блока: BreakpointsForDimension1 | BreakpointsForDimension2 | ... | BreakpointsForDimension30 |
Текст: символьный вектор
Значения: 1 на n или n на 1 вектор монотонно возрастающих значений
По умолчанию: '[10, 22, 31]'

Укажите первую точку в равномерно разнесенных данных точек останова как действительный конечный скаляр. Этот параметр доступен, если для спецификации точек останова установлено значение Even spacing.

Зависимости

Чтобы включить этот параметр, установите в поле Спецификация данных значение Table and breakpointsи спецификация точек останова для Even spacing.

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

Параметр блока: BreakpointsForDimension1FirstPoint | BreakpointsForDimension2FirstPoint | ... | BreakpointsForDimension30FirstPoint |
Текст: символьный вектор
Значения: вещественные, конечные, скалярные
По умолчанию: '1'

Укажите интервал между точками в равномерно разнесенных данных точек останова.

Зависимости

Чтобы включить этот параметр, установите в поле Спецификация данных значение Table and breakpointsи спецификация точек останова для Even spacing.

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

Параметр блока: BreakpointsForDimension1Spacing | BreakpointsForDimension2Spacing | ... | BreakpointsForDimension30Spacing |
Текст: символьный вектор
Значения: положительные, вещественные, конечные, скалярные
По умолчанию: '1'

Нажмите эту кнопку, чтобы открыть редактор таблиц подстановки. Дополнительные сведения см. в разделе Правка таблиц подстановки в документации Simulink.

Нажатие этой кнопки для объекта таблицы подстановки позволяет редактировать объект и сохранять новые значения для объекта.

Алгоритм

Метод поиска

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

Зависимости

  • При выборе Cubic splineблок поддерживает только скалярные сигналы. Другие методы интерполяции поддерживают нескалярные сигналы.

  • При выборе Akima spline, метод экстраполяции может быть только Akima spline.

    Если установлен модифицированный метод интерполяции Акимы, этот блок не поддерживает:

    • Компоновка основных рядов и алгоритмы, оптимизированные для компоновки основных рядов

    • Масштабированные типы данных с двойной и фиксированной точками

    • Simulink.LookupTable объекты

    • Создание кода, если установлен флажок конфигурационный параметр Code Generation > Interface > Support non-finite numbers

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

Параметр блока: InterpMethod
Текст: символьный вектор
Значения: 'Linear point-slope' | 'Flat' | 'Nearest' | 'Linear Lagrange' | 'Cubic spline' | 'Akima spline'
По умолчанию: 'Linear point-slope'

Выбрать Clip, Linear, или Cubic spline. Дополнительные сведения см. в разделе Методы экстраполяции.

Если метод экстраполяции Linearзначение экстраполяции вычисляется на основе выбранного метода линейной интерполяции. Например, если метод интерполяции является линейным методом Лагранжа, метод экстраполяции наследует линейное уравнение Лагранжа для вычисления экстраполированного значения.

Зависимости

  • Выбрать Cubic spline для метода экстраполяции необходимо также выбрать Cubic spline для метода интерполяции.

  • Выбрать Akima spline для метода экстраполяции необходимо также выбрать Akima spline для метода интерполяции.

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

Параметр блока: ExtrapMethod
Текст: символьный вектор
Значения: 'Linear' | 'Clip' | 'Cubic spline' | 'Akima spline'
По умолчанию: 'Linear'

Выбрать Evenly spaced points, Linear search, или Binary search. Каждый метод поиска имеет преимущества скорости в различных обстоятельствах:

  • Для равномерно распределенных наборов точек останова (например, 10, 20, 30 и т.д.) оптимальная скорость достигается путем выбора Evenly spaced points для вычисления табличных индексов.

    Этот алгоритм использует только первые две точки останова набора для определения смещения и интервала между остальными точками.

    Примечание

    Задать для метода поиска Index значение Evenly spaced points при использовании Simulink.LookupTable для указания табличных данных и параметра спецификации точек останова ссылочного объекта Simulink.LookupTable объект имеет значение Even spacing.

  • Для наборов точек останова с неравномерным интервалом следуйте следующим инструкциям.

    • Если входные сигналы не сильно изменяются между временными шагами, выберите Linear search с началом поиска индекса с использованием предыдущего результата индекса обеспечивает наилучшую производительность.

    • Если входные сигналы пересекают более одного или двух табличных интервалов за шаг времени, выберите Binary search обеспечивает наилучшую производительность.

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

Примечание

Созданный код сохраняет только первую точку останова, интервал и количество точек останова, если:

  • Невозможно настроить данные точки останова.

  • Метод поиска индекса: Evenly spaced points.

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

Параметр блока: IndexSearchMethod
Текст: символьный вектор
Значения: 'Binary search' | 'Evenly spaced points' | 'Linear search'
По умолчанию: 'Binary search'

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

Зависимости

Чтобы включить этот параметр, задайте для метода поиска Index значение Linear search или Binary search.

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

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

Укажите, следует ли выводить предупреждение или ошибку, если входные данные выходят за пределы допустимого диапазона. Варианты включают в себя:

  • None - Нет ответа.

  • Warning - Вывод предупреждения и продолжение моделирования.

  • Error - завершение моделирования и отображение ошибки.

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

Параметр блока: DiagnosticForOutOfRangeInput
Текст: символьный вектор
Значения: 'None' | 'Warning' | 'Error'
По умолчанию: 'None'

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

Зависимости

Чтобы включить этот параметр, установите:

  • Количество табличных измерений для 1.

  • Метод интерполяции для Linear point-slope.

  • Метод экстраполяции в Clip.

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

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

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

ФлажокИндекс, используемый блокомДоля интервала
Отобранный Последний элемент данных точек останова на вкладке Table and Breakpoints 0
Очищенный Следующий-последний элемент данных точек останова на вкладке Таблица и Точки останова 1

При условии, что вход u находится в пределах диапазона набора точек останова bp, доля интервала f в диапазоне 0≦f<1 вычисляется, как показано ниже.

Предположим, что набор точек останова равен [1 4 5] и вход u = 5.5. Если этот флажок установлен, индекс является индексом последнего элемента (5) и фракция интервала равна 0. Если снять этот флажок, индекс будет индексом следующего-последнего элемента (4) и фракция интервала равна 1.

Зависимости

Чтобы включить этот параметр, установите:

  • Метод интерполяции для Linear.

  • Метод экстраполяции в Clip.

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

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

Установите этот флажок, чтобы использовать только один входной порт, который ожидает сигнал, который n элементы, широкие для n-мерной таблицы. Этот параметр полезен для удаления загромождения строк на блок-схеме с множеством таблиц поиска.

Примечание

Если этот флажок установлен, один входной порт с меткой u появляется на блоке.

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

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

Укажите, следует ли включать код, который проверяет входные значения вне диапазона.

ФлажокРезультатКогда использовать

on

Созданный код не включает условные операторы для проверки входов точек останова вне диапазона.

Если входные данные находятся вне допустимого диапазона, это может привести к неопределенному поведению сгенерированного кода.

Для эффективности кода

off

Созданный код включает условные операторы для проверки входов вне диапазона.

Для критически важных для безопасности приложений

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

  1. Снимите флажок Удалить защиту от индекса вне диапазона в сгенерированном коде.

  2. Установите для входного параметра Diagnostic for out-of-range значение Error.

  3. Моделирование модели в обычном режиме.

  4. Если имеются ошибки вне диапазона, исправьте их, чтобы они находились в диапазоне, и запустите моделирование снова.

  5. Если моделирование больше не создает ошибки ввода вне диапазона, установите флажок Удалить защиту от индекса вне диапазона в сгенерированном коде.

    Примечание

    Если установлен флажок Удалить защиту от индекса вне диапазона в сгенерированном коде, а входные данные находятся вне диапазона, поведение сгенерированного кода не определено.

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

  • По продукту > Embedded Coder > Определение блоков таблицы поиска, которые создают дорогостоящий код проверки за пределами диапазона

  • По продукту > Simulink Check > Modeling Standards > DO-178C/DO-331 Checks > Проверка использования блоков таблицы подстановки

Дополнительные сведения о модуле Model Advisor см. в разделе Выполнение проверок модуля Model Advisor.

Кроме того, чтобы определить, безопасно ли устанавливать этот флажок, если у вас есть лицензия Simulink Design Verifier™, попробуйте использовать проверку обнаружения нарушений диапазона ввода блоков (Simulink Design Verifier).

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

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

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

Зависимости

Если для метода интерполяции задано значение Cubic spline, этот флажок недоступен.

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

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

Укажите время выборки в качестве значения, отличного от -1. Дополнительные сведения см. в разделе Указание времени образца.

Зависимости

Этот параметр не отображается, если для него явно не задано значение, отличное от -1. Дополнительные сведения см. в разделе Блоки, для которых образец времени не рекомендуется.

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

Параметр блока: SampleTime
Текст: символьный вектор
Значения: скаляр или вектор
По умолчанию: '-1'

Пример: [4 6] для таблицы 5 на 7

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

  • Встроенные типы с плавающей запятой: double и single

  • Встроенные целочисленные типы: int8, int16, int32, uint8, uint16, и uint32

Примеры действительных спецификаций:

Зависимости

Чтобы включить этот параметр, выберите Поддерживать настраиваемый размер таблицы при создании кода. При настройке этого параметра в сгенерированном коде введите новые данные таблицы и точки останова вместе со значением настроенного параметра.

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

Параметр блока: MaximumIndicesForEachDimension
Текст: символьный вектор
Значения: скаляр или вектор положительных целых значений
По умолчанию: '[]'

Типы данных

Укажите тип данных таблицы. Можно установить для него значение:

  • Правило, наследующее тип данных, например: Inherit: Same as output

  • Имя встроенного типа данных, например: single

  • Имя объекта типа данных, например, Simulink.NumericType объект

  • Выражение, которое вычисляет тип данных, например: fixdt(1,16,0)

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

Совет

Укажите тип данных таблицы, отличный от типа выходных данных для следующих случаев:

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

  • Совместное использование предписанных данных таблицы между двумя n-D блоками таблицы поиска с различными типами выходных данных

  • Совместное использование пользовательских данных таблицы хранения в созданном коде для блоков с различными типами выходных данных

Зависимости

Чтобы включить этот параметр, установите для параметра Table data на вкладке Table and Breakpoints значение Dialog.

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

Параметр блока: TableDataTypeStr
Текст: символьный вектор
Значения: 'Inherit: Inherit from 'Table data'' | 'Inherit: Same as output' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)'|'<data type expression>'
По умолчанию: 'Inherit: Same as output'

Укажите минимальное значение для данных таблицы. Значение по умолчанию: [] (не указано).

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

Параметр блока: TableMin
Текст: символьный вектор
Значения: скаляр
По умолчанию: '[]'

Укажите максимальное значение для данных таблицы. Значение по умолчанию: [] (не указано).

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

Параметр блока: TableMax
Текст: символьный вектор
Значения: скаляр
По умолчанию: '[]'

Укажите тип данных для набора данных точек останова. Можно установить для него значение:

  • Правило, наследующее тип данных, например: Inherit: Same as corresponding input

  • Имя встроенного типа данных, например: single

  • Имя класса типа данных, например перечисляемого класса типа данных

  • Имя объекта типа данных, например, Simulink.NumericType объект

  • Выражение, которое вычисляет тип данных, например: fixdt(1,16,0)

Совет

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

  • Если установлен флажок Начать поиск индекса с использованием предыдущего результата индекса, необходимо использовать упорядоченные монотонно увеличивающиеся данные. Этот заказ повышает производительность.

  • Для перечисляемых данных метод экстраполяции должен быть Clip.

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

Это ограничение для использования перечисляемых данных с этим блоком:

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

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

Совет

Укажите тип данных точки останова, отличный от соответствующего типа входных данных для следующих случаев:

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

  • Совместное использование предписанных данных точек останова между двумя n-D блоками таблицы поиска с различными типами входных данных

  • Совместное использование пользовательских данных точек останова хранилища в созданном коде для блоков с различными типами входных данных

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

Зависимости

Чтобы включить этот параметр, установите соответствующий параметр Breakpoints на вкладке Table and Breakpoints в значение Dialog.

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

Параметр блока: BreakpointsForDimension1DataTypeStr | BreakpointsForDimension2DataTypeStr| ... | BreakpointsForDimension30DataTypeStr
Текст: символьный вектор
Значения: 'Inherit: Same as corresponding input' | 'Inherit: Inherit from 'Breakpoint data'' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)'|'<data type expression>'
По умолчанию: 'Inherit: Same as corresponding input'

Укажите минимальное значение, которое может иметь набор данных точек останова. Значение по умолчанию: [] (не указано).

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

Параметр блока: BreakpointsForDimension1Min | BreakpointsForDimension2Min | ... | BreakpointsForDimension30Min
Текст: символьный вектор
Значения: скаляр
По умолчанию: '[]'

Укажите максимальное значение, которое может иметь набор данных точек останова. Значение по умолчанию: [] (не указано).

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

Параметр блока: BreakpointsForDimension1Max | BreakpointsForDimension2Max | ... | BreakpointsForDimension30Max
Текст: символьный вектор
Значения: скаляр
По умолчанию: '[]'

Укажите тип данных дроби. Можно установить для него значение:

  • Правило, наследующее тип данных, например: Inherit: Inherit via internal rule

  • Имя встроенного типа данных, например: single

  • Имя объекта типа данных, например, Simulink.NumericType объект

  • Выражение, которое вычисляет тип данных, например: fixdt(1,16,0)

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

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

Параметр блока: FractionDataTypeStr
Текст: символьный вектор
Значения: 'Inherit: Inherit via internal rule' | 'double' | 'single' | 'fixdt(1,16,0)'|'<data type expression>'
По умолчанию: 'Inherit: Inherit via internal rule'

Укажите тип данных промежуточных результатов. Можно установить для него значение:

  • Правило, наследующее тип данных, например: Inherit: Same as output

  • Имя встроенного типа данных, например: single

  • Имя объекта типа данных, например, Simulink.NumericType объект

  • Выражение, которое вычисляет тип данных, например: fixdt(1,16,0)

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

Совет

Этот параметр используется для указания более высокой (или более низкой) точности внутренних вычислений, чем для табличных данных или выходных данных.

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

Параметр блока: IntermediateResultsDataTypeStr
Текст: символьный вектор
Значения: 'Inherit: Inherit via internal rule' | 'Inherit: Same as output' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)'|'<data type expression>'
По умолчанию: 'Inherit: Same as output'

Укажите тип выходных данных. Можно установить для него значение:

  • Правило, наследующее тип данных, например: Inherit: Inherit via back propagation

  • Имя встроенного типа данных, например: single

  • Имя объекта типа данных, например, Simulink.NumericType объект

  • Выражение, которое вычисляет тип данных, например: fixdt(1,16,0)

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

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

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

Укажите минимальное значение, выводимое блоком. Значение по умолчанию: [] (не указано). Программное обеспечение Simulink использует это значение для выполнения следующих действий:

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

Параметр блока: OutMin
Текст: символьный вектор
Значения: скаляр
По умолчанию: '[]'

Укажите максимальное значение, которое может выводиться блоком. Значение по умолчанию: [] (не указано). Программное обеспечение Simulink использует это значение для выполнения следующих действий:

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

Параметр блока: OutMax
Текст: символьный вектор
Значения: скаляр
По умолчанию: '[]'

Укажите внутреннее правило для промежуточных расчетов. Выбрать Speed для более быстрых вычислений. В этом случае может произойти потеря точности, обычно до 2 бит.

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

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

Выберите, чтобы все входные данные имели одинаковый тип данных.

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

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

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

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

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

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

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

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

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

ДействиеПричины принятия этого решенияЧто происходит при переполненииПример

Установите этот флажок (on).

Модель может переполняться, и в создаваемом коде требуется явная защита от насыщения.

Переполнения насыщаются минимальным или максимальным значением, которое может представлять тип данных.

Переполнение, связанное со значащим 8-битным целым числом, может насытиться до -128 или 127.

Не устанавливайте этот флажок (off).

Требуется оптимизировать эффективность созданного кода.

Необходимо избегать чрезмерного указания того, как блок обрабатывает сигналы вне диапазона. Дополнительные сведения см. в разделе Устранение ошибок диапазона сигналов.

Переполнение до соответствующего значения, представляемого типом данных.

Число 130 не помещается в знаковое 8-битовое целое число и переносится в -126.

Совет

При сохранении модели как версии R2009a или более ранней этот флажок не действует, и код насыщения не отображается. Такое поведение сохраняет обратную совместимость.

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

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

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

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

Типы данных

double | enumerated | fixed point | half | integer | single

Прямой проход

yes

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

yes

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

no

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

no

Подробнее

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

..

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

Представлен в R2011a