В этом примере показано, как заменить функцию, которая используется внутри MATLAB® Функциональный блок с более эффективной реализацией. Следующая модель содержит блок MATLAB Function, который вычисляет синус входа. Используйте Представление Кода, чтобы заменить встроенные sin
функция с интерполяционной таблицей.
Смените директории в папку, в которой находится модель. В командной строке MATLAB введите:
cd(fullfile(docroot,'toolbox','fixpoint','examples'))
Скопируйте и сохраните ex_mySin.slx
файл в локальную папку с возможностью записи и откройте модель.
function y = my_sin(u) %#codegen y = sin(u);
Чтобы открыть Fixed-Point Tool, на вкладке Apps, разверните коллекцию Apps и выберите Fixed-Point Tool
В Fixed-Point Tool разверните New кнопки стрелы и выберите Iterative Fixed-Point Conversion
.
В разделе System Under Design (SUD) выберите модель ex_mySin
в качестве системы для преобразования.
В разделе Range Collection Mode выберите Simulation ranges в качестве метода набора областей значений. Это конфигурирует модель для сбора областей значений с использованием идеализированных типов данных с плавающей точкой.
В Prepare разделе панели инструментов нажмите Prepare.
Разверните стрелу кнопки Collect Ranges и выберите Double precision
. Щелкните Collect Ranges, чтобы начать симуляцию.
Данные моделирования Fixed-Point Tool хранятся в запуске под названием BaselineRun
. Исследуйте информацию о области значений переменного MATLAB в электронной таблице.
Чтобы запустить представление кода, в Convert разделе панели инструментов нажмите MATLAB Functions.
Выберите вкладку Function Replacements.
Введите имя функции, которую вы хотите заменить. В данном примере введите sin
. Выберите Lookup Table
, а затем нажмите.
Процесс преобразования с фиксированной точкой выводит области значений для функции, а затем использует интерполированную интерполированную интерполяционную таблицу, чтобы заменить функцию. По умолчанию в интерполяционной таблице используется линейная интерполяция, 1000 точек и минимальные и максимальные значения, обнаруженные при запуске тестового файла.
Щелкните Propose, чтобы получить предложения по типам данных для переменных.
Щелкните Apply, чтобы применить предложения по типам данных и сгенерировать интерполяционную таблицу с фиксированной точкой.
Если поведение сгенерированного кода с фиксированной точкой недостаточно тесно совпадает с поведением оригинального кода, измените метод интерполяции или число точек, используемых в интерполяционной таблице, и затем перегенерируйте код с фиксированной точкой.
Вернитесь к Fixed-Point Tool. В Verify разделе панели инструментов нажмите кнопку Simulate with Embedded Types, чтобы симулировать модель с помощью недавно примененных типов данных с фиксированной точкой. Модель моделирует вариант с фиксированной точкой как активный вариант.