Пользовательская оптимизация описана в следующих разделах:
Реализация Вашего Алгоритма Оптимизации в 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
-by-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. Если это верно, необходимо использовать Мастер Оптимизации вместо этого.