主要内容

使用零/极/增益参数的估计模型

这个例子展示了如何估计一个由极点、零点和增益参数化的模型。该示例需要Control System Toolbox™软件。

您使用复共轭极点/零对对模型进行参数化。当您使用复共轭参数对一个真实的灰盒模型进行参数化时,软件会更新参数值,使估价值也是复共轭对。

加载测量数据。

负载zpkestdatazd

包含测量数据的变量zd被加载到MATLAB®工作空间中。

情节(zd);

图中包含2个轴对象。标题为y1的Axes对象1包含一个line类型的对象。这个对象表示zd。标题为u1的Axes对象2包含一个line类型的对象。这个对象表示zd。

输出显示大约3.14秒的输入延迟。

使用零极增益(zpk)形式估计模型zpkestODE函数。如需查看该功能,请输入

类型zpkestODE
function [a,b,c,d] = zpkestODE(z,p,k,Ts,varargin) %zpkestODE ODE文件,使用极点和% 0作为参数来参数化状态空间模型。% %需要控制系统工具箱。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'));结束

创建与ODE函数关联的线性灰盒模型。

假设模型有五个极点和四个零。假设两个极点和两个零点是复共轭对。

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;参数= {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”flag表示ODE函数,zpkestODE,返回连续或离散模型,这取决于采样周期。

评估初始模型提供的拟合质量。

compareOpt = compareOptions(“InitialCondition”“零”);比较(zd init_sys compareOpt);

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示验证数据(y1), init\_sys: -40.72%。

初始模型的拟合性很差。

指定评估选项。

opt = greyestOptions(“InitialState”“零”“DisturbanceModel”“没有”“SearchMethod”“玲娜”);

估计模型。

Sys = greyest(zd,init_sys,opt);

sys为一个idgrey模型,包含估计的零极增益模型参数。

比较估计值和初始参数值。

[getpvec (init_sys) getpvec (sys)]
ans =10×2复杂-0.5000 + 1.0000i -1.6158 + 1.6173i -0.5000 - 1.0000i -1.6158 - 1.6173i -0.5000 + 0.0000i -0.9416 + 0.0000i -1.0000 + 0.0000i -1.4100 + 0.0000i -1.1100 + 2.4050 + 1.4340i -1.1100 - 2.0000i -2.3388 + 0.0000i -4.0100 + 0.0000i -2.3393 + 0.0000i -0.0200 + 0.0000i -0.0082 + 0.0000i 10.1000 + 0.0000i 9.7881 + 0.0000i

getpvec命令返回模型的参数值。在上面的输出中,每一行都显示了相应的初始值和估计参数值。所有最初指定为复共轭对的参数在估计后仍然如此。

评估估计模型提供的拟合质量。

比较(zd、init_sys sys, compareOpt);

图中包含一个轴对象。axis对象包含3个line类型的对象。这些对象表示验证数据(y1), init\_sys: -40.72%, sys: 99.33%。

sys与实测数据拟合度更接近(98.35%)。

另请参阅

||||

相关的话题