test.py 800 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import numpy as np
  2. from scipy.optimize import curve_fit
  3. # NXFT18XH103F05RL
  4. data = np.array([
  5. [-40,195652],
  6. [-35,148171],
  7. [-30,113347],
  8. [-25,87559],
  9. [-20,68237],
  10. [-15,53650],
  11. [-10,42506],
  12. [-5,33892],
  13. [0,27219],
  14. [5,22021],
  15. [10,17926],
  16. [15,14674],
  17. [20,12081],
  18. [25,10000],
  19. [30,8315],
  20. [35,6948],
  21. [40,5834],
  22. [45,4917],
  23. [50,4161],
  24. [55,3535],
  25. [60,3014],
  26. [65,2586],
  27. [70,2228],
  28. [75,1925],
  29. [80,1669],
  30. [85,1452],
  31. [90,1268],
  32. [95,1110],
  33. [100,974],
  34. [105,858],
  35. [110,758],
  36. [115,672],
  37. [120,596],
  38. [125,531],
  39. ])
  40. T_K = data[:, 0] + 273.15
  41. R = data[:, 1]
  42. def steinhart_hart(R, A, B, C):
  43. return 1 / (A + B * np.log(R) + C * (np.log(R))*(np.log(R))*(np.log(R)))
  44. params, _ = curve_fit(steinhart_hart, R, 1/T_K)
  45. A, B, C = params
  46. print(f"A: {A}, B: {B}, C: {C}")