Оцените Модель Используя Нулевые/Полюса/Усиления Параметры

В этом примере показано, как оценить модель, которая параметрируется полюсами, нулями и усилениями. Пример требует программного обеспечения Control System 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);

zP, и 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%) результатам измерений.

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

| | | |

Похожие темы