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

Команда оценки используется.

InitialState

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

  • 'model' — Начальное состояние параметрируется файлом ОДУ, используемым idgrey модель.

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

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

  • 'backcast' — Начальное состояние оценивается с помощью лучшего метода наименьших квадратов.

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

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

DisturbanceModel

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

  • 'model' — значения K параметрируются файлом ОДУ, используемым idgrey модель.

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

  • 'none'K фиксируется, чтобы обнулить.

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

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

Fit

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

Поле Описание
FitPercent

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

LossFcn

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

MSE

Мера по среднеквадратической ошибке (MSE) того, как хорошо ответ модели соответствует данным об оценке.

FPE

Итоговая ошибка предсказания для модели.

AIC

Необработанная мера по Критериям информации о Akaike (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

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

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 объект, содержащий результаты измерений для выходных параметров, углового положения, скорости вращения. Это также содержит вход, ведущее напряжение.

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

Для двигателя постоянного тока выберите угловое положение (рад) и скорость вращения (rad/s) как выходные параметры и ведущее напряжение (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)

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