Можно оценить линейное дискретное время и непрерывно-разовые модели серого поля для произвольного полного дифференциала или разностных уравнений с помощью одно вывода и нескольких - выходные данные временного интервала или данные timeseries (только для вывода).
Необходимо представлять системные уравнения в форме пространства состояний. Модели в пространстве состояний используют переменные состояния x (t), чтобы описать систему как набор дифференциальных уравнений первого порядка, а не одним или несколькими дифференциальными уравнениями n-го порядка.
Первый шаг в моделировании серого поля должен записать функцию, которая возвращает матрицы пространства состояний как функцию пользовательских параметров и информации о модели.
Используйте следующий формат, чтобы реализовать линейную модель серого поля в файле:
[A,B,C,D] = myfunc(par1,par2,...,parN,Ts,aux1,aux2,...)
где выходными аргументами являются матрицы пространства состояний, и myfunc
является именем файла. par1,par2,...,parN
является параметрами N модели. Каждая запись может быть скаляром, вектором или матрицей. Ts
является шагом расчета. aux1,aux2,...
является дополнительными входными параметрами что использование myfunc
, чтобы вычислить матрицы пространства состояний в дополнение к параметрам и шагу расчета. aux
содержит вспомогательные переменные в вашей системе. Вы используете вспомогательные переменные, чтобы отличаться системные параметры во входе к функции и постараться не редактировать файл.
Можно записать содержимое myfunc
, чтобы параметризовать или непрерывно-разовое, или модель в пространстве состояний дискретного времени или обоих. Когда вы создаете линейную модель серого поля использование myfunc
, можно задать природу выходных аргументов myfunc
. Непрерывно-разовая модель в пространстве состояний имеет форму:
В непрерывно-разовом описание пространства состояний имеет следующую форму:
где, A, B, C и D являются матрицами, которые параметризованы параметрами par1,par2,...,parN
. Шумовой матричный K и вектор начального состояния, x0, не параметризованы myfunc
. В некоторых приложениях можно хотеть выразить K и x0 как количества, которые параметризованы выбранными параметрами, так же, как A, B, C и матрицы D. Чтобы обработать такие случаи, можно записать файл ОДУ, myfunc
, чтобы возвратить K и x0 как дополнительные выходные аргументы:
[A,B,C,D,K,x0] = myfunc(par1,par2,...,parN,Ts,aux1,aux2,...)
par1,par2,...,parN
. Чтобы сконфигурировать обработку начальных состояний, x0 и компонента воздействия, K, во время оценки, использует набор опции greyestOptions
.В дискретное время описание пространства состояний имеет подобную форму:
где, A, B, C и D являются теперь матрицами дискретного времени, которые параметризованы параметрами par1,par2,...,parN
. K и x0 непосредственно не параметризованы, но могут быть оценены при необходимости путем конфигурирования соответствующих опций оценки.
После создания функции или файла MEX с вашей образцовой структурой, необходимо задать объект модели idgrey
.
Этот пример показывает, как представлять структуру следующей непрерывно-разовой модели:
Это уравнение представляет электрический двигатель, где угловое положение вала двигателя и является угловой скоростью. Параметр является обратной временной константой двигателя и является статическим усилением от входа до угловой скорости.
Двигатель в покое в t
= 0, но его угловое положение неизвестно. Предположим, что аппроксимированная номинальная стоимость неизвестных параметров, и. Для получения дополнительной информации об этом примере, смотрите раздел по моделям в пространстве состояний в System Identification: Теория для Пользователя, Второго Выпуска, Lennart Ljung, PTR Prentice Hall, 1999.
Непрерывно-разовая структура модели в пространстве состояний задана следующим уравнением:
Если вы хотите оценить, что та же модель с помощью структурированного представления пространства состояний, видит Оценку Структурированные Непрерывно-разовые Модели в пространстве состояний.
Подготовить эту модель к оценке:
Создайте следующий файл, чтобы представлять образцовую структуру в этом примере:
function [A,B,C,D,K,x0] = myfunc(par,T)
A = [0 1; 0 par(1)];
B = [0;par(2)];
C = eye(2);
D = zeros(2,1);
K = zeros(2,2);
x0 = [par(3);0];
Сохраните файл, таким образом, что это находится на пути поиска файлов MATLAB®.
Используйте следующий синтаксис, чтобы задать объект модели idgrey
на основе файла myfunc
:
par = [-1; 0.25; 0]; aux = {}; T = 0; m = idgrey('myfunc',par,'c',aux,T);
где par
представляет вектор всех пользовательских параметров и содержит их номинальные (начальные) значения. В этом примере все параметры со скалярным знаком сгруппированы в векторе par
. Параметры со скалярным знаком, возможно, также были обработаны как независимые входные параметры к функции ОДУ myfunc
. 'c'
указывает, что базовая параметризация находится в непрерывное время. aux
представляет дополнительные аргументы. Когда myfunc
не имеет никаких дополнительных аргументов, использует aux = {}
. T
задает шаг расчета; T = 0
указывает на непрерывно-разовую модель.
Загрузите данные об оценке.
load(fullfile(matlabroot,'toolbox','ident','iddemos','data','dcmotordata')); data = iddata(y,u,0.1);
Используйте greyest
, чтобы оценить значения параметров серого поля:
m_est = greyest(data,m);
где data
является данными об оценке, и m
является моделью idgrey
инициализации оценки. m_est
является предполагаемой моделью idgrey
.