背景
我有 4 组有刷直流电机的数据全部来自同一实验:
- 扭矩与速度(T 与 w)
- 扭矩与效率(T 与 n)
- 扭矩与输入功率(T 与 Pin)
- 扭矩与输出功率(T 与 Pout)
然而,每个数据集都有:
- 第一个和最后一个数据对的 x 值略有不同(每个数据集之间的 T_0 和 T_N 不匹配)
- 每个数据点之间的间距不同(所有组的 dT 都不相同)
- 不同的尺寸(“T vs w”比“T vs Pin”有更多的数据对)
Problem
这些差异使我无法在数据集之间进行处理。例如,我无法将单个实验的 T 数组用于所有计算,并且无法将测量的 Pout 与不同 T 下计算的 Pout (T*w) 进行比较。
重新采样数据以生成统一大小的最佳方法是什么and均匀间隔的集合?
尝试的解决方案
For each data set:
find domain shared with all sets (max x_0 and min x_N between all x)
extract indices corresponding to shared domain
#(idx = np.where(np.logical_and(x>=xMin,x<=xMax)))
if set x_0 != shared x_0:
linearly interpolate for new y_0 based on old x & y, shared x_0, and shared y_0
Piecewise linear interpolation (my own custom function) of M data points in the set
然而,这仍然给我带来不一致的结果,因为每个重新划分网格的数据集的“时间步长”是still数据集与数据集不同。
Hypothesis
使用scipy的内置插值库生成线性插值function对于每个数据集,只需使用相同的开始和停止索引以及时间步长填充一个新的数据表。
正如您所说,一种替代方法是计算每个数据集的分段线性插值函数。我会将二次样条和三次样条包含在同一个大类中。相反,您可以使用曲线拟合将合理的函数拟合到每个数据集。然后,您可以选择 max(T-0) 作为所有拟合函数的起点,同样选择 min(T-N) 作为所有拟合函数的终点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)