Структурированная параметризация позволяет вам исключить определенные параметры из оценки путем установки этих параметров на определенные значения. Этот подход полезен, когда можно вывести матрицы пространства состояний из физических принципов и обеспечить начальные значения параметров на основе физического понимания. Можно использовать этот подход, чтобы обнаружить то, что происходит, если вы фиксируете определенные значения параметров или если вы освобождаете определенные параметры.
Существует два этапа к структурированной процедуре оценки:
Укажите, что структура модели в пространстве состояний, как описано в Задают Структуру Модели в пространстве состояний
Оцените свободные параметры модели, как описано в Оценочных Моделях в пространстве состояний в Командной строке
Этот подход отличается от оценки моделей со свободной и канонической параметризацией, где не необходимо задать начальные значения параметров перед оценкой. Для свободной параметризации нет никакой структуры, чтобы задать, потому что она принята, чтобы быть неизвестной. Для канонической параметризации структура фиксируется к определенной форме.
Чтобы оценить структурированные модели в пространстве состояний в приложении 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®.
Вы оцениваете модели в пространстве состояний со структурированной параметризацией, когда вы знаете некоторые параметры линейной системы и потребности оценить другие. Эти модели поэтому похожи на модели серого ящика. Однако в этом тулбоксе, "серое поле, моделируя" терминологию используется только при обращении к idgrey
и idnlgrey
модели. В этих моделях можно задать полные линейные или нелинейные модели со сложными отношениями между неизвестными параметрами.
Если у вас есть независимые неизвестные элементы матрицы в линейной структуре модели в пространстве состояний, то это легче и более быстро, чтобы использовать модели в пространстве состояний со структурированной параметризацией. Для внушительных зависимостей, или использовать более комплексные формы параметризации, используют idgrey
модель и связанный greyest
средство оценки. Для получения дополнительной информации смотрите Оценку Модели Серого ящика.
Если вы хотите включить предварительные знания относительно состояния и вывести ковариации в процесс оценки, используйте idgrey
модель, чтобы идентифицировать вашу систему с помощью общей структуры модели в пространстве состояний. Для получения дополнительной информации смотрите Модели в пространстве состояний Идентификации с Отдельными Описаниями Шума Процесса и Измерения.
В этом примере показано, как оценить неизвестные параметры модели дискретного времени.
В этом примере вы оцениваете в следующей модели дискретного времени:
Предположим что номинальная стоимость неизвестных параметров ( ) -1
, 2, 3
, 4
, и
5
, соответственно.
Структура модели в пространстве состояний дискретного времени задана следующим уравнением:
Создайте матрицы параметра и инициализируйте значения параметров с помощью номинальных значений параметров.
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
матрицы.
В этом примере показано, как оценить неизвестные параметры модели непрерывного времени.
В этом примере вы оцениваете в следующей модели непрерывного времени:
Это уравнение представляет электрический двигатель, где угловое положение вала двигателя, и скорость вращения. Параметр обратная постоянная времени двигателя, и статическое усиление от входа до скорости вращения.
Двигатель в покое в t=0
, но его угловое положение неизвестно. Предположим, что аппроксимированная номинальная стоимость неизвестных параметров и .
Отклонением ошибок в измерении положения является 0.01
, и отклонением в измерениях скорости вращения является 0.1
. Для получения дополнительной информации об этом примере, смотрите раздел по моделям в пространстве состояний в System Identification: Теория для Пользователя, Второго Выпуска, Lennart Ljung, PTR Prentice Hall, 1999.
Структура модели в пространстве состояний непрерывного времени задана следующим уравнением:
Создайте матрицы параметра и инициализируйте значения параметров с помощью номинальных значений параметров.
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);