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

Когда вы оптимизируете параметры 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), как описано в «Задача выполнимости» и «Формулировка ограничений».

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

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

    y является переменной slack, которая допускает возможное решение с 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¯

Примечание

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

Simplex Search Метод Формулировок задачи

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

Тип задачиФормулировка задачи
Задача выполнимости

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

minx макс.(C(x))

Задача отслеживания

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

minx F(x)

Смешанная задача выполнимости и отслеживания

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

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

    minx макс.(C(x))

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

    minx  Γ(x)гдеΓ(x)={еслиmax(C(x))>0F(x)иначе.

Метод Поиска Шаблона Формулировки задачи

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

Тип задачиФормулировка задачи
Задача выполнимости

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

minx макс.(C(x))s.t.     x¯xx¯

Задача отслеживания

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

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

Смешанная задача выполнимости и отслеживания

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

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

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