带有参数化扰动的离散灰盒模型估计
这个例子展示了当您知道测量噪声的方差时,如何创建一个单输入和单输出的灰盒模型结构。本例中的代码使用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都是0。
一个idgrey模型的参数估计
中描述的系统SISO系统描述作为一个idgrey
(灰盒)模型使用一个函数。然后,您可以使用该文件和感动的
命令根据初始参数猜测估计模型参数。
要运行此示例,必须加载输入-输出数据集并将其表示为iddata
或idfrd
对象被称为数据
.有关此操作的详细信息,请参见使用iddata对象表示时间和频率域数据或使用idfrd对象表示频率响应数据.
估计灰盒模型的参数:
创建文件
mynoise
它将状态空间矩阵作为五个未知参数和表示已知方差的辅助变量的函数来计算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] = kalman(ss(A,eye(2),C,0,T),R1,R2);
指定未知参数值和辅助参数值的初始猜测
R2
:Par1 = 0.1;% A(1,1)的初始猜测Par2 = -2;% A(1,2)的初始猜测Par3 = 1;C(1,1)的初始猜测Par4 = 3;% C(1,2)的初始猜测Par5 = 0.2;R1(1,1)的初始猜测Pvec = [par1;par2;par3;标准杆4杆;par5] auxVal = 1;% R2 = 1
构造一个
idgrey
使用mynoise
文件:最小值= idgrey(“mynoise”Pvec,' d ', auxVal);
第三个输入参数
' d '
指定一个离散时间系统。根据数据估计模型参数值:
opt = greyestOptions;opt.InitialState =“零”;opt.Display =“全部”;模型=灰色(数据,Minit,opt)