При оптимизации параметров модели Simulink ® в соответствии с требованиями проектирования программное обеспечение Simulink Design Optimization™ автоматически преобразует требования в проблему оптимизации с ограничениями, а затем решает проблему с помощью методов оптимизации. Задача оптимизации с ограничением итеративно моделирует модель Simulink, сравнивает результаты моделирования с целями ограничения и использует методы оптимизации для корректировки настроенных параметров для лучшего выполнения задач .
В этом разделе описывается, как программное обеспечение формулирует проблему ограниченной оптимизации, используемую алгоритмами оптимизации. Для каждого алгоритма оптимизации программное обеспечение формулирует один из следующих типов задач минимизации:
Смешанная осуществимость и отслеживание
Дополнительные сведения о том, как каждый алгоритм оптимизации формулирует эти проблемы, см. в разделе:
Выполнимость означает, что алгоритм оптимизации находит значения параметров, которые удовлетворяют всем ограничениям в пределах заданных допусков, но при этом не минимизирует какую-либо целевую функцию или функцию затрат.
На следующем рисунке x1, x3 и xn представляют комбинацию значений параметров P1 и P2 и являются выполнимыми решениями, поскольку они не нарушают ограничение нижней границы.

В модели Simulink ограничение сигнала выполняется путем указания нижней и верхней границ в блоке Check (Проверка характеристик ответа шага,...) или объекте требования (sdo.requirements.StepResponseEnvelope,...), как показано на следующем рисунке.

Эти ограничения являются кусочно-линейными границами. Кусочно-линейная связь ybnd с n ребрами может быть представлена как:
tn≤t≤tn+1,
Программа вычисляет подписанное расстояние между моделируемым ответом и краем. Подписанное расстояние для нижних границ:
где ysim - моделируемый отклик и является функцией оптимизируемых параметров.
Подписанное расстояние для верхних границ:
В командной строке поставляется optimFcn c непосредственно из Cleq поле vals.
Если выполняются все ограничения (c ≤ 0) для некоторой комбинации значений параметров, то это решение считается осуществимым. На следующем рисунке x1 и x3 являются возможными решениями.

Когда модель имеет несколько требований или векторных сигналов, подающих требование, вектор ограничения расширяется с нарушениями ограничения для каждого сигнала и привязывается:
В дополнение к нижним и верхним границам можно указать опорный сигнал в блоке «Проверка по опорным» или sdo.requirements.SignalTracking , который можно отслеживать в выходных данных модели Simulink. Цель отслеживания - это цель отслеживания суммы в квадрате ошибок.
Опорный сигнал задается как последовательность пар «время-амплитуда»:
}.
Программное обеспечение вычисляет смоделированный отклик как последовательность пар время-амплитуда:
},
где некоторые значения tsim могут совпадать со значениями tref.
Новая временная база, tnew, формируется из объединения элементов трефа и цима. Элементы, которые не находятся в минимально-максимальном диапазоне трефа и цима, опущены:
Используя линейную интерполяцию, программа вычисляет значения yref и ysim в точках времени в тн, а затем вычисляет масштабированную ошибку:
maxtnew 'yref |.
Наконец, программное обеспечение вычисляет взвешенную интегральную квадратную ошибку:
2dt.
Примечание
Вес w (t) по умолчанию равен 1. Указать другое значение веса можно только в командной строке.
Когда ваша модель имеет требования или векторные сигналы, подающие требование, цель отслеживания равна сумме индивидуальных интегральных ошибок отслеживания для каждого сигнала:
Метод градиентного спуска использует функцию fmincon для оптимизации параметров модели в соответствии с требованиями проекта.
| Тип проблемы | Постановка проблемы |
|---|---|
| Проблема выполнимости | Программное обеспечение формулирует ограничение C (x), как описано в разделе «Проблема выполнимости и формулировка ограничения».
|
| Проблема отслеживания |
Программное обеспечение формулирует цель отслеживания F (x), как описано в разделе Проблема отслеживания, и минимизирует цель отслеживания:
x¯≤x≤x¯
|
| Смешанная проблема выполнимости и отслеживания | Программное обеспечение сводит к минимуму следующую постановку проблемы: Примечание При отслеживании опорного сигнала программное обеспечение игнорирует максимально возможный вариант решения.
|
Метод Simplex Search использует функцию fminsearch и fminbnd для оптимизации параметров модели в соответствии с требованиями проекта. fminbnd используется при оптимизации одного скалярного параметра, в противном случае fminsearch используется. Нельзя использовать границы параметров, с fminsearch.
| Тип проблемы | Постановка проблемы |
|---|---|
| Проблема выполнимости | Программное обеспечение формулирует ограничение C (x), как описано в разделе Выполнимость проблемы и формулирование ограничения, а затем минимизирует максимальное нарушение ограничения: )) |
| Проблема отслеживания |
Программное обеспечение формулирует цель отслеживания F (x), как описано в разделе Проблема отслеживания, и затем минимизирует цель отслеживания:
)
|
| Смешанная проблема выполнимости и отслеживания | Программное обеспечение формулирует проблему в два этапа:
|
Метод Pattern Search использует функцию patternsearch(Панель инструментов глобальной оптимизации) для оптимизации параметров модели в соответствии с требованиями проекта.
| Тип проблемы | Постановка проблемы |
|---|---|
| Проблема выполнимости | Программное обеспечение формулирует ограничение C (x), как описано в разделе Выполнимость проблемы и формулирование ограничения, а затем минимизирует максимальное нарушение ограничения: x¯≤x≤x¯ |
| Проблема отслеживания |
Программное обеспечение формулирует цель отслеживания F (x), как описано в разделе Проблема отслеживания, и затем минимизирует цель отслеживания:
x¯≤x≤x¯
|
| Смешанная проблема выполнимости и отслеживания |
Программное обеспечение формулирует проблему в два этапа:
|
Для Gradient descent (fmincon) решатель оптимизации, градиенты вычисляются с использованием численного возмущения:
opt _ fcn (dR) dFdx = (FL − FR)
x является скалярной конструктивной переменной.
xmin - нижняя граница x.
xmax - верхняя граница x.
xtypical - масштабированное значение x.
opt_fcn - это целевая функция.
dx относительно велик для соответствия допускам вычислителя моделирования.
Если требуется вычислить градиенты каким-либо другим способом, это можно сделать в функции затрат, написанной для программной оптимизации конструкции. Посмотрите sdo.optimize и GradFcn из sdo.OptimizeOptions для получения дополнительной информации.