самый серый

Линейная оценка модели серого поля

Синтаксис

sys = greyest(data,init_sys)
sys = greyest(data,init_sys,opt)

Описание

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

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

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

data

Данные об оценке.

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

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

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

  • Записанные данные о частотной характеристике (frd или 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) того, как хорошо ответ модели соответствует данным об оценке, выраженным как процент.

LossFcn

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

MSE

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

FPE

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

AIC

Необработанная мера по Критериям информации о Akaike (AIC) образцового качества.

AICc

Маленький объем выборки исправил AIC.

nAIC

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

BIC

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

Parameters

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

OptionsUsed

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

RandState

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

DataUsed

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

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

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

Type

Тип данных.

Length

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

Ts

'SampleTime' .

InterSample

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

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

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

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

InputOffset

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

OutputOffset

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

Termination

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

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

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

Iterations

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

FirstOrderOptimality

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

FcnCount

Число раз целевая функция было названо.

UpdateNorm

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

LastImprovement

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

Algorithm

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

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

Для получения дополнительной информации об использовании 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