test.py 795 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import numpy as np
  2. from scipy.optimize import curve_fit
  3. # NXFT15XH103
  4. data = np.array([
  5. [-40,197338],
  6. [-35,149395],
  7. [-30,114345],
  8. [-25,88381],
  9. [-20,68915],
  10. [-15,54166],
  11. [-10,42889],
  12. [-5,34196],
  13. [0,27445],
  14. [5,22165],
  15. [10,18010],
  16. [15,14720],
  17. [20,12099],
  18. [25,10000],
  19. [30,8309],
  20. [35,6939],
  21. [40,5824],
  22. [45,4911],
  23. [50,4160],
  24. [55,3539],
  25. [60,3024],
  26. [65,2593],
  27. [70,2233],
  28. [75,1929],
  29. [80,1673],
  30. [85,1455],
  31. [90,1270],
  32. [95,1112],
  33. [100,976],
  34. [105,860],
  35. [110,759],
  36. [115,673],
  37. [120,598],
  38. [125,532],
  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}")