Класс, представляющий средство оценки нелинейности двоичного дерева для нелинейных моделей ARX
t=treepartition(Property1,Value1,...PropertyN,ValueN)
t=treepartition('NumberOfUnits',N)
treepartition
является объектом, который хранит двоичное дерево нелинейное средство оценки для оценки нелинейных моделей ARX. Объект задает нелинейную функцию , где F является кусочно-линейной (аффинной) функцией x, y является скаляром, и x является 1 m
вектором. Вычислите значение F с помощью evaluate(t,x)
, где t является объектом treepartition
в x.
t=treepartition(Property1,Value1,...PropertyN,ValueN)
создает объект средства оценки нелинейности двоичного дерева, заданный свойствами в treepartition Свойствах. Дерево имеет количество листов, равных 2^(J+1)-1
, где J
является количеством узлов в дереве и наборе свойством NumberOfUnits
. Значение по умолчанию NumberOfUnits
вычисляется автоматически и устанавливает верхний предел для фактического количества древовидных узлов, используемых средством оценки.
t=treepartition('NumberOfUnits',N)
создает объект средства оценки нелинейности двоичного дерева с условиями N
в расширении двоичного дерева (количество узлов в дереве). Когда вы оцениваете модель, содержащую t
, значение свойства NumberOfUnits
, N
, в t
автоматически изменяется, чтобы показать фактическое количество используемых листов — который является самым большим целым числом формы 2^n-1
и меньше чем или равный N
.
Можно включать пары значения свойства в конструктора, чтобы задать объект.
После создания объекта можно использовать get
или запись через точку, чтобы получить доступ к значениям свойства объекта. Например:
% List all property values get(t) % Get value of NumberOfUnits property t.NumberOfUnits
Можно также использовать функцию set
, чтобы установить значение конкретных свойств. Например:
set(t, 'NumberOfUnits', 5)
set
должен быть именем переменной MATLAB®.PropertyName | Описание |
---|---|
NumberOfUnits | Целое число задает количество узлов в дереве. Когда вы оцениваете модель, содержащую нелинейность Например: treepartition('NumberOfUnits',5) |
Parameters | Структура, содержащая следующие поля:
|
Options | Структура, содержащая следующие поля, которые влияют на первоначальную модель:
|
Используйте treepartition
, чтобы задать нелинейное средство оценки в нелинейных моделях ARX. Например:
m=nlarx(Data,Orders,treepartition('num',5));
Следующие команды обеспечивают пример использования усовершенствованных опций treepartition
:
% Define the treepartition object. t=treepartition('num',100); % Set the Threshold, which is a field % in the Options structure. t.Options.Threshold=2; % Estimate the nonlinear ARX model. m=nlarx(Data,Orders,t);
F отображения задан двухместным разделом P x - пробел, такой, что на каждом элементе раздела Pk, F является линейным отображением. Когда x принадлежит Pk, F (x) дают:
где L 1 m вектором, и d является скаляром, характерным для всех элементов раздела. C k является 1 на (m +1) вектор.
Отображение F и сопоставленный раздел P x - пробел вычисляется можно следующим образом:
Учитывая значение J, двухместного дерева с уровнями J и N = 2J–1 узлы инициализируется.
Каждый узел на уровне 1 <j <J имеет двух потомков на уровне j + 1 и один родительский элемент на уровне j – 1.
Корневой узел на уровне 1 имеет двух потомков.
Узлы на уровне J отключает листы дерева и имеет один родительский элемент.
Один элемент раздела сопоставлен к каждому узлу k дерева.
Вектор коэффициентов Ck вычисляется с помощью наблюдений относительно соответствующего элемента раздела Pk оштрафованным алгоритмом наименьших квадратов.
Когда узел, k не является останавливающимся листом, элемент раздела P k, сокращается в два, чтобы получить элементы раздела порожденных узлов. Сокращение задано полупространствами (1, x) Bk > 0 или <=0 (переместитесь к левому или правому потомку), где Bk выбран, чтобы улучшить устойчивость вычисления наименьшего квадрата на разделах в порожденных узлах.
Когда значение отображения, F, заданный объектом treepartition
, вычисляется в x, адаптивный алгоритм, выбирает активный узел k дерева на ответвлении разделов, которые содержат x.
Когда опцией Focus
в nlarxOptions
является 'prediction'
, treepartition
использует неитеративный метод для оценки параметров. Итеративные улучшения не возможны для моделей, содержащих это средство оценки нелинейности.
Вы не можете использовать treepartition
, когда Focus
является 'simulation'
, потому что эта нелинейность средства оценки не дифференцируема. Минимизация ошибки симуляции требует дифференцируемых нелинейных функций.