translatecov

在模型转换操作之间转换参数协方差

语法

sys_new = translatecov(FCN,SYS)
sys_new = translatecov(FCN,输入1,...,InputN)

描述

sys_new= translatecov(FCN,sys)变换syssys_new = FCN(SYS)和平移的参数协方差sys在转换模型的参数协方差。FCN是你指定的变换函数。该命令计算的参数协方差sys_new应用高斯近似公式。要查看转换后的参数协方差,请使用getcov

应用模型转换直接并不总是意味着原来的模型,该模型转化的参数协方差。例如,d2c(系统)不转换的参数协方差sys。相比之下,translatecov (@ (x) d2c (x)系统)产生具有相同的系数作为一个转换的模型d2c(系统)的平移参数协方差为sys

sys_new= translatecov(FCN,Input1,…, InputN)返回模型sys_new = fcn (InputN Input1…)和它的参数协方差。至少有一个N输入必须与参数协方差信息的线性模型。

输入参数

FCN

模型转换函数,指定为函数句柄。

对单输入函数,sys_new = FCN(SYS)。输入到FCN必须是具有参数协方差信息的已识别模型。典型的单输入转换操作包括:

  • 模型类型的转换,例如idpoly中的难点。例如,fcn = @ (x) idpoly (x)转换模型x变成一个多项式模型。

  • 采样时间的转换,如汇集D2C。例如,fcn = @ (x)汇集(x, Ts)转换连续时间模型x到离散时间使用指定的采样时间Ts

对于多输入功能,sys_new = fcn (Input1 . . InputN)。至少输入参数之一Input1,…, InputN必须是具有参数协方差信息的已识别模型。典型的多输入操作包括合并和连接多个模型。例如,FCN = @(X,Y)[X,Y]执行模型的横向拼接xy

sys

具有参数协方差信息的线性模型,指定为以下模型类型之一:

模型必须包含参数协方差信息,即getcov(系统)不能是空的。

Input1,…, InputN

多输入参数的翻译功能FCN。至少有一个N输入必须与参数协方差信息的线性识别的模型。其它输入可以是任何MATLAB®数据类型。对于一个示例,请参见转换参数协方差为闭环模式

输出参数

sys_new

转换操作产生的模型。模型包含参数协方差信息。

例子

全部折叠

转换的估计传递函数模型到状态空间模型,同时还平移所述估计参数的协方差。

估计传递函数模型。

负载iddata1SYS1 = tfest(z1,2);

转换所估计的模型以状态空间形式,同时还平移所述估计参数的协方差。

系统2 = translatecov(@(X)IDSS(x)时,SYS1);

如果直接将传递函数模型转换为状态空间形式,则丢失估计的参数协方差(的输出)getcov是空的)。

sys3 = ids (sys1);getcov (sys3)
ANS = []

查看估计和转换模型中的参数协方差。

covsys1 = getcov(SYS1);covsys2 = getcov(系统2);

比较置信区域。

h = bodeplot (sys1 sys2);showConfidence (h, 2);

的置信界限SYS1系统2

级联3的单输出模式,使得来自3个模型的协方差数据结合而产生的协方差数据,所得到的模型。

构建状态空间模型。

A = [-1.1008 0.3733; 0.3733 -0.9561];B = [0.7254 0.7147; -0.0631 -0.2050];C = [-0.1241 0;1.4897 0.6715;1.4090 -1.2075];d = [0 1.0347;1.6302 0;0.4889 0];SYS = IDSS(A,B,C,d,'TS',0);

产生多路输出的估计数据。

T =(0:0.01:0.99)';U = randn(100,2);Y = lsim(SYS,U,T,“zoh”);y = y + rand(size(y))/10;data = iddata (y、u, 0.01);

估计每个输出信号的独立模型。

m1 = ss(数据(:1:),2,“引线”,真(1,2),“DisturbanceModel”,“没有”);m2 = ss(数据(:2:),2,“引线”,真(1,2),“DisturbanceModel”,“没有”);立方米= ssest(数据(:,3,:),2,“引线”,真(1,2),“DisturbanceModel”,“没有”);

结合估算模型,同时还翻译协方差信息。

f = @ (x, y, z) [x, y, z];M2 = translatecov(f, m1, M2, m3);

参数协方差不是空的。

getcov (M2,“因素”)
ans =同场的结构:R:[36X36双] T:[24x36双]免费:[90x1逻辑]

如果直接结合估计模型为一个3产出模型,协方差信息丢失(输出getcov是空的)。

M1 = (M1, m2, m3);getcov (M1)
ANS = []

比较置信界限。

H = bodeplot(M2,M1,M2,M3);showConfidence(H);

的置信界限M2与…的重叠M1,M2M3在各自图轴模型。

考虑一个由对象和控制器组成的闭环反馈模型。将被测对象的参数协方差转化为闭环反馈模型。

植物估计如使用评估数据的第四阶状态空间模型z1

负载iddata1z1植物= ssest(z1,4);

植物包含参数协方差信息。

创建一个连续时间零极点增益模型的控制器,其零、极点和增益分别等于- 2,10,5。

控制器= zpk (-10 5);

定义一个转换函数生成闭环反馈状态空间模型。

FCN = @(X,Y)IDSS(反馈(X,Y));

将被测对象的参数协方差转化为闭环反馈模型。

sys_new = translatecov (fcn、植物、控制器);

sys_new包含翻译参数协方差信息。

绘制转换模型的频率响应sys_new,并查看响应的置信区域。

H = bodeplot(sys_new);showConfidence(H);

该图显示了不确定性的影响植物关于闭环响应。

提示

  • 如果你获得sys通过估计并获得估计数据,可以使用零迭代更新重新计算参数协方差。例如:

    负载iddata1m = ss (z1, 4);opt = ssestOptions opt. searchoptions。MaxIterations = 0;m_new = ss (z1, m2,选择)

    您不能运行在以下情况下零迭代更新:

    • 如果MaxIterations选项,这取决于SearchMethod选项,不可用。

    • 对于某些模型和数据类型。例如,连续时间idpoly模型使用时域数据。

算法

translatecov使用的各个参数的数值扰动sys计算的雅可比fcn(系统)相对于的参数的参数systranslatecov然后应用高斯近似公式 c o v _ n e w = J × COV × J T 翻译的协方差,其中J是雅可比矩阵。此操作可以是含有大量的自由参数车型慢。

介绍了在R2012b