Интерполяционная таблица функций является методом, с помощью которого можно аппроксимировать функцию с помощью таблицы с конечным числом точек (X, Y). Значения X интерполяционной таблицы называются точками останова. Вы аппроксимируете значение идеальной функции в точке путем интерполяции между двумя точками останова, ближайшими к точке. Поскольку поиски в таблице и простые оценки могут быть быстрее, чем математические вычисления функции, использование блоков интерполяционной таблицы часто приводит к увеличению скорости при симуляции модели.
Чтобы оптимизировать интерполяционные таблицы в вашей модели:
Ограничьте неравномерность интерполяционных таблиц.
Неравномерно разнесенные точки останова требуют алгоритма общего назначения, такого как двоичный поиск, чтобы определить, где вход лежит относительно точек останова. Эти дополнительные расчеты увеличивают ПЗУ и время выполнения.
Предотвратите равномерное распределение интерполяционных таблиц как неравномерное.
Поиск положения в равномерно разнесенных интерполяционных таблицах происходит намного быстрее. В сложение интерполяция требует простого деления.
Иногда, когда интерполяционная таблица преобразуется в фиксированную точку, возникает ошибка квантования. Интерполяционная таблица, которая равномерно расположена с плавающей точкой, может быть неравномерно распределена в сгенерированном коде с фиксированной точкой. Используйте fixpt_evenspace_cleanup
функция для повторного преобразования данных в интерполированную интервалом интерполяционную таблицу.
Используйте степень двойки разнесенных точек по оси Х в интерполяционных таблицах.
При степень двойки разнесенных интерполяционных таблиц битовый сдвиг заменяет поиск положения, а битовая маска заменяет интерполяцию, делая эту конструкцию наиболее эффективной независимо от вашего целевого языка и оборудования.
В следующей таблице суммированы эффекты интервалов между точками останова интерполяционной таблицы.
Параметр | Четная степень 2-х разнесенных данных | Равномерно разнесенные данные | Неравномерно разнесенные данные |
---|---|---|---|
Скорость выполнения | Скорость выполнения самая быстрая. Поиск и интерполяция положения те же, что и для данных с равномерными интервалами. Однако, чтобы увеличить скорость, битовый сдвиг заменяет поиск положения, и битовая маска заменяет интерполяцию. | Скорость выполнения быстрее, чем для неравномерно разнесенных данных, потому что поиск положения быстрее, и интерполяция требует простого деления. | Скорость выполнения является самой медленной из различных интервалов, потому что поиск положения медленнее, и интерполяция требует большего количества операций. |
Ошибка | Ошибка может быть больше, чем ошибка для неравномерно разнесенных данных, потому что для аппроксимации функции с неоднородной кривизной требуется больше точек, чтобы достичь той же точности. | Ошибка может быть больше, чем ошибка для неравномерно разнесенных данных, потому что для аппроксимации функции с неоднородной кривизной требуется больше точек, чтобы достичь той же точности. | Ошибка может быть меньше, потому что для аппроксимации функции с неоднородной кривизной требуется меньше точек, чтобы достичь той же точности. |
Использование ПЗУ | Использует меньше ПЗУ команд, но больше ПЗУ данных. | Использует меньше ПЗУ команд, но больше ПЗУ данных. | Использует больше командного ПЗУ, но меньше ПЗУ данных. |
Использование оперативной памяти | Несущественный. | Несущественный. | Несущественный. |
Используйте проверку Model Advisor Идентифицируйте сомнительные операции с фиксированной точкой, чтобы идентифицировать блоки интерполяционной таблицы, где существует потенциал для повышения эффективности.