exponenta event banner

Оценка модели с использованием параметров нуля/полюса/усиления

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

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

Загрузите измеренные данные.

load zpkestdata zd;

Переменная zd, содержащая измеренные данные, загружается в рабочую область MATLAB ®.

plot(zd);

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

Выходной сигнал показывает задержку на входе приблизительно 3,14 секунды.

Оцените модель, используя форму с нулевым коэффициентом усиления (zpk), используя zpkestODE функция. Для просмотра этой функции введите

type zpkestODE
function [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);

Figure contains an axes. The axes contains 2 objects of type line. These objects represent zd (y1), init\_sys: -40.72%.

Исходная модель обеспечивает плохую подгонку.

Укажите параметры оценки.

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);

Figure contains an axes. The axes contains 3 objects of type line. These objects represent zd (y1), init\_sys: -40.72%, sys: 99.33%.

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

См. также

| | | |

Связанные темы