exponenta event banner

Как алгоритм оптимизации формулирует проблемы минимизации

При оптимизации параметров модели Simulink ® в соответствии с требованиями проектирования программное обеспечение Simulink Design Optimization™ автоматически преобразует требования в проблему оптимизации с ограничениями, а затем решает проблему с помощью методов оптимизации. Задача оптимизации с ограничением итеративно моделирует модель Simulink, сравнивает результаты моделирования с целями ограничения и использует методы оптимизации для корректировки настроенных параметров для лучшего выполнения задач .

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

Дополнительные сведения о том, как каждый алгоритм оптимизации формулирует эти проблемы, см. в разделе:

Проблема выполнимости и формулирование ограничений

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

На следующем рисунке x1, x3 и xn представляют комбинацию значений параметров P1 и P2 и являются выполнимыми решениями, поскольку они не нарушают ограничение нижней границы.

В модели Simulink ограничение сигнала выполняется путем указания нижней и верхней границ в блоке Check (Проверка характеристик ответа шага,...) или объекте требования (sdo.requirements.StepResponseEnvelope,...), как показано на следующем рисунке.

Эти ограничения являются кусочно-линейными границами. Кусочно-линейная связь ybnd с n ребрами может быть представлена как:

ybnd (t) = {y1 (t) t1≤t≤t2y2 (t) t2≤t≤t3⋮⋮yn (t) tn≤t≤tn+1,

Программа вычисляет подписанное расстояние между моделируемым ответом и краем. Подписанное расстояние для нижних границ:

c=[maxt1≤t≤t2ybnd−ysimmaxt2≤t≤t3 ybnd−ysimmaxtn≤t≤tn+1ybnd−ysim],

где ysim - моделируемый отклик и является функцией оптимизируемых параметров.

Подписанное расстояние для верхних границ:

c=[maxt1≤t≤t2ysim−ybndmaxt2≤t≤t3ysim−ybndmaxtn≤t≤tn+1ysim−ybnd].

В командной строке поставляется optimFcn c непосредственно из Cleq поле vals.

Если выполняются все ограничения (c ≤ 0) для некоторой комбинации значений параметров, то это решение считается осуществимым. На следующем рисунке x1 и x3 являются возможными решениями.

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

C=[c1;c2;⋯;cn].

Проблема отслеживания

В дополнение к нижним и верхним границам можно указать опорный сигнал в блоке «Проверка по опорным» или sdo.requirements.SignalTracking , который можно отслеживать в выходных данных модели Simulink. Цель отслеживания - это цель отслеживания суммы в квадрате ошибок.

Опорный сигнал задается как последовательность пар «время-амплитуда»:

yref (треф), tref∈{Tref0,Tref1,⋯,TrefN}.

Программное обеспечение вычисляет смоделированный отклик как последовательность пар время-амплитуда:

ysim (цим), tsim∈{Tsim0,Tsim1,⋯,TsimN},

где некоторые значения tsim могут совпадать со значениями tref.

Новая временная база, tnew, формируется из объединения элементов трефа и цима. Элементы, которые не находятся в минимально-максимальном диапазоне трефа и цима, опущены:

tnew={t:tsim∪tref}

Используя линейную интерполяцию, программа вычисляет значения yref и ysim в точках времени в тн, а затем вычисляет масштабированную ошибку:

e (tnew) = (ysim (tnew) yref (tnew)) maxtnew 'yref |.

Наконец, программное обеспечение вычисляет взвешенную интегральную квадратную ошибку:

f=∫w (t) e (t) 2dt.

Примечание

Вес w (t) по умолчанию равен 1. Указать другое значение веса можно только в командной строке.

Когда ваша модель имеет требования или векторные сигналы, подающие требование, цель отслеживания равна сумме индивидуальных интегральных ошибок отслеживания для каждого сигнала:

F=∑fi.

Проблемные формулировки метода градиентного спуска

Метод градиентного спуска использует функцию fmincon для оптимизации параметров модели в соответствии с требованиями проекта.

Тип проблемыПостановка проблемы
Проблема выполнимости

Программное обеспечение формулирует ограничение C (x), как описано в разделе «Проблема выполнимости и формулировка ограничения».

  • Если выбран вариант максимально возможного решения (т.е. оптимизация продолжается после того, как найдено первоначальное осуществимое решение), программное обеспечение использует следующую формулировку задачи:

    min [x,  γ]  names.t . C (x )   ≤γ x¯≤x≤x¯    γ≤0 

    γ представляет собой переменную слабости, которая позволяет реализовать решение с C (x) ≤ γ, а не C (x) ≤ 0.

  • Если вариант максимально возможного решения не выбран (т.е. оптимизация завершается сразу после нахождения возможного решения), программное обеспечение использует следующую формулировку задачи:

    minx 0 s.t.  C (x)   ≤0        x¯≤x≤x¯  

Проблема отслеживания

Программное обеспечение формулирует цель отслеживания F (x), как описано в разделе Проблема отслеживания, и минимизирует цель отслеживания:

minx F (x)  s.t .  x¯≤x≤x¯

Смешанная проблема выполнимости и отслеживания

Программное обеспечение сводит к минимуму следующую постановку проблемы:

minx  F (x) s.t .    C (x)   ≤0    x¯≤x≤x¯

Примечание

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

Проблемные формулировки метода простого поиска

Метод Simplex Search использует функцию fminsearch и fminbnd для оптимизации параметров модели в соответствии с требованиями проекта. fminbnd используется при оптимизации одного скалярного параметра, в противном случае fminsearch используется. Нельзя использовать границы параметров, x¯≤x≤x¯ с fminsearch.

Тип проблемыПостановка проблемы
Проблема выполнимости

Программное обеспечение формулирует ограничение C (x), как описано в разделе Выполнимость проблемы и формулирование ограничения, а затем минимизирует максимальное нарушение ограничения:

minx max (C (x))

Проблема отслеживания

Программное обеспечение формулирует цель отслеживания F (x), как описано в разделе Проблема отслеживания, и затем минимизирует цель отслеживания:

minx F (x)

Смешанная проблема выполнимости и отслеживания

Программное обеспечение формулирует проблему в два этапа:

  1. Поиск выполнимого решения.

    minx max (C (x))

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

    minx  Γ (x), где Γ (x) ={∞ifmax (C (x)) > 0F (x) в противном случае.

Проблемные формулировки метода поиска шаблонов

Метод Pattern Search использует функцию patternsearch(Панель инструментов глобальной оптимизации) для оптимизации параметров модели в соответствии с требованиями проекта.

Тип проблемыПостановка проблемы
Проблема выполнимости

Программное обеспечение формулирует ограничение C (x), как описано в разделе Выполнимость проблемы и формулирование ограничения, а затем минимизирует максимальное нарушение ограничения:

minx max (C (x))   s.t .  x¯≤x≤x¯

Проблема отслеживания

Программное обеспечение формулирует цель отслеживания F (x), как описано в разделе Проблема отслеживания, и затем минимизирует цель отслеживания:

minx  F (x) s.t .   x¯≤x≤x¯

Смешанная проблема выполнимости и отслеживания

Программное обеспечение формулирует проблему в два этапа:

  1. Поиск выполнимого решения.

    minx max (C (x))   s.t .  x¯≤x≤x¯

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

    minxΓ (x)  s.t. x¯≤x≤x¯whereΓ (x) ={∞ifmax (C (x)) > 0F (x) в противном случае.

Вычисления градиента

Для Gradient descent (fmincon) решатель оптимизации, градиенты вычисляются с использованием численного возмущения:

dx = eps3 × max (| x |, 110xtypical) dL = max (x dx, xmin) dR = min (x + dx, xmax) FL = opt _ fcn (dL) FR = opt _ fcn (dR) dFdx = (FL − FR)

  • x является скалярной конструктивной переменной.

  • xmin - нижняя граница x.

  • xmax - верхняя граница x.

  • xtypical - масштабированное значение x.

  • opt_fcn - это целевая функция.

dx относительно велик для соответствия допускам вычислителя моделирования.

Если требуется вычислить градиенты каким-либо другим способом, это можно сделать в функции затрат, написанной для программной оптимизации конструкции. Посмотрите sdo.optimize и GradFcn из sdo.OptimizeOptions для получения дополнительной информации.