В этом примере показано, как оценить модель, параметризованную полюсами, нулями и коэффициентами усиления. В данном примере требуется программное обеспечение Toolbox™ системы управления.
Параметризация модели выполняется с использованием комплексных пар полюс/ноль. При параметризации вещественной серой модели с использованием комплексных сопряженных пар параметров программа обновляет значения параметров таким образом, что оцененные значения также являются комплексными сопряженными парами.
Загрузите измеренные данные.
load zpkestdata zd;
Переменная zd, содержащая измеренные данные, загружается в рабочую область MATLAB ®.
plot(zd);

Выходной сигнал показывает задержку на входе приблизительно 3,14 секунды.
Оцените модель, используя форму с нулевым коэффициентом усиления (zpk), используя zpkestODE функция. Для просмотра этой функции введите
type zpkestODEfunction [a,b,c,d] = zpkestODE(z,p,k,Ts,varargin) %zpkestODE ODE file that parameterizes a state-space model using poles and %zeros as its parameters. % % Requires Control System Toolbox. % Copyright 2011 The MathWorks, Inc. sysc = zpk(z,p,k); if Ts==0 [a,b,c,d] = ssdata(sysc); else [a,b,c,d] = ssdata(c2d(sysc,Ts,'foh')); end
Создайте линейную серую модель, связанную с функцией ОДУ.
Предположим, что модель имеет пять полюсов и четыре нуля. Предположим, что два полюса и два нуля являются комплексно сопряженными парами.
z = [-0.5+1i, -0.5-1i, -0.5, -1];
p = [-1.11+2i, -1.11-2i, -3.01, -4.01, -0.02];
k = 10.1;
parameters = {z,p,k};
Ts = 0;
odefun = @zpkestODE;
init_sys = idgrey(odefun,parameters,'cd',{},Ts,'InputDelay',3.14);z, p, и k являются начальными предположениями для параметров модели.
init_sys является моделью idgrey, которая связана с zpkestODE.m функция. 'cd' флаг указывает, что функция ОДУ, zpkestODEвозвращает непрерывные или дискретные модели в зависимости от периода выборки.
Оцените качество посадки, обеспечиваемое исходной моделью.
compareOpt = compareOptions('InitialCondition','zero'); compare(zd,init_sys,compareOpt);

Исходная модель обеспечивает плохую подгонку.
Укажите параметры оценки.
opt = greyestOptions('InitialState','zero','DisturbanceModel','none','SearchMethod','gna');
Оцените модель.
sys = greyest(zd,init_sys,opt);
sys, модель idgrey, содержит оцененные параметры модели с нулевым коэффициентом усиления.
Сравните расчетные и начальные значения параметров.
[getpvec(init_sys) getpvec(sys)]
ans = 10×2 complex
-0.5000 + 1.0000i -1.6158 + 1.6173i
-0.5000 - 1.0000i -1.6158 - 1.6173i
-0.5000 + 0.0000i -0.9417 + 0.0000i
-1.0000 + 0.0000i -1.4097 + 0.0000i
-1.1100 + 2.0000i -2.4051 + 1.4340i
-1.1100 - 2.0000i -2.4051 - 1.4340i
-3.0100 + 0.0000i -2.3386 + 0.0000i
-4.0100 + 0.0000i -2.3391 + 0.0000i
-0.0200 + 0.0000i -0.0082 + 0.0000i
10.1000 + 0.0000i 9.7881 + 0.0000i
getpvec возвращает значения параметров для модели. В выводе выше каждая строка отображает соответствующие начальные и оценочные значения параметров. Все параметры, которые первоначально были определены как комплексные сопряженные пары, остаются таковыми после оценки.
Оцените качество посадки, обеспечиваемое расчетной моделью.
compare(zd,init_sys,sys,compareOpt);

sys обеспечивает более близкое соответствие (98,35%) измеренным данным.
c2d | getpvec | greyest | idgrey | ssdata