Структурированная параметризация позволяет вам исключить определенные параметры из оценки путем установки этих параметров на определенные значения. Этот подход полезен, когда можно вывести матрицы пространства состояний от физических принципов и обеспечить начальные значения параметров на основе физического понимания. Можно использовать этот подход, чтобы обнаружить то, что происходит, если вы фиксируете определенные значения параметров или если вы освобождаете определенные параметры.
Существует два этапа к структурированной процедуре оценки:
Укажите, что структура модели в пространстве состояний, как описано в Задают Структуру Модели в пространстве состояний
Оцените свободные параметры модели, как описано в Оценочных Моделях в пространстве состояний в Командной строке
Этот подход отличается от оценки моделей со свободной и канонической параметризацией, где не необходимо задать начальные значения параметров перед оценкой. Для свободной параметризации нет никакой структуры, чтобы задать, потому что она принята, чтобы быть неизвестной. Для канонической параметризации структура фиксируется к определенной форме.
Чтобы оценить структурированные модели в пространстве состояний в приложении 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);