我正在尝试使用代码
找到某些输入数据和输出数据的传递函数Temperature = [zeros(1,153) 300*ones(1,47)];
out_temp = [zeros(1,147) ScopeData4.signals(1).values'];
N = 1;
tfdata_tem = iddata(out_temp,Temperature,0.001);
sys = tfest(tfdata_tem,N);
但最后我得到了以下错误,尽管我增加了样本数并将订单减少到1
估计所选估计数据大小的参数太多。减少模型订单或使用更大的数据集。
答案 0 :(得分:1)
最可能的问题是,您的数据集不包含足够丰富的频率集,以便基础算法估算模型(任何顺序)。
iddata1示例数据集给出了典型数据应该是什么样子的示例。 特别要注意的是,输入信号由许多步骤组成,以非规则的间隔发生,与只有一步的数据不同。
load iddata1 z1;
plot(z1);
答案 1 :(得分:0)
如图the answer的Phil Goddard所示,您需要两列输出值和输入值。但是您编程中的值是两行值。这意味着您需要将其更改为
Temperature = [zeros(1,153) 300*ones(1,47)]';
out_temp = [zeros(1,147) ScopeData4.signals(1).values']';
N = 1;
tfdata_tem = iddata(out_temp,Temperature,0.001);
sys = tfest(tfdata_tem,N);