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

В этом примере показано, как создать одно вход и структуру модели серого ящика одно выхода, когда вы знаете отклонение шума измерения. Код в этом примере использует команду 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)

Смотрите также

| |

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

Больше о