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

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

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

Загрузите результаты измерений.

load zpkestdata zd;

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

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

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

Задайте опции оценки.

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.4098 + 0.0000i
  -1.1100 + 2.0000i  -2.4050 + 1.4340i
  -1.1100 - 2.0000i  -2.4050 - 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%) результатам измерений.

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

| | | |

Похожие темы