Структурированная параметризация позволяет исключить определенные параметры из оценки, установив для них определенные значения. Этот подход полезен, когда можно вывести матрицы состояния-пространства из физических принципов и предоставить начальные значения параметров на основе физического понимания. Этот подход можно использовать для определения того, что происходит, если исправить определенные значения параметров или освободить определенные параметры.
Структурированная процедура оценки состоит из двух этапов:
Укажите структуру модели «состояние-пространство», как описано в разделе «Задание структуры модели» Состояние-пространство «»
Оценка параметров свободной модели, как описано в разделе Оценка моделей состояния и пространства в командной строке
Этот подход отличается от оценки моделей со свободными и каноническими параметризациями, где нет необходимости задавать начальные значения параметров перед оценкой. Для свободной параметризации нет структуры для указания, так как предполагается, что она неизвестна. Для канонической параметризации структура фиксируется к определенной форме.
Примечание
Чтобы оценить структурированные модели пространства состояния в приложении System Identification, определите соответствующие структуры моделей в командной строке и импортируйте их в приложение System Identification.
Чтобы задать структуру модели «состояние-пространство», выполните следующие действия.
Использовать idss для создания модели пространства состояний. Например:
A = [0 1; 0 -1];
B = [0; 0.28];
C = eye(2);
D = zeros(2,1);
m = idss(A,B,C,D,K,'Ts',T)
создает дискретно-временную структуру состояния-пространства, где A, B, C, D, и K укажите начальные значения для свободных параметров. T - время выборки.
Используйте Structure свойство модели, чтобы указать, какие параметры следует оценить, а какие установить в определенные значения.
Например, если требуется исправить A(1,2)=A(2,1)=0, использовать:
m.Structure.A.Value(1,2) = 0; m.Structure.A.Value(2,1) = 0; m.Structure.A.Free(1,2) = false; m.Structure.A.Free(2,1) = false;
Алгоритм оценки оценивает только параметры в A для которых m.Structure.A.Free является true.
По возможности используйте физическое понимание для инициализации параметров алгоритма итеративного поиска. Поскольку численная минимизация может застрять в локальном минимуме, попробуйте несколько различных значений инициализации для параметров. Для случайной инициализации используйте init. Если структура модели содержит параметры с различными порядками величины, попробуйте масштабировать переменные так, чтобы все параметры были приблизительно одинаковыми по величине.
В качестве альтернативы, чтобы быстро настроить параметризацию и оценить динамику прохождения и возмущений, используйте ssform.
Использовать ssest для оценки модели, как описано в разделе Оценка моделей состояния и пространства в командной строке.
Итеративный поиск вычисляет градиенты ошибок прогнозирования относительно параметров с использованием численного дифференцирования. Размер шага определяется параметром nuderst команда. Размер шага по умолчанию равен 10-4 абсолютному значению параметра или 10-7, в зависимости от того, что больше. Чтобы указать другой размер шага, отредактируйте nuderst Файл MATLAB ® .
Модели состояний и пространств оцениваются со структурированной параметризацией, если известны некоторые параметры линейной системы и необходимо оценить другие. Поэтому эти модели аналогичны серым моделям. Однако в этом инструментарии терминология «grey box modeling» используется только при ссылке на idgrey и idnlgrey модели. В этих моделях можно указать полные линейные или нелинейные модели со сложными связями между неизвестными параметрами.
Если в структуре модели линейного состояния-пространства имеются независимые неизвестные элементы матрицы, то использовать модели состояния-пространства со структурированными параметризациями проще и быстрее. Для навязывания зависимостей или использования более сложных форм параметризации используйте idgrey модель и связанные с ней greyest оценщик. Дополнительные сведения см. в разделе Оценка модели «серый ящик».
Если вы хотите включить предыдущие знания о состоянии и выходных ковариациях в процесс оценки, используйте idgrey для идентификации системы с использованием общей структуры модели состояния-пространства. Дополнительные сведения см. в разделе Идентификация моделей пространства состояния с отдельными описаниями процессов и измеряемых шумов.
В этом примере показано, как оценить неизвестные параметры дискретно-временной модели.
В этом примере вы оцениваете следующей дискретно-временной модели:
] x (t) + e (t) x (0) = [00]
Предположим, что номинальные значения неизвестных параметров (start5) равны-1, 2, 3, 4, и5соответственно.
Структура модели состояния-пространства дискретного времени определяется следующим уравнением:
Du (kT) + e (kT) x (0) = x0
Создайте матрицы параметров и инициализируйте значения параметров с помощью номинальных значений параметров.
A = [1,-1;0,1]; B = [2;3]; C = [1,0]; D = 0; K = [4;5];
Создайте объект модели state-space.
m = idss(A,B,C,D,K);
Укажите значения параметров в матрицах структуры, которые не требуется оценивать.
S = m.Structure; S.A.Free(1,1) = false; S.A.Free(2,:) = false; S.C.Free = false; m.Structure = S;
D инициализируется по умолчанию как фиксированное значение, и K и B инициализируются как свободные значения. Предположим, что нужно зафиксировать начальные состояния до известных нулевых значений. Чтобы применить это, настройте InitialState вариант оценки.
opt = ssestOptions;
opt.InitialState = 'zero';Данные оценки нагрузки.
load iddata1 z1;
Оцените структуру модели.
m = ssest(z1,m,opt);
где z1 является именем iddata объект. Данные могут быть данными временной или частотной области. Итеративный поиск начинается с номинальных значений в A, B, C, D, и K матрицы.
В этом примере показано, как оценить неизвестные параметры модели непрерывного времени.
В этом примере Вы оцениваете в следующей непрерывно-разовой модели:
+ e (t) x (0) = [start30]
Это уравнение представляет электродвигатель, где (t) - угловое положение вала электродвигателя, = x2 (t) - угловая скорость. Параметр -start1 представляет собой обратную постоянную времени а start2/start1 представляет собой статический коэффициент усиления от входного до угловой скорости.
Двигатель находится в состоянии покоя t=0 , но его угловое положение неизвестно. Предположим, что аппроксимированные номинальные значения неизвестных параметров являются,, ((-1 0,25.
Дисперсией ошибок в измерении положения является 0.01 и дисперсией в измерениях угловой скорости является 0.1 . Дополнительные сведения об этом примере см. в разделе о моделях пространства состояний в System Identification: Theory for the User, Second Edition, by Lennart Ljung, Prentice Hall PTR, 1999.
Структура модели состояния-пространства непрерывного времени определяется следующим уравнением:
Du (t) + w (t) x (0) = x0
Создайте матрицы параметров и инициализируйте значения параметров с помощью номинальных значений параметров.
A = [0 1;0 -1]; B = [0;0.25]; C = eye(2); D = [0;0]; K = zeros(2,2); x0 = [0;0];
Матрицы соответствуют представлению непрерывного времени. Однако, чтобы соответствовать idss имя свойства объекта, в этом примере используется A, B, и C вместо F, G, и H.
Создайте объект модели непрерывного состояния пространства.
m = idss(A,B,C,D,K,'Ts',0);Укажите значения параметров в матрицах структуры, которые не требуется оценивать.
S = m.Structure; S.A.Free(1,:) = false; S.A.Free(2,1) = false; S.B.Free(1) = false; S.C.Free = false; S.D.Free = false; S.K.Free = false; m.Structure = S; m.NoiseVariance = [0.01 0; 0 0.1];
Начальное состояние частично неизвестно. Используйте InitialState вариант ssestOptions набор опций для конфигурирования оценочного поведения X0.
opt = ssestOptions; opt.InitialState = idpar(x0); opt.InitialState.Free(2) = false;
Оцените структуру модели.
load(fullfile(matlabroot,'toolbox','ident','iddemos','data','dcmotordata')); z = iddata(y,u,0.1); m = ssest(z,m,opt);
Итеративный поиск минимума инициализируется параметрами в номинальной модели. m . Модель непрерывного времени отбирается с использованием того же времени выборки, что и данные во время оценки.
Моделирование этой системы с использованием времени выборки T=0.1 для ввода u и реализация шума e.
e = randn(300,2); u1 = idinput(300); simdat = iddata([],u1,'Ts',0.1); simopt = simOptions('AddNoise',true,'NoiseData',e); y1 = sim(m,simdat,simopt);
Непрерывная система отбирается с использованием Ts=0.1 для целей моделирования. Шумовая последовательность масштабируется в соответствии с матрицей m.NoiseVariance .
Если вы обнаружите, что двигатель изначально не находился в состоянии покоя, вы можете оценить ), установив второй элемент InitialState параметр должен быть свободным.
opt.InitialState.Free(2) = true; m_new = ssest(z,m,opt);