greyest

Оценка модели линейного серого ящика

Синтаксис

sys = greyest(data,init_sys)
sys = greyest(data,init_sys,opt)
[sys,x0] = greyest(___)

Описание

sys = greyest(data,init_sys) оценивает линейную модель серый ящик, sys, используя данные временного или частотного диапазона, data. Размерности входов и выходов data и init_sysодин idgrey модель, должна совпадать. sys является идентифицированным idgrey модель, которая имеет ту же структуру, что и init_sys.

sys = greyest(data,init_sys,opt) оценивает линейную модель серый ящик с помощью набора опций, opt, для настройки опций оценки.

[sys,x0] = greyest(___) возвращает значение начальных состояний, вычисленных во время оценки. Можно использовать этот синтаксис с любой из предыдущих комбинаций входных аргументов.

Входные параметры

data

Оценочные данные.

Размерности входов и выходов data и init_sys должен совпадать.

Для оценки во временной области, data является iddata объект, содержащий значения входного и выходного сигналов.

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

  • Зарегистрированные данные частотной характеристики (frd (Control System Toolbox) или idfrd)

  • iddata объект с его Domain значение свойства установлено в 'Frequency'

init_sys

Идентифицированная линейная модель серого ящика, которая конфигурирует начальную параметризацию sys.

init_sysодин idgrey модель, должна иметь те же входные и выходные размерности, что и data.

opt

Опции оценки.

opt - набор опций, созданный с помощью greyestOptions, который задает опции, включая:

  • Цель оценки

  • Выбор инициализации

  • Обработка модели возмущения

  • Численный метод поиска, который будет использоваться в оценке

Выходные аргументы

sys

Предполагаемая модель серого ящика, возвращенная как idgrey модель. Эта модель создается с использованием заданной начальной системы и опций оценки.

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

Поле отчетаОписание
Status

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

Method

Используется команда estimation.

InitialState

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

  • 'model' - Начальное состояние параметризовано файлом ODE, используемым idgrey модель.

  • 'zero' - Начальное состояние устанавливается в нуль.

  • 'estimate' - Начальное состояние рассматривается как независимый параметр оценки.

  • 'backcast' - начальное состояние оценивается с использованием наилучшей аппроксимации методом наименьших квадратов.

  • Вектор двойников длины Nx, где Nx - количество состояний. Для мультиэкспериментных данных - матрица с Ne столбцами, где Ne - количество экспериментов.

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

DisturbanceModel

Обработка компонента нарушения порядка (K) во время оценки, возвращенная как одно из следующих значений:

  • 'model' - K значения параметризованы файлом ODE, используемым idgrey модель.

  • 'fixed' - Значение K свойство idgrey модель фиксируется на своем исходном значении.

  • 'none' - K фиксируется в нуле.

  • 'estimate' - K рассматривается как независимый параметр оценки.

Это поле особенно полезно для просмотра того, как был обработан компонент нарушения порядка, когда DisturbanceModel опция в наборе опций оценки 'auto'.

Fit

Количественная оценка оценки, возвращенная как структура. Смотрите функции потерь и метрики качества модели для получения дополнительной информации об этих метриках качества. Структура имеет следующие поля:

ОбластьОписание
FitPercent

Нормированная мера средней квадратичной невязки корня (NRMSE) того, насколько хорошо реакция модели соответствует данным оценки, выраженным в процентах fit = 100 (1-NRMSE).

LossFcn

Значение функции потерь, когда оценка завершается.

MSE

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

FPE

Окончательная ошибка предсказания для модели.

AIC

Необработанная мера качества модели Akaike Information Criteria (AIC).

AICc

Скорректированный AIC небольшого размера.

nAIC

Нормализованный AIC.

BIC

Байесовские информационные критерии (BIC).

Parameters

Оценочные значения параметров модели.

OptionsUsed

Набор опций, используемый для оценки. Если пользовательские опции не были настроены, это набор опций по умолчанию. Посмотрите greyestOptions для получения дополнительной информации.

RandState

Состояние потока случайных чисел в начале оценки. Пустой, [], если рандомизация не использовалась во время оценки. Для получения дополнительной информации см. rng.

DataUsed

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

ОбластьОписание
Name

Имя набора данных.

Type

Тип данных.

Length

Количество выборок данных.

Ts

Шаг расчета.

InterSample

Входной межвыборка поведения, возвращенный как одно из следующих значений:

  • 'zoh' - Удержание нулевого порядка поддерживает кусочно-постоянный входной сигнал между выборками.

  • 'foh' - Удержание первого порядка поддерживает кусочно-линейный входной сигнал между выборками.

  • 'bl' - Ограниченное по полосе поведение задает, что входной сигнал в непрерывном времени имеет нулевую степень выше частоты Найквиста.

InputOffset

Смещение удалено из входных данных временной области во время оценки. Для нелинейных моделей это [].

OutputOffset

Смещение удалено из выходных данных временной области во время оценки. Для нелинейных моделей это [].

Termination

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

ОбластьОписание
WhyStop

Причина завершения численного поиска.

Iterations

Количество итераций поиска, выполненных алгоритмом оценки.

FirstOrderOptimality

-norm вектора поиска градиента, когда алгоритм поиска заканчивается.

FcnCount

Количество вызовов целевой функции.

UpdateNorm

Норма вектора поиска градиента в последней итерации. Опускается, когда метод поиска 'lsqnonlin' или 'fmincon'.

LastImprovement

Улучшение критерия в последней итерации, выраженное в процентах. Опускается, когда метод поиска 'lsqnonlin' или 'fmincon'.

Algorithm

Алгоритм, используемый 'lsqnonlin' или 'fmincon' метод поиска. Опускается, когда используются другие методы поиска.

Для методов оценки, которые не требуют численной оптимизации поиска, Termination поле опущено.

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

x0

Начальные состояния, вычисленные во время оценки, возвращаются как матрица, содержащая вектор-столбец, соответствующую каждому эксперименту.

Этот массив также хранится в Parameters поле модели Report свойство.

Примеры

свернуть все

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

Загрузите измеренные данные.

load(fullfile(matlabroot, 'toolbox', 'ident', 'iddemos', 'data', 'dcmotordata'));
data = iddata(y, u, 0.1, 'Name', 'DC-motor');
data.InputName = 'Voltage';
data.InputUnit = 'V';
data.OutputName = {'Angular position', 'Angular velocity'};
data.OutputUnit = {'rad', 'rad/s'};
data.Tstart = 0;
data.TimeUnit = 's';

data является iddata объект, содержащий измеренные данные для выходов, угловое положение, скорость вращения. Он также содержит вход, ведущее напряжение.

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

Для двигателя постоянного тока выберите угловое положение (рад) и скорость вращения (рад/с) в качестве выходов и ведущее напряжение (V) в качестве входа. Настройте линейную структуру пространства состояний следующей формы:

x˙(t)=[010-1τ]x(t)+[0Gτ]u(t)

y(t)=[1001]x(t).

τ - константа времени двигателя в секундах, и G - статический коэффициент усиления от входа до скорости вращения в рад/( V * s ).

G = 0.25; 
tau = 1; 

init_sys = idgrey('motorDynamics',tau,'cd',G,0);

Управляющие уравнения в форме пространство состояний представлены в файле MATLAB ® motorDynamics.m. Чтобы просмотреть содержимое этого файла, введите edit motorDynamics.m в командной строке MATLAB.

G - известное количество, которое предоставляется motorDynamics.m как необязательный аргумент.

τ является параметром свободной оценки.

init_sys является idgrey модель, связанная с motor.m.

Оценка τ.

sys = greyest(data,init_sys);

sys является idgrey модель, содержащая оценочное значение τ.

Чтобы получить предполагаемые значения параметров, сопоставленные с sys, использовать getpvec(sys).

Проанализируйте результат.

opt = compareOptions('InitialCondition','zero');
compare(data,sys,Inf,opt)

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent DC-motor (Angular position), sys: 98.35%. Axes 2 contains 2 objects of type line. These objects represent DC-motor (Angular velocity), sys: 84.42%.

sys обеспечивает 98,35% подгонки для углового положения и 84,42% подгонки для скорости вращения.

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

Модель параметризована статическим усилением G и временная константа τ. Из предшествующих знаний известно, что G составляет около 4 и τ составляет около 1. Кроме того, у вас есть больше доверие в значении τ чем G и хотел бы, чтобы оценка оставалась близкой к первоначальной догадке.

Данные оценки нагрузки.

load regularizationExampleData.mat motorData

Данные содержат измерения углового положения и скорости двигателя при заданных входных напряжениях.

Создайте idgrey модель для динамики двигателя постоянного тока. Используйте функцию DCMotorODE который представляет структуру модели серого ящика.

mi = idgrey(@DCMotorODE,{'G', 4; 'Tau', 1},'cd',{}, 0);
mi = setpar(mi, 'label', 'default');

Если вы хотите просмотреть DCMotorODE функция, тип:

type DCMotorODE.m
function [A,B,C,D] = DCMotorODE(G,Tau,Ts)
%DCMOTORODE ODE file representing the dynamics of a DC motor parameterized
%by gain G and time constant Tau.
%
%   [A,B,C,D,K,X0] = DCMOTORODE(G,Tau,Ts) returns the state space matrices
%   of the DC-motor with time-constant Tau and static gain G. The sample
%   time is Ts.
%
%   This file returns continuous-time representation if input argument Ts
%   is zero. If Ts>0, a discrete-time representation is returned.
%
% See also IDGREY, GREYEST.

%   Copyright 2013 The MathWorks, Inc.

A = [0 1;0 -1/Tau];
B = [0; G/Tau];
C = eye(2);
D = [0;0];
if Ts>0 % Sample the model with sample time Ts
   s = expm([[A B]*Ts; zeros(1,3)]);
   A = s(1:2,1:2);
   B = s(1:2,3);
end

Задайте опции регуляризации Lambda.

opt = greyestOptions;
opt.Regularization.Lambda = 100;

Задайте опции регуляризации R.

opt.Regularization.R = [1, 1000];

Вы задаете больше взвешивания для второго параметра, потому что у вас есть больше доверие в значении τ чем G.

Задайте начальные значения параметров как опцию регуляризации θ*.

opt.Regularization.Nominal = 'model';

Оцените регуляризованную модель серого ящика.

sys = greyest(motorData, mi, opt);

Расширенные возможности

Введенный в R2012a