exponenta event banner

Оптимизация типов данных фиксированных точек системы с помощью инструмента фиксированных точек

В этом примере показано, как определить сценарии моделирования и использовать инструмент Fixed-Point Tool для сбора диапазонов путем выполнения моделирования с использованием этих сценариев. Затем можно использовать инструмент Fixed-Point Tool для оптимизации типов данных Fixed-Point в системе.

Во время оптимизации программа устанавливает опорную структуру путем моделирования исходной модели. Затем он создает различные версии модели с фиксированной точкой и выполняет моделирование для определения поведения с использованием новых типов данных. Оптимизация выбирает модель, которая минимизирует целевую функцию, одновременно удовлетворяя указанным поведенческим ограничениям. Включая Simulink.SimulationInput объект в настройке позволяет определить дополнительные сценарии моделирования, которые будут учитываться при оптимизации. Полный набор входных сигналов может помочь гарантировать, что полный рабочий диапазон вашей конструкции будет реализован в процессе оптимизации.

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

Откройте модель. В этом примере выполняется оптимизация типов данных подсистемы контроллера. Модель настраивается так, чтобы использовать либо линейный, либо случайный ввод.

model = 'ex_controllerHarness';
open_system(model)

Создать Simulink.SimulationInput объект, содержащий различные сценарии. Для случайного ввода используйте как входные данные клина, так и четыре различных начальных значения.

si = Simulink.SimulationInput.empty(5, 0);

% scan through 4 different seeds for the random input
rng(1);
seeds = randi(1e6, [1 4]);

for sIndex = 1:length(seeds)
    si(sIndex) = Simulink.SimulationInput(model);
    si(sIndex) = si(sIndex).setVariable('SOURCE', 2); % SOURCE == 2 corresponds to the random input
    si(sIndex) = si(sIndex).setBlockParameter([model '/Random/uniformRandom'], 'Seed', num2str(seeds(sIndex))); % scan through the seeds
    si(sIndex) = si(sIndex).setUserString(sprintf('random_%i', seeds(sIndex)));
end

% setting SOURCE == 1 corresponds to the ramp input
si(5) = Simulink.SimulationInput(model);
si(5) = si(5).setVariable('SOURCE', 1);
si(5) = si(5).setUserString('Ramp');

Подготовка системы к преобразованию

Для оптимизации типов данных в режиме используйте инструмент «Фиксированная точка».

  1. В галерее «Приложения» ex_controllerHarness выберите инструмент «Фиксированная точка».

  2. В инструменте «Фиксированная точка» в разделе «Новый рабочий процесс» выберите Optimized Fixed-Point Conversion.

  3. В разделе Система под конструкцией (SUD) выберите подсистему, для которой требуется оптимизировать типы данных. В этом примере выберите Controller.

  4. В разделе Режим сбора диапазонов (Range Collection Mode) выберите Расчетные диапазоны (Simulation Ranges) в качестве метода сбора диапазонов.

  5. В разделе Входные данные моделирования (Simulation Inputs) можно указать Simulink.SimulationInput объекты для выполнения проекта в полном рабочем диапазоне. В этом примере используются определенные сценарии моделирования. Установить входные данные моделирования в значение si.

  6. Можно указать допуски для любого сигнала в модели с включенным регистром сигналов в таблице в разделе Допуски сигналов (Signal Tolerances). В этом примере раздел Signal Tolerances указывает, что модель не содержит зарегистрированных сигналов. Поскольку эта модель использует блок утверждения из библиотеки проверки модели для проверки числового поведения системы во время оптимизации, указание допусков сигнала является необязательным. Дополнительные сведения см. в разделе Указание поведенческих ограничений.

  7. На панели инструментов нажмите кнопку «Подготовить». Инструмент Fixed-Point проверяет проектируемую систему на совместимость с процессом преобразования и сообщает о любых проблемах, обнаруженных в модели. По возможности инструмент «Фиксированная точка» автоматически изменяет несовместимые параметры. Дополнительные сведения см. в разделе Использование инструмента фиксированной точки для подготовки системы к преобразованию.

Оптимизация типов данных в инструменте Fixed-Point

  1. Чтобы задать параметры для оптимизации, на панели инструментов нажмите кнопку «Параметры».

    В этом примере используются следующие настройки.

    • Задать допустимую длину слова как [2:32].

      Этот параметр определяет длины слов, которые могут использоваться в оптимизированной системе. Этот параметр используется для поиска по окрестностям процесса оптимизации. В конечном результате оптимизация использует длины слов в пересечении этой настройки и длины слов, совместимые с аппаратными ограничениями, указанными на панели «Аппаратная реализация» модели.

    • Задать максимальное значение итераций 3e2.

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

    • Установить терпение на 50.

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

    • Задайте для целевой функции значение Bit Width Sum. Использование этого параметра дает команду оптимизации минимизировать общую битовую ширину окончательной конструкции при выполнении заданных ограничений.

    Дополнительные сведения о параметрах оптимизации см. в разделе fxpOptimizationOptions.

  2. Чтобы оптимизировать типы данных в модели в соответствии с заданными настройками, щелкните Оптимизировать типы данных (Optimize Data Types).

    В процессе оптимизации программное обеспечение анализирует диапазоны объектов в проектируемой системе и ограничения, указанные в настройках, для применения разнородных типов данных к системе при минимизации целевой функции. Подробные сведения о процессе оптимизации печатаются на панели Сведения об оптимизации (Optimization Details) инструмента «Фиксированная точка» (Fixed-Point Tool).

    Можно остановить решатель оптимизации до завершения поиска оптимизации, нажав кнопку «Остановить» на панели инструментов инструмента «Фиксированная точка».

Анализ результатов

По завершении оптимизации инструмент «Фиксированная точка» (Fixed-Point) отображает таблицу, содержащую все решения, найденные в процессе оптимизации. Первое решение в таблице соответствует решению с наименьшей стоимостью (наименьшая общая ширина бита).

Чтобы проверить диапазоны, которые были собраны для объектов в модели во время процесса оптимизации, на панели Браузер рабочего процесса (Workflow Browser) выберите Параметры (Baseline) Выполнить (Run).

Инструмент «Фиксированная точка» (Fixed-Point) отображает сводку диапазонов объектов в модели и гистограмм битов, используемых каждым объектом. Каждый столбец на панели Визуализация данных моделирования (Visualization of Simulation Data) представляет гистограмму для одного объекта в модели. Каждый элемент в гистограмме соответствует биту в двоичном слове.

Выбор столбца подсвечивает соответствующий объект модели в электронной таблице Результаты (Results) инструмента фиксированная точка (Fixed-Point Tool) и заполняет панель Подробности результата (Result Details) более подробной информацией о выбранном результате.

Визуализацию типа данных можно использовать для просмотра сводки диапазонов объектов в модели, а также для выявления источников переполнения, недоливов и неэффективных типов данных. С помощью вкладки «Обзор» инструмента «Фиксированная точка» можно сортировать и фильтровать результаты инструмента на основе дополнительных критериев.

Visualization of ranges collected during optimization

Применение оптимизированных типов данных к модели

  1. Чтобы применить оптимизированные типы данных к модели, в таблице решений выберите решение, которое требуется применить. В разделе «Обзор» панели инструментов нажмите кнопку «Применить и сравнить». Инструмент «Фиксированные точки» применяет выбранное решение, содержащее оптимизированные типы данных фиксированных точек, к модели и открывает инспектор данных моделирования.

    В этом примере выберите Решение 1, затем щелкните Применить и сравнить.

  2. В подсистеме Controller можно просмотреть примененные оптимизированные типы данных с фиксированной точкой.

Совет

Инструмент «Фиксированная точка» использует возможности инструмента «Инспектор данных моделирования», позволяющие выводить записанные сигналы на график для графического анализа. Поскольку эта модель не содержит записанных в журнал сигналов, кнопка Сравнить (Compare) в этом примере остается выключенной. Чтобы сравнить результаты оптимизации типа данных с помощью инспектора данных моделирования, запишите один или несколько сигналов в модели.

Экспорт шагов процесса оптимизации в сценарий MATLAB

После оптимизации типов данных с помощью инструмента Fixed-Point Tool можно экспортировать шаги процесса оптимизации в сценарий MATLAB ®. Это позволяет сохранить текущие шаги процесса оптимизации и продолжить оптимизацию типа данных с помощьюfxpopt в командной строке.

На панели инструментов нажмите кнопку «Экспорт сценария». Инструмент Fixed-Point экспортирует сценарий с именем fxpOptimizationScript.m в текущую рабочую папку:

model = 'ex_controllerHarness';

sud = 'ex_controllerHarness/Controller';

options = fxpOptimizationOptions();

options.MaxIterations = 300; % Maximum number of iterations to perform.

options.Patience = 50; % Maximum number of iterations where no new best solution is found.

options.AllowableWordLengths = 2:32; % Word lengths that can be used in your optimized system under design.

savedOptions = load('fxpOptimizationScript');

options.AdvancedOptions.SimulationScenarios = savedOptions.simulationScenarios;

result = fxpopt(model, sud, options);

explore(result);

Simulink.SimulationInput объект, si, используется во время оптимизации экспортируется в MAT-файл с именем fxpOptimizationScript.mat.

См. также

Связанные темы