Оценка моделей в пространстве состояний с структурированной параметризацией

Что такое структурированная параметризация?

Структурированная параметризация позволяет вам исключить конкретные параметры из оценки, установив эти параметры к конкретным значениям. Этот подход полезен, когда можно вывести матрицы пространства состояний из физических принципов и предоставить начальные значения параметров на основе физического понимания. Можно использовать этот подход, чтобы узнать, что происходит, если вы фиксируете определенные значения параметров или освобождаете определенные параметры.

Существует два этапа структурированной процедуры оценки:

  1. Задайте структуру модели пространства состояний, как описано в Задайте структуру модели пространства состояний

  2. Оцените параметры свободной модели, как описано в Estimate State-Space Models в командной строке

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

Примечание

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

Задайте структуру модели пространства состояний

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

  1. Использовать 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 - шаг расчета.

  2. Используйте 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.

  3. Использовать ssest для оценки модели, как описано в Estimate State-Space Models at the Командная Строка.

Итерационный поиск вычисляет градиенты ошибок предсказания относительно параметров, используя числовую дифференциацию. Размер шага задается параметром nuderst команда. Размер шага по умолчанию равен 10–4 умножить абсолютное значение параметра или равное 10–7, в зависимости от того, какая из них больше. Чтобы задать другой размер шага, отредактируйте nuderst MATLAB® файл.

Являются ли модели Grey-Box аналогичными моделям в пространстве состояний со структурированной параметризацией?

Вы оцениваете модели в пространстве состояний со структурированной параметризацией, когда знаете некоторые параметры линейной системы и должны оценить другие. Поэтому эти модели аналогичны серому ящику моделям. Однако в этом тулбоксе терминология «моделирование серого ящика» используется только при обращении к idgrey и idnlgrey модели. В этих моделях можно задать полные линейные или нелинейные модели с сложными отношениями между неизвестными параметрами.

Если у вас есть независимые неизвестные элементы матрицы в структуре модели линейного пространства состояний, то легче и быстрее использовать модели пространства состояний со структурированными параметризациями. Для наложения зависимостей или использования более сложных форм параметризации используйте idgrey модель и связанный greyest оценщик. Для получения дополнительной информации см. «Оценка модели серого ящика».

Если вы хотите включить предыдущие знания о состоянии и выходных ковариациях в процесс оценки, используйте idgrey модель для идентификации системы с помощью общей структуры модели пространства состояний. Для получения дополнительной информации смотрите Идентификация моделей пространства состояний с отдельными описаниями шума процесса и измерения.

Оценка структурированных моделей пространства состояний в дискретном времени

Этот пример показывает, как оценить неизвестные параметры модели в дискретном времени.

В этом примере вы оцениваете θ1,θ2,θ3,θ4,θ5 в следующей модели в дискретном времени:

x(t+1)=[1θ101]x(t)+[θ2θ3]u(t)+[θ4θ5]e(t)y(t)=[10]x(t)+e(t)x(0)=[00]

Предположим, что номинальные значения неизвестных параметров ( θ1,θ2,θ3,θ4,θ5) являются -1, 2, 3, 4, и 5, соответственно.

Структура модели пространства состояний в дискретном времени определяется следующим уравнением:

x(kT+T)=Ax(kT)+Bu(kT)+Ke(kT)y(kT)=Cx(kT)+Du(kT)+e(kT)x(0)=x0

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

A = [1,-1;0,1];
B = [2;3];
C = [1,0];
D = 0;
K = [4;5];

Создайте объект модели пространства состояний.

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 матрицы.

Оценка структурированных моделей пространства состояний в непрерывном времени

Этот пример показывает, как оценить неизвестные параметры модели в непрерывном времени.

В этом примере вы оцениваете θ1,θ2,θ3 в следующей модели в непрерывном времени:

x˙(t)=[010θ1]x(t)+[0θ2]u(t)y(t)=[1001]x(t)+e(t)x(0)=[θ30]

Это уравнение представляет электрический двигатель, где y1(t)=x1(t) - угловое положение вала мотора, и y2(t)=x2(t) - скорость вращения. Параметр -θ1 является обратной временной константой двигателя, и θ2 / θ1 - статический коэффициент усиления от входа до скорости вращения.

Двигатель находится в состоянии покоя в t=0 , но его угловое положение θ3 неизвестно. Предположим, что приблизительные номинальные значения неизвестных параметров θ1=-1 и θ2=0.25.

Отклонение ошибок в измерении положения 0.01 , и отклонение в измерениях скорости вращения 0.1 . Для получения дополнительной информации об этом примере смотрите раздел о моделях пространства состояний в Система Идентификации: Theory for the User, Second Edition, Lennart Ljung, Prentice Hall PTR, 1999.

Структура модели пространства состояний в непрерывном времени определяется следующим уравнением:

x˙(t)=Fx(t)+Gu(t)+Kw(t)y(t)=Hx(t)+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 .

Если вы обнаружите, что двигатель изначально не находился в покое, можно оценить x2(0) путем установки второго элемента InitialState параметр, чтобы быть свободным.

opt.InitialState.Free(2) = true;
m_new = ssest(z,m,opt);