exponenta event banner

Оценка модели «серый ящик» дискретного времени с параметризованным возмущением

В этом примере показано, как создать структуру модели «серый ящик» с одним входом и одним выходом, если известна дисперсия шума измерения. Код в этом примере использует команду Control System Toolbox™ kalman(Панель инструментов системы управления) для вычисления коэффициента усиления Калмана из известной и оцененной дисперсии шума.

Описание системы SISO

Этот пример основан на дискретной системе с одним входом и одним выходом (SISO), представленной следующими уравнениями состояния и пространства:

x (kT + T) = [par1par210] x (kT) + [10] u (kT) + w (kT) y (kT) = [par3par4] x (kT) + e (kT) x (0) = x0

где w и e - независимые члены белого шума с ковариационными матрицами R1 и R2 соответственно. R1 = E {ww '} - матрица 2 на 2, а R2 = E {ee'} - скаляр. par1, par2, par3 и par4 представляют неизвестные значения параметров для оценки.

Предположим, что дисперсия R2 шума измерения равна 1. R1 (1,1) неизвестен и рассматривается как дополнительный параметр par5. Остальные элементы R1, как известно, равны нулю.

Оценка параметров модели idgrey

Систему, описанную в разделе Описание системы SISO, можно представить как idgrey (серый ящик) модель с использованием функции. Затем можно использовать этот файл и greyest для оценки параметров модели на основе исходных предположений параметров.

Для выполнения этого примера необходимо загрузить набор данных ввода-вывода и представить его как iddata или idfrd вызываемый объект data. Дополнительные сведения об этой операции см. в разделе Представление данных временной и частотной областей с использованием объектов iddata или Представление данных частотного отклика с использованием объектов idfrd.

Для оценки параметров модели «серый ящик»:

  1. Создание файла mynoise вычисляет матрицы состояния-пространства как функцию от пяти неизвестных параметров и вспомогательной переменной, которая представляет известную дисперсию R2. Исходные условия не параметризованы; предполагается, что они равны нулю во время этой оценки.

    Примечание

    R2 рассматривается как вспомогательная переменная, а не как назначенное значение в файле, что позволяет изменить это значение непосредственно в командной строке и избежать редактирования файла.

    function [A,B,C,D,K] = mynoise(par,T,aux)
    R2 = aux(1); % Known measurement noise variance
    A = [par(1) par(2);1 0];
    B = [1;0];
    C = [par(3) par(4)];
    D = 0;
    R1 = [par(5) 0;0 0];
    [~,K] = kalman(ss(A,eye(2),C,0,T),R1,R2);
    
  2. Укажите начальные догадки для неизвестных значений параметров и дополнительных значений параметров R2:

    par1 = 0.1; % Initial guess for A(1,1) 
    par2 = -2;  % Initial guess for A(1,2) 
    par3 = 1;   % Initial guess for C(1,1) 
    par4 = 3;   % Initial guess for C(1,2) 
    par5 = 0.2; % Initial guess for R1(1,1)
    Pvec = [par1; par2; par3; par4; par5]
    auxVal = 1; % R2=1
  3. Построение idgrey модель с использованием mynoise файл:

    Minit = idgrey('mynoise',Pvec,'d',auxVal);

    Третий входной аргумент 'd' определяет дискретно-временную систему.

  4. Оцените значения параметров модели на основе данных:

    opt = greyestOptions;
    opt.InitialState = 'zero';
    opt.Display = 'full';
    Model = greyest(data,Minit,opt)

См. также

| | (Панель инструментов системы управления)

Связанные примеры

Подробнее