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

Когда вы оптимизируете параметры модели 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=[max t1tt2ybndysimmax t2tt3 ybndysimmax tnttn+1ybndysim],

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

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

c=[max t1tt2ysimybndmax t2tt3ysimybndmax tnttn+1ysimybnd].

В командной строке, opt_fcn предоставления 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))max tnew|yref|.

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

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

Примечание

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

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

F=fi.

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

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

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

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

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

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

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

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

    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¯

Примечание

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

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

Симплексный Метод поиска использует функцию Optimization Toolbox 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)в противном случае.

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

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

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

Программное обеспечение формулирует ограничение 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 для получения дополнительной информации.