Об идентифицированных линейных моделях

Что такое модели IDLTI?

System Identification Toolbox™ программное обеспечение использует объекты, чтобы представлять множество линейных и нелинейных структур модели. Эти линейные объекты модели вместе известны как Identified Linear Time-Invariant (IDLTI) модели.

Модели IDLTI содержат два различных динамических компонента:

  • Измеренный компонент - описывает отношение между измеренными входами и измеренным выходом (G)

  • Шумовой компонент - описывает зависимость между нарушениями порядка на выходе и измеренным выходом (H)

Модели, которые имеют только шумовой компонент H называются timeseries или сигналов. Обычно вы создаете такие модели с помощью данного timeseries, которые состоят из одного или нескольких выходов y(t) без соответствующих входов.

Общий выход является суммой вкладов от измеренных входов и нарушений порядка: y = G u + H e, где u представляет измеренные входы и e нарушения порядка. e(t) моделируется как нулевой Гауссов белый шум с отклонением Следующий рисунок иллюстрирует модель IDLTI.

Когда вы моделируете модель IDLTI, вы изучаете эффект входа u(t) (и, возможно, начальных условий) на выход y(t). Шумовая e(t) не рассматривается. Однако при конечногоризонном предсказании выхода как измеренная, так и шумовая составляющие модели способствуют расчету (предсказанной) характеристики.

Одноэтапная модель предсказания, соответствующая линейно идентифицированной модели (y = Gu + He)

Измерения и параметризации шумового компонента

Различные линейные структуры модели обеспечивают различные способы параметризации передаточных функций G и H. Когда вы создаете модель IDLTI или оцениваете модель непосредственно с помощью входно-выходных данных, можно сконфигурировать структуру как G, так и H, как описано в следующей таблице:

Тип моделиПередаточные функции G и H Метод строения
Модель пространства состояний (idss)

Представляет идентифицированную структуру модели пространства состояний, управляемую уравнениями:

x˙=Ax+Bu+Key=Cx+Du+e

где передаточная функция между измеренным входным u и выходным y, G(s)=C(sIA)1B+D и передаточная функция шума H(s)=C(sIA)1K+I.

Конструкция: Использование idss создать модель, определяя значения матриц пространства состояний A, B, C, D и K как входные параметры (использующий NaNs для обозначения неизвестных записей).

Оценка: Использование ssest или n4sid, определение пар "имя-значение" для различных строений, таких как, каноническая параметризация измеренной динамики ('Form'/'canonical'), обозначающий отсутствие сквозное соединение фиксацией D к нулю ('Feedthrough'/false), и отсутствие динамики шума путем фиксации K к нулю ('DisturbanceModel'/'none').

Полиномиальная модель (idpoly)

Представляет полиномиальную модель, такую как ARX, ARMAX и BJ. Модель ARMAX, например, использует входно-выходное уравнение Ay (t) = Bu (t) + Ce (t), так что измеренная передаточная функция GG(s)=A1B, в то время как передаточная функция шума H(s)=A1C.

Модель ARMAX является специальным строением общей полиномиальной модели, управляющее уравнение которой:

Ay(t)=BFu(t)+CDe(t)

Авторегрессивный компонент, A, является общей между измеренными и шумовыми компонентами. Полиномы B и F составляют измеренный компонент, в то время как полиномы C и D составляют шумовой компонент.

Конструкция: Использование idpoly чтобы создать модель, использующую значения активных полиномов в качестве входных параметров. Для примера создать модель Output-Error, которая использует G = B/F в качестве измеряемого компонента и имеет тривиальный шумовой компонент (H = 1). введите:

y = idpoly([],B,[],[],F)

Оценка: Используйте armax, arx, или bj, определение порядков полиномов в качестве входных параметров. Для примера, bj требует, чтобы вы задали порядки B, C, D и F полиномов, чтобы создать модель с управляющим уравнением

y(t)=BFu(t)+CDe(t)

Модель передаточной функции (idtf)

Представляет идентифицированную модель передаточной функции, которая не имеет динамических элементов для моделирования шумового поведения. Этот объект использует тривиальную модель шума H(s) = I. Управляющее уравнение

y(t)=numdenu(t)+e(t)

Конструкция: Использование idtf чтобы создать модель, задающие значения коэффициентов числителя и знаменателя в качестве входных параметров. Числитель и векторы знаменателя составляют измеренный компонент G = num(s)/den(s). Шумовой компонент фиксируется на H = 1.

Оценка: Использование tfest, с указанием количества полюсов и нулей измеряемого компонента G.

Модель процесса (idproc)

Представляет модель процесса, которая предоставляет опции для представления динамики шума как процесс ARMA первого или второго порядка (то есть H(s)= C(s)/A(s), где C(s) и A(s) являются моничными полиномами равной степени). Измеренный компонент, G(s), представлен передаточной функцией, выраженной в форме полюс-ноль.

Для моделей процесса (и серых ящиков) шумовой компонент часто рассматривается как расширение по требованию к измеренному в противном случае компонентно-ориентированному представлению. Для этих моделей можно добавить шумовой компонент при помощи DisturbanceModel опция оценки. Для примера:

model = procest(data,'P1D')

оценивает модель, уравнение которой:

y(s)=Kp1(Tp1s+1)esTdu(s)+e(s).

Чтобы добавить к модели компонент второго порядка, используйте:

Options = procestOptions('DisturbanceModel','ARMA1');
model = procest(data,'P1D',Options);

Эта модель имеет уравнение:

y(s)=Kp1(Tp1s+1)esTdu(s)+1+c1s1+d1se(s)

где коэффициенты c1 и d1 параметризовать шумовой компонент модели. Если вы создаете модель процесса с помощью idproc команда, задайте структуру измеряемого компонента используя Type входной параметр и шумовой компонент при помощи NoiseTF Пара "имя-значение". Для примера,

model = idproc('P1','Kp',1,'Tp1',1,'NoiseTF',...
struct('num',[1 0.1],'den',[1 0.5]))

создает модель процесса y(s) = 1/(s+1) u(s) + (s + 0.1)/(s + 0.5) e(s)

Иногда фиксирования коэффициентов или определения границ параметров недостаточно. Например, у вас могут быть несвязанные зависимости параметров в модели, или параметры могут быть функцией другого набора параметров, которые вы хотите идентифицировать исключительно. Для примера в системе масса-пружина-демпфер, A и B параметры зависят от массы системы. Чтобы достичь такой параметризации линейных моделей, можно использовать серо-прямоугольное моделирование, где вы устанавливаете ссылку между фактическими параметрами и коэффициентами модели путем записи файла ODE. Чтобы узнать больше, см. Оценку модели Grey-Box.

Оценка линейной модели

Обычно вы используете оценку для создания моделей в System Identification Toolbox. Вы выполняете одну из команд оценки, задавая в качестве входных аргументов измеренные данные, а также другие входы, необходимые для определения структуры модели. Для иллюстрации в следующем примере используется команда оценки пространства состояний, ssest, для создания модели пространства состояний. Первый входной параметр data задает измеренные входно-выходные данные. Второй входной параметр задает порядок модели.

sys = ssest(data,4)

Функция оценки обрабатывает переменную шума, e(t) как ошибку предсказания - остаточный фрагмент выхода, которая не может быть отнесена к измеренным входам. Все алгоритмы оценки работают, чтобы минимизировать взвешенную норму e(t) для диапазона доступных измерений. Функция взвешивания определяется природой передаточной функции шума и особым вниманием оценки H такая как симуляция или минимизация ошибки предсказания.

Оценка черного ящика («Cold Start»)

В оценке черного ящика вы должны только задать порядок, чтобы сконфигурировать структуру модели.

sys = estimator(data,orders) 

где estimator - имя команды оценки, используемой для требуемого типа модели.

Для примера вы используете tfest для оценки моделей передаточной функции, arx для моделей полинома ARX-структуры, и procest для моделей процессов.

Первый аргумент, data, являются данными временного или частотного диапазона, представленными как iddata или idfrd объект. Второй аргумент, orders, представляет одно или несколько чисел, определения которых зависят от типа модели:

  • Для передаточных функций, orders относится к количеству полюсов и нулей.

  • Для моделей пространства состояний, orders относится к количеству состояний.

  • Для моделей процессов, orders обозначает структурные элементы массива модели процесса, такие как количество полюсов и наличие задержки и интегратора.

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

Структурированные оценки

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

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

% Initial guess for numerator
num = [1 2];
den = [1 2 1 1];
% Initial guess for the denominator 
sys = idtf(num,den);
% Set min bound on den coefficients to 0.1
sys.Structure.Denominator.Minimum = [1 0.1 0.1 0.1]; 
sysEstimated = tfest(data,sys); 

Алгоритм оценки использует предоставленные начальные предположения, чтобы запустить оценку, и доставляет модель, которая уважает заданные границы.

Можно использовать такой шаблон модели, чтобы также сконфигурировать свойства вспомогательной модели, такие как имена ввода/вывода и модулей. Если значения некоторых параметров модели первоначально неизвестны, можно использовать NaNs для них в шаблоне.

Опции оценки

Существует много опций, связанных с алгоритмом оценки модели, которые конфигурируют целевую функцию оценки, начальные условия и алгоритм численного поиска, среди прочего. Для каждой команды оценки estimator, существует соответствующая команда опции с именем estimatorOptions. Чтобы задать опции для конкретной команды estimator, такой как tfest, используйте команду options, которая соответствует команде оценки, в этом случае, tfestOptions. Команда options возвращает набор опций, который вы затем передаете как входной параметр соответствующей команде оценки.

Для примера, чтобы оценить структуру полинома модель Output-Error, вы используете oe. Чтобы задать simulation как особое внимание и lsqnonlin в качестве метода поиска вы используете oeOptions:

load iddata1 z1
Options = oeOptions('Focus','simulation','SearchMethod','lsqnonlin');
sys= oe(z1,[2 2 1],Options);

Информация об опциях, используемых для создания предполагаемой модели, хранится в OptionsUsed поле Report модели свойство. Для получения дополнительной информации см. Отчет по оценке.

Похожие темы