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

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

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

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

  1. Укажите, что структура модели в пространстве состояний, как описано в Задают Структуру Модели в пространстве состояний

  2. Оцените свободные параметры модели, как описано в Оценочных Моделях в пространстве состояний в Командной строке

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

Примечание

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

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

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

  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)
    

    создает структуру пространства состояний дискретного времени, где ABCD, и 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 оценить модель, как описано в Оценочных Моделях в пространстве состояний в Командной строке.

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

Модели серого ящика Подобно моделям в пространстве состояний со структурированной параметризацией?

Вы оцениваете модели в пространстве состояний со структурированной параметризацией, когда вы знаете некоторые параметры линейной системы и потребности оценить другие. Эти модели поэтому похожи на модели серого ящика. Однако в этом тулбоксе, "серое поле, моделируя" терминологию используется только при обращении к 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 объект. Данные могут быть временным интервалом или данными частотной области. Итеративный поиск запускается с номинальной стоимости в ABC, 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 . Для получения дополнительной информации об этом примере, смотрите раздел по моделям в пространстве состояний в System Identification: Теория для Пользователя, Второго Выпуска, Lennart Ljung, PTR Prentice Hall, 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 имя свойства объекта, этот пример использует AB, и C вместо FG, и 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);