Когда вы оптимизируете параметры 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 может быть представлен как:
Программное обеспечение вычисляет расстояние со знаком между симулированным откликом и ребром. Расстояние со знаком для нижних границ:
где ysim является симулированным откликом и является функцией оптимизируемых параметров.
Расстояние со знаком для верхних границ:
В командной строке optimFcn предоставляет c
непосредственно от Cleq
поле vals
.
Если всем ограничениям соответствуют (c ≤ 0) для некоторой комбинации значений параметров, то то решение, как говорят, выполнимо. В следующем рисунке x 1 и x 3 является возможными решениями.
Когда ваша модель имеет несколько требований или векторных сигналов, питающих требование, ограничительный вектор расширен с нарушениями ограничений для каждого сигнала и связан:
Кроме того, к нижним и верхним границам, можно задать опорный сигнал в блоке Check Against Reference или sdo.requirements.SignalTracking
объект, который может отследить модель Simulink выход. Цель отслеживания является целью отслеживания квадратичной невязки суммы.
Вы задаете опорный сигнал как последовательность амплитудных временем пар:
Программное обеспечение вычисляет симулированный отклик как последовательность амплитудных временем пар:
где некоторые значения tsim могут совпадать со значениями tref.
Новая основа времени, tnew, формируется из объединения элементов tref и tsim. Элементы, которые не являются в минимально-максимальной области значений и tref и tsim, не использованы:
Используя линейную интерполяцию, программное обеспечение вычисляет значения yref и ysim в то время точки в tnew и затем вычисляет масштабированную ошибку:
Наконец, программное обеспечение вычисляет взвешенную, интегральную квадратную ошибку:
Примечание
Вес w (t) равняется 1 по умолчанию. Можно задать различное значение веса только в командной строке.
Когда ваша модель имеет требования или векторные сигналы, питающие требование, цель отслеживания равняется сумме отдельных отслеживающих интегральных ошибок для каждого сигнала:
Метод Градиентного спуска использует функцию fmincon
оптимизировать параметры модели, чтобы соответствовать конструктивным требованиям.
Проблемный тип | Формулировка задачи |
---|---|
Проблема выполнимости | Программное обеспечение формулирует ограничение C (x) как описано в проблеме Выполнимости и Ограничительной Формулировке.
|
Отслеживание проблемы |
Программное обеспечение формулирует отслеживающий объективный F (x) как описано в Отслеживании проблемы и минимизирует цель отслеживания:
|
Смешанная проблема выполнимости и отслеживания | Программное обеспечение минимизирует следующую формулировку задачи: Примечание При отслеживании опорного сигнала программное обеспечение игнорирует максимально опция возможного решения.
|
Симплексный Метод поиска использует функцию fminsearch
и fminbnd
оптимизировать параметры модели, чтобы соответствовать конструктивным требованиям. fminbnd
используется, если один скалярный параметр оптимизируется в противном случае fminsearch
используется. Вы не можете использовать границы параметра с fminsearch
.
Проблемный тип | Формулировка задачи |
---|---|
Проблема выполнимости | Программное обеспечение формулирует ограничение C (x) как описано в проблеме Выполнимости и Ограничительной Формулировке и затем минимизирует максимальное нарушение ограничений: |
Отслеживание проблемы |
Программное обеспечение формулирует отслеживающий объективный F (x) как описано в Отслеживании проблемы и затем минимизирует цель отслеживания:
|
Смешанная проблема выполнимости и отслеживания | Программное обеспечение формулирует проблему на двух шагах:
|
Метод поиска Шаблона использует функцию patternsearch
(Global Optimization Toolbox), чтобы оптимизировать параметры модели, чтобы соответствовать конструктивным требованиям.
Проблемный тип | Формулировка задачи |
---|---|
Проблема выполнимости | Программное обеспечение формулирует ограничение C (x) как описано в проблеме Выполнимости и Ограничительной Формулировке и затем минимизирует максимальное нарушение ограничений: |
Отслеживание проблемы |
Программное обеспечение формулирует отслеживающий объективный F (x) как описано в Отслеживании проблемы и затем минимизирует цель отслеживания:
|
Смешанная проблема выполнимости и отслеживания |
Программное обеспечение формулирует проблему на двух шагах:
|
Для Gradient descent
(fmincon
) решатель оптимизации, градиенты вычисляются с помощью числового возмущения:
x является скалярной переменной проекта.
xmin является нижней границей x.
xmax является верхней границей x.
xtypical является масштабированным значением x.
opt_fcn является целевой функцией.
dx является относительно большим, чтобы вместить допустимые отклонения решателя симуляции.
Если вы хотите вычислить градиенты каким-либо другим способом, можно сделать так в функции стоимости, которую вы пишете для выполнения оптимизации проекта программно. Смотрите sdo.optimize
и GradFcn
из sdo.OptimizeOptions
для получения дополнительной информации.