Когда вы оптимизируете параметры 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) цели слежения, как описано в Задаче слежения и минимизирует цель слежения:
|
Смешанная задача выполнимости и отслеживания | Программное обеспечение минимизирует следующую формулировку задачи: Примечание При отслеживании опорного сигнала программное обеспечение игнорирует максимально возможное решение опции.
|
Метод Simplex Search использует функцию fminsearch
и fminbnd
оптимизировать параметры модели для удовлетворения проектных требований. fminbnd
используется, если оптимизируется один скалярный параметр, в противном случае fminsearch
используется. Вы не можете использовать ограничения параметров с fminsearch
.
Тип задачи | Формулировка задачи |
---|---|
Задача выполнимости | Программа формулирует C ограничений (x), как описано в «Задача выполнимости и формулировка ограничений», а затем минимизирует максимальное нарушение ограничений: |
Задача отслеживания |
Программное обеспечение формулирует F (x) цели слежения, как описано в Задаче слежения, а затем минимизирует цель слежения:
|
Смешанная задача выполнимости и отслеживания | Программа формулирует задачу в два этапа:
|
Метод Pattern Search использует функцию 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
для получения дополнительной информации.