fxpOptimizationOptions class

Задайте опции для оптимизации типа данных

Описание

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

Конструкция

opt = fxpOptimizationOptions() создает fxpOptimizationOptions объект со значениями по умолчанию.

opt = fxpOptimizationOptions(Name,Value) создает fxpOptimizationOptions объект со значениями свойств, заданными одним или несколькими Name,Value парные аргументы. Name должен появиться в одинарных кавычках (''). Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN.

Свойства

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

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

Пример: opt.MaxIterations = 75;

Типы данных: double

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

Пример: opt.MaxTime = 1000;

Типы данных: double

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

Пример: opt.Patience = 15;

Типы данных: double

Уровень информации, отображенной в командной строке во время процесса оптимизации в виде любого 'High', 'Moderate', или 'Silent'.

  • 'Silent' - Ничто не отображено в командной строке, пока процесс оптимизации не закончен

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

  • 'High' - Информация отображена в командной строке в каждой итерации процесса оптимизации, включая то, было ли новое лучшее решение найдено, и стоимость решения.

Пример: opt.Verbosity = 'Moderate';

Типы данных: char | string

Задайте размеры слова, которые могут использоваться в вашей оптимизированной системе в соответствии с проектом. Используйте это свойство предназначаться для поиска окружения процесса оптимизации. Конечный результат оптимизации использует размеры слова в пересечении AllowableWordLengths и размеры слова, совместимые с аппаратными ограничениями, заданными в панели Hardware Implementation вашей модели.

Пример: opt.AllowableWordLengths = [8:11,16,32];

Типы данных: double

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

  • 'BitWidthSum' — Минимизируйте общую битную сумму ширины.

  • 'OperatorCount' — Минимизируйте оцененное количество операторов в сгенерированном коде C.

    Эта опция может привести к более низкому размеру памяти программ для кода С, сгенерированного от Simulink® модели. 'OperatorCount' целевая функция не подходит для целей ASIC или FPGA.

    Примечание

    Использовать 'OperatorCount' как целевая функция во время оптимизации, модель должна быть готова к генерации кода. Для получения дополнительной информации об определении готовности генерации кода, см. Модель Проверки и Настройку для Генерации кода (Embedded Coder).

Типы данных: char

Запустить ли итерации оптимизации параллельно в виде логического. Выполнение итераций параллельно требует лицензии Parallel Computing Toolbox™. Если у вас нет лицензии Parallel Computing Toolbox, или если вы задаете false, итерации запущены в сериале.

Типы данных: логический

Дополнительные расширенные настройки для оптимизации. AdvancedOptions объект, содержащий дополнительные свойства, которые могут влиять на оптимизацию.

СвойствоОписание
PerformNeighborhoodSearch
  • 1 (значение по умолчанию) – Выполняет окружение, ищут оптимизированное решение.

  • 0 – Не выполняйте поиск окружения. Выбирание этой опции может увеличить скорость процесса оптимизации, но также и увеличивает возможности нахождения менее идеального решения.

EnforceLooseCoupling

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

  • 1 (значение по умолчанию) – Позволяет оптимизатору ослаблять это ограничение на всех блоках в системе в соответствии с проектом. Ослабление этого ограничения позволяет оптимизатору обеспечить лучше подходящие типы данных.

  • 0 – Не позволяйте оптимизатору ослаблять это ограничение на блоках в системе в соответствии с проектом.

UseDerivedRangeAnalysis
  • 0 (значение по умолчанию) – Оптимизатор не считает области значений выведенными из областей значений проекта в модели при оценке решения.

  • 1 – Оптимизатор считает и наблюдаемые области значений симуляции и области значений выведенными из областей значений проекта в модели при оценке решения.

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

SimulationScenariosЗадайте сценарии дополнительной симуляции, чтобы рассмотреть во время оптимизации с помощью Simulink.SimulationInput объект. Для примера смотрите, Оптимизируют Типы данных Используя Несколько Сценариев Симуляции.
SafetyMargin

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

DataTypeOverride

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

  • 'Off' (значение по умолчанию) – не заменяет типы данных

  • 'Single' – Замените типы данных с одиночными играми

  • 'Double' – Замените типы данных с, удваивается

  • 'ScaledDouble' – Типы данных переопределения с масштабированным удваиваются

HandleUnsupported

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

  • 'Isolate' (значение по умолчанию) – Изолирует неподдерживаемые блоки с блоками Data Type Conversion. Изолированные блоки проигнорированы оптимизатором.

  • 'Error' – Остановите оптимизацию и сообщите об ошибке, когда система содержит блоки, которые не поддерживаются для преобразования фиксированной точки.

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

PerformSlopeBiasCancellation
  • 0 (значение по умолчанию) – не распространяет типы данных наклонного смещения.

  • 1 – Распространите типы данных наклонного смещения снаружи системы в соответствии с проектом. Наклоны и смещения выбраны, чтобы уменьшать сложность сгенерированного кода.

InstrumentationContext[model '/Subsystem'] – Ограничьте инструментирование для минимума, максимума и логгирования переполнения для шага набора области значений оптимизации к подсистеме. Подсистема должна находиться под моделью верхнего уровня и содержать систему в соответствии с проектом.

Методы

addSpecificationЗадайте известные типы данных в системе
addToleranceЗадайте числовой допуск к оптимизированной системе
showSpecificationsПокажите технические требования для системы
showTolerancesПокажите допуски, заданные для системы

Примеры

свернуть все

Создайте fxpOptimizationObject со значениями свойств по умолчанию.

options = fxpOptimizationOptions();

Отредактируйте свойства после создания с помощью точечного синтаксиса.

options.Patience = 15;
options.AllowableWordLengths = [8,16,32];
options.AdvancedOptions.UseDerivedRangeAnalysis = true
options = 
  fxpOptimizationOptions with properties:

           MaxIterations: 50
                 MaxTime: 600
                Patience: 15
               Verbosity: High
    AllowableWordLengths: [8 16 32]
       ObjectiveFunction: BitWidthSum
             UseParallel: 0

   Advanced Options
         AdvancedOptions: [1x1 DataTypeOptimization.AdvancedFxpOptimizationOptions]

Можно импортировать fxpOptimizationOptions объект в Fixed-Point Tool, чтобы выполнить оптимизацию типа данных в приложении. Путем импорта fxpOptimizationOptions возразите вместо того, чтобы задать настройки вручную в приложении, можно легко сохранить и восстановить настройки.

Откройте модель.

model = 'ex_controllerHarness';
open_system(model);

Чтобы задать опции для оптимизации, такие как допустимый размер слова и количество итераций, используют fxpOptimizationOptions объект.

options = fxpOptimizationOptions('AllowableWordLengths', [2:32], 'MaxIterations', 3e2, 'Patience', 50);

Откройте Fixed-Point Tool с Controller подсистема выбрана.

fxptdlg('ex_controllerHarness/Controller')

В Fixed-Point Tool выберите New> Optimized Fixed-Point Conversion, чтобы запустить рабочий процесс оптимизации типа данных.

В панели Setup, под Расширенными настройками, выбирают объект опций оптимизации импортировать из выпадающего меню. Нажмите Import.

Расширьте Меню параметров в панели инструментов, чтобы подтвердить, что опции оптимизации были применены.

Введенный в R2018a