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

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

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

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

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

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

В следующем рисунке x 1, x 3, и xn представляет комбинацию значений параметров P 1 и P 2 и является возможными решениями, потому что они не нарушают ограничение нижней границы.

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

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

ybnd(t)={y1(t)t1tt2y2(t)t2tt3yn(t)tnttn+1,

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

c=[maxt1tt2ybndysimmaxt2tt3 ybndysimmaxtnttn+1ybndysim],

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

Расстояние со знаком для верхних границ:

c=[maxt1tt2ysimybndmaxt2tt3ysimybndmaxtnttn+1ysimybnd].

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

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

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

C=[c1;c2;;cn].

Отслеживание проблемы

Кроме того, к нижним и верхним границам, можно задать опорный сигнал в блоке Check Against Reference или sdo.requirements.SignalTracking объект, который может отследить модель Simulink выход. Цель отслеживания является целью отслеживания квадратичной невязки суммы.

Вы задаете опорный сигнал как последовательность амплитудных временем пар:

yref(tref),tref{Tref0,Tref1,,TrefN}.

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

ysim(tsim),tsim{Tsim0,Tsim1,,TsimN},

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

Новая основа времени, tnew, формируется из объединения элементов tref и tsim. Элементы, которые не являются в минимально-максимальной области значений и tref и tsim, не использованы:

tnew={t:tsimtref}

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

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

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

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

Примечание

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

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

F=fi.

Формулировки задачи метода градиентного спуска

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

Проблемный типФормулировка задачи
Проблема выполнимости

Программное обеспечение формулирует ограничение C (x) как описано в проблеме Выполнимости и Ограничительной Формулировке.

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

    min[x,γ] γs.t.   C(x)γ     x¯xx¯     γ0

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

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

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

Отслеживание проблемы

Программное обеспечение формулирует отслеживающий объективный F (x) как описано в Отслеживании проблемы и минимизирует цель отслеживания:

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

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

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

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

Примечание

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

Симплексные формулировки задачи метода поиска

Симплексный Метод поиска использует функцию fminsearch и fminbnd оптимизировать параметры модели, чтобы соответствовать конструктивным требованиям. fminbnd используется, если один скалярный параметр оптимизируется в противном случае fminsearch используется. Вы не можете использовать границы параметра x¯xx¯ с fminsearch.

Проблемный типФормулировка задачи
Проблема выполнимости

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

minx max (C(x))

Отслеживание проблемы

Программное обеспечение формулирует отслеживающий объективный F (x) как описано в Отслеживании проблемы и затем минимизирует цель отслеживания:

minx F(x)

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

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

  1. Находит возможное решение.

    minx max (C(x))

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

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

Формулировки задачи метода поиска шаблона

Метод поиска Шаблона использует функцию patternsearch (Global Optimization Toolbox), чтобы оптимизировать параметры модели, чтобы соответствовать конструктивным требованиям.

Проблемный типФормулировка задачи
Проблема выполнимости

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

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

Отслеживание проблемы

Программное обеспечение формулирует отслеживающий объективный F (x) как описано в Отслеживании проблемы и затем минимизирует цель отслеживания:

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

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

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

  1. Находит возможное решение.

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

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

    minxΓ(x)s.t. x¯xx¯гдеΓ(x)={еслиmax(C(x))>0F(x)в противном случае.

Расчеты градиента

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

dx=eps3×max(|x|,110xtypical)dL=max(xdx,xmin)dR=min(x+dx,xmax)FL=opt_fcn(dL)FR=opt_fcn(dR)dFdx=(FLFR)(dLdR)

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

  • xmin является нижней границей x.

  • xmax является верхней границей x.

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

  • opt_fcn является целевой функцией.

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

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