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