exponenta event banner

sdo.optimize

Решение задачи оптимизации проекта

    Описание

    Решите задачу оптимизации, чтобы найти значения конструктивных переменных, удовлетворяющих проектным требованиям.

    Использовать sdo.optimize для решения задачи оптимизации конструкции в следующей форме:

    minpF (p ) в соответствии с {Cleq (p) ≤0Ceq (p) =0A×p≤BAeq×p=Beqlb≤p≤ub

    Здесь:

    • F - стоимость (цель).

    • p - скаляр или вектор конструктивных переменных.

    • Cleq и Ceq являются нелинейными ограничениями неравенства и равенства соответственно.

    • А и В - линейные ограничения неравенства.

    • Aeq и Beq являются линейными ограничениями равенства.

    • 1b и ub - нижняя и верхняя границы на p соответственно.

    [optimParam,optimInfo] = sdo.optimize(optimFcn,param) использование fmincon, метод оптимизации по умолчанию, для поиска значений параметров optimParam которые удовлетворяют требованиям, указанным в optimFcn.

    пример

    [optimParam,optimInfo] = sdo.optimize(optimFcn,param,options) решает задачу оптимизации с помощью опций оптимизации, указанных в options. Использовать sdo.OptimizeOptions для установки этих параметров.

    [optimParam,optimInfo] = sdo.optimize(prob) решает задачу оптимизации, указанную в структуре prob содержит минимизируемую функцию, конструктивные переменные и опции оптимизации.

    Примеры

    свернуть все

    Решение задачи оптимизации, указанной в sdoExampleCostFunction. Примерная функция затрат включена в программное обеспечение Simulink ® Design Optimization™ .

    В этом примере функция вычисляет следующие затраты:

    f (x) = x2

    Функция также включает следующие нелинейные и линейные ограничения неравенства соответственно:

    x2-4x+1≤0

    2x3-3≤0

    Для оптимизации f (x) минимизируется при условии удовлетворения ограничений. Функция примера также вычисляет градиенты затрат и ограничений.

    Создайте конструктивную переменную, используя начальное значение 1.

    p = param.Continuous('x',1);

    Укажите параметры оптимизации по умолчанию для использования fmincon решатель. Для этого примера, чтобы включить оценку градиента затрат и ограничений из sdoExampleCostFunction, установите GradFcn опция для 'on'.

    opts = sdo.OptimizeOptions;
    opts.GradFcn = 'on';

    Оптимизируйте параметр.

    [pOptim,optim_info] = sdo.optimize(@(p) sdoExampleCostFunction(p),p,opts);
     Optimization started 22-Apr-2021 20:12:23
    
                                   max                     First-order 
     Iter F-count        f(x)   constraint    Step-size    optimality
        0      3            1            0
        1      5         0.09            0          0.7         0.59
        2      6    0.0716349     0.001047       0.0324       0.0129
        3      7    0.0717968    9.127e-08     0.000302     2.37e-06
    Local minimum found that satisfies the constraints.
    
    Optimization completed because the objective function is non-decreasing in 
    feasible directions, to within the value of the optimality tolerance,
    and constraints are satisfied to within the value of the constraint tolerance.
    

    Значение оптимизированного параметра сохраняется в Value свойство возвращенного param.Continuous объект pOptim.

    pOptim.Value
    ans = 0.2679
    

    Входные аргументы

    свернуть все

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

    Функция требует:

    • Один входной аргумент, который является вектором param.Continuous настраиваемые объекты.

      Для передачи дополнительных входных аргументов используйте анонимную функцию. Например, new_fcn = @(p) fcn(p,arg1,arg2,...).

    • Один выходной аргумент, представляющий собой структуру с одним или несколькими из следующих полей:

      ОбластьСтоимость
      F

      Стоимость (цель), оцененная в p. Решатель сводит к минимуму F.

      F является скалярным двойником.

      Cleq

      Нарушения ограничений нелинейного неравенства, оцениваемые в p. Решатель удовлетворяет Cleq (p) ≤ 0.

      Клек - двойной вектор m-на-1, где m - число нелинейных ограничений неравенства.

      Ceq

      Нарушения ограничений нелинейного равенства, оцениваемые в p. Решатель удовлетворяет Ceq (p) = 0.

      Ceq - двойной вектор r-by-1, где r - число нелинейных ограничений равенства.

      leq

      Нарушения ограничений линейного неравенства, оцениваемые в p. Решатель удовлетворяет условию leq (p) ≤ 0.

      leq - двойной вектор n-by-1, где n - число линейных ограничений неравенства.

      eq

      Нарушения ограничений линейного равенства, оцениваемые в p. Решатель удовлетворяет eq (p) = 0.

      eq - двойной вектор s-by-1 или [], где s - число линейных ограничений равенства.

      Чтобы указать чисто выполнимую задачу, пропустите F или набор F = []. Чтобы указать проблему минимизации, пропустите Cleq, Ceq, leq, и eqили задайте для их значений значение [].

      Программа вычисляет градиенты нарушений затрат и ограничений с помощью числового возмущения. Если требуется указать способ вычисления градиентов, включите второй выходной аргумент и установите значение GradFcn имущество sdo.OptimizeOptions кому 'on'. Этот аргумент должен быть структурой с одним или несколькими из следующих полей:

      ОбластьСтоимость
      FДвойной вектор n-by-1, содержащий dF(p)/dp, где n - количество скалярных параметров
      CleqМатрица double n-by-m, содержащая dCleq(p)/dp, где m - число нелинейных ограничений неравенства
      CeqМатрица double n-by-r, содержащая dCeq(p)/dp, где r - число нелинейных ограничений равенства

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

    Пример: Для примера функции затрат, которую можно оптимизировать с помощью программного обеспечения Simulink ® Design Optimization™, введитеedit sdoExampleCostFunction в окне команд MATLAB ®.

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

    Параметры модели для оптимизации, указанные как param.Continuous объект или вектор param.Continuous объекты.

    • Чтобы задать один параметр для оптимизации, используйте param.Continuous объект.

    • Чтобы задать несколько параметров для оптимизации, используйте вектор param.Continuous объекты.

    Параметры оптимизации, заданные как объект, созданный с помощью sdo.OptimizeOptions. Используйте этот набор опций для указания:

    • Метод оптимизации

    • Максимальное количество итераций

    • Терпимость

    Структура задачи оптимизации, заданная как структура со следующими полями:

    Имя поляСтоимость
    OptFcnФункция затрат для минимизации. Посмотрите optimFcn для требований к входному и выходному аргументу этой функции.
    ParametersПараметры модели для оптимизации, указанные как param.Continuous объекты.
    OptionsПараметры оптимизации, созданные с помощью sdo.OptimizeOptions.

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

    Выходные аргументы

    свернуть все

    Оптимизированные значения параметров, возвращаемые как param.Continuous объект или вектор param.Continuous объекты. Размер optimParam совпадает с размером param. Оптимизированные значения параметров хранятся в Value свойство возвращенного param.Continuous объект.

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

    ОбластьСтоимость
    FОптимизированная стоимость (целевая) стоимость.
    Cleq

    Оптимизированные нарушения ограничений нелинейного неравенства.

    Поле появляется, если задать нелинейное ограничение неравенства в optimFcn.

    Значение является вектором m-by-1, где порядок элементов соответствует порядку, указанному в optimFcn. Положительные значения указывают на то, что ограничение не выполнено. Проверьте exitflag для подтверждения успеха оптимизации.

    Ceq

    Оптимизированные нарушения ограничений нелинейного равенства.

    Поле появляется, если задать нелинейное ограничение равенства в optimFcn.

    Значение представляет собой двойной вектор r-by-1, где порядок элементов соответствует порядку, указанному в optimFcn. Любые ненулевые значения указывают на то, что ограничение не выполнено. Проверьте exitflag для подтверждения успеха оптимизации.

    leq

    Оптимизированные нарушения ограничений линейного неравенства.

    Поле появляется, если задать линейное ограничение неравенства в optimFcn.

    Значение представляет собой двойной вектор n-by-1, где порядок элементов соответствует порядку, указанному в optimFcn. Ненулевые значения указывают, что ограничение не выполнено. Проверьте exitflag для подтверждения успеха оптимизации.

    eq

    Оптимизированные нарушения ограничений линейного равенства.

    Поле появляется, если задать ограничения линейного равенства в optimFcn.

    Значение является двойным вектором s-by-1, где порядок элементов соответствует порядку, указанному в optimFcn. Ненулевые значения указывают, что ограничение не выполнено. Проверьте exitflag для подтверждения успеха оптимизации.

    Gradients

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

    Это поле появляется, если решатель указан в Method имущество sdo.OptimizeOptions вычисляет градиенты.

    Значение представляет собой структуру, поля которой зависят от optimFcn.

    Jacobian

    Якобианская информация при оптимизированных значениях параметров.

    Поле появляется, если решатель указан в Method имущество sdo.OptimizeOptions вычисляет якобинцев.

    Значение представляет собой структуру, поля которой зависят от optimFcn.

    exitflag

    Целое число, определяющее причину прекращения работы алгоритма. Посмотрите fmincon, patternsearch (инструментарий глобальной оптимизации), fminsearch, и lsqnonlin для получения списка значений и соответствующих причин прекращения.

    iterationsЧисло итераций оптимизации.
    SolverOutput

    Структура со специфичной для решателя выходной информацией. Поля этой структуры зависят от решателя оптимизации, указанного в Method имущество sdo.OptimizeOptions. Посмотрите fmincon, patternsearch (инструментарий глобальной оптимизации), fminsearch, и lsqnonlin список выходных данных решателя и их описание.

    Stats

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

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

    Совет

    По умолчанию информация об оптимизации для каждой итерации отображается в окне команд MATLAB. Дополнительные сведения об отображаемой информации см. в следующих разделах:

    Уровень этого дисплея можно настроить с помощью MethodOptions.Display свойства набора опций оптимизации.

    Альтернативная функциональность

    Приложения

    Приложение Response Optimizer предоставляет графический интерфейс для определения требований к конструкции и оптимизации параметров модели. Дополнительные сведения см. в разделах Оптимизация конструкции для соответствия пользовательской цели (GUI) и Оптимизация конструкции для отслеживания опорного сигнала (GUI).

    Приложение Parameter Estimator предоставляет графический интерфейс для задания экспериментов и настройки параметров модели таким образом, чтобы выходные данные модели соответствовали данным эксперимента. Дополнительные сведения см. в разделе Оценка значений параметров модели (GUI).

    Расширенные возможности

    Представлен в R2011a