exponenta event banner

Применение начальных условий при моделировании идентифицированных линейных моделей

В этом примере показан рабочий процесс получения и использования расчетных начальных условий при моделировании моделей для проверки производительности модели на соответствие измеренным данным.

Используйте начальные условия (IC), когда требуется смоделировать модель для проверки производительности модели путем сравнения смоделированного отклика с измеренными данными. Если данные измерений соответствуют системе, которая не начинается в состоянии покоя, моделирование, предполагающее начальную точку покоя, приводит к несоответствию. Смоделированные и измеренные ответы не согласуются в начале моделирования.

Для моделей с пространством состояний вектор начального состояния достаточен для описания начальных условий. Для других моделей LTI, initialCondition объект позволяет представить ИС в виде свободной реакции модели на исходные условия. Это представление находится в форме state-space, как показано в следующем уравнении:

G (s) = C (sI-A) -1X0

Здесь G (s) является свободным ответом, который initialCondition А и С представляют собой A и C матрицы формы state-space модели. X0 - соответствующий вектор начального состояния. Свободный ответ не включает B и D матрицы, потому что IC свободный отклик не зависит от входных сигналов. Хотя initialCondition объект упаковывает форму state-space, информацию можно использовать для моделирования свободного ответа для любой системы LTI. Программное обеспечение моделирования вычисляет свободные и принудительные ответы отдельно и затем добавляет их вместе для получения полного ответа.

Подготовка данных

Загрузите данные и разбейте их на наборы данных оценки и проверки. В этом примере разделение происходит там, где выходные данные имеют заметно ненулевую начальную точку.

load iddata2 z2
z2e = z2(10:210);
z2v = z2(210:400);
plot(z2e,z2v)

Figure contains 2 axes. Axes 1 with title y1 contains 2 objects of type line. These objects represent z2e, z2v. Axes 2 with title u1 contains 2 objects of type line. These objects represent z2e, z2v.

Просмотрите первую выходную выборку для каждого набора данных.

z2e.y(1)
ans = -5.9588
z2v.y(1)
ans = -9.2141

Модель функции передачи оценки

Используя данные оценки, оцените модель функции переноса второго порядка и верните исходное условие. ic. Показ ic.

np = 2;
nz = 1;
[sys_tf,ic] = tfest(z2e,np,nz);
ic
ic = 
  initialCondition with properties:

     A: [2x2 double]
    X0: [2x1 double]
     C: [-1.6158 5.1969]
    Ts: 0

ic представляет свободный отклик модели передаточной функции в форме state-space на исходное условие.

A = ic.A
A = 2×2

   -3.4145   -5.6635
    4.0000         0

C = ic.C
C = 1×2

   -1.6158    5.1969

X0 содержит вектор начального состояния.

X0 = ic.X0
X0 = 2×1

   -0.5053
   -1.2941

Моделирование модели

Моделирование модели. Во-первых, в качестве привязки смоделировать модель без включения ic. Постройте график смоделированного ответа с данными оценки.

y_no_ic = sim(sys_tf,z2e);
plot(y_no_ic,z2e)
legend('Model Response','Output Data')
title('Transfer Function Model - No IC Specification')

Figure contains 2 axes. Axes 1 with title y1 contains 2 objects of type line. These objects represent Model Response, Output Data. Axes 2 with title u1 contains an object of type line. This object represents Output Data.

Смоделированные и измеренные ответы не согласуются в начале моделирования.

Соединиться ic. Для этого сначала инициализируйте opt в набор опций simOptions. Определить ic в качестве 'InitialCondition' установка. Моделирование модели и печать результатов.

opt = simOptions;
opt.InitialCondition = ic;
y_ic = sim(sys_tf,z2e,opt);
plot(y_ic,z2e)
legend('Model Response','Output Data')
title('Transfer Function Model - ICs Specified')

Figure contains 2 axes. Axes 1 with title y1 contains 2 objects of type line. These objects represent Model Response, Output Data. Axes 2 with title u1 contains an object of type line. This object represents Output Data.

Ответы теперь более тесно согласуются в начале моделирования.

Получение ИС для данных проверки

ic представляет ИС только для набора оценочных данных. Если необходимо выполнить моделирование с использованием входных данных проверки и сравнить результаты с выходными данными проверки, необходимо получить IC для набора данных проверки. Для этого используйте compare. Вы можете использовать compare для оценки ИС для любой комбинации модели и данных измерений.

[yv,fitv,icv] = compare(z2v,sys_tf);
icv
icv = 
  initialCondition with properties:

     A: [2x2 double]
    X0: [2x1 double]
     C: [-1.6158 5.1969]
    Ts: 0

Отображение A, C, и X0 свойства icv.

Av = icv.A
Av = 2×2

   -3.4145   -5.6635
    4.0000         0

Cv = icv.C
Cv = 1×2

   -1.6158    5.1969

X0v = icv.X0
X0v = 2×1

    0.4512
   -1.5068

Для этого случая A и C матрицы, представляющие модель свободного ответа, идентичны ic.A и ic.C значения в исходной оценке. Однако вектор начального состояния X0v отличается от ic.X0.

Определить icv как 'InitialCondition' установка в opt и смоделировать модель с использованием данных проверки. Постройте график смоделированных и измеренных откликов.

opt.InitialCondition = icv;
y_ic = sim(sys_tf,z2v,opt);
plot(y_ic(:,:,[]),z2v(:,:,[]))
legend('Model Response','Output Data')
title('Transfer Function Model Response For Validation Data')

Figure contains an axes. The axes with title y1 contains 2 objects of type line. These objects represent Model Response, Output Data.

Смоделированные и измеренные ответы имеют хорошее согласие в начале моделирования.

Применение ИС к моделированию преобразованной модели

IC можно применить при преобразовании модели в другую форму.

Новообращенный sys_tf в idpoly модель. Моделирование преобразованной модели с сохранением текущей SimOptions 'InitialCondition' установка, icv, в opt.

sys_poly = idpoly(sys_tf);
y_poly = sim(sys_poly,z2v,opt);
plot(y_poly(:,:,[]),y_ic(:,:,[]),z2v(:,:,[]))
legend('idpoly Model Response','idtf Model Response','Output Data')
title('Converted Polynomial Model')

Figure contains an axes. The axes with title y1 contains 3 objects of type line. These objects represent idpoly Model Response, idtf Model Response, Output Data.

sys_tf и sys_poly ответы выглядят идентичными.

Применение ИС к моделированию модели состояния-пространства

Модели state-space могут использовать начальные условия, представленные либо одним числовым вектором начального состояния, либо initialCondition объект.

При преобразовании sys_tf в idss модель, вы можете снова использовать icv путем сохранения icv установка в opt.

sys_ss = idss(sys_tf);
y_ss = sim(sys_ss,z2v,opt);
plot(y_ss(:,:,[]),z2v(:,:,[]))
legend('Model Response','Output Data')
title('Converted State-Space Model')

Figure contains an axes. The axes with title y1 contains 2 objects of type line. These objects represent Model Response, Output Data.

При использовании compare или функцию оценки состояния-пространства, такую как ssestфункция возвращает вектор начального состояния x0. Оценка модели «состояние-пространство» sys_ss2 использование z2e и использовать compare для получения ИС, соответствующих z2v.

sys_ss2 = ssest(z2e,2);
[yvss,fitvss,x0] = compare(z2v,sys_ss2);
x0
x0 = 2×1

   -0.1061
    0.0097

x0 - числовой вектор. Определить x0 в качестве 'InitialCondition' установка в opt и имитировать реакцию.

opt.InitialCondition = x0;
y_ss2 = sim(sys_ss2,z2v,opt);
plot(y_ss2(:,:,[]),z2v(:,:,[]))
legend('Model Response','Output Data')
title('State-Space Model Simulated with Initial State Vector')

Figure contains an axes. The axes with title y1 contains 2 objects of type line. These objects represent Model Response, Output Data.

Преобразовать начальный вектор состояния-пространства в initialCondition объект

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

Извлеките и просмотрите A, C, и Ts свойства из sys_ss2.

As = sys_ss2.A
As = 2×2

   -1.7643   -3.7716
    5.2918   -1.7327

Cs = sys_ss2.C
Cs = 1×2

   82.9765   25.5146

Tss = sys_ss2.Ts
Tss = 0

A и C матрицы, которые оцениваются с использованием ssest имеют значения, отличные от значений A и C матрицы, оцененные в icv использование tfest. Существует бесконечно много представлений состояния-пространства данной линейной модели. Две пары матриц вместе со связанными векторами начального состояния эквивалентны и дают одинаковый свободный отклик.

Создать initialCondition объект ic_ss2 использование sys_ss2 свойства модели и вектор начального состояния x0 вы получили, когда использовали compare.

ic_ss2 = initialCondition(As,x0,Cs,Tss)
ic_ss2 = 
  initialCondition with properties:

     A: [2x2 double]
    X0: [2x1 double]
     C: [82.9765 25.5146]
    Ts: 0

Новообращенный sys_ss2 в модель передаточной функции и смоделировать преобразованную модель с помощью ic_ss2 в качестве 'InitialCondition' установка.

sys_tf2 = idtf(sys_ss2);
opt.InitialCondition = ic_ss2;
y_tf2 = sim(sys_tf2,z2v,opt);
plot(y_tf2(:,:,[]),z2v(:,:,[]))
legend('Model Response','Output Data')
title('Transfer Function Model Converted from State-Space Model')

Figure contains an axes. The axes with title y1 contains 2 objects of type line. These objects represent Model Response, Output Data.

Использование построенного initialCondition объект ic_ss2 производит аналогичный ответ на смоделированные ответы, которые используют непосредственно оцененные initialCondition объекты.

См. также

| | | | | | |

Связанные темы