主要内容

换热器传递函数模型的估计

这个例子展示了如何从测量信号数据估计传递函数。

热交换器

在这个例子中,我们估计了热交换器的传递函数。热交换器由冷却液温度、产品温度和干扰环境温度组成。我们将估算冷却剂与产品温度传递函数的关系。

配置测量数据

测量数据存储在MATLAB文件中,包括冷却剂温度变化的测量值和产品温度变化的测量值。

负载iddemo_heatexchanger_data

收集测量数据使用iddata指挥并策划它。

data = iddata (pt、ct、Ts);数据。InputName =“δCTemp \”;数据。InputUnit =“C”;数据。OutputName =“δPTemp \”;数据。OutputUnit =“C”;数据。TimeUnit =“分钟”;情节(数据)

传递函数估计

从这个问题的物理性质我们知道,热交换器可以用一阶时滞系统来描述。使用特遣部队命令,指定一个极点、无零和未知的输入/输出延迟来估计传递函数。

sysTF =特遣部队(数据、1 0,南)
sysTF =从输入"\Delta CTemp"到输出"\Delta PTemp": 1.467 exp(-0.0483*s) * -------- s + 1.56连续时间识别传递函数。参数化:极点数:1零数:0自由系数数:2参数及其不确定性使用"tfdata", "getpvec", "getcov"。状态:使用时域数据“data”上的TFEST进行估计。拟合估计数据:36% FPE: 0.02625, MSE: 0.02622

比较而且渣油命令允许我们研究估计模型与测量数据的匹配程度。

集(gcf,“DefaultAxesTitleFontSizeMultiplier”, 1...“DefaultAxesTitleFontWeight”“正常”...“位置”,[100 100 780 520]);渣油(sysTF、数据);

sysTF clf对比(数据)

该图显示残差是强相关的,这意味着在测量数据中存在估计模型未充分捕获的信息。

初始系统的传递函数估计

以前我们从数据中估计传递函数,但除了系统顺序之外,没有包含太多的先验知识。从这个问题的物理性质我们知道这个系统是稳定的并且有正增益。通过对测量数据的检查,我们还知道输入/输出延迟约为1/5分钟。我们使用这些信息来创建一个初始系统,并使用这个系统作为初始猜测来估计一个传递函数。

sysInit = idtf(NaN,[1 NaN],“ioDelay”、南);sysInit。TimeUnit =“分钟”

限制传递函数的分子和分母项,使系统稳定且增益为正。

sysInit.Structure.num.Value = 1;sysInit.Structure.num.Minimum = 0;sysInit.Structure.den.Value = [1 1];sysInit.Structure.den.Minimum = [0 0];

将输入/输出延迟限制在[0 1]分钟的范围内,并使用1/5分钟作为初始值。

sysInit.Structure.ioDelay.Value = 0.2;sysInit.Structure.ioDelay.Minimum = 0;sysInit.Structure.ioDelay.Maximum = 1;

将该系统作为估计问题的初始猜想

sysInit sysTF_initialized =特遣部队(数据)
sysTF_initialized =从输入"\Delta CTemp"到输出"\Delta PTemp": 1.964 exp(-0.147*s) * --------- s + 2.115连续时间识别传递函数。参数化:极点数:1零数:0自由系数数:2参数及其不确定性使用"tfdata", "getpvec", "getcov"。状态:使用时域数据“data”上的TFEST进行估计。拟合估计数据:54.09% FPE: 0.01351, MSE: 0.01349
渣油(sysTF_initialized、数据);

clf对比(数据、sysTF sysTF_initialized)

流程模型估计

在上面,我们把估计问题当作传递函数估计问题来处理,但是我们知道还有一些附加的结构我们可以强加。具体来说,热交换器系统是已知的一阶延迟过程,或形式为“P1D”模型:

$ e ^ {-T_d年代}\压裂{K_p} {T_p s + 1} $

使用过程命令将此结构进一步应用到问题上。

sysP1D =过程(数据,“P1D”
sysP1D =传递函数的过程模型:Kp G(s) = ---------- * exp(-Td*s) 1+Tp1*s Kp = 0.90548 Tp1 = 0.32153 Td = 0.25435参数化:{'P1D'}自由系数数量:3使用"getpvec", "getcov"表示参数及其不确定性。状态:使用process对时域数据“data”进行估计。拟合估计数据:70.4% FPE: 0.005614, MSE: 0.005607
渣油(sysP1D、数据);

clf对比(数据、sysTF sysTF_initialized sysP1D)

带有扰动模型的过程模型估计

到目前为止进行的所有估计的残差图显示残差相关性仍然很高,这意味着模型还不够丰富,无法解释测量数据中的所有信息。关键的缺失部分是我们尚未在模型中包含的干扰环境温度。

创建一个对延迟和时间常数值有限制的“P1D”过程模型,并将其作为估计问题的初始猜测。

sysInit = idproc (“P1D”“TimeUnit”“分钟”);

限制模型具有正增益,延时范围为[0 1]分钟。

sysInit.Structure.Kp.Value = 1;sysInit.Structure.Kp.Minimum = 0;sysInit.Structure.Tp1。值= 1;sysInit.Structure.Tp1。最大= 10;sysInit.Structure.Td.Value = 0.2;sysInit.Structure.Td.Minimum = 0;sysInit.Structure.Td.Maximum = 1;

指定对扰动分量使用一阶模型('ARMA1')的选项。使用模板模型sysInit以及用来估计模型的选项集。

选择= procestOptions (“DisturbanceModel”“ARMA1”);sysP1D_noise =过程(数据、sysInit选择)
sysP1D_noise =传递函数的过程模型:Kp G(s) = ---------- * exp(-Td*s) 1+Tp1*s Kp = 0.91001 Tp1 = 0.3356 Td = 0.24833一个附加的ARMA扰动模型已被估计y = G u + (C/D)e C(s) = s + 591.6 D(s) = s + 3.217参数化:{'P1D'}自由系数数量:5使用"getpvec", "getcov"表示参数及其不确定性。状态:使用process对时域数据“data”进行估计。与估计数据拟合:96.86%(预测焦点)FPE: 6.307e-05, MSE: 6.294e-05
渣油(sysP1D_noise、数据);

clf对比(数据、sysTF sysTF_initialized、sysP1D sysP1D_noise)

残差图清楚地表明残差是不相关的,这意味着我们有一个解释测量数据的模型。我们估计的“ARMA1”扰动分量作为分子和分母值存储在模型的“NoiseTF”属性中。

sysP1D_noise。NoiseTF
Ans =带有字段的结构:num: {[1 591.6038]} den: {[1 3.2172]}

比较不同模型

尽管我们已经确定了一个解释测量数据的模型,但我们注意到模型与测量数据的拟合度在70%左右。拟合值的损失是环境温度扰动强烈影响的结果,如下所示。

测量数据从Simulink模型中获得,其精确值如下(d为高斯噪声扰动)

y = (1 pi / 100) * exp(-15年代)/ (21.3 s + 1) * u + 1 / (25 + 1) * d

用这些值创建一个“P1D”模型,并查看该模型与测量数据的吻合程度。

sysReal = idproc (“P1D”“TimeUnit”“分钟”);sysReal。Kp = 1 pi / 100;sysReal。Td = 15/60;sysReal。Tp1 = 21.3/60;sysReal。NoiseTF= struct(“num”{[10000]},“窝”{0.04 [1]});
比较(数据、sysReal sysTF、sysTF_initialized sysP1D, sysP1D_noise);

对比图显示,系统对实测数据的真实拟合度也在70%左右,证实了我们的估计模型在拟合实测数据方面并不比真实模型差——这是环境温度扰动的强烈影响的结果。

额外的信息

有关使用系统识别工具箱识别动态系统的更多信息,请访问系统辨识工具箱产品信息页面。

Baidu
map