Пользовательская оптимизация описана в следующих разделах:
Реализация Вашего Алгоритма Оптимизации в CAGE описывает, как настроить шаблон оптимизации, чтобы использовать ваши стандартные программы оптимизации в CAGE.
Существует пошаговое руководство к использованию примера, обеспеченного, чтобы помочь вам изучить, как изменить файл шаблона, чтобы использовать ваши собственные оптимизационные функции. Смотрите учебный раздел Create Пользовательская Оптимизация.
Во многих случаях стандартные стандартные программы, предоставленные для ограниченной одной цели (fmincon
, ga
, и patternsearch
) и многоцелевая оптимизация (NBI
) достаточны, чтобы позволить вам решать свою задачу оптимизации. Иногда, однако, необходимо написать индивидуально настраиваемый алгоритм оптимизации. Это может быть полезно во многих ситуациях, например,
Для эксперта, чтобы получить процесс оптимизации, чтобы решить конкретную задачу, например, определение оптимального угла искры и уровня рециркуляции выхлопного газа на механизме системы впрыскивания топлива порта
Реализовывать альтернативный алгоритм оптимизации к предоставленным
Реализовывать комплексное ограничение или цель, которая только возможна через написание кода
Произвести пользовательскую выходную графику
Пользовательские оптимизационные функции в CAGE позволяют опытным пользователям писать свои собственные стандартные программы оптимизации, которые могут получить доступ к текущим данным CAGE. Для получения доступ к функции пользователя от CAGE, необходимо зарегистрировать файл с CAGE и поместить его в путь MATLAB®. Крайне важно, чтобы эта функция соответствовала заданному шаблону. Следующие разделы описывают этот процесс.
В какой-то момент оптимизационная функция CAGE обращается к алгоритму с просьбой оптимизировать целевые функции по свободным переменным. Можно реализовать алгоритм в оптимизационной функции CAGE как внешний файл MATLAB. Используйте файл шаблона в качестве базиса для вашей оптимизационной функции. Лучший способ изучить, как изменить файл шаблона, чтобы реализовать ваши собственные алгоритмы оптимизации, состоит в том, чтобы сравнить его с обработанным примером, как описано в примере.
Смотрите следующие разделы примера по оптимизации:
Создайте Пользовательскую Оптимизацию, описывает процесс использования обработанного примера
Создание Оптимизации из Вашего Собственного Алгоритма описывает подробно шаги, необходимые, чтобы использовать алгоритм оптимизации в качестве примера в CAGE
О работавшем Алгоритме Оптимизации В качестве примера, позже эта страница, исследует кодирование, вовлеченное в реализацию внешнего оптимизатора в файле оптимизации CAGE
Проверка Пользовательской Оптимизации в CAGE, позже эта страница, объясняет, как зарегистрироваться в вашей оптимизационной функции, таким образом, можно использовать его в CAGE
Файлы оптимизационной функции имеют два раздела. Чтобы сравнить эти разделы в обработанном примере с файлом шаблона, на котором это базируется:
Найдите и откройте файл mbcOStemplate
в mbctraining папке.
Введите следующее в командной строке, чтобы открыть пример:
edit mbcOSworkedexample
Двумя разделами является Options
раздел и Evaluate
раздел.
Options
функциональный раздел содержит настройки, которые задают вашу оптимизацию. Здесь можно настроить эти атрибуты:
Имя
Описание
Свободные переменные
Целевые функции
Ограничения
Наборы данных помощника
Параметры оптимизации
CAGE взаимодействует с cgoptimoptions
объект, где все эти настройки хранятся.
См. Методы cgoptimoptions для получения информации о подготовке раздела опций.
Если вы оставляете cgoptimoptions
неизменная функция, ваша оптимизационная функция должна смочь поддержать опции по умолчанию. Таким образом, ваша оптимизация будет иметь:
Одна цель
Любое количество ограничений (выбранный пользователем в CAGE)
Evaluate
функциональный раздел содержит вашу стандартную программу оптимизации. CAGE вызывает этот раздел, когда по кнопке Run щелкают.
Поместите свою стандартную программу оптимизации под этим разделом, взаимодействующим с CAGE (получающий входные параметры и отправляющий выходные параметры) через cgoptimstore
объект. Ваша оптимизация должна соответствовать следующему синтаксису:
optimstore = <Your_Optimization> (optimstore)
<Your_Optimization>
имя вашей оптимизационной функции.Любые локальные функции, вызванные вашей стандартной программой оптимизации, должны также быть помещены в нижней части этого раздела.
См. Методы cgoptimstore.
Примечание
Бойтесь перезаписывать обработанный пример и обрабатывать файлы по шаблону, когда вы испытываете их — сохраняют их под новым именем, когда вы вносите изменения.
Существует пошаговое руководство, описывающее, как изменить шаблон с помощью обработанной оптимизационной функции в качестве примера в примере по оптимизации. Смотрите Создают Пользовательскую Оптимизацию.
mbcweoptimizer
пример заданной пользователями оптимизации, которая решает следующую задачу:
max
TQ
по (AFR, SPK
).
[bestafr, bestspk] = mbcweoptimizer(TQ)
находит максимум (bestafr
, bestspk
) к функциональному TQ.
TQ
должна быть функция (или указатель на функцию), где первые два входных параметра являются AFR и SPK соответственно. Функции TQ большим количеством параметров могут использоваться. Дополнительные параметры к этим функциям могут быть заданы с помощью анонимных функций. Например, если модель TQ имеет входные параметры N и L, можно использовать следующий вызов mbcweoptimizer
:
[bestafr, bestspk] = mbcweoptimizer
(@(afr, spk)TQ(afr, spk, N, L))
[bestafr, bestspk]=mbcweoptimizer
(TQ, afrrng, spkrng
) находит максимум (bestafr, bestspk) к функциональному TQ
.
afrrng
и spkrng
вектора 1 на 2 строки, содержащие поисковые области значений для тех переменных.
[bestafr, bestspk]=mbcweoptimizer
(TQ, afrrng, spkrng, res
) находит максимум (bestafr
, bestspk
) к функциональному TQ
.
Эта оптимизация выполняется по res
- res
сетка (AFR, SPK
Значения. Если res
не задан, разрешение сетки по умолчанию равняется 25.
Лучший способ изучить, как реализовать внешний оптимизатор в оптимизационной функции CAGE, состоит в том, чтобы изучить детали примера.
Просмотреть целый обработанный файл в качестве примера, в командной строке, типе
edit mbcOSworkedexample
Следующая секция кода взята из Evaluate
раздел обработанного файла в качестве примера как пример.
Фрагмент кода выше находится в i_Evaluate
локальная функция. Эта локальная функция вызвана однажды для каждого запуска скрипта. Строка кода, помеченная вышеупомянутые вызовы обработанный алгоритм оптимизации в качестве примера, внешний к оптимизационной функции. Как с функциями в продукте Optimization Toolbox™, первый аргумент к вызову оптимизатора является указателем на функцию, который оценивает цели в данной точке ввода. Мы рекомендуем, чтобы вы поместили функцию, на которую указывает указатель на функцию в файле оптимизации. Если вы не размещаете их в тот же файл, необходимо убедиться evaluate
файл функции находится на пути MATLAB. Как пример, функцию оценки оптимизации в обработанной оптимизации в качестве примера показывают во фрагменте кода после.
Входные параметры к n_evalTQ
необходимые входные параметры для крутящего момента (в этом случае) модель. Оценивать цель, evaluate
метод от optimstore
объект используется. В вышеупомянутом примере строка кода, на которую ссылается B, оценивает модель крутящего момента в обработанном примере в (afr
, spk
) точки ввода. Значения (N, L) при текущем запуске используются в оценке модели крутящего момента. CAGE получает эти значения из optimstore, когда модель крутящего момента оценена.
Эти две локальных функции, представленные выше, являются примером того, как реализовать внешний оптимизатор в файле оптимизации CAGE.
См. также раздел Creating an Optimization from Your Own Algorithm примера по оптимизации, который описывает подробно шаги, вовлеченные в слияние алгоритма в качестве примера в файл оптимизации CAGE.
Когда вы изменили шаблон, чтобы создать вашу собственную оптимизационную функцию, необходимо проверять его в продукте Model-Based Calibration Toolbox™ для того, чтобы использовать функцию в CAGE. Если вы зарегистрировались в своей оптимизационной функции, это появляется в Мастере Оптимизации. Смотрите Мастер Оптимизации.
Проверять пользовательскую оптимизацию в CAGE,
Выберите File-> Preferences.
Кликните по вкладке Optimization и нажмите Add..., чтобы просмотреть к вашему файлу. Выберите файл и нажмите Open. Это указывает оптимизационную функцию с CAGE. Необходимо сделать это, когда вы настраиваете свою собственную оптимизацию.
Пример показывает обработанную функцию, взятую в качестве примера, которая уже указана с CAGE для использования в примере по оптимизации.
Можно нажать Test, чтобы проверять, что оптимизационная функция правильно настраивается. Это - очень полезная функция, когда вы используете свои собственные функции; если что-нибудь неправильно настраивается, результаты испытаний говорят вам, где начать корректировать вашу функцию.
Вы видите пример этого путем сохранения копии обработанного файла в качестве примера и изменения одних из имен переменных (таких как afr
) к номеру. Попытайтесь проверять эту измененную функцию в CAGE, и Кнопка проверки возвратит информативную ошибку при определении линии, которую вы изменили.
Нажмите ОК, чтобы отклонить диалоговое окно CAGE Preferences и возвратиться к браузеру CAGE.
Зарегистрированная оптимизация появляется в Мастере Оптимизации, когда вы настраиваете новую оптимизацию.
Зарегистрированная оптимизация появляется в Создать Оптимизации от Мастера Модели, если ваш пользовательский скрипт оптимизации не задает наборы рабочей точки и/или постоянное число свободных переменных. Это распространено со скриптами Версии 2.0. Если это верно, необходимо использовать Мастер Оптимизации вместо этого.