initialCondition

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

Описание

Система координат initialCondition объект инкапсулирует информацию о начальных условиях для линейной инвариантной по времени модели (LTI). Объект обобщает числовое векторное представление начальных состояний модели пространства состояний так, чтобы информация применялась к линейным моделям любой формы - передаточным функциям, полиномиальным моделям или моделям пространства состояний.

Можно оценить и извлечь начальные условия, когда вы идентифицируете линейную модель с помощью команд, таких как tfest или сравните реакцию модели к измеренным входным/выходным данным используя compare. Программа оценивает начальное значение условия путем минимизации ошибки симуляции или предсказания относительно измеренных выходных данных. Затем можно применить эти начальные условия в последующей симуляции, используя такие команды, как sim или predict, чтобы подтвердить производительность модели относительно тех же данных измерений. Используйте initialCondition команда для создания initialCondition объект из спецификации модели пространства состояний или из любой модели LTI свободного отклика.

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

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

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

  3. Добавьте принудительный ответ и свободный ответ вместе, чтобы сформировать общий отклик системы.

Рисунок иллюстрирует этот процесс.

The top plot shows the forced response. The middle plot shows the free response. The bottom plot shows the total model response that sums the first two plots

Для непрерывных систем (Ts = 0) G свободного отклика (s) для вектора начального состояния x0 является

G(s)=C(sIA)1x0

Здесь C эквивалентно матрице измерений пространства состояний C а A эквивалентно матрице состояний A.

Для дискретных систем (Ts > 0) свободный G отклика (z) является

G(z)=zC(zIA)1x0

The initialCondition объект представляет свободный ответ в форме пространства состояний. Объект является структурой со свойствами, содержащими A пространства состояний и C матрицы и x0 вектора начального состояния. Для idtf и idpoly моделирует, используя initialCondition объект является единственным способом представления и использования начальных условий для симуляции. Для idss модели, можно использовать любой из initialCondition объект или числовой вектор начального состояния. Когда вы получаете начальные условия ic для мультиэкспериментных данных, ic - объектный массив, с одним initialCondition объект для каждого эксперимента.

Создание

Можно получить initialCondition объект одним из четырех способов.

  • Оценка модели - задайте, что функция оценки возвращает предполагаемое начальное условие, которое соответствует входным/выходным данным оценки. Например, для получения предполагаемого начального условия можно использовать следующую команду ic для модели передаточной функции sys который оценивается с помощью входных/выходных данных z.

    [sys,ic] = tfest(z,2,1)
    Для получения примера смотрите Получение предполагаемых начальных Условий.

  • Сравнение модели с данными с использованием любых входных/выходных данных - задайте, что compare возвращает предполагаемое начальное условие, которое функция оценивает внутренне для поддержки fit оценка. Например, для получения начального условия можно использовать следующую команду ic для линейной модели sys при определении подгонки входным/выходным данным z. yp - моделируемая или предсказанный выход модели.

    [yp,fit,ic] = compare(z,sys)
    Для получения примера смотрите Получение начальных условий для новых данных.

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

    ic = initialCondition(A,X0,C,Ts)
    Для получения примера смотрите Конструкцию initialCondition Object из модели пространства состояний.

  • Преобразование модели свободного отклика - Используйте initialCondition команда для преобразования модели свободного отклика LTI в initialCondition объект.

    ic = initialCondition(G)

    Например, см. Пример модели свободного отклика в объект initialCondition.

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

Описание

пример

ic = initialCondition(A,X0,C,Ts) создает initialCondition объект, который представляет свободную реакцию на начальное условие, выраженную в форме пространства состояний, модели LTI.

dx=Axy=Cxx(0)=x0

ic хранит эту модель в виде свойств. A и C соответствуют реализации модели в пространстве состояний, X0 в вектор x0 начального состояния и Ts во шаг расчета. Можно использовать ic для определения начальных условий при симуляции любого типа системы LTI.

пример

ic = initialCondition(G) создает initialCondition объект, соответствующий линейной модели G свободного ответа.

Входные параметры

расширить все

Модель свободного отклика, заданная как модель LTI без входов. В случае непрерывного времени G должно быть строго надлежащим. В случае дискретного времени G должен быть бипропером. Для примера использования модели свободного отклика для получения initialCondition объект, см. Преобразование модели свободного отклика в объект initialCondition.

Свойства

расширить все

A матрица реализации свободного отклика LTI в пространстве состояний, заданная как Nx -by Nx числовая матрица, где Nx - количество состояний. Пример использования этого свойства см. в разделе Получение предполагаемых начальных условий.

Начальные состояния реализации свободного отклика LTI в пространстве состояний, заданные как числовой вектор длины Nx. Пример использования этого свойства см. в разделе Получение предполагаемых начальных условий.

C матрица реализации свободного отклика LTI в пространстве состояний, заданная как Ny -by Nx числовая матрица, где Ny - количество выходов. Пример использования этого свойства см. в разделе Получение предполагаемых начальных условий.

Шаг расчета свободного отклика LTI, заданная как одно из следующего:

  • Модель в непрерывном времени - 0

  • Модель в дискретном времени с заданным временем дискретизации - положительная скалярная величина, представляющий период дискретизации, выраженный в модуле, заданной TimeUnit свойство модели

  • Модель в дискретном времени с неопределенным шагом расчета - -1

Шага расчета initialCondition объект является таким же, как и для динамической системной модели, которой соответствует объект.

Функции объекта

Функции, применимые к initialCondition объекты являются объектами, которые могут возвращать, использовать или преобразовывать объекты.

Роль начального условия (IC)Тип функции LTIПример синтаксисаПримеры ссылок
Возврат предполагаемых объектов ИСВсе функции оценки, compare[sys,ic] = tfest(data,2,1)

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

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

Получение начальных условий для новых данных

Используйте объекты IC для отклика моделиНаборы опций для функций отклика моделиopt = simOptions('InitialCondition',ic)Применение начальных условий в симуляции
Преобразуйте объекты IC в динамические системные модели (DSM)Функции объекта DSMg = idtf(ic)Визуализация свободного ответа на начальное условие
Анализируйте модели, преобразованные из объектов ICФункции анализа DSMy_g = impulse(g)Визуализация свободного ответа на начальное условие

расширить все

tfestОценка передаточной функции
procestОцените модель процесса с помощью временных или частотных данных
arxОценка параметров модели ARX, ARIX, AR или ARI
armaxОцените параметры модели ARMAX, ARIMAX, ARMA или ARIMA с использованием данных временной области
bjОценка модели полинома Бокса-Дженкинса с использованием данных о временном интервале
oeОцените полиномиальную модель выходной ошибки, используя данные временной области или частотного диапазона
polyestОцените полиномиальную модель, используя данные временной или частотной области
compareСравните идентифицированный выход модели и измеренный выход
simСимулируйте реакцию идентифицированной модели
simOptionsНабор опций для sim
predictСпрогнозируйте состояние и ковариацию ошибки расчета состояния на следующем временном шаге с помощью расширенного или сигма-точечного фильтра Калмана или фильтра частиц
predictOptionsНабор опций для predict
peОшибка предсказания для идентифицированной модели
peOptionsНабор опций для pe
residВычисление и тестирование невязок
residOptionsНабор опций для resid
compareСравните идентифицированный выход модели и измеренный выход
compareOptionsНабор опций для compare
idssМодель пространства состояний с идентифицируемыми параметрами
idpolyПолиномиальная модель с идентифицируемыми параметрами
idtfМодель передаточной функции с идентифицируемыми параметрами
impulseГрафик импульсной характеристики динамической системы; данные импульсной характеристики
freqrespЧастотная характеристика по сетке

Примеры

свернуть все

Оцените модель передаточной функции и получите предполагаемые начальные условия.

Загрузите и постройте график данных.

load iddata1ic.mat z1i
plot(z1i)

Figure contains 2 axes. Axes 1 with title y1 contains an object of type line. This object represents z1i. Axes 2 with title u1 contains an object of type line. This object represents z1i.

Данные выходы не начинаются с 0.

Оцените передаточную функцию второго порядка sys_tf. Задайте, что функция возвращает начальные условия ic.

[sys_tf,ic] = tfest(z1i,2,1);

Исследуйте содержимое ic. ic включает в форме пространства состояний модель свободного отклика, заданную матрицами A и C, вектор начального состояния X0, и шаг расчета Ts.

A = ic.A
A = 2×2

   -2.9841   -5.5848
    4.0000         0

C = ic.C
C = 1×2

    0.2957    5.2441

x0 = ic.X0
x0 = 2×1

   -0.9019
   -0.6161

Ts = ic.Ts
Ts = 0

ic характерен для данных оценки z1i. Можно использовать ic установить начальные условия при симуляции любой модели LTI с помощью входного сигнала от z1i и сравните ответ со z1i выходной сигнал.

Визуализируйте свободный ответ, инкапсулированный в initialCondition объект путем генерирования импульсной характеристики.

Оцените передаточную функцию и верните начальное условие ic_tf.

load iddata1ic z1i
[sys_tf,ic_tf] = tfest(z1i,2,1);
ic_tf
ic_tf = 
  initialCondition with properties:

     A: [2x2 double]
    X0: [2x1 double]
     C: [0.2957 5.2441]
    Ts: 0

ic_tf содержит информацию, необходимую для вычисления свободного отклика на начальное условие.

Преобразование ic_tf в idss объект, который может быть передан в impulse функция.

ic_tfss = idss(ic_tf);

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

t = 0:0.1:9.9;
t = t';
yimp = impulse(ic_tfss,t);
plot(t,yimp)
title('Free Response to Initial Condition')

Figure contains an axes. The axes with title Free Response to Initial Condition contains an object of type line.

Свободный ответ является переходным процессом, который длится около четырех секунд.

Загрузите данные и оцените передаточную функцию второго порядка sys. Возврат начальных условий в ic.

load iddata1ic z1i
[sys,ic] = tfest(z1i,2,1);

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

y_no_ic = sim(sys,z1i);
plot(y_no_ic,z1i)
legend('Model Response','Measured Output')

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

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

Включить ic в simOptions набор опций opt. Симулируйте и постройте график отклика модели с помощью opt.

opt = simOptions('InitialCondition',ic);
y_ic = sim(sys,z1i,opt);
plot(y_ic,z1i);
legend('Model Response','Measured Output')

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

Симуляция объединяет реакцию модели на входной сигнал со свободной реакцией на начальное условие. Измеренные и моделируемые выходы теперь лучше согласуются в начале симуляции.

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

Загрузите данные и разделите их на наборы данных оценки и валидации.

load iddata1 z1
z1_est = z1(1:150);
z1_val = z1(151:300);
plot(z1_est,z1_val);
legend('Estimation Data','Validation Data')

Figure contains 2 axes. Axes 1 with title y1 contains 2 objects of type line. These objects represent Estimation Data, Validation Data. Axes 2 with title u1 contains 2 objects of type line. These objects represent Estimation Data, Validation Data.

Исследуйте начальные точки каждого выходного набора данных.

e0 = z1_est.y(1)
e0 = -0.5872
v0 = z1_val.y(1)
v0 = -7.4390

Эти два набора данных имеют различные начальные условия.

Оцените модель передаточной функции второго порядка с помощью z1_est. Верните предполагаемые начальные условия в ic_est. Отобразите X0 свойство ic_est. Это свойство представляет предполагаемый вектор начального состояния, который модель свободного отклика задана ic_est.A и ic_est.C отвечает на.

[sys,ic_est] = tfest(z1_est,2,1);
ic_est.X0
ans = 2×1

   -0.4082
    0.0095

Можно использовать ic_est если вы хотите моделировать sys использование z1_est. Также можно использовать compare, который оценивает начальное условие независимо. Использование compare дважды, один раз для построения графика данных и один раз для возврата результатов. Отобразите вектор начального состояния ic_estc.X0 что compare оценки.

compare(z1_est,sys)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent z1\_est (y1), sys: 68.22%.

[yce,fit,ic_estc] = compare(z1_est,sys);
ic_estc.X0
ans = 2×1

   -0.4082
    0.0095

Вектор начального состояния ic_estc.X0 идентичен ic_est.

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

compare(z1_val,sys)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent z1\_val (y1), sys: 71.05%.

[ycv,fit,ic_valc] = compare(z1_val,sys);
ic_valc.X0
ans = 2×1

   -1.7536
   -0.9547

Можно использовать ic_val когда вы симулируете sys с z1_val входной сигнал и сравните ответ модели с z1_val выходной сигнал.

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

Загрузите данные двух экспериментов. Объедините два набора данных в один мультиэксперментный набор данных.

load iddata1 z1
load iddata2 z2
z12 = merge(z1,z2)
z12 =
Time domain data set containing 2 experiments.

Experiment   Samples      Sample Time          
   Exp1         300            0.1             
   Exp2         400            0.1             
                                               
Outputs      Unit (if specified)               
   y1                                          
                                               
Inputs       Unit (if specified)               
   u1                                          
                                               
plot(z12)

Figure contains 2 axes. Axes 1 with title y1 contains 2 objects of type line. These objects represent z12(Exp1), z12(Exp2). Axes 2 with title u1 contains 2 objects of type line. These objects represent z12(Exp1), z12(Exp2).

Оцените передаточную функцию второго порядка sys и возвращает начальные условия в ic.

np = 2;
nz = 1;
[sys,ic] = tfest(z12,np,nz);
ic
ic=1×2 object
  1x2 initialCondition array with properties:

    A
    X0
    C
    Ts

ic является объектный массив. Отображение содержимого каждого объекта.

ic(1,1)
ans = 
  initialCondition with properties:

     A: [2x2 double]
    X0: [2x1 double]
     C: [-0.7814 5.2530]
    Ts: 0

ic(1,2)
ans = 
  initialCondition with properties:

     A: [2x2 double]
    X0: [2x1 double]
     C: [-0.7814 5.2530]
    Ts: 0

Сравните A, X0, и C свойства для каждого объекта.

A1 = ic(1,1).A
A1 = 2×2

   -3.4824   -5.5785
    4.0000         0

A2 = ic(1,2).A
A2 = 2×2

   -3.4824   -5.5785
    4.0000         0

C1 = ic(1,1).C
C1 = 1×2

   -0.7814    5.2530

C2 = ic(1,2).C
C2 = 1×2

   -0.7814    5.2530

X01 =ic(1,1).X0
X01 = 2×1

   -0.6528
   -0.0067

X02 =ic(1,2).X0
X02 = 2×1

    0.3076
   -0.0715

The A и C матрицы идентичны. Эти матрицы представляют форму пространства состояний sys. The X0 векторы разные. Это различие является результатом различных начальных условий для двух экспериментов.

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

Загрузите и постройте график данных.

load iddata1ic z1i
plot(z1i)

Figure contains 2 axes. Axes 1 with title y1 contains an object of type line. This object represents z1i. Axes 2 with title u1 contains an object of type line. This object represents z1i.

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

Сначала установите 'InitialState' аргумент пары "имя-значение" в ssestOptions на 'estimate', который переопределяет настройку по умолчанию 'auto'. The 'estimate' установка всегда оценивает начальные состояния. The 'auto' в настройке используется 'zero' установка, если эффект начальных состояний на общей ошибке расчета модели относительно мал, и, следовательно, может привести к вектору начального состояния, содержащему только нули.

opt = ssestOptions;
opt = ssestOptions('InitialState','estimate');

Оцените модель пространства состояний второго порядка sys_ss. Задайте выходной аргумент x0 чтобы вернуть вектор начального состояния. Задайте входной параметр opt использовать 'InitialState' настройка. После оценки исследуйте x0.

[sys_ss,x0] = ssest(z1i,2,opt);
x0
x0 = 2×1

    0.0631
    0.0329

x0 является ненулевым вектором начального состояния.

Симулируйте модель с помощью x0 и сравните выход с исходными выходными данными.

Как использовать x0 в качестве начального условия задайте 'InitialCondition' аргумент пары "имя-значение" в simOptions как x0.

opt = simOptions;
opt = simOptions('InitialCondition',x0);

Симулируйте модель с помощью opt и сохраните ответ в xss.

xss = sim(sys_ss,z1i,opt);

Постройте график модели с исходными выходными данными.

t = 0:0.1:19.9;
plot(t',[xss.y z1i.y])
legend('ss model','output data')
title('Simulated State-Space Model Using Estimated Initial States')

Figure contains an axes. The axes with title Simulated State-Space Model Using Estimated Initial States contains 2 objects of type line. These objects represent ss model, output data.

Симуляция начинается в точке, близкой к начальной точке данных.

С A и C матрицы, x0, и шаг расчета Ts от sys_ss, создайте initialCondition ic объекта который можно использовать с моделью передаточной функции.

A = sys_ss.A;
C = sys_ss.C;
Ts = sys_ss.Ts;
ic = initialCondition(A,x0,C,Ts)
ic = 
  initialCondition with properties:

     A: [2x2 double]
    X0: [2x1 double]
     C: [-61.3674 13.4811]
    Ts: 0

Оцените модель передаточной функции и симулируйте модель используя ic как начальное условие. Сохраните ответ в xtf.

sys_tf = tfest(z1i,2,1);
opt = simOptions('InitialCondition',ic);
xtf = sim(sys_tf,z1i,opt);

Постройте график характеристик модели xss и xtf вместе.

plot(t',[xss.y xtf.y])
legend('ss model','tf model')
title('Simulated SS and TF Models with Equivalent Initial Conditions')

Figure contains an axes. The axes with title Simulated SS and TF Models with Equivalent Initial Conditions contains 2 objects of type line. These objects represent ss model, tf model.

Модели тесно отслеживают друг друга на протяжении всей симуляции.

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

Загрузите данные и оцените модель передаточной функции sys. Получите предполагаемые начальные условия ic.

load iddata1ic.mat z1i
[sys,ic] = tfest(z1i,2,1);

Преобразование ic в idtf модель свободного отклика g.

g = idtf(ic);

Постройте график импульсной характеристики g.

impulse(g)
title('Impulse Response of g')

Figure contains an axes. The axes contains an object of type line. This object represents g.

Преобразование g назад в initialCondition ic1 объекта.

ic1 = initialCondition(g);

Постройте график импульсной характеристики ic1 путем преобразования ic1 в idss модель.

impulse(idss(ic1))
title('Impulse Response of ic1 in idss form')

Figure contains an axes. The axes contains an object of type line. This object represents untitled1.

Импульсные характеристики кажутся идентичными.

Сравнение ic и ic1.

ic.A
ans = 2×2

   -2.9841   -5.5848
    4.0000         0

ic1.A
ans = 2×2

   -2.9841   -5.5848
    4.0000         0

ic.X0
ans = 2×1

   -0.9019
   -0.6161

ic1.X0
ans = 2×1

     4
     0

ic.C
ans = 1×2

    0.2957    5.2441

ic1.C
ans = 1×2

   -0.8745   -1.7215

The A матрицы ic и ic1 идентичны. The C матрица и X0 вектор отличается. Существует бесконечно много представлений в пространстве состояний, возможных для заданной линейной модели. Эти два объекта эквивалентны, как проиллюстрировано импульсными характеристиками.

Введенный в R2020b