Когда вы оптимизируете параметры 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 для получения дополнительной информации.