exponenta event banner

Изучение типов локальных моделей

Альтернативные типы локальных моделей

Сначала попробуйте установить значения по умолчанию с помощью кнопки Fit models common task.

Если требуется попробовать альтернативные типы локальных моделей, выберите узел ответа, затем на панели Общие задачи щелкните Создать локальную модель. Откроется диалоговое окно Настройка локальной модели (Local Model Setup). Просмотрите типы моделей на этой странице.

Сведения о проверке посадок см. в разделе Оценка локальных моделей.

Доступные модели зависят от количества входных факторов. Полином, полиномиальный сплайн, усеченный степенный ряд, сплайн свободного узла и модели роста относятся только к одному фактору.

На этом этапе можно выбрать дополнительные элементы ответа, используя вкладку Элементы ответа (Response Features) диалогового окна Настройка локальной модели (Local Model Setup). Их также можно добавить позже. Обозреватель модели выбирает достаточно элементов отклика для текущей модели.

Для получения статистической информации и доступных функций ответа см. каждый тип локальной модели.

См. также

Класс локальной модели: полиномы и полиномиальные сплайны

Полиномиалы

На локальном уровне при наличии одного входного коэффициента можно выбрать Полином (Polynomial) непосредственно из списка классов локальных моделей. Здесь можно выбрать порядок используемых многочленов и определить опорную модель для этого вида локальной модели.

Если имеется несколько входных коэффициентов, можно выбрать Линейные модели (Linear Models) в списке Класс локальной модели (Local Model Class), затем выбрать Полиномиальный (Polynomial) или Гибридный сплайн (Hybrid Spline). Это другая полиномиальная модель, в которой можно изменить дополнительные настройки, такие как Пошаговый (Stepwise), Редактор терминов (Term Editor) (где можно удалить любые термины модели) и выбрать различные порядки для различных факторов (как в случае моделей полиномов глобального уровня). См. Класс локальной модели: Линейные модели.

Для этой модели полинома и выбора «Линейные модели: Полиномиальные» (Linear Models: Polynomial) доступны различные функции отклика. Их можно просмотреть, щелкнув вкладку Элементы ответа (Response Features) в диалоговом окне Настройка локальной модели (Local Model Setup). Отдельные входные полиномы могут иметь опорную модель, и можно определить элементы отклика относительно опорного элемента. См. раздел Опорные модели.

Для класса полиномиальной модели разрешены следующие функции отклика:

  • Расположение максимального или минимального значения.

  • Значение функции аппроксимации в указанной пользователем x-ординате. Когда используются опорные модели, значение относительно опорного элемента (например, mbt - x).

  • n-я производная в указанной пользователем x-ординате, для n = 1, 2,..., d где d - степень многочлена.

Общее описание полиномиальных моделей см. в разделе Полиномы глобальной модели.

Полиномиальный сплайн

Сплайн - кусочный многочлен, где различные участки многочлена гладко совмещены. Расположение каждого разрыва называется узлом. Полиномиальные сплайны необходимы для моделирования кривых крутящего момента/искры.

Эта модель имеет только один узел. Можно выбрать порядки многочленов над и под узлом. См. также Гибридные сплайны. Эти глобальные модели также используют сплайны, но используют многочлен того же порядка.

Полиномиальные сплайны доступны только для отдельных входных коэффициентов. В следующем примере показана типичная кривая крутящего момента/искры, требующая правильного вписывания сплайна. Узел показан как красное пятно на максимуме, а кривизна над и под узлом различна. В этом случае имеется кубическая базисная функция ниже узла и квадратичная выше.

Для моделирования ответов, которые характеризуются внешним видом одной и хорошо определенной стационарной точкой с асимметричной кривизной по обе стороны от локального минимума или максимума, определите следующий класс сплайна:

где k - расположение узла, обозначает коэффициент регрессии,,.

где c - определяемая пользователем степень для левого многочлена, h - определяемая пользователем степень для правого многочлена, а подстрочные индексы Low и High обозначают слева (ниже) и справа (выше) от узла соответственно.

Исключение слагаемых в и обеспечивает непрерывность первой производной в положении узла. Кроме того, по определению константа должна быть равна значению функции посадки в узле, то есть значению в стационарной точке.

Для этого класса модели функции ответа могут быть выбраны как

  • Константы подгонки

  • Положение узла

  • Значение функции аппроксимации в заданной пользователем дельте

    из положения узла, если опорный элемент определен, в противном случае значение будет абсолютным.

  • Разность между значением аппроксимирующей функции в заданной пользователем дельте от положения узла и значением аппроксимирующей функции в узле

Класс локальной модели: линейные модели

Выбрать Linear Models и нажмите кнопку Настройка.

Теперь можно настроить модели полинома или гибридных сплайнов. Настройки совпадают с настройками глобальных линейных моделей.

Эти модели предназначены для нескольких входных факторов - для отдельных входных факторов можно использовать другую модель полинома из списка Класс локальной модели (Local Model Class), где можно изменить только порядок полинома. См. раздел Класс локальной модели: полиномы и полиномиальные сплайны.

Если имеется несколько входных коэффициентов, можно выбрать Линейные модели (Linear Models) в списке Класс локальной модели (Local Model Class), затем выбрать Полиномиальный (Polynomial) или Гибридный сплайн (Hybrid Spline). Этот полином - это другая модель, в которой можно изменить больше настроек, таких как Пошаговый (Stepwise), Редактор терминов (Term Editor) (где можно удалить любые термины модели) и выбрать различные порядки для различных факторов (как в случае моделей полиномов глобального уровня).

Дополнительные сведения см. в разделе Глобальные линейные модели: полиномы и гибридные сплайны.

По умолчанию входные данные преобразуются в [-1, 1] перед подгонкой и вычислением полиномов. Это важно, поскольку различия в масштабах между входами могут вызвать численные проблемы. Как правило, целесообразно преобразовывать входные данные, поскольку это облегчает проблемы с переменными различных масштабов. В некоторых случаях могут возникнуть проблемы со значениями многочленов (например, если стратегия требует необработанных коэффициентов многочлена). В этом случае можно снять флажок Преобразовать диапазон ввода (Transform input range), чтобы использовать нетрансформированные единицы измерения для вычисления натуральных многочленов.

Для этой модели «Линейные модели: Полиномиальная модель» (Linear Models: Polynomial model) и другого варианта «Полиномиальная модель» (Polynomial choice) доступны различные функции отклика (для отдельных входных коэффициентов). Их можно просмотреть, щелкнув вкладку Элементы ответа (Response Features) в диалоговом окне Настройка локальной модели (Local Model Setup). Отдельные входные полиномы могут иметь опорную модель, и можно определить элементы отклика относительно опорного элемента. См. раздел Опорные модели.

Эти линейные модели помечены Quadratic, Cubicи так далее, на блок-схеме плана тестирования. Один тип ввода многочленов помечен Poly2, Poly3и так далее. Для более высоких заказов оба типа помечены Poly n.

Класс локальной модели: усеченная серия питания

Это доступно только для одного входного коэффициента.

Можно выбрать порядок базисной функции полинома и количество узлов для базисных сплайнов усеченного степенного ряда. Сплайн - кусочный многочлен, где различные участки многочлена гладко совмещены. Точка каждого разрыва называется узлом. Усеченный ряд мощностей изменяет коэффициент для наивысшей мощности, когда входной сигнал проходит выше узлового значения.

Она усечена, потому что степенной ряд является приближением к бесконечной сумме многочленов. Можно использовать бесконечные суммы для аппроксимации произвольных функций, но явно невозможно подогнать все коэффициенты.

Щелкните Многочлен (Polynomial), чтобы увидеть (и удалить) многочлены. Одно из применений функции удаления многочлена состоит в том, чтобы сделать функцию линейной до узла, а затем квадратичной над узлом. В этом случае следует удалить квадратичный коэффициент.

См. также

Сплайны на основе усеченного источника питания (TPSBS)

Общий класс сплайновых функций с произвольной (но строго увеличивающейся) узловой последовательностью:

:

Это определяет сплайн порядка m с узловой последовательностью

Для этого класса модели функции ответа могут быть выбраны как

  • Константы подгонки

  • Вектор положения узла.

  • Значение функции посадки при заданном пользователем значении

  • Значение n-й производной функции аппроксимации относительно xj при заданном пользователем значении, при n = 1, 2,..., m-2

Можно удалить любой полиномиальный член из модели.

Класс локальной модели: свободный узловой сплайн

Они аналогичны классу глобальной модели: сплайн свободного узла (который также доступен только для одного входного коэффициента). Пример формы кривой см. в глобальных свободных узловых сплайнах.

Сплайн - кусочный многочлен, где различные участки многочлена гладко совмещены. Точка соединения называется узлом.

Можно выбрать количество узлов. Можно выбрать порядок аппроксимации многочлена (во всех сечениях кривой) от 1 до 3. Значение по умолчанию - cubic.

Можно задать количество начальных точек Случайное (Random). Таково количество начальных догадок в узловых положениях.

См. также

Сплайны свободного узла

Основа не является наиболее подходящей для целей оценки и оценки, поскольку матрица проектирования может быть плохо подготовлена. Кроме того, количество арифметических операций, необходимых для оценки функции сплайна, зависит от расположения относительно узлов. Эти свойства могут привести к числовым неточностям, особенно когда количество узлов велико. Такие проблемы можно уменьшить, используя B-сплайны.

Наиболее важным аспектом является то, что для умеренных m расчетная матрица, выраженная в терминах В-сплайнов, относительно хорошо кондиционирована.

Для этого класса модели функции ответа могут быть выбраны как

  • Константы подгонки

  • Вектор положения узла.

Значение функции посадки при заданном пользователем значении

Класс локальной модели: модели роста

Модели роста имеют несколько доступных разновидностей. Они доступны только для отдельных входных коэффициентов.

Это все разновидности сигмоидальных кривых между двумя асимптотами, как в следующем примере.

Модели роста часто являются наиболее подходящей формой кривой для моделирования двигателя воздушного заряда.

Для получения математической информации о различиях между этими моделями роста см. следующие разделы:

Модель логистики с тремя параметрами

Уравнение yj = α1 + exp [− (xj − γ)] r определяет три параметра логистической кривой.

где - конечный достигаемый размер, Δ - параметр масштаба, а - x-ордината точки перегиба кривой.

Кривая имеет асимптоты yj = 0 как xj → - ∞ и как xj→ ∞. Скорость роста находится на максимуме при yj = α/2, что происходит при xj = γ. Максимальная скорость роста соответствует

К коэффициентам подгонки применяются следующие ограничения:

  • α > 0, Κ>0, γ>0.

Вектор функции отклика g для трех параметров логистическая функция определяется как

g=[αγκκα4]Τ

Модель Моргана-Мерсера-Флодина

Это уравнение определяет модель роста Моргана-Мерсера-Флодина (MMF).

где α - значение верхней асимптоты, β - значение нижней асимптоты, Λ - параметр масштабирования, δ - параметр, управляющий расположением точки перегиба для кривой. Точка перегиба расположена в

для

Нет точки перегиба для δ < 1. Все кривые MMF являются субблогистическими в том смысле, что точка перегиба всегда расположена ниже 50% роста (0,5α). К значениям коэффициентов подгонки применяются следующие ограничения:

  • α > 0, β > 0, Κ > 0, δ > 0

  • α > β

Это уравнение обеспечивает вектор характеристики отклика g.

g=[αβκδδ−12δ]Τ

Четырехпараметрическая логистическая кривая

Это уравнение определяет четырехпараметрическую логистическую модель.

β (α β) (1 +

с ограничениями, и. Опять же, является значением верхней асимптоты, является масштабным коэффициентом, и является фактором, который находится x-ордината точки перегиба в

К значениям коэффициентов подгонки применяются следующие ограничения:

  • Все параметры > 0

  • α > β

Это доступный вектор функции ответа:

g = [αβαλ γ (λ γ log (1 + λ

Кривые Ричардса

Это уравнение определяет семейство кривых Ричардса для моделей роста.

δ ≠ 1

где α - верхняя асимптота, γ - расположение точки перегиба на оси x, Δ - масштабный коэффициент, δ - параметр, косвенно локализующий точку перегиба.

Ордината y точки перегиба определяется по

Ричардс также вывел среднюю нормированную скорость роста для кривой как

К значениям коэффициентов подгонки применяются следующие ограничения:

  • α > 0, γ > 0, Κ > 0, δ > 0

  • α > γ

  • δ ≠ 1

Наконец, вектор характеристики отклика g для семейства кривых роста Ричардса определяется как

g = [ααγ λ 2 (δ + 1)] T

Кривая роста Вейбула

Это уравнение определяет кривую роста Вейбула.

где - значение верхней асимптоты кривой, - значение нижней асимптоты кривой, - параметр масштабирования и - параметр, который управляет x-ординатой для точки перегиба кривой в

К параметрам аппроксимации кривой применяются следующие ограничения:

  • α > 0, β > 0, Κ > 0, δ > 0

  • α > β

Связанный вектор характеристики отклика:

g=[αβκδ(1κ)(δ−1δ)1/δ]Τ

Экспоненциальная кривая роста

Это уравнение определяет экспоненциальную модель роста.

где α - значение верхней асимптоты, β - начальный размер, а Δ - параметр шкалы (постоянная времени, контролирующая скорость роста). К коэффициентам подгонки применяются следующие ограничения:

  • α > 0, β > 0, Κ > 0

  • α > β

Вектор функции отклика g для экспоненциальной модели роста определяется как

Модель роста Гомперца

Другой полезной композицией, которая не демонстрирует симметричной точки перегиба, является модель роста Гомперца. Определяющее уравнение:

где α - конечный размер, Λ - масштабный коэффициент, а γ - x-ордината точки перегиба. Соответствующая ордината y точки перегиба возникает в

С максимальными темпами роста

Следующие ограничения применяются к выбору значений параметров для модели Гомперца:

α > 0, Κ > 0, γ > 0.

Вектор функции отклика g для модели роста Гомперца определяется как

g = [ααγ λ αe] Start

Класс локальной модели: пользовательские модели

Можно создавать пользовательские модели для использования в локальных, глобальных или одноступенчатых моделях.

Определяемый пользователем тип модели позволяет определить уравнение в файле, которое будет использоваться для фитинга на панели инструментов.

Чтобы создать и сдать на хранение пользовательскую модель, выполните следующие действия.

  1. Скопируйте файл пользовательского шаблона (functemplate.m) в расположение на пути MATLAB ® (но не вmatlabroot\toolbox\mbc). Найдите файл в следующем расположении:

    <matlabroot>\toolbox\mbc\mbcmodels\@xregusermod\functemplate.m

  2. Измените копию файла шаблона для модели. Кодирование всех обязательных функций. В комментариях к шаблону описываются все обязательные и необязательные функции.

    Изменение каждого дополнительного раздела не является обязательным. Если вы не хотите использовать дополнительный раздел, оставьте его неизмененным.

  3. Проверьте модель на панели инструментов с помощью следующей команды:

    m = checkin(xregusermod,'MfileName',TestInputData)

Примечание

Пользовательские модели могут иметь столько факторов, сколько вы выберете.

После сдачи на хранение пользовательских моделей они отображаются как опции в диалоговом окне Настройка модели (Model Setup) при использовании данных с нужным количеством факторов.

Чтобы удалить возвращенную модель из панели инструментов, введите:

remove(xregusermod,'MfileName')

Примечание

Если какая-либо из ваших глобальных моделей определена пользователем, вы не можете использовать MLE (оценку максимального правдоподобия) для вашей двухэтапной модели.

В качестве руководства можно просмотреть этот пример файла пользовательской модели:

<MATLAB root>\toolbox\mbc\mbcmodels\@xregusermod\weibul.m

Этот файл определяет локальную модель Weibul (модель роста) на панели инструментов и, следовательно, не должен быть изменен. Убедитесь, что файл не перезаписан. При изменении файла сохраните его под другим именем.

В следующих разделах объясняется, как исследовать и проверить модель Weibul:

Изучение примера пользовательской модели

В этом примере показано, как создать пользовательскую модель для функции Weibul:

y = alpha - (alpha - beta).*exp(-(kappa.*x).^delta)
  1. Откройте следующий файл примера

    <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;

Введите количество подогнанных параметров. В этом примере в модели Вейбула имеется четыре параметра.

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;

Дополнительные локальные функции.  Для установки дополнительных параметров можно использовать следующие дополнительные локальные функции.

  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= [];
  2. i_foptions определяет опции вписывания. Опции подгонки всегда основаны на входных данных fopts. См. справку MATLAB на optimset или optimoptions для получения дополнительной информации о параметрах посадки. При отсутствии ограничений панель инструментов использует функцию MATLAB lsqnonlin для фитинга, в противном случае fmincon используется.

    function fopts= i_foptions(U,b,fopts)
    
    	fopts= optimset(fopts,'Display','none');
    
  3. 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);
    
  4. i_labels определяет метки, используемые на графиках. Можно использовать нотацию LaTeX, и она будет отформатирована.

    function c= i_labels(U,b)
    c={'\alpha','\beta','\kappa','\delta'};
    
  5. 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));
    
  6. 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});
    
  7. 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
  8. 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 
  9. 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.

Убедитесь, что модель сдана на хранение

Для проверки того, что пользовательская модель сдана на хранение на панели инструментов:

  1. Запустите браузер модели и загрузите данные, имеющие необходимый формат для оценки пользовательской модели.

  2. Настройка плана тестирования с помощью N Stage1 входные коэффициенты, где N - количество входных коэффициентов, определенных в i_nfactors.

  3. Откройте диалоговое окно Настройка локальной модели (Local Model Setup) и выберите Пользовательские модели (User-defined models) в списке Класс локальной модели (Local Model Class). Определяемая пользователем модель должна отображаться в правом списке.

Чтобы проверить, что weibul пример, определяемая пользователем модель сдана на хранение:

  1. Открытый gasoline_project.matи выберите PS22 узел плана тестирования в дереве.

  2. Дважды щелкните значок Local Model на схеме плана тестирования.

  3. В диалоговом окне Настройка локальной модели (Local Model Setup) выберите Пользовательские модели (User-defined models) в списке Класс локальной модели (Local Model Class). Weibul пользовательская модель отображается в правом списке, как сданная на хранение.

Восстановление после ошибок редактирования

При изменении файла, определяющего модель, которая в данный момент используется для сдачи на хранение, Браузер моделей (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™), прежде чем использовать их для моделирования.

  1. Создайте папку и добавьте ее в путь MATLAB.

    Например: D:\MyTransient.

    Поместите модель Simulink в эту папку. См. раздел Создание модели Simulink.

  2. В новой папке создайте папку @ xregtransient. (например, D :\MyTransient\@ xregtransient). Необходимо вызвать эту папку @ xregtransient.

    Поместите файл пользовательской переходной модели в новую папку @ xregtransient. Имя этого файла должно совпадать с именем модели Simulink. См. раздел Создание пользовательского файла переходной модели.

Создание модели Simulink

Создайте модель Simulink для представления переходной системы.

Входные данные Simulink представляют входные данные модели. Время является первым вводом в модель в программном обеспечении Calibration Toolbox на основе модели, но не является вводом в модель. Выходные данные модели представлены в виде выходных данных Simulink. В браузере модели поддерживается только один скалярный вывод.

Модель Simulink должна иметь некоторые свободные параметры, которые программное обеспечение Calibration Toolbox на основе модели будет соответствовать нелинейным наименьшим квадратам. Используйте одинаковые имена переменных в модели и пользовательском файле переходной модели.

Модель Simulink для fuelPuddle на следующем рисунке показан пример. Вы изучите файл примера (fuelPuddle.m) в более позднем разделе.

Метки блоков не важны. Модель возвращает один скалярный вывод (здесь обозначен "Mcyl”).

Панель инструментов определяет параметры модели в рабочем пространстве модели. Это можно увидеть в обозревателе моделей. Вектор всех параметров с именем p также доступен.

Требования к модели.  Для непрерывных и дискретных моделей применяются следующие правила.

  • Для моделей Simulink с решателем фиксированного шага размер шага устанавливается равным времени выборки данных.

  • Для решателей шага переменной размер шага моделирования задается моделью Simulink.

  • Если размер выходных данных моделирования модели Simulink не соответствует размеру входных данных, предоставленных панелью инструментов, появляется ошибка.

Создание пользовательского файла переходной модели

Определите файл переходной модели для модели Simulink, и этот файл должен иметь то же имя, что и модель Simulink.

  1. Скопируйте файл шаблона переходной модели, расположенный по адресу:

    <MATLAB root>\toolbox\mbc\mbcmodels\@xregtransient\functemplate.m
    
    Копировать файл в новый MyTransientfolder\@xregtransient созданную папку.

  2. Измените копию файла шаблона для модели.

    Код комментариев описывает обязательные и необязательные функции, доступные в файле шаблона.

    Изменение каждого раздела не требуется. Если вы не хотите использовать дополнительный раздел, оставьте его неизмененным и достаточно значений по умолчанию.

Открыть файл примера fuelPuddle.m (для fuelPuddle модель) для изучения кода, описанного в следующих разделах. Найдите файл здесь:

<MATLAB root>\toolbox\mbc\mbcmodels\@xregtransient\fuelPuddle.m

Обязательные локальные функции

Укажите следующие локальные функции:

  1. Задайте параметры модели Simulink для подгонки.

    function vars= i_simvars(m,b,varargin);
    vars = {'tau','x'};
    

    Эта локальная функция должна возвращать массив строк ячейки. Это имена параметров, которые требуются модели Simulink из рабочей области. Эти строки должны соответствовать именам параметров, объявленным в модели Simulink.

  2. Если модель Simulink требует определения постоянных параметров, выполните следующие действия:

    function [vars,vals]= i_simconstants(m,b,varargin);
    vars = {};
    vals = [];
    

    Они являются постоянными параметрами, необходимыми для модели Simulink из рабочего пространства, и не подгоняются. Эти параметры должны совпадать с параметрами модели Simulink, и все имена должны совпадать. Здесь fuelPuddle не требует таких параметров и возвращает пустой массив ячеек и пустую матрицу.

  3. Укажите начальные условия для интеграторов.

    function [ic]= i_initcond(m,b,X);
    ic=[];
    

    Исходные условия основаны на текущих параметрах, и здесь можно рассчитать входные данные. Оставление ic = [] означает, что Simulink использует определение начальных условий в модели Simulink.

  4. Укажите количество входных коэффициентов, включая время.

    function n= i_nfactors(m,b);
    n= 2;
    

    Время является первым вводом для переходных моделей. fuelPuddle имеет вход X = [t, u(t)]и поэтому число входных коэффициентов равно 2.

  5. Эта локальная функция возвращает вектор столбца начальных значений для подгоняемых параметров.

    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. Процедура выполняется следующим образом.

  1. Создайте соответствующие входные данные. Конкретные используемые данные не имеют значения; используется только для проверки возможности оценки модели.

    Для fuelPuddle например, введите в командной строке следующие входные данные:

    TestInputData = [0:0.1:10; ones(1,101)]';
    
  2. Звонить checkin с переходной моделью, ее именем и данными. В качестве примера введите:

    m = checkin(xregtransient,'fuelPuddle',TestInputData)
    

    Строка, используемая для нового имени переходной модели, появляется в диалоговом окне Настройка модели (Model Setup) при настройке переходных моделей с использованием соответствующего количества входных данных.

    xregtransient создает объект переходной модели, пригодный для использования при сдаче на хранение и удалении с панели инструментов.

При успешной сдаче на хранение создаются некоторые выходные данные командной строки, и появляется рисунок с именем модели и именами переменных, отображаемыми на графиках входных данных и выходных данных оценки модели. Окончательные выходные данные командной строки (если checkin вызывается с точкой с запятой, как в предыдущем примере)

Model successfully registered for
Model-Based Calibration Toolbox software

Примечание

Ошибки могут возникнуть при изменении файла или модели, определяющей сданную на хранение переходную модель, которая в данный момент используется в браузере модели. См. раздел Восстановление после ошибок редактирования.

Использование и удаление переходных моделей

fuelPuddle модель уже сдана на хранение для использования. Откройте браузер модели и загрузите данные, имеющие необходимый формат для оценки этой переходной модели (два локальных входа). Входные данные времени должны увеличиваться.

Создайте план испытаний с двумя локальными факторами ввода (одинаковое количество факторов ввода, необходимое для fuelPuddle модель). В диалоговом окне Настройка локальной модели (Local Model Setup) теперь доступны следующие опции.

Выберите fuelpuddle и нажмите «ОК».

О построении модели ответа с помощью fuelPuddle как локальная модель, панель инструментов соответствует двум параметрам tau и x по всем тестам.

Удаление сданных на хранение моделей.  Чтобы удалить возвращенную модель, закройте обозреватель моделей и введите в командной строке следующую команду:

remove(xregtransient, 'ModelName')

При перезапуске панели инструментов команда удаляет сданную на хранение переходную модель.

Класс локальной модели: средняя посадка

Этот класс локальной модели можно использовать для соответствия одной и той же модели всем тестам. Иногда желательно попытаться подогнать одноступенчатую модель к двухстадийным данным (например, установить RBF по всей рабочей области искры, скорости, нагрузки, соотношения воздух/топливо и рециркуляции выхлопных газов). Тем не менее, все еще может быть полезно иметь возможность исследовать модель, подходящую для каждого испытания. Для этого можно использовать функцию «Средняя посадка».

Выбрать Average Fit и нажмите кнопку Setup (Настройка). Откроется диалоговое окно Настройка модели (Model Setup).

В раскрывающемся меню Класс модели (Model class) представлен список доступных моделей. Этот список содержит те же модели, которые можно найти в настройке глобальной модели одноступенчатой модели. Обратите внимание на то, какое количество входных данных изменяет доступные модели. Доступ ко всем моделям может получить локальная модель только с одним входом.

Класс локальной модели Average Fit позволяет использовать любую из этих глобальных опций модели для соответствия всем тестам. Точно так же, как глобальные модели подгоняются ко всем данным одновременно, использование средней подгонки позволяет подгонять одну и ту же модель к каждому тесту в данных, вместо подгонки отдельной локальной модели для каждого теста.

Преимущество этого состоит в том, что эти одноступенчатые модели можно использовать для подгонки данных, а также для просмотра подгонки для каждого теста по отдельности. Настройте глобальную модель с помощью входных данных, таких как номер записи или фиктивная переменная. Создайте все переменные для моделирования локальных входных данных. Неважно, какую фиктивную переменную или тип модели вы используете для глобального ввода - только там можно отличить модель Local Average Fit от одноступенчатой модели. Фиктивная глобальная переменная не влияет на подгонку модели. Модель Average Fit устанавливается так же, как одноступенчатая модель (во всех тестах одновременно), но главное отличие состоит в том, что можно проанализировать соответствие каждому тесту индивидуально. Такой анализ невозможно выполнить при подгонке одноступенчатых моделей.

Примечание

С локальными моделями среднего вписывания двухступенчатая модель недоступна, и нельзя использовать ковариационное моделирование.

Преобразовывает

В следующем примере показаны доступные преобразования.

Преобразование входных данных может быть полезным для моделирования. Например, если вы пытаетесь подогнать

с использованием log преобразование превращает это в линейную регрессию:

Доступны следующие преобразования: логарифмический, экспоненциальный, квадратный корень,, и Other. При выборе Otherпоявится поле редактирования, в котором можно ввести функцию.

Применить преобразование к обеим сторонам доступно только для нелинейных моделей и преобразует как входные, так и выходные данные. Это удобно для изменения структуры ошибок без изменения функции модели. Например, логарифмическое преобразование может сделать ошибки относительно меньшими для более высоких значений x. Если существует гетероскедастичность, как в примере ковариационного моделирования, это преобразование иногда может устранить проблему.

Ковариационное моделирование

Этот кадр виден независимо от того, какая форма локальной модели выбрана в списке.

Ковариационное моделирование используется при наличии гетероскедастичности. Это означает, что дисперсия вокруг линии регрессии не одинакова для всех значений прогнозирующей переменной, например, когда более низкие значения частоты вращения двигателя имеют меньшую ошибку, а более высокие значения имеют большие ошибки. Если да, то точки данных с низкой скоростью статистически более надежны и должны иметь больший вес при моделировании. Ковариационные модели используются для фиксации этой структуры в ошибках.

Модель можно подогнать, найдя наименьшую статистику ошибок наименьших квадратов при наличии гомоскедастичности (дисперсия не имеет отношения к переменным). Подгонка наименьших квадратов пытается минимизировать статистику ошибок наименьших квадратов, где.

- ошибка, возведенная в квадрат в точке i.

При наличии гетероскедастичности ковариационное моделирование взвешивает ошибки в пользу более статистически полезных точек (в данном примере - при низких оборотах двигателя N). Веса определяются с помощью функции формы.

где - функция прогнозирующей переменной (в данном примере - частота вращения двигателя N).

Существует три типа ковариационных моделей.

Власть

Они определяют веса с помощью функции формы. Подгонка ковариационной модели включает в себя оценку параметра.

Показательный

Они определяют веса с помощью.

Смешанный

Они определяют веса с помощью. Существует два параметра для оценки, поэтому используется другая степень свободы. Это может иметь влияние при выборе ковариационной модели, если используется небольшой набор данных.

Корреляционные модели

Они поддерживаются только для данных с одинаковым интервалом в изделии Model-Based Calibration Toolbox. Когда данные коррелируются с предыдущими точками данных, ошибка также коррелируется.

Существует три метода.

  • MA (1) - метод скользящего среднего имеет вид.

  • AR (1) - Авторегрессионный метод имеет вид.

  • AR (2) - Авторегрессионный метод формы является стохастическим входом,.