В этом примере показан рабочий процесс получения и использования расчетных начальных условий при моделировании моделей для проверки производительности модели на соответствие измеренным данным.
Используйте начальные условия (IC), когда требуется смоделировать модель для проверки производительности модели путем сравнения смоделированного отклика с измеренными данными. Если данные измерений соответствуют системе, которая не начинается в состоянии покоя, моделирование, предполагающее начальную точку покоя, приводит к несоответствию. Смоделированные и измеренные ответы не согласуются в начале моделирования.
Для моделей с пространством состояний вектор начального состояния достаточен для описания начальных условий. Для других моделей LTI, initialCondition объект позволяет представить ИС в виде свободной реакции модели на исходные условия. Это представление находится в форме state-space, как показано в следующем уравнении:
-1X0
Здесь ) является свободным ответом, который initialCondition А и представляют собой A и C матрицы формы state-space модели. - соответствующий вектор начального состояния. Свободный ответ не включает B и D матрицы, потому что IC свободный отклик не зависит от входных сигналов. Хотя initialCondition объект упаковывает форму state-space, информацию можно использовать для моделирования свободного ответа для любой системы LTI. Программное обеспечение моделирования вычисляет свободные и принудительные ответы отдельно и затем добавляет их вместе для получения полного ответа.
Загрузите данные и разбейте их на наборы данных оценки и проверки. В этом примере разделение происходит там, где выходные данные имеют заметно ненулевую начальную точку.
load iddata2 z2 z2e = z2(10:210); z2v = z2(210:400); plot(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')

Смоделированные и измеренные ответы не согласуются в начале моделирования.
Соединиться 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')

Ответы теперь более тесно согласуются в начале моделирования.
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')

Смоделированные и измеренные ответы имеют хорошее согласие в начале моделирования.
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')

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')

При использовании 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')

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')

Использование построенного initialCondition объект ic_ss2 производит аналогичный ответ на смоделированные ответы, которые используют непосредственно оцененные initialCondition объекты.
compare | idpoly | idss | initialCondition | sim | simOptions | ssest | tfest