Во-первых, попытайтесь соответствовать значениям по умолчанию с помощью кнопки общей задачи Fit models.
Если вы хотите попробовать альтернативные типы локальной модели, выберите узел ответа, то в панели Common Tasks, нажмите New Local Model. Это открывает диалоговое окно Local Model Setup. Просмотрите типы модели на этой странице.
Чтобы исследовать подгонки, смотрите, Оценивают Локальные модели.
Доступные модели зависят от количества входных факторов. Полином, полиномиальный сплайн, усеченный степенной ряд, свободный сплайн узла и модели роста для одного фактора только.
Можно выбрать дополнительные функции ответа на этом этапе с помощью вкладки Response Features диалогового окна Local Model Setup. Они могут также быть добавлены позже. Model Browser выбирает достаточные функции ответа текущей модели.
Смотрите каждый тип локальной модели для статистических деталей и доступных функций ответа.
Смотрите также
На локальном уровне, если у вас есть входной фактор того, можно выбрать Polynomial непосредственно из списка классов локальной модели. Здесь можно выбрать порядок полиномов, используемых, и можно задать модель данной величины для этого вида локальной модели.
Если существует больше чем один входной фактор, можно выбрать Linear Models из Списка учащихся Локальной модели, то можно выбрать Polynomial или Hybrid Spline. Это - различная полиномиальная модель, где можно изменить больше настроек такой как Пошагово, Термин Редактор (куда можно удалить любые образцовые условия), и можно выбрать различные порядки для различных факторов (как с моделями полинома глобального уровня). Смотрите Класс Локальной модели: Линейные Модели.
Различные функции ответа доступны для этой полиномиальной модели и Линейных Моделей: Полиномиальный выбор. Можно просмотреть их путем нажатия на вкладку Response Features на диалоговом окне Local Model Setup. Один входные полиномы могут иметь модель данной величины, и можно задать функции ответа относительно данной величины. См. Модели Данной величины.
Следующие функции ответа разрешены для полиномиального образцового класса:
Местоположение максимального или минимального значения.
Значение подходящей функции в заданной пользователями x-ординате. Когда модели данной величины используются, значение относительно данной величины (например, mbt - x).
Энная производная в заданной пользователями x-ординате, для n = 1, 2..., d, где d является степенью полинома.
Смотрите раздел Polynomials глобальной модели для общего описания полиномиальных моделей.
Сплайн является кусочным полиномом, где различные разделы полинома адаптированы гладко вместе. Местоположение каждого пропуска называется узлом. Полиномиальные сплайны важны для моделирования кривых крутящего момента/искры.
Эта модель имеет только один узел. Можно выбрать порядки полиномов выше и ниже узла. См. также Гибридные Сплайны. Эти глобальные модели также используют сплайны, но используют тот же полином порядка повсюду.
Полиномиальные сплайны только доступны для одного входных факторов. Следующий пример показывает типичную кривую крутящего момента/искры, которая требует, чтобы сплайн соответствовал правильно. Узел показывается красным местом в максимуме, и искривление выше и ниже узла отличается. В этом случае существует кубическая основная функция ниже узла и квадратичного выше.
К образцовым ответам, которые характеризуются по внешности одной и четко определенной стационарной точкой с асимметричным искривлением или сторона локального минимума или максимум, задайте следующий класс сплайна,
то, где k является местоположением узла, обозначает коэффициент регрессии.
где c является заданной пользователями степенью для левого полинома, h является заданной пользователями степенью для правильного полинома и индексами Низко, и Высоко обозначьте налево (ниже) и право на (выше) узла, соответственно.
Исключая условия в и гарантирует, что первая производная в положении узла непрерывна. Кроме того, по определению константа должна быть равна значению подходящей функции на уровне узла, то есть, значению в стационарной точке.
Для этого образцового класса функции ответа могут быть выбраны как
Подходящие константы
Свяжите положение узлом
Значение подходящей функции в заданной пользователями дельте
от положения узла, если данная величина задана, в противном случае значение является абсолютным.
Различие между значением подходящей функции в заданной пользователями дельте от положения узла и значением подходящей функции на уровне узла
Выберите Linear Models
и затем нажмите Setup.
Можно теперь настроить полиномиальные или гибридные модели сплайна. Настройки являются точно тем же самым как глобальными линейными моделями.
Эти модели для нескольких входных факторов - для одного входных факторов, можно использовать различную полиномиальную модель из Списка учащихся Локальной модели, где можно только изменить полиномиальный порядок. Смотрите Класс Локальной модели: Полиномы и Полиномиальные Сплайны.
Если существует больше чем один входной фактор, можно выбрать Linear Models из Списка учащихся Локальной модели, то можно выбрать Polynomial или Hybrid Spline. Этот полином является различной моделью, где можно изменить больше настроек такой как Пошагово, Термин Редактор (куда можно удалить любые образцовые условия), и можно выбрать различные порядки для различных факторов (как с моделями полинома глобального уровня).
См. Глобальные Линейные Модели: Полиномы и Гибридные Сплайны для деталей.
Входными параметрами по умолчанию преобразовываются к [-1, 1] прежде, чем соответствовать и оценить полиномы. Это важно, когда различия в шкалах между входными параметрами могут вызвать числовые проблемы. Обычно это - хорошая идея преобразовать входные параметры, когда это облегчает проблемы с переменными различных шкал. При некоторых обстоятельствах вы можете быть обеспокоены значениями полиномов (например, если ваша стратегия требует необработанных полиномиальных коэффициентов). В этом случае можно снять флажок Transform input range, чтобы использовать непреобразованные модули, чтобы вычислить естественные полиномы.
Различные функции ответа доступны для этого Линейные Модели: Полиномиальная модель и другой Полиномиальный выбор (для одного входных факторов). Можно просмотреть их путем нажатия на вкладку Response Features на диалоговом окне Local Model Setup. Один входные полиномы могут иметь модель данной величины, и можно задать функции ответа относительно данной величины. См. Модели Данной величины.
Эти линейные модели маркированы Quadratic
, Cubic
, и так далее, на блок-схеме плана тестирования. Один входной тип полиномов маркирован Poly2
, Poly3
, и так далее. Для высших порядков оба типа маркированы Poly
n.
Это только доступно для одного входного фактора.
Можно выбрать порядок полиномиальной основной функции и количество узлов для Усеченных Базисных Сплайнов Степенного ряда. Сплайн является кусочным полиномом, где различные разделы полинома адаптированы гладко вместе. Точка каждого пропуска называется узлом. Усеченный степенной ряд изменяет коэффициент для самой высокой степени, когда вход передает выше значения узла.
Это является усеченным, потому что степенной ряд является приближением к бесконечной сумме полиномиальных условий. Можно использовать бесконечные суммы, чтобы аппроксимировать произвольные функции, но ясно не выполнимо соответствовать всем коэффициентам.
Нажмите Polynomial, чтобы видеть (и удалить, если вы хотите), полиномиальные условия. Одно использование удалить полиномиальной функции термина должно сделать функцию линейной до узла, и затем квадратичной выше узла. В этом случае удалите квадратичный коэффициент.
Смотрите также
Полиномиальный Сплайн, где можно выбрать различные основные функции порядка любая сторона узла
Гибридные Сплайны, глобальная модель, где можно выбрать порядок сплайна для одного из факторов (остальным соответствовали полиномам),
Класс Локальной модели: Свободный Сплайн Узла, свободные сплайны узла, где можно выбрать количество узлов и порядок основных функций
Общий класс сплайна функционирует с произвольным (но строго увеличивающийся) последовательность узла:
:
Это задает сплайн порядка m с последовательностью узла
Для этого образцового класса функции ответа могут быть выбраны как
Подходящие константы
Свяжите радиус-вектор узлом.
Значение подходящей функции по пользовательскому заданному значению
Значение энной производной сглаженной функции функционирует относительно xj по пользовательскому заданному значению, с n = 1, 2..., m-2
Можно удалить любое из полиномиальных условий из модели.
Они совпадают с Классом Глобальной модели: Свободный Сплайн Узла (который также только доступен для одного входного фактора). Смотрите глобальные свободные сплайны узла для формы кривой в качестве примера.
Сплайн является кусочным полиномом, где различные разделы полинома адаптированы гладко вместе. Точка соединения называется узлом.
Можно выбрать количество узлов. Можно выбрать порядок адаптированного полинома (во всех разделах кривой) от 1 до 3. Значение по умолчанию является кубическим.
Можно определить номер Random starting points. Это количество исходных предположений в положениях узла.
Смотрите также
Полиномиальный Сплайн, где можно выбрать различные основные функции порядка для любой стороны узла
Класс Локальной модели: Усеченный Степенной ряд, где можно выбрать порядок основной функции
Гибридные Сплайны, глобальная модель, где можно выбрать порядок сплайна для одного из факторов (остальным соответствовали полиномам),
Основанием не является самое подходящее в целях оценки и оценки как проект матричная сила быть плохо обусловленным. Кроме того, количество арифметических операций, требуемых выполнять функцию сплайна, зависит от местоположения относительно узлов. Эти свойства могут привести к числовым погрешностям, особенно когда количество узлов является большим. Можно уменьшать такие проблемы путем использования B-сплайнов.
Самый важный аспект - то, что для умеренного m матрица проекта, выраженная с точки зрения B-сплайнов, относительно хорошо подготовлена.
Для этого образцового класса функции ответа могут быть выбраны как
Подходящие константы
Свяжите радиус-вектор узлом.
Значение подходящей функции по пользовательскому заданному значению
Модели роста имеют несколько вариантов в наличии. Они только доступны для одного входных факторов.
Это все варианты сигмовидных кривых между двумя асимптотами, как следующий пример.
Модели роста часто являются самой соответствующей формой кривой для воздушного моделирования механизма заряда.
Смотрите следующие разделы для математических деталей о различиях между этими моделями роста:
Уравнение задает три параметра логистическая кривая.
где итоговый размер достигается, масштабный коэффициент и x-ордината точки перегиба кривой.
Кривая имеет асимптоты yj = 0 как xj - ∞ и как xj ∞. Темп роста в максимуме, когда yj = α/2, который происходит когда xj = . Максимальный темп роста соответствует
Следующие ограничения применяются к подходящим коэффициентам:
α > 0, , .
Характеристический вектор ответа g
для трех параметров логистическая функция задан как
Это уравнение задает Моргана-Мерсера-Флодина (MMF) модель роста.
где α является значением верхней асимптоты, β является значением более низкой асимптоты, масштабный коэффициент, и δ является параметром, который управляет местоположением точки перегиба для кривой. Точка перегиба расположена в
для
Нет никакого смысла из сгибания для δ <1. Все кривые MMF являются подлогистическими, в том смысле, что точка перегиба всегда располагается ниже 50%-го роста (0.5α). Следующие ограничения применяются к подходящим содействующим значениям:
α > 0, β > 0, > 0, δ > 0
α > β
Это уравнение предоставляет характеристическому вектору ответа g
.
Это уравнение задает логистическую модель с четырьмя параметрами.
с ограничениями, и. Снова, значение верхней асимптоты, масштабный коэффициент и фактор, который определяет местоположение x-ординаты точки перегиба в
Следующие ограничения применяются к подходящим содействующим значениям:
Все параметры> 0
α > β
Это - доступный характеристический вектор ответа:
Это уравнение задает семейство кривых Ричардса моделей роста.
δ ≠ 1
где α является верхней асимптотой, местоположение точки перегиба на оси X, масштабный коэффициент, и δ является параметром, который косвенно определяет местоположение точки перегиба.
Y-ордината точки перегиба определяется от
Ричардс также вывел средний нормированный темп роста для кривой как
Следующие ограничения применяются к подходящим содействующим значениям:
α > 0, > 0, > 0, δ > 0
α >
δ ≠ 1
Наконец, характеристический вектор ответа g
для семейства Ричардса кривых роста задан как
Это уравнение задает кривую роста Weibul.
где значение верхней асимптоты кривой, является значением более низкой асимптоты кривой, является масштабным коэффициентом и является параметром, в котором управляет x-ординатой для точки перегиба для кривой
Следующие ограничения применяются к параметрам подгонки кривой:
α > 0, β > 0, > 0, δ > 0
α > β
Связанный характеристический вектор ответа
Это уравнение задает модель экспоненциального роста.
где α является значением верхней асимптоты, β является начальным размером, и масштабный коэффициент (временная константа, управляющая темпом роста). Следующие ограничения применяются к подходящим коэффициентам:
α > 0, β > 0, > 0
α > β
Характеристический вектор ответа g
для модели экспоненциального роста задан как
Другая полезная формулировка, которая не показывает симметричную точку перегиба, является моделью роста Gompertz. Уравнение определения
где α является итоговым размером, масштабный коэффициент, и x-ордината точки перегиба. Соответствующая y-ордината точки перегиба происходит в
С максимальным темпом роста
Следующие ограничения применяются к выбору значений параметров для модели Gompertz:
α > 0, > 0, > 0.
Характеристический вектор ответа g
для модели роста Gompertz задан как
Можно создать пользовательские модели, чтобы использовать для локальных, глобальных, или одноэтапных моделей.
Пользовательский тип модели позволяет вам определять свое уравнение в файле, чтобы использовать для того, чтобы поместиться в тулбокс.
Создать и зарегистрироваться в пользовательской модели:
Скопируйте пользовательский файл шаблона (functemplate.m
) в местоположение на пути MATLAB® (но не под
). Найдите файл в этом местоположении:matlabroot\toolbox\mbc
<matlabroot>\toolbox\mbc\mbcmodels\@xregusermod\functemplate.m
Измените копию файла шаблона для вашей модели. Код все обязательные функции. Комментарии шаблона описывают все обязательные и дополнительные функции.
Не обязательно изменить каждый дополнительный раздел. Если вы не хотите использовать дополнительный раздел, оставлять неизмененным.
Проверяйте свою модель в тулбоксе с этой командой:
m = checkin(xregusermod,'MfileName',TestInputData)
Ваши пользовательские модели могут иметь столько факторов, сколько вы выбираете.
После того, как вы регистрируетесь в своих пользовательских моделях, они появляются как опции на диалоговом окне Model Setup, когда вы используете данные с правильным рядом факторов.
Удалить ваш зарегистрированный модель от тулбокса, введите:
remove(xregusermod,'MfileName')
Если какая-либо из ваших глобальных моделей является пользовательской, вы не можете использовать MLE (оценка наибольшего правдоподобия) для вашей модели 2D этапа.
Можно исследовать этот пример пользовательский образцовый файл как руководство:
<MATLAB root>\toolbox\mbc\mbcmodels\@xregusermod\weibul.m
Этот файл задает локальную модель Weibul (Модель Роста) в тулбоксе и следовательно не должен быть изменен. Убедитесь, что вы не перезаписываете файл. Если вы изменяете файл, сохраняете его под другим именем.
Следующие разделы объясняют, как исследовать и зарегистрироваться в модели Weibul:
Этот пример демонстрирует, как создать пользовательскую модель для функции Weibul:
y = alpha - (alpha - beta).*exp(-(kappa.*x).^delta)
Откройте следующий файл в качестве примера
<MATLAB root>\toolbox\mbc\mbcmodels\@xregusermod\weibul.m
Заметьте, что файл вызван использованием тулбокса
varargout= weibul(m,x,varargin)
Где переменными дают
m = the xregusermod object x = input data as a column vector for fast eval
Первая функция в файле шаблона является векторизованной оценкой функции. Во-первых, параметры модели извлечены:
b= double(m);
Затем оценка происходит:
y = b(1) - (b(1)-b(2)).*exp(-(b(3).*x).^b(4));
Параметры всегда упоминаются и объявляются в том же порядке.
Обязательные Локальные функции. Отредактируйте эти локальные функции можно следующим образом:
Введите номер входных факторов. Для функций y = f (x) это равняется 1.
function n= i_nfactors(U,b) n= 1;
Введите номер подходящих параметров. В этом примере в модели Weibul существует четыре параметра.
function n= i_numparams(U,b) n= 4;
Следующая локальная функция возвращает вектор-столбец начальных значений (param
) для параметров, чтобы соответствовать. Начальные значения могут быть заданы, чтобы быть информационно-зависимыми; следовательно существует флаг, чтобы сигнализировать, не стоит ли данным соответствовать (OK
). В weibul.m
существует стандартная программа для вычисления информационно-зависимой начальной оценки параметра. Если никакими данными не снабжают, значения параметров по умолчанию используются.
function [param,OK]= i_initial(U,b,X,Y) param= [2 1 2 5]'; OK=1;
Дополнительные Локальные функции. Можно использовать следующие дополнительные локальные функции, чтобы установить дополнительные параметры
Можно утвердить нижние и верхние границы для параметров модели. Эти границы появляются в том же порядке, которым параметры объявляются и используются в файле шаблона.
function [LB,UB,A,c,nlcon,optparams]=i_constraints(U,b,varargin) LB=[eps eps eps eps]'; UB=[1e10 1e10 1e10 1e10]';
Можно также задать линейные ограничения на параметры. Этот код производит ограничение (–alpha+beta), меньше чем или равно нулю:
A= [-1 1 0 0]; c= [0];
nlcon
задает количество нелинейных ограничений (здесь объявленный быть нулем). Если количество нелинейных ограничений не является нулем, нелинейные ограничения вычисляются в i_nlconstraints
.
nlcon= 0;
optparams
задает любые дополнительные параметры. Никакие дополнительные параметры не объявляются для функции стоимости.
optparams= [];
i_foptions
задает подходящие опции. Подходящие опции всегда основаны на входе fopts
. Смотрите справку MATLAB на функциональном optimset
для получения дополнительной информации о подходящих опциях. Когда нет никаких ограничений, тулбокс использует функцию MATLAB lsqnonlin
для подбора кривой, в противном случае fmincon
используется.
function fopts= i_foptions(U,b,fopts) fopts= optimset(fopts,'Display','none');
i_jacobian
может предоставить аналитический якобиан, чтобы ускорить алгоритм подбора.
function J= i_jacobian(U,b,x) x = x(:); J= zeros(length(x),4); a=b(1); beta=b(2); k=b(3); d=b(4); ekd= exp(-(k.*x).^d); j2= (a-beta).*(k.*x).^d.*ekd; J(:,1)= 1-ekd; J(:,2)= ekd; J(:,3)= j2.*d./k; J(:,4)= j2.*log(k.*x);
i_labels
задает метки, используемые на графиках. Можно использовать обозначение LATEX, и оно отформатировано.
function c= i_labels(U,b) c={'\alpha','\beta','\kappa','\delta'};
i_char
является строкой уравнения отображения и может содержать выражения LATEX. Текущие значения параметров модели появляются.
function str= i_char(U,b) s= get(U,'symbol'); str=sprintf('%.3g - (%.3g-%.3g)*exp(-(%.3g*x)^{%.3g})',... b([1 1 2 3]), detex(s{1}), b(4));
i_str_func
отображает функциональное определение с метками, появляющимися вместо параметров (не численные значения).
function str= i_str_func(U,b, TeX) s= get(U,'symbol'); if nargin == 2 || TeX s = detex(s) end % This can contain TeX expressions supported by HG text objects lab= labels(U); str= sprintf('%s - (%s - %s)*exp(-(%s*%s)^{%s})',... lab{1},lab{1},lab{2},lab{3},s{1},lab{4});
i_rfnames
задает имена функции ответа. Этот пример показывает заданную функцию ответа, которая не является одним из параметров (в этом случае, это также нелинейно).
Вы не должны задавать rname
(он может возвратить массив пустой ячейки).
function [rname, default] = i_rfnames(U,b) % response feature names rname= {'inflex'}; if nargout>1 default = [1 2 5 4]; %{'Alpha','Beta','Inflex','Delta'}; end
i_rfvals
задает значения функции ответа. Этот пример задает функцию ответа, маркированную как INFLEX
на предыдущем шаге. Якобиевская матрица также задана здесь как dG
.
function [rf,dG]= i_rfvals(U,b) %I_RECONSTRUCT nonlinear reconstruction % % p = i_reconstruct(m,b,Yrf,dG,rfuser) % Inputs % Yrf response feature values % dG Jacobian of response features with respect to % parameters % rfuser index to the user-defined response features % so you can find out which response features % are which. rfuser(i) = 0 if the rf is a parameter. % % If all response features are linear in model parameters % then you do not need to define 'i_reconstruct'. % this is an example of how to implement a nonlinear response % feature definition K = b(3); D = b(4); if D>=1 rf= (1/K)*((D-1)/D)^(1/D); else rf= NaN; end if nargout>1 % Jacobian of response features with respect to model % parameters if D>=1 dG= [0, 0, -((D-1)/D)^(1/D)/K^2,... 1/K*((D-1)/D)^(1/D)*(-1/D^2*log((D-1)/D)+... (1/D-(D-1)/D^2)/(D-1))]; else dG= [0, 0, 1 1]; end end
Локальная функция i_reconstruct
позволяет параметрам модели быть восстановленными от функций ответа, которые были даны. Если все функции ответа линейны в параметрах, то вы не должны задавать эту функцию. Код сначала идентифицирует, который показывает ответ (если таковые имеются), являются определяемыми пользователем.
function p= i_reconstruct(U,b,Yrf,dG,rfuser) %I_RECONSTRUCT nonlinear reconstruction % % p = i_reconstruct(m,b,Yrf,dG,rfuser) % Inputs % Yrf response feature values % dG default Jacobian of response features % rfuser index to the user-defined response features so you can find % out which response features are which. rfuser(i) = 0 if the % rf is a parameter. % % If all response features are linear in model parameters then you do not % need to define 'i_reconstruct'. % reconstruct linear response features using this line p= Yrf/dG'; % find which response feature is a nonlinear user-defined response feature f= rfuser>size(p,2); if ~any(rfuser==3) % need to use delta (must be > 1) for reconstruction to work p(:,4)= max(p(:,4),1+16*eps); p(:,3)= ((p(:,4)-1)./p(:,4)).^(1./p(:,4))./Yrf(:,f); end
После того, как вы создаете пользовательский образцовый файл, сохраняете его где-нибудь на пути.
Зарегистрируйтесь в модели. Регистрация процесса гарантирует, что модель, которую вы задали, обеспечивает интерфейс, который позволяет тулбоксу оценивать и соответствовать ему. Если процедура регистрации успешно выполняется, тулбокс указывает модель и делает ее доступной для подбора кривой, когда вы используете соответствующие входные данные.
В командной строке, с файлом в качестве примера на пути, необходимо создать модель и некоторые входные данные, затем вызвать checkin
. Для пользовательской функции Weibul вызовите checkin
с моделью в качестве примера, ее именем и некоторыми соответствующими данными.
checkin(xregusermod, 'weibul', [0.1:0.01:0.2]');
Это возвращает некоторый выходной параметр командной строки, и фигура появляется с именем модели и именами переменных, отображенными по графикам входа и образцовой оценки вывод. Итоговая командная строка вывела:
Model successfully registered for Model-Based Calibration Toolbox software.
В проверять пользовательскую модель регистрируются к тулбоксу:
Запустите Model Browser и загрузите данные, которые имеют необходимый формат, чтобы оценить вашу пользовательскую модель.
Настройте вход Test Plan with N
Stage1 факторы, где N
является количеством входных факторов, заданных в i_nfactors
.
Откройте диалоговое окно Local Model Setup и выберите User-defined models в Списке учащихся Локальной модели. Ваша пользовательская модель должна появиться в правильном списке.
Чтобы проверить, что в примере weibul
пользовательская модель регистрируются:
Откройте gasoline_project.mat
и выберите узел плана тестирования PS22
в дереве.
Дважды кликните значок Локальной модели в схеме плана тестирования.
В диалоговом окне Local Model Setup выберите User-defined models в Списке учащихся Локальной модели. Weibul
пользовательская модель появляется в правильном списке, как зарегистрировано.
Если вы изменяете файл, который задает зарегистрированный модель, которую вы в настоящее время используете, Model Browser пытается продолжиться.
Если пользовательская модель имеет серьезные ошибки (например, вы изменили количество входных параметров или параметров, образцовой оценки, или файл не может быть найден), Model Browser изменяет состояние текущей модели к 'Не адаптированный'.
Чтобы восстановиться с этого состояния, сначала исправьте проблему в файле. Затем (для Локальных моделей) можно выбрать Model> Fit Local, чтобы переоборудовать. Вы не должны регистрировать модель снова, но если у вас есть проблемы, сообщения об ошибке, произведенные во время регистрации, могут быть полезными в диагностировании отказов.
Если существует незначительный отказ с файлом, то Model Browser продолжается, с помощью значений по умолчанию. Несущественные ошибки могут включать элементы, такие как определения метки, то есть, отказы в i_char
, i_label
, i_str_func
или i_foptions
. Сообщение появляется в подробной информации предоставляющего командного окна этих отказов.
Используйте переходные модели для локальных, глобальных, или одноэтапных моделей. Тулбокс поддерживает переходные модели с несколькими входными факторами, где время является одним из факторов. Можно задать динамическую модель с помощью программного обеспечения Simulink® и файла, который описывает параметры, чтобы поместиться в эту модель. Тулбокс обеспечивает пример под названием fuelPuddle
, в котором уже регистрируются к тулбоксу. Можно использовать этот пример для моделирования. Обеспеченный пример требует двух входных факторов. Процесс создания и регистрации в ваших собственных переходных моделях описан в следующих разделах с помощью этого примера.
Найдите модель Simulink в качестве примера:
<MATLAB root>\toolbox\mbc\mbcsimulink\fuelPuddle
и пример пользовательский переходный образцовый файл:
<MATLAB root>\toolbox\mbc\mbcmodels\@xregtransient\fuelPuddle.m
Можно задать динамическую модель с помощью модели Simulink и пользовательского переходного образцового файла, который описывает параметры, чтобы поместиться в эту модель. Создайте папки для этих файлов, которые находятся на пути MATLAB. Затем необходимо проверять файлы в продукте Model-Based Calibration Toolbox™, прежде чем можно будет использовать их для моделирования.
Создайте папку и добавьте его в путь MATLAB.
Например: D:\MyTransient
.
Поместите свою модель Simulink в эту папку. Смотрите Создают Модель Simulink.
В новой папке создайте папку, названную @xregtransient. (например, D:\MyTransient\@xregtransient). Необходимо вызвать эту папку @xregtransient.
Поместите свой пользовательский переходный образцовый файл в новую @xregtransient папку. Этот файл должен иметь то же имя как ваша модель Simulink. Смотрите Создают Пользовательский Переходный Образцовый Файл.
Создайте модель Simulink, чтобы представлять вашу переходную систему.
Импорт Simulink представляет образцовые входные параметры. Время является первым входом к модели в программном обеспечении Model-Based Calibration Toolbox, но это не импорт в модели. Образцовый вывод представлен Simulink вывод. Только один скалярный вывод поддерживается в Model Browser.
Ваша модель Simulink должна иметь некоторые свободные параметры, которым программное обеспечение Model-Based Calibration Toolbox будет соответствовать нелинейным методом наименьших квадратов. Используйте те же имена переменных в модели и пользовательском переходном образцовом файле.
Модель Simulink для примера fuelPuddle
появляется в следующей фигуре. Вы исследуете файл в качестве примера (fuelPuddle.m
) в более позднем разделе.
Метки блока не важны. Модель возвращает один скалярный выходной параметр (здесь маркировал "Mcyl
").
Тулбокс задает параметры модели в Рабочем пространстве модели. Вы видите это в Model Explorer. Вектор всех параметров под названием p
также доступен.
Образцовые Требования. И для непрерывных и для дискретных моделей, применяются следующие правила:
Для моделей Simulink с Фиксированным решателем Шага размер шага установлен в шаг расчета данных.
Для Переменных решателей шага размер шага симуляции установлен моделью Simulink.
Вы видите ошибку, если размер вывода от симуляции модели Simulink не делает не совпадает с размером входных данных, обеспеченных тулбоксом.
Задайте переходный образцовый файл для своей модели Simulink, и этот файл должен иметь то же имя как ваша модель Simulink.
Скопируйте переходный образцовый файл шаблона, найденный в:
<MATLAB root>\toolbox\mbc\mbcmodels\@xregtransient\functemplate.m
папку MyTransientfolder\@xregtransient
, которую вы создали.
Измените копию файла шаблона для вашей модели.
Прокомментированный код описывает обязательные и дополнительные функции, доступные в файле шаблона.
Вы не должны изменять каждый раздел. Если вы не хотите использовать дополнительный раздел, оставлять неизмененным, и значения по умолчанию достаточны.
Откройте файл в качестве примера fuelPuddle.m
(для модели fuelPuddle
), чтобы исследовать код, описанный в следующих разделах. Найдите файл здесь:
<MATLAB root>\toolbox\mbc\mbcmodels\@xregtransient\fuelPuddle.m
Задайте следующие локальные функции:
Задайте параметры модели Simulink, чтобы соответствовать.
function vars= i_simvars(m,b,varargin); vars = {'tau','x'};
Эта локальная функция должна возвратить массив ячеек строк. Это названия параметра, которых модель Simulink требует от рабочей области. Эти строки должны совпадать с названиями параметра, объявленными в модели Simulink.
Если ваша модель Simulink требует, чтобы постоянные параметры были заданы, сделайте, таким образом, здесь:
function [vars,vals]= i_simconstants(m,b,varargin); vars = {}; vals = [];
Они - постоянные параметры, требуемые моделью Simulink от рабочей области, и не адаптированы. Эти параметры должны совпасть с теми в модели Simulink, и все имена должны соответствовать. Здесь fuelPuddle
не требует таких параметров и возвращает массив пустой ячейки и пустую матрицу.
Задайте Начальные условия для интеграторов.
function [ic]= i_initcond(m,b,X); ic=[];
Начальные условия основаны на текущих параметрах, и входные параметры могли быть вычислены здесь. Отъезд ic = [] означает, что Simulink использует определение начальных условий в модели Simulink.
Задайте количество входных факторов, включая время.
function n= i_nfactors(m,b); n= 2;
Время является первым входом для переходных моделей. fuelPuddle
имеет вход X = [t, u(t)]
, и таким образом, количество входных факторов равняется 2.
Эта локальная функция возвращает вектор-столбец начальных значений для подходящих параметров.
function [b0,OK]= i_initial(m,b,X,Y) b0= [0.5 0.1]'; OK=1;
Проверяйте nargin
перед использованием X и Y, когда эта локальная функция вызвана с 2 или 4 параметрами: (m, b) или (m, b, X, Y).
Вы могли сделать некоторые вычисления здесь, чтобы оценить хорошие начальные значения от этих X, Y данные. Начальные значения могут быть заданы, чтобы быть информационно-зависимыми, следовательно существует флаг OK, чтобы сигнализировать, не стоит ли данным соответствовать. Пример задает некоторые начальные значения по умолчанию для x
и tau
.
Вы не должны редактировать остающиеся локальные функции, если они не требуются. Комментарии в коде описывают роль каждой функции. Вы используете эти функции чаще всего, когда вы создаете пользовательскую модель (см. Класс Локальной модели: Пользовательские Модели).
Эти метки используются на графиках:
function c= i_labels(m,b) b= {'\tau','x'};
Можно использовать обозначение LATEX, и это правильно форматировано. По умолчанию имена переменных, заданные в i_simvars
, используются, чтобы задать названия параметра.
Создав модель Simulink и соответствующий файл функции, необходимо сохранить, каждый на пути, как описано в Создает Папки.
Гарантировать, что переходная модель вы задали, обеспечивает интерфейс, который позволяет тулбоксу оценивать и соответствовать ей, вы регистрируетесь в модели. Если эта процедура успешно выполняется, тулбокс указывает модель и делает ее доступной для подбора кривой, когда вы используете соответствующие входные данные.
В командной строке, и с файлом шаблона и с моделями Simulink на пути, создают некоторые входные данные, затем вызывают checkin
. Процедура следует.
Создайте некоторые соответствующие входные данные. Конкретные используемые данные не важны; вы используете его только, чтобы проверять, может ли модель быть оценена.
Для примера fuelPuddle
введите следующий вход в командной строке:
TestInputData = [0:0.1:10; ones(1,101)]';
Вызовите checkin
с переходной моделью, ее именем и данными. Для примера, введите:
m = checkin(xregtransient,'fuelPuddle',TestInputData)
Строка, которую вы используете для своего нового переходного имени модели, появляется в диалоговом окне Model Setup, когда вы настраиваете переходные модели с помощью соответствующего количества входных параметров.
xregtransient
создает переходный объект модели, подходящий для использования в регистрации и удалении из тулбокса.
Успешная регистрация создает некоторую командную строку вывод, и фигура появляется с именем модели и именами переменных, отображенными по графикам входа и образцовой оценки вывод. Итоговая командная строка вывод (если checkin
вызван точкой с запятой как в предыдущем примере)
Model successfully registered for Model-Based Calibration Toolbox software
Вы можете видеть ошибки, если вы изменяете файл или модель, которая задает зарегистрированный переходная модель, которую вы в настоящее время используете в Model Browser. Смотрите Восстанавливаются с Редактирования Ошибок.
В модели fuelPuddle
уже регистрируются для вас, чтобы использовать. Откройте Model Browser и загрузите данные, которые имеют необходимый формат, чтобы оценить эту переходную модель (два локальных входных параметров). Входные данные времени должны увеличиваться.
Создайте План тестирования с двумя локальными входными факторами (то же количество входных факторов, требуемых моделью fuelPuddle
). Диалоговое окно Local Model Setup теперь предлагает следующие опции:
Выберите модель fuelpuddle
и нажмите OK.
При создавании модели ответа с fuelPuddle
как локальная модель тулбокс соответствует этим двум параметрам tau
и x
через все тесты.
Удаление, Зарегистрированное Модели. Чтобы удалить зарегистрированный модель, закройте Model Browser и введите следующую команду в командной строке:
remove(xregtransient, 'ModelName')
Когда вы перезапускаете тулбокс, команда удаляет зарегистрированный переходная модель.
Можно использовать этот класс локальной модели, чтобы соответствовать той же модели ко всем тестам. Иногда желательно попытаться соответствовать одной одноэтапной модели, чтобы 2D подготовить данные (например, соответствуя RBF по целой операционной области искры, скорости, загрузки, отношения воздуха/топлива и рециркуляции выхлопного газа). Однако может все еще быть полезно смочь исследовать образцовую подгонку на основе теста тестом. Можно использовать Среднюю Подгонку с этой целью.
Выберите Average Fit
и нажмите Setup. Диалоговое окно Model Setup появляется.
В Model class выпадающее меню является списком доступных моделей. Этот список содержит те же модели, которые вы нашли бы в настройке глобальной модели одноэтапной модели. Отметьте количество входных изменений, какие модели доступны. Локальная модель только с одним входом может получить доступ ко всем моделям.
Средний Подходящий класс локальной модели позволяет вам использовать любую из этих опций глобальной модели, чтобы соответствовать ко всем тестам. Таким же образом то, что глобальные модели адаптированы ко всем данным одновременно, использование средней подгонки позволяет вам соответствовать той же модели к каждому тесту в ваших данных, вместо того, чтобы соответствовать отдельной локальной модели для каждого теста.
Преимущество этого состоит в том, что можно использовать эти модели этапа, чтобы соответствовать данным в то время как также способность просмотреть подгонку к каждому тесту индивидуально. Настройте свою глобальную модель с входом, таким как номер записи или фиктивная переменная. Сделайте все переменные, вы хотите смоделировать локальные входные параметры. Не имеет значения, какой фиктивный тип переменной или тип модели вы используете для глобального входа - это только там, чтобы отличить модель Local Average Fit от одноэтапной модели. Фиктивная глобальная переменная не имеет никакого влияния на образцовую подгонку. Модель Average Fit адаптирована таким же образом как одноэтапная модель (через все тесты одновременно), но основное различие - то, что можно анализировать подгонку к каждому тесту индивидуально. Вы не можете выполнить такой анализ при подборе кривой одноэтапным моделям.
Никакая модель 2D этапа не доступна с локальными моделями Average Fit, и вы не можете использовать моделирование ковариации.
Следующий пример показывает доступные преобразования.
Входное преобразование может быть полезно для моделирования. Например, при попытке соответствовать
использование log
преобразовывает, превращает это в линейную регрессию:
Преобразовывает доступный, логарифмический, экспоненциальный, квадратный корень и Other
. Если вы выбираете Other
, окно редактирования появляется, и можно ввести функцию.
Apply transform to both sides только доступен для нелинейных моделей и преобразовывает и вход и вывод. Это хорошо для изменения ошибочной структуры, не изменяя образцовую функцию. Например, журнал преобразовывают, может совершить ошибки, относительно меньшие для более высоких значений x. Где существует heteroscedasticity, когда в примере Моделирования Ковариации, это преобразование может иногда удалять проблему.
Этот кадр видим, неважно, какая форма локальной модели выбрана в списке.
Моделирование ковариации используется, когда существует heteroscedasticity. Это означает, что отклонение вокруг линии регрессии не является тем же самым для всех значений переменной прогноза, например, где нижние значения скорости вращения двигателя имеют меньшую ошибку, и более высокие значения имеют большие ошибки. Если так, точки данных в низкой скорости статистически более защищены, и должны быть даны больший вес при моделировании. Модели ковариации используются, чтобы получить эту структуру по ошибкам.
Можно подобрать модель путем нахождения самой маленькой ошибочной статистической величины наименьших квадратов, когда существует homoscedasticity (отклонение не имеет никакого отношения к переменным). Выравнивание методом наименьших квадратов пытается минимизировать ошибочную статистическую величину наименьших квадратов, где.
ошибка, в квадрате в точке i.
Когда существует heteroscedasticity, моделирование ковариации взвешивает ошибки в пользу более статистически полезных точек (в этом примере при низкой скорости вращения двигателя N). Веса определяются с помощью функции формы
где функция прогнозирующей переменной (в этом примере, скорость вращения двигателя N).
Существует три типа модели ковариации.
Они определяют веса с помощью функции формы. Подбор кривой модели ковариации включает оценку параметра.
Они определяют использование весов.
Они определяют использование весов. Существует два параметра, чтобы оценить, поэтому израсходовав другую степень свободы. Эта сила влиять, когда вы выбираете модель ковариации, если вы используете небольшой набор данных.
Они только поддержаны для равномерно распределенных данных в продукте Model-Based Calibration Toolbox. Когда данные сопоставляются с предыдущими точками данных, ошибка также коррелируется.
Существует три доступные метода.
MA (1) - метод Скользящего среднего значения имеет форму.
AR (1) - Авторегрессивный метод имеет форму.
AR (2) - Авторегрессивный метод формы является стохастическим входом.