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

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

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

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

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

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

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

В модели Simulink вы ограничиваете сигнал путем определения нижних и верхних границ в блоке Check (Характеристики Переходного процесса Проверки...) или объект требования (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 для получения дополнительной информации.