Замените функции в блоке MATLAB function на интерполяционную таблицу

В этом примере показано, как заменить функцию, которая используется внутри MATLAB® Функциональный блок с более эффективной реализацией. Следующая модель содержит блок MATLAB Function, который вычисляет синус входа. Используйте Представление Кода, чтобы заменить встроенные sin функция с интерполяционной таблицей.

Смените директории в папку, в которой находится модель. В командной строке MATLAB введите:

cd(fullfile(docroot,'toolbox','fixpoint','examples'))

Скопируйте и сохраните ex_mySin.slx файл в локальную папку с возможностью записи и откройте модель.

function y = my_sin(u)
%#codegen
y = sin(u);
  1. Чтобы открыть Fixed-Point Tool, на вкладке Apps, разверните коллекцию Apps и выберите Fixed-Point Tool

  2. В Fixed-Point Tool разверните New кнопки стрелы и выберите Iterative Fixed-Point Conversion.

  3. В разделе System Under Design (SUD) выберите модель ex_mySin в качестве системы для преобразования.

  4. В разделе Range Collection Mode выберите Simulation ranges в качестве метода набора областей значений. Это конфигурирует модель для сбора областей значений с использованием идеализированных типов данных с плавающей точкой.

  5. В Prepare разделе панели инструментов нажмите Prepare.

  6. Разверните стрелу кнопки Collect Ranges и выберите Double precision. Щелкните Collect Ranges, чтобы начать симуляцию.

    Данные моделирования Fixed-Point Tool хранятся в запуске под названием BaselineRun. Исследуйте информацию о области значений переменного MATLAB в электронной таблице.

  7. Чтобы запустить представление кода, в Convert разделе панели инструментов нажмите MATLAB Functions.

  8. Выберите вкладку Function Replacements.

  9. Введите имя функции, которую вы хотите заменить. В данном примере введите sin. Выберите Lookup Table, а затем нажмите.

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

  10. Щелкните Propose, чтобы получить предложения по типам данных для переменных.

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

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

  12. Вернитесь к Fixed-Point Tool. В Verify разделе панели инструментов нажмите кнопку Simulate with Embedded Types, чтобы симулировать модель с помощью недавно примененных типов данных с фиксированной точкой. Модель моделирует вариант с фиксированной точкой как активный вариант.

Похожие темы