【发布时间】:2018-09-18 20:01:44
【问题描述】:
我正在尝试对不同的温度传感器进行线性组合,并使用应变传感器对其进行曲线化。
我所做的是我可以将一个温度传感器与一个应变传感器配合使用。
但我不知道如何在一个应变传感器上进行不同温度传感器的线性组合。
这是我的尝试:
def process_data_curve_fitting(temperature, strain):
#mean_T = (temperature[[i for i in temperature.columns.tolist() if str(i)[:2] == 'TW']].mean(axis=1))
print("process data")
T1 = temperature['T1'].tolist()
T2 = temperature['T2'].tolist()
T3 = temperature['T3'].tolist()
T4 = temperature['T4'].tolist()
T5 = temperature['T5'].tolist()
T6 = temperature['T6'].tolist()
T7 = temperature['T7'].tolist()
T8 = temperature['T8'].tolist()
T9 = temperature['T9'].tolist()
T10 = temperature['T10'].tolist()
df = pd.DataFrame(list(zip(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)))
mean_T = df.mean(axis = 1)
print(mean_T)
Sensor_Names = [ 'W_A1', 'W_A2', 'W_F1', 'W_F2', 'W_F4', 'W_S1', 'W_S2', 'W_S3', 'W_S4', 'W_KF1', 'W_KF2', 'W_KF3', 'W_KF4', 'W_DB1', 'W_DB2']
ys = []
for i in range(len(strain)):
cof = np.polyfit(mean_T, strain[i], 2)
poly = np.polyval(cof, mean_T)
ys.append(poly)
print (cof)
print (poly)
for i in range(len(strain)):
fig = plt.figure()
plt.scatter(mean_T, strain[i],s=0.1)
# fig.savefig(r'c:\\ahmed\\'+Sensor_Names[i]+'.png')
plt.plot(mean_T, ys[i], color='r')
fig.savefig(r'c:\\ahmed\\'+"Curve_fitting__" + Sensor_Names[i]+'.png',dpi=300)
plt.ylabel('strain' + Sensor_Names[i])
plt.xlabel('temperature')
【问题讨论】:
-
如果没有任何数据、示例输入、示例输出以及仅仅理解您的代码,很难尝试帮助您。
-
@Bazingaa 这里是一个数据集mediafire.com/file/r7dg7i9dacvpl2j/curve_fitting_ahmed.xlsx/…
-
您必须更清楚地解释您的问题。目前,您只是在
np.polyfit(mean_T, strain[i], 2)中适应变化应变的平均温度。你到底想适应什么?从您的问题来看,您似乎想要计算平均应变并使其适应不同的温度。您可以按照与平均温度拟合相同的方式进行操作。问题到底出在哪里? -
@Bazingaa 我想对每个应变传感器拟合三个温度传感器的线性组合,现在我能做的是将所有温度传感器的平均值与每个应变传感器拟合
-
你需要的可能是一个 3 度的 polyfit(方程 33)
标签: python pandas curve-fitting