参数化扰动离散灰盒模型的估计
这个例子展示了当您知道测量噪声的方差时,如何创建单输入和单输出灰盒模型结构。本例中的代码使用Control System Toolbox™命令卡尔曼
(控制系统工具箱)用于从已知和估计的噪声方差中计算卡尔曼增益。
SISO系统的描述
本例基于一个离散的单输入单输出(SISO)系统,由以下状态空间方程表示:
在哪里w而且e是否具有协方差矩阵的独立白噪声项R1而且R2,分别。R1=E{ww'}是一个2 × 2矩阵,并且R2=E{ee'}是一个标量。par1,par2,par3,标准杆4杆表示待估计的未知参数值。
假设你知道测量噪声的方差R2是1。R1(1,1)是未知的,被视为一个附加参数par5.剩下的元素R1已知为零。
idgrey模型的参数估计
可以表示中描述的系统SISO系统的描述作为一个idgrey
(灰盒)模型使用函数。然后,您可以使用此文件和感动的
命令,根据初始参数猜测估计模型参数。
要运行此示例,必须加载一个输入输出数据集并将其表示为iddata
或idfrd
对象被称为数据
.有关此操作的更多信息,请参见使用iddata对象表示时频域数据或使用idfrd对象表示频率响应数据.
估算灰盒模型的参数:
创建文件
mynoise
它计算状态空间矩阵作为5个未知参数和表示已知方差的辅助变量的函数R2
.初始条件未参数化;在这个估计过程中,它们被假设为零。请注意
R2
将作为辅助变量处理,而不是在文件中为其赋值,以便您可以在命令行中直接更改该值,从而避免编辑文件。函数[A,B,C,D,K] = mynoise(par,T,aux) R2 = aux(1);已知测量噪声方差A = [par(1) par(2);1 0];B = (1, 0);C = [par(3) par(4)];D = 0;R1 = [par(5) 0;0 0];(~ K) =卡尔曼(ss(眼(2)C, 0, T), R1, R2);
指定未知参数值和辅助参数值的初始猜测
R2
:par1 = 0.1;A(1,1)的初始猜测par2 = 2;A(1,2)的初始猜测%par3 = 1;% C(1,1)的初始猜测标准杆4杆= 3;% C(1,2)的初始猜测par5 = 0.2;R1(1,1)的初始猜测Pvec = [par1;par2;par3;标准杆4杆;par5] auxVal = 1;% R2 = 1
构造一个
idgrey
模型使用mynoise
文件:Minit = idgrey (“mynoise”Pvec,' d ', auxVal);
第三个输入参数
' d '
指定一个离散时间系统。根据数据估计模型参数值:
选择= greyestOptions;opt.InitialState =“零”;opt.Display =“全部”;模型=老龄化最严重的(数据、Minit选择)