Guest User

Untitled

a guest
Nov 18th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.07 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from scipy.optimize import curve_fit
  4. from scipy.fftpack import fft, ifft
  5. from scipy import signal
  6. import math
  7.  
  8. # GLOBAL CONSTANTS #
  9. g = 9.80011
  10.  
  11. temp_wire = 533.440029556275
  12. temp_cal = 294.95
  13.  
  14. max_corrected_voltage = 0.0
  15.  
  16.  
  17. def density_water(T):
  18. a = 0.9998395
  19. b = 6.7982999E-05
  20. c = -9.1060255E-06
  21. d = 1.0052729E-07
  22. e = -1.1267135E-09
  23. f = 6.5917956E-12
  24. return(a+(b*T)+(c*(T**2))+(d*(T**3))+(e*(T**4))+(f*(T**5)))
  25. c = 0.020582
  26. return(((a*p)-(h*((b*T)-(c))))/(273.15+T))
  27.  
  28.  
  29.  
  30. rho_water = 1000 * density_water(21.8)
  31.  
  32.  
  33.  
  34. def density_air(T, p, h):
  35. a = 0.348444
  36. b = 0.00252
  37. c = 0.020582
  38. return(((a*p)-(h*((b*T)-(c))))/(273.15+T))
  39.  
  40.  
  41. rho_air = density_air(21.8, 1021.80, 0.36)
  42. print(rho_air)
  43.  
  44.  
  45. def u_fluc10(deg10_velocities):
  46. sds = np.zeros(len(deg10_velocities))
  47. sums = np.zeros(len(v_10deg_1))
  48. i = 0
  49. for v in v_10deg_1:
  50. sums[i] = (u(float(v)) - deg10_velocities[0])**2
  51. i += 1
  52. sds[0] = math.sqrt(np.sum(sums) / (len(v_10deg_1) - 1))
  53. sums = np.zeros(len(v_10deg_2))
  54. i = 0
  55. for v in v_10deg_2:
  56. sums[i] = (u(float(v)) - deg10_velocities[1])**2
  57. i += 1
  58. sds[1] = math.sqrt(np.sum(sums) / (len(v_10deg_1) - 1))
  59. sums = np.zeros(len(v_10deg_3))
  60. i = 0
  61. for v in v_10deg_3:
  62. sums[i] = (u(float(v)) - deg10_velocities[2])**2
  63. i += 1
  64. sds[2] = math.sqrt(np.sum(sums) / (len(v_10deg_2) - 1))
  65. sums = np.zeros(len(v_10deg_4))
  66. i = 0
  67. for v in v_10deg_4:
  68. sums[i] = (u(float(v)) - deg10_velocities[3])**2
  69. i += 1
  70. sds[3] = math.sqrt(np.sum(sums) / (len(v_10deg_3) - 1))
  71. sums = np.zeros(len(v_10deg_5))
  72. i = 0
  73. for v in v_10deg_5:
  74. sums[i] = (u(float(v)) - deg10_velocities[4])**2
  75. i += 1
  76. sds[4] = math.sqrt(np.sum(sums) / (len(v_10deg_4) - 1))
  77. sums = np.zeros(len(v_10deg_6))
  78. i = 0
  79. for v in v_10deg_6:
  80. sums[i] = (u(float(v)) - deg10_velocities[5])**2
  81. i += 1
  82. sds[5] = math.sqrt(np.sum(sums) / (len(v_10deg_5) - 1))
  83. sums = np.zeros(len(v_10deg_7))
  84. i = 0
  85. for v in v_10deg_7:
  86. sums[i] = (u(float(v)) - deg10_velocities[6])**2
  87. i += 1
  88. sds[6] = math.sqrt(np.sum(sums) / (len(v_10deg_6) - 1))
  89. sums = np.zeros(len(v_10deg_8))
  90. i = 0
  91. for v in v_10deg_8:
  92. sums[i] = (u(float(v)) - deg10_velocities[7])**2
  93. i += 1
  94. sds[7] = math.sqrt(np.sum(sums) / (len(v_10deg_7) - 1))
  95. sums = np.zeros(len(v_10deg_9))
  96. i = 0
  97. for v in v_10deg_9:
  98. sums[i] = (u(float(v)) - deg10_velocities[8])**2
  99. i += 1
  100. sds[8] = math.sqrt(np.sum(sums) / (len(v_10deg_8) - 1))
  101. sums = np.zeros(len(v_10deg_10))
  102. i = 0
  103. for v in v_10deg_10:
  104. sums[i] = (u(float(v)) - deg10_velocities[9])**2
  105. i += 1
  106. sds[9] = math.sqrt(np.sum(sums) / (len(v_10deg_9) - 1))
  107. sums = np.zeros(len(v_10deg_11))
  108. i = 0
  109. for v in v_10deg_11:
  110. sums[i] = (u(float(v)) - deg10_velocities[10])**2
  111. i += 1
  112. sds[10] = math.sqrt(np.sum(sums) / (len(v_10deg_10) - 1))
  113. sums = np.zeros(len(v_10deg_12))
  114. i = 0
  115. for v in v_10deg_12:
  116. sums[i] = (u(float(v)) - deg10_velocities[11])**2
  117. i += 1
  118. sds[11] = math.sqrt(np.sum(sums) / (len(v_10deg_11) - 1))
  119. sums = np.zeros(len(v_10deg_13))
  120. i = 0
  121. for v in v_10deg_13:
  122. sums[i] = (u(float(v)) - deg10_velocities[12])**2
  123. i += 1
  124. sds[12] = math.sqrt(np.sum(sums) / (len(v_10deg_13) - 1))
  125.  
  126. return(sds)
  127.  
  128. def u_fluc20(deg20_velocities):
  129. sds = np.zeros(len(deg20_velocities))
  130. sums = np.zeros(len(v_20deg_1))
  131. i = 0
  132. for v in v_20deg_1:
  133. sums[i] = (u(float(v)) - deg20_velocities[0])**2
  134. i += 1
  135. sds[0] = math.sqrt(np.sum(sums) / (len(v_20deg_1) - 1))
  136. sums = np.zeros(len(v_20deg_2))
  137. i = 0
  138. for v in v_20deg_2:
  139. sums[i] = (u(float(v)) - deg20_velocities[1])**2
  140. i += 1
  141. sds[1] = math.sqrt(np.sum(sums) / (len(v_20deg_2) - 1))
  142. sums = np.zeros(len(v_20deg_3))
  143. i = 0
  144. for v in v_20deg_3:
  145. sums[i] = (u(float(v)) - deg20_velocities[2])**2
  146. i += 1
  147. sds[2] = math.sqrt(np.sum(sums) / (len(v_20deg_3) - 1))
  148. sums = np.zeros(len(v_20deg_4))
  149. i = 0
  150. for v in v_20deg_4:
  151. sums[i] = (u(float(v)) - deg20_velocities[3])**2
  152. i += 1
  153. sds[3] = math.sqrt(np.sum(sums) / (len(v_20deg_4) - 1))
  154. sums = np.zeros(len(v_20deg_5))
  155. i = 0
  156. for v in v_20deg_5:
  157. sums[i] = (u(float(v)) - deg20_velocities[4])**2
  158. i += 1
  159. sds[4] = math.sqrt(np.sum(sums) / (len(v_20deg_5) - 1))
  160. sums = np.zeros(len(v_20deg_6))
  161. i = 0
  162. for v in v_20deg_6:
  163. sums[i] = (u(float(v)) - deg20_velocities[5])**2
  164. i += 1
  165. sds[5] = math.sqrt(np.sum(sums) / (len(v_20deg_6) - 1))
  166. sums = np.zeros(len(v_20deg_7))
  167. i = 0
  168. for v in v_20deg_7:
  169. sums[i] = (u(float(v)) - deg20_velocities[6])**2
  170. i += 1
  171. sds[6] = math.sqrt(np.sum(sums) / (len(v_20deg_7) - 1))
  172. sums = np.zeros(len(v_20deg_8))
  173. i = 0
  174. for v in v_20deg_8:
  175. sums[i] = (u(float(v)) - deg20_velocities[7])**2
  176. i += 1
  177. sds[7] = math.sqrt(np.sum(sums) / (len(v_20deg_8) - 1))
  178. sums = np.zeros(len(v_20deg_9))
  179. i = 0
  180. for v in v_20deg_9:
  181. sums[i] = (u(float(v)) - deg20_velocities[8])**2
  182. i += 1
  183. sds[8] = math.sqrt(np.sum(sums) / (len(v_20deg_9) - 1))
  184. sums = np.zeros(len(v_20deg_10))
  185. i = 0
  186. for v in v_20deg_10:
  187. sums[i] = (u(float(v)) - deg20_velocities[9])**2
  188. i += 1
  189. sds[9] = math.sqrt(np.sum(sums) / (len(v_20deg_10) - 1))
  190. sums = np.zeros(len(v_20deg_11))
  191. i = 0
  192. for v in v_20deg_11:
  193. sums[i] = (u(float(v)) - deg20_velocities[10])**2
  194. i += 1
  195. sds[10] = math.sqrt(np.sum(sums) / (len(v_20deg_11) - 1))
  196. sums = np.zeros(len(v_20deg_12))
  197. i = 0
  198. for v in v_20deg_12:
  199. sums[i] = (u(float(v)) - deg20_velocities[11])**2
  200. i += 1
  201. sds[11] = math.sqrt(np.sum(sums) / (len(v_20deg_12) - 1))
  202. sums = np.zeros(len(v_20deg_13))
  203. i = 0
  204. for v in v_20deg_13:
  205. sums[i] = (u(float(v)) - deg20_velocities[12])**2
  206. i += 1
  207. sds[12] = math.sqrt(np.sum(sums) / (len(v_20deg_13) - 1))
  208. sums = np.zeros(len(v_20deg_14))
  209. i = 0
  210. for v in v_20deg_14:
  211. sums[i] = (u(float(v)) - deg20_velocities[13])**2
  212. i += 1
  213. sds[13] = math.sqrt(np.sum(sums) / (len(v_20deg_14) - 1))
  214. sums = np.zeros(len(v_20deg_15))
  215. i = 0
  216. for v in v_20deg_15:
  217. sums[i] = (u(float(v)) - deg20_velocities[14])**2
  218. i += 1
  219. sds[14] = math.sqrt(np.sum(sums) / (len(v_20deg_15) - 1))
  220. sums = np.zeros(len(v_20deg_16))
  221. i = 0
  222. for v in v_20deg_16:
  223. sums[i] = (u(float(v)) - deg20_velocities[15])**2
  224. i += 1
  225. sds[15] = math.sqrt(np.sum(sums) / (len(v_20deg_16) - 1))
  226. sums = np.zeros(len(v_20deg_17))
  227. i = 0
  228. for v in v_20deg_17:
  229. sums[i] = (u(float(v)) - deg20_velocities[16])**2
  230. i += 1
  231. sds[16] = math.sqrt(np.sum(sums) / (len(v_20deg_17) - 1))
  232. sums = np.zeros(len(v_20deg_18))
  233. i = 0
  234. for v in v_20deg_18:
  235. sums[i] = (u(float(v)) - deg20_velocities[17])**2
  236. i += 1
  237. sds[17] = math.sqrt(np.sum(sums) / (len(v_20deg_18) - 1))
  238. sums = np.zeros(len(v_20deg_19))
  239. i = 0
  240. for v in v_20deg_19:
  241. sums[i] = (u(float(v)) - deg20_velocities[18])**2
  242. i += 1
  243. sds[18] = math.sqrt(np.sum(sums) / (len(v_20deg_19) - 1))
  244. sums = np.zeros(len(v_20deg_20))
  245. i = 0
  246. for v in v_20deg_20:
  247. sums[i] = (u(float(v)) - deg20_velocities[19])**2
  248. i += 1
  249. sds[19] = math.sqrt(np.sum(sums) / (len(v_20deg_20) - 1))
  250. sums = np.zeros(len(v_20deg_21))
  251. i = 0
  252. for v in v_20deg_21:
  253. sums[i] = (u(float(v)) - deg20_velocities[20])**2
  254. i += 1
  255. sds[20] = math.sqrt(np.sum(sums) / (len(v_20deg_21) - 1))
  256.  
  257. return(sds)
  258.  
  259.  
  260. def av_voltages(voltages):
  261. global max_corrected_voltage
  262. total = 0.0
  263. for v in voltages:
  264. if v > max_corrected_voltage:
  265. max_corrected_voltage = v
  266. total += float(v)
  267. return(total/len(voltages))
  268.  
  269. def read_data(name, cali):
  270. initial_done = False
  271. fob = open(name, "r")
  272. a = fob.readlines()
  273. fob.close()
  274. b = []
  275. p_diff = 0
  276. for line in a:
  277. b.append(line.strip())
  278. t = np.zeros(len(b[25:]))
  279. v = np.zeros(len(b[25:]))
  280. i = 0
  281. for item in b[25:]:
  282. if not initial_done:
  283. p_diff = (rho_water * g * 0.5 * 1E-03) * float(item.split()[2])
  284. temp = float(item.split()[3])
  285. pressure = float(item.split()[4])
  286. initial_done = True
  287. t[i] = (item.split()[0])
  288. v[i] = (item.split()[1])
  289. i += 1
  290. if cali:
  291. return(t, v, p_diff, temp, pressure)
  292. else:
  293. return(t, v)
  294.  
  295.  
  296. ################ IMPORT DATA #####################
  297. t_Cal_1, v_Cal_1, p_diff_1, temp_Cal_1, pres_Cal_1 = read_data("Calibration_1.lvm", True)
  298. t_Cal_2, v_Cal_2, p_diff_2, temp_Cal_2, pres_Cal_2 = read_data("Calibration_2.lvm", True)
  299. t_Cal_3, v_Cal_3, p_diff_3, temp_Cal_3, pres_Cal_3 = read_data("Calibration_3.lvm", True)
  300. t_Cal_4, v_Cal_4, p_diff_4, temp_Cal_4, pres_Cal_4 = read_data("Calibration_4.lvm", True)
  301. t_Cal_5, v_Cal_5, p_diff_5, temp_Cal_5, pres_Cal_5 = read_data("Calibration_5.lvm", True)
  302. t_Cal_6, v_Cal_6, p_diff_6, temp_Cal_6, pres_Cal_6 = read_data("Calibration_6.lvm", True)
  303. t_Cal_7, v_Cal_7, p_diff_7, temp_Cal_7, pres_Cal_7 = read_data("Calibration_7.lvm", True)
  304. t_Cal_8, v_Cal_8, p_diff_8, temp_Cal_8, pres_Cal_8 = read_data("Calibration_8.lvm", True)
  305. t_Cal_9, v_Cal_9, p_diff_9, temp_Cal_9, pres_Cal_9 = read_data("Calibration_9.lvm", True)
  306. t_Cal_10, v_Cal_10, p_diff_10, temp_Cal_10, pres_Cal_10 = read_data("Calibration_10.lvm", True)
  307. t_Cal_11, v_Cal_11, p_diff_11, temp_Cal_11, pres_Cal_11 = read_data("Calibration_11.lvm", True)
  308. t_Cal_12, v_Cal_12, p_diff_12, temp_Cal_12, pres_Cal_12 = read_data("Calibration_12.lvm", True)
  309. t_Cal_13, v_Cal_13, p_diff_13, temp_Cal_13, pres_Cal_13 = read_data("Calibration_13.lvm", True)
  310. t_Cal_14, v_Cal_14, p_diff_14, temp_Cal_14, pres_Cal_14 = read_data("Calibration_14.lvm", True)
  311. t_Cal_15, v_Cal_15, p_diff_15, temp_Cal_15, pres_Cal_15 = read_data("Calibration_15.lvm", True)
  312.  
  313. # x = (y - b) / A
  314. v_Cal_1_corr = v_Cal_1 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_Cal_1+273.15)))
  315. v_Cal_2_corr = v_Cal_2 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_Cal_2+273.15)))
  316. v_Cal_3_corr = v_Cal_3 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_Cal_3+273.15)))
  317. v_Cal_4_corr = v_Cal_4 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_Cal_4+273.15)))
  318. v_Cal_5_corr = v_Cal_5 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_Cal_5+273.15)))
  319. v_Cal_6_corr = v_Cal_6 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_Cal_6+273.15)))
  320. v_Cal_7_corr = v_Cal_7 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_Cal_7+273.15)))
  321. v_Cal_8_corr = v_Cal_8 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_Cal_8+273.15)))
  322. v_Cal_9_corr = v_Cal_9 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_Cal_9+273.15)))
  323. v_Cal_10_corr = v_Cal_10 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_Cal_10+273.15)))
  324. v_Cal_11_corr = v_Cal_11 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_Cal_11+273.15)))
  325. v_Cal_12_corr = v_Cal_12 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_Cal_12+273.15)))
  326. v_Cal_13_corr = v_Cal_13 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_Cal_13+273.15)))
  327. v_Cal_14_corr = v_Cal_14 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_Cal_14+273.15)))
  328. v_Cal_15_corr = v_Cal_15 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_Cal_15+273.15)))
  329.  
  330.  
  331. av_Cal_1 = av_voltages(v_Cal_1_corr)
  332. av_Cal_2 = av_voltages(v_Cal_2_corr)
  333. av_Cal_3 = av_voltages(v_Cal_3_corr)
  334. av_Cal_4 = av_voltages(v_Cal_4_corr)
  335. av_Cal_5 = av_voltages(v_Cal_5_corr)
  336. av_Cal_6 = av_voltages(v_Cal_6_corr)
  337. av_Cal_7 = av_voltages(v_Cal_7_corr)
  338. av_Cal_8 = av_voltages(v_Cal_8_corr)
  339. av_Cal_9 = av_voltages(v_Cal_9_corr)
  340. av_Cal_10 = av_voltages(v_Cal_10_corr)
  341. av_Cal_11 = av_voltages(v_Cal_11_corr)
  342. av_Cal_12 = av_voltages(v_Cal_12_corr)
  343. av_Cal_13 = av_voltages(v_Cal_13_corr)
  344. av_Cal_14 = av_voltages(v_Cal_14_corr)
  345. av_Cal_15 = av_voltages(v_Cal_15_corr)
  346.  
  347.  
  348. #av_Cal_1 = av_voltages(v_Cal_1)
  349. #av_Cal_2 = av_voltages(v_Cal_2)
  350. #av_Cal_3 = av_voltages(v_Cal_3)
  351. #av_Cal_4 = av_voltages(v_Cal_4)
  352. #av_Cal_5 = av_voltages(v_Cal_5)
  353. #av_Cal_6 = av_voltages(v_Cal_6)
  354. #av_Cal_7 = av_voltages(v_Cal_7)
  355. #av_Cal_8 = av_voltages(v_Cal_8)
  356. #av_Cal_9 = av_voltages(v_Cal_9)
  357. #av_Cal_10 = av_voltages(v_Cal_10)
  358. #av_Cal_11 = av_voltages(v_Cal_11)
  359. #av_Cal_12 = av_voltages(v_Cal_12)
  360. #av_Cal_13 = av_voltages(v_Cal_13)
  361. #av_Cal_14 = av_voltages(v_Cal_14)
  362. #av_Cal_15 = av_voltages(v_Cal_15)
  363.  
  364.  
  365.  
  366.  
  367. t_10deg_1, v_10deg_1, p_diff_10deg_1, temp_10deg_1, pres_10deg_1 = read_data("10deg_1.lvm", True)
  368. t_10deg_2, v_10deg_2, p_diff_10deg_2, temp_10deg_2, pres_10deg_2 = read_data("10deg_2.lvm", True)
  369. t_10deg_3, v_10deg_3, p_diff_10deg_3, temp_10deg_3, pres_10deg_3 = read_data("10deg_3.lvm", True)
  370. t_10deg_4, v_10deg_4, p_diff_10deg_4, temp_10deg_4, pres_10deg_4 = read_data("10deg_4.lvm", True)
  371. t_10deg_5, v_10deg_5, p_diff_10deg_5, temp_10deg_5, pres_10deg_5 = read_data("10deg_5.lvm", True)
  372. t_10deg_6, v_10deg_6, p_diff_10deg_6, temp_10deg_6, pres_10deg_6 = read_data("10deg_6.lvm", True)
  373. t_10deg_7, v_10deg_7, p_diff_10deg_7, temp_10deg_7, pres_10deg_7 = read_data("10deg_7.lvm", True)
  374. t_10deg_8, v_10deg_8, p_diff_10deg_8, temp_10deg_8, pres_10deg_8 = read_data("10deg_8.lvm", True)
  375. t_10deg_9, v_10deg_9, p_diff_10deg_9, temp_10deg_9, pres_10deg_9 = read_data("10deg_9.lvm", True)
  376. t_10deg_10, v_10deg_10, p_diff_10deg_10, temp_10deg_10, pres_10deg_10 = read_data("10deg_10.lvm", True)
  377. t_10deg_11, v_10deg_11, p_diff_10deg_11, temp_10deg_11, pres_10deg_11 = read_data("10deg_11.lvm", True)
  378. t_10deg_12, v_10deg_12, p_diff_10deg_12, temp_10deg_12, pres_10deg_12 = read_data("10deg_12.lvm", True)
  379. t_10deg_13, v_10deg_13, p_diff_10deg_13, temp_10deg_13, pres_10deg_13 = read_data("10deg_13.lvm", True)
  380.  
  381. v_10deg_1_corr = v_10deg_1 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_10deg_1+273.15)))
  382. v_10deg_2_corr = v_10deg_2 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_10deg_2+273.15)))
  383. v_10deg_3_corr = v_10deg_3 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_10deg_3+273.15)))
  384. v_10deg_4_corr = v_10deg_4 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_10deg_4+273.15)))
  385. v_10deg_5_corr = v_10deg_5 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_10deg_5+273.15)))
  386. v_10deg_6_corr = v_10deg_6 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_10deg_6+273.15)))
  387. v_10deg_7_corr = v_10deg_7 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_10deg_7+273.15)))
  388. v_10deg_8_corr = v_10deg_8 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_10deg_8+273.15)))
  389. v_10deg_9_corr = v_10deg_9 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_10deg_9+273.15)))
  390. v_10deg_10_corr = v_10deg_10 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_10deg_10+273.15)))
  391. v_10deg_11_corr = v_10deg_11 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_10deg_11+273.15)))
  392. v_10deg_12_corr = v_10deg_12 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_10deg_12+273.15)))
  393. v_10deg_13_corr = v_10deg_13 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_10deg_13+273.15)))
  394.  
  395. av_10deg_1 = av_voltages(v_10deg_1_corr)
  396. av_10deg_2 = av_voltages(v_10deg_2_corr)
  397. av_10deg_3 = av_voltages(v_10deg_3_corr)
  398. av_10deg_4 = av_voltages(v_10deg_4_corr)
  399. av_10deg_5 = av_voltages(v_10deg_5_corr)
  400. av_10deg_6 = av_voltages(v_10deg_6_corr)
  401. av_10deg_7 = av_voltages(v_10deg_7_corr)
  402. av_10deg_8 = av_voltages(v_10deg_8_corr)
  403. av_10deg_9 = av_voltages(v_10deg_9_corr)
  404. av_10deg_10 = av_voltages(v_10deg_10_corr)
  405. av_10deg_11 = av_voltages(v_10deg_11_corr)
  406. av_10deg_12 = av_voltages(v_10deg_12_corr)
  407. av_10deg_13 = av_voltages(v_10deg_13_corr)
  408.  
  409. #av_10deg_1 = av_voltages(v_10deg_1)
  410. #av_10deg_2 = av_voltages(v_10deg_2)
  411. #av_10deg_3 = av_voltages(v_10deg_3)
  412. #av_10deg_4 = av_voltages(v_10deg_4)
  413. #av_10deg_5 = av_voltages(v_10deg_5)
  414. #av_10deg_6 = av_voltages(v_10deg_6)
  415. #av_10deg_7 = av_voltages(v_10deg_7)
  416. #av_10deg_8 = av_voltages(v_10deg_8)
  417. #av_10deg_9 = av_voltages(v_10deg_9)
  418. #av_10deg_10 = av_voltages(v_10deg_10)
  419. #av_10deg_11 = av_voltages(v_10deg_11)
  420. #av_10deg_12 = av_voltages(v_10deg_12)
  421. #av_10deg_13 = av_voltages(v_10deg_13)
  422.  
  423.  
  424. voltages_av_10deg = np.array([av_10deg_1,av_10deg_2,av_10deg_3,av_10deg_4,av_10deg_5,av_10deg_6,av_10deg_7,av_10deg_8,av_10deg_9,av_10deg_10,av_10deg_11,av_10deg_12,av_10deg_13])
  425.  
  426. t_20deg_1, v_20deg_1, p_diff_20deg_1, temp_20deg_1, pres_20deg_1 = read_data("20deg_1.lvm", True)
  427. t_20deg_2, v_20deg_2, p_diff_20deg_2, temp_20deg_2, pres_20deg_2 = read_data("20deg_2.lvm", True)
  428. t_20deg_3, v_20deg_3, p_diff_20deg_3, temp_20deg_3, pres_20deg_3 = read_data("20deg_3.lvm", True)
  429. t_20deg_4, v_20deg_4, p_diff_20deg_4, temp_20deg_4, pres_20deg_4 = read_data("20deg_4.lvm", True)
  430. t_20deg_5, v_20deg_5, p_diff_20deg_5, temp_20deg_5, pres_20deg_5 = read_data("20deg_5.lvm", True)
  431. t_20deg_6, v_20deg_6, p_diff_20deg_6, temp_20deg_6, pres_20deg_6 = read_data("20deg_6.lvm", True)
  432. t_20deg_7, v_20deg_7, p_diff_20deg_7, temp_20deg_7, pres_20deg_7 = read_data("20deg_7.lvm", True)
  433. t_20deg_8, v_20deg_8, p_diff_20deg_8, temp_20deg_8, pres_20deg_8 = read_data("20deg_8.lvm", True)
  434. t_20deg_9, v_20deg_9, p_diff_20deg_9, temp_20deg_9, pres_20deg_9 = read_data("20deg_9.lvm", True)
  435. t_20deg_10, v_20deg_10, p_diff_20deg_10, temp_20deg_10, pres_20deg_10 = read_data("20deg_10.lvm", True)
  436. t_20deg_11, v_20deg_11, p_diff_20deg_11, temp_20deg_11, pres_20deg_11 = read_data("20deg_11.lvm", True)
  437. t_20deg_12, v_20deg_12, p_diff_20deg_12, temp_20deg_12, pres_20deg_12 = read_data("20deg_12.lvm", True)
  438. t_20deg_13, v_20deg_13, p_diff_20deg_13, temp_20deg_13, pres_20deg_13 = read_data("20deg_13.lvm", True)
  439. t_20deg_14, v_20deg_14, p_diff_20deg_14, temp_20deg_14, pres_20deg_14 = read_data("20deg_14.lvm", True)
  440. t_20deg_15, v_20deg_15, p_diff_20deg_15, temp_20deg_15, pres_20deg_15 = read_data("20deg_15.lvm", True)
  441. t_20deg_16, v_20deg_16, p_diff_20deg_16, temp_20deg_16, pres_20deg_16 = read_data("20deg_16.lvm", True)
  442. t_20deg_17, v_20deg_17, p_diff_20deg_17, temp_20deg_17, pres_20deg_17 = read_data("20deg_17.lvm", True)
  443. t_20deg_18, v_20deg_18, p_diff_20deg_18, temp_20deg_18, pres_20deg_18 = read_data("20deg_18.lvm", True)
  444. t_20deg_19, v_20deg_19, p_diff_20deg_19, temp_20deg_19, pres_20deg_19 = read_data("20deg_19.lvm", True)
  445. t_20deg_20, v_20deg_20, p_diff_20deg_20, temp_20deg_20, pres_20deg_20 = read_data("20deg_20.lvm", True)
  446. t_20deg_21, v_20deg_21, p_diff_20deg_21, temp_20deg_21, pres_20deg_21 = read_data("20deg_21.lvm", True)
  447.  
  448. v_20deg_1_corr = v_20deg_1 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_1+273.15)))
  449. v_20deg_2_corr = v_20deg_2 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_2+273.15)))
  450. v_20deg_3_corr = v_20deg_3 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_3+273.15)))
  451. v_20deg_4_corr = v_20deg_4 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_4+273.15)))
  452. v_20deg_5_corr = v_20deg_5 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_5+273.15)))
  453. v_20deg_6_corr = v_20deg_6 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_6+273.15)))
  454. v_20deg_7_corr = v_20deg_7 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_7+273.15)))
  455. v_20deg_8_corr = v_20deg_8 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_8+273.15)))
  456. v_20deg_9_corr = v_20deg_9 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_9+273.15)))
  457. v_20deg_10_corr = v_20deg_10 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_10+273.15)))
  458. v_20deg_11_corr = v_20deg_11 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_11+273.15)))
  459. v_20deg_12_corr = v_20deg_12 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_12+273.15)))
  460. v_20deg_13_corr = v_20deg_13 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_13+273.15)))
  461. v_20deg_14_corr = v_20deg_14 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_14+273.15)))
  462. v_20deg_15_corr = v_20deg_15 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_15+273.15)))
  463. v_20deg_16_corr = v_20deg_16 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_16+273.15)))
  464. v_20deg_17_corr = v_20deg_17 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_17+273.15)))
  465. v_20deg_18_corr = v_20deg_18 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_18+273.15)))
  466. v_20deg_19_corr = v_20deg_19 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_19+273.15)))
  467. v_20deg_20_corr = v_20deg_20 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_20+273.15)))
  468. v_20deg_21_corr = v_20deg_21 * math.sqrt((temp_wire - temp_cal)/(temp_wire - (temp_20deg_21+273.15)))
  469.  
  470.  
  471. #av_20deg_1 = av_voltages(v_20deg_1)
  472. #av_20deg_2 = av_voltages(v_20deg_2)
  473. #av_20deg_3 = av_voltages(v_20deg_3)
  474. #av_20deg_4 = av_voltages(v_20deg_4)
  475. #av_20deg_5 = av_voltages(v_20deg_5)
  476. #av_20deg_6 = av_voltages(v_20deg_6)
  477. #av_20deg_7 = av_voltages(v_20deg_7)
  478. #av_20deg_8 = av_voltages(v_20deg_8)
  479. #av_20deg_9 = av_voltages(v_20deg_9)
  480. #av_20deg_10 = av_voltages(v_20deg_10)
  481. #av_20deg_11 = av_voltages(v_20deg_11)
  482. #av_20deg_12 = av_voltages(v_20deg_12)
  483. #av_20deg_13 = av_voltages(v_20deg_13)
  484. #av_20deg_14 = av_voltages(v_20deg_14)
  485. #av_20deg_15 = av_voltages(v_20deg_15)
  486. #av_20deg_16 = av_voltages(v_20deg_16)
  487. #av_20deg_17 = av_voltages(v_20deg_17)
  488. #av_20deg_18 = av_voltages(v_20deg_18)
  489. #av_20deg_19 = av_voltages(v_20deg_19)
  490. #av_20deg_20 = av_voltages(v_20deg_20)
  491. #av_20deg_21 = av_voltages(v_20deg_21)
  492. av_20deg_1 = av_voltages(v_20deg_1_corr)
  493. av_20deg_2 = av_voltages(v_20deg_2_corr)
  494. av_20deg_3 = av_voltages(v_20deg_3_corr)
  495. av_20deg_4 = av_voltages(v_20deg_4_corr)
  496. av_20deg_5 = av_voltages(v_20deg_5_corr)
  497. av_20deg_6 = av_voltages(v_20deg_6_corr)
  498. av_20deg_7 = av_voltages(v_20deg_7_corr)
  499. av_20deg_8 = av_voltages(v_20deg_8_corr)
  500. av_20deg_9 = av_voltages(v_20deg_9_corr)
  501. av_20deg_10 = av_voltages(v_20deg_10_corr)
  502. av_20deg_11 = av_voltages(v_20deg_11_corr)
  503. av_20deg_12 = av_voltages(v_20deg_12_corr)
  504. av_20deg_13 = av_voltages(v_20deg_13_corr)
  505. av_20deg_14 = av_voltages(v_20deg_14_corr)
  506. av_20deg_15 = av_voltages(v_20deg_15_corr)
  507. av_20deg_16 = av_voltages(v_20deg_16_corr)
  508. av_20deg_17 = av_voltages(v_20deg_17_corr)
  509. av_20deg_18 = av_voltages(v_20deg_18_corr)
  510. av_20deg_19 = av_voltages(v_20deg_19_corr)
  511. av_20deg_20 = av_voltages(v_20deg_20_corr)
  512. av_20deg_21 = av_voltages(v_20deg_21_corr)
  513.  
  514.  
  515. ##################################################
  516.  
  517. # y=0.8889x+2.8162
  518. # 559.12
  519.  
  520. wake_velocities = np.zeros(15)
  521.  
  522.  
  523. def f(x, A, B):
  524. return(A*x + B)
  525.  
  526. def fourth_order(x, A, B, C, D, E):
  527. return(A*x**4 + B*x**3 + C*x**2 + D*x + E)
  528.  
  529. def pressure_callibration():
  530. p_wake_mm = np.array([238, 234, 221, 200, 164, 239, 220, 179, 139, 116, 238, 231, 215, 180, 150])
  531. p_top_mm = np.array([240, 234, 221, 201, 164, 240, 220, 180, 140, 115, 239, 233, 215, 181, 151])
  532. p_test_mm = np.array([125, 125, 124, 122, 118, 125, 123, 119, 115, 112, 125, 125, 123, 119, 116])
  533. p_amb_mm = np.array([110, 111, 112, 112, 112, 110, 111, 112, 112, 112, 110, 111, 112, 112 ,112])
  534. p_wake = (rho_water * g * 0.5 * (p_wake_mm - p_amb_mm) * 1E-03) + 102180
  535. p_top = (rho_water * g * 0.5 * (p_top_mm - p_amb_mm) * 1E-03) + 102180
  536. p_test = (rho_water * g * 0.5 * (p_test_mm - p_amb_mm) * 1E-03) + 102180
  537. y_mm = p_top_mm - p_test_mm
  538. x_mm = p_wake_mm - p_amb_mm
  539. y = p_top - p_test
  540. x = p_wake - 102180
  541. return(x, y)
  542.  
  543. x, y = pressure_callibration()
  544.  
  545.  
  546. A, B = curve_fit(f, x, y)[0]
  547.  
  548. print(type(rho_air))
  549.  
  550. v1 = math.sqrt(((2*((p_diff_1 - B) / A)))/rho_air)
  551. v2 = math.sqrt(((2*((p_diff_2 - B) / A)))/rho_air)
  552. v3 = math.sqrt(((2*((p_diff_3 - B) / A)))/rho_air)
  553. v4 = math.sqrt(((2*((p_diff_4 - B) / A)))/rho_air)
  554. v5 = math.sqrt(((2*((p_diff_5 - B) / A)))/rho_air)
  555. v6 = math.sqrt(((2*((p_diff_6 - B) / A)))/rho_air)
  556. v7 = math.sqrt(((2*((p_diff_7 - B) / A)))/rho_air)
  557. v8 = math.sqrt(((2*((p_diff_8 - B) / A)))/rho_air)
  558. v9 = math.sqrt(((2*((p_diff_9 - B) / A)))/rho_air)
  559. v10 = math.sqrt(((2*((p_diff_10 - B) / A)))/rho_air)
  560. v11 = math.sqrt(((2*((p_diff_11 - B) / A)))/rho_air)
  561. v12 = math.sqrt(((2*((p_diff_12 - B) / A)))/rho_air)
  562. v13 = math.sqrt(((2*((p_diff_13 - B) / A)))/rho_air)
  563. v14 = math.sqrt(((2*((p_diff_14 - B) / A)))/rho_air)
  564. v15 = math.sqrt(((2*((p_diff_15 - B) / A)))/rho_air)
  565. print(" ")
  566.  
  567. wake_vels = np.array([v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15])
  568. wake_avg_volts = np.array([av_Cal_1,av_Cal_2,av_Cal_3,av_Cal_4,av_Cal_5,av_Cal_6,av_Cal_7,av_Cal_8,av_Cal_9,av_Cal_10,av_Cal_11,av_Cal_12,av_Cal_13,av_Cal_14,av_Cal_15 ])
  569.  
  570. ###############
  571. fs = []
  572. for point in x:
  573. fs.append(f(point, A, B))
  574. ###############
  575.  
  576. iss = np.linspace(1.8, 2.15, 50)
  577. wsss = []
  578. wsss_uncorrected = []
  579. wA, wB, wC, wD, wE = curve_fit(fourth_order, wake_avg_volts, wake_vels)[0]
  580. print(wA,wB,wC,wD,wE)
  581. coeffs_original = np.array([-481.256547108,3796.04214114,-11116.3797762,14386.1659252,-6954.53632154])
  582.  
  583. #wA = coeffs_original[0]
  584. #wB = coeffs_original[1]
  585. #wC = coeffs_original[2]
  586. #wD = coeffs_original[3]
  587. #wE = coeffs_original[4]
  588.  
  589. def u(vol):
  590. return (wA*vol**4 + wB*vol**3 + wC*vol**2 + wD*vol + wE)
  591.  
  592.  
  593. wake_pos_10deg = np.array([12, 10, 8, 6, 4, 2, 0, -2, -4, -6, -8, -10, -12])
  594. wake_vel_10deg = np.zeros(len(wake_pos_10deg))
  595.  
  596. wake_pos_20deg = np.linspace(20, -20, 21)
  597. wake_vel_20deg = np.zeros(len(wake_pos_20deg))
  598.  
  599. wake_vel_10deg[0] = u(av_10deg_1)
  600. wake_vel_10deg[1] = u(av_10deg_2)
  601. wake_vel_10deg[2] = u(av_10deg_3)
  602. wake_vel_10deg[3] = u(av_10deg_4)
  603. wake_vel_10deg[4] = u(av_10deg_5)
  604. wake_vel_10deg[5] = u(av_10deg_6)
  605. wake_vel_10deg[6] = u(av_10deg_7)
  606. wake_vel_10deg[7] = u(av_10deg_8)
  607. wake_vel_10deg[8] = u(av_10deg_9)
  608. wake_vel_10deg[9] = u(av_10deg_10)
  609. wake_vel_10deg[10] = u(av_10deg_11)
  610. wake_vel_10deg[11] = u(av_10deg_12)
  611. wake_vel_10deg[12] = u(av_10deg_13)
  612.  
  613. wake_vel_20deg[0] = u(av_20deg_1)
  614. wake_vel_20deg[1] = u(av_20deg_2)
  615. wake_vel_20deg[2] = u(av_20deg_3)
  616. wake_vel_20deg[3] = u(av_20deg_4)
  617. wake_vel_20deg[4] = u(av_20deg_5)
  618. wake_vel_20deg[5] = u(av_20deg_6)
  619. wake_vel_20deg[6] = u(av_20deg_7)
  620. wake_vel_20deg[7] = u(av_20deg_8)
  621. wake_vel_20deg[8] = u(av_20deg_9)
  622. wake_vel_20deg[9] = u(av_20deg_10)
  623. wake_vel_20deg[10] = u(av_20deg_11)
  624. wake_vel_20deg[11] = u(av_20deg_12)
  625. wake_vel_20deg[12] = u(av_20deg_13)
  626. wake_vel_20deg[13] = u(av_20deg_14)
  627. wake_vel_20deg[14] = u(av_20deg_15)
  628. wake_vel_20deg[15] = u(av_20deg_16)
  629. wake_vel_20deg[16] = u(av_20deg_17)
  630. wake_vel_20deg[17] = u(av_20deg_18)
  631. wake_vel_20deg[18] = u(av_20deg_19)
  632. wake_vel_20deg[19] = u(av_20deg_20)
  633. wake_vel_20deg[20] = u(av_20deg_21)
  634.  
  635. #for i in iss:
  636. # wsss.append(fourth_order(i, wA, wB, wC, wD, wE))
  637. # wsss_uncorrected.append(fourth_order(i, coeffs_original[0],coeffs_original[1],coeffs_original[2],coeffs_original[3],coeffs_original[4]))
  638. #
  639. #plt.plot(iss, wsss)
  640. #plt.plot(iss, wsss_uncorrected)
  641. #plt.show()
  642.  
  643. uinf10deg = np.zeros(len(wake_vel_10deg))
  644. uinf20deg = np.zeros(len(wake_vel_20deg))
  645.  
  646. p_diff_10degs = np.array([p_diff_10deg_1,p_diff_10deg_2,p_diff_10deg_3,p_diff_10deg_4,p_diff_10deg_5,p_diff_10deg_6,p_diff_10deg_7,p_diff_10deg_8,p_diff_10deg_9,p_diff_10deg_10,p_diff_10deg_11,p_diff_10deg_12,p_diff_10deg_13])
  647. p_diff_20degs = np.array([p_diff_20deg_1,p_diff_20deg_2,p_diff_20deg_3,p_diff_20deg_4,p_diff_20deg_5,p_diff_20deg_6,p_diff_20deg_7,p_diff_20deg_8,p_diff_20deg_9,p_diff_20deg_10,p_diff_20deg_11,p_diff_20deg_12,p_diff_20deg_13,p_diff_20deg_14,p_diff_20deg_15,p_diff_20deg_16,p_diff_20deg_17,p_diff_20deg_18,p_diff_20deg_19,p_diff_20deg_20,p_diff_20deg_21])
  648.  
  649.  
  650. AR = (0.005133308 / 0.05)
  651.  
  652. for i in range(len(wake_vel_10deg)):
  653. uinf10deg[i] = math.sqrt( p_diff_10degs[i] / ( 0.5 * rho_air * (1-(AR**2)) ) )
  654. for i in range(len(wake_vel_20deg)):
  655. uinf20deg[i] = math.sqrt( p_diff_20degs[i] / ( 0.5 * rho_air * (1-(AR**2)) ) )
  656.  
  657. drag_integrand_10deg = wake_vel_10deg * (uinf10deg - wake_vel_10deg)
  658. drag_integrand_20deg = wake_vel_20deg * (uinf20deg - wake_vel_20deg)
  659. D10 = (rho_air*0.04875*np.trapz(drag_integrand_10deg,wake_pos_10deg/1000))
  660. D20 = (rho_air*0.04875*np.trapz(drag_integrand_20deg,wake_pos_20deg/1000))
  661. print(D10)
  662. print(D20)
  663. print(max_corrected_voltage)
  664.  
  665. N_fft = len(v_10deg_4)
  666. Fs = 10000
  667. freqsig = abs(np.fft.fft(v_10deg_4, n=N_fft))
  668. freqsig[0:300] = 0.0
  669. tot = 0.0
  670. for f in freqsig:
  671. tot += f
  672. av = tot / len(freqsig)
  673.  
  674. freqsig -= av
  675.  
  676. #freqaxis = np.arange(0, Fs, Fs/N_fft)
  677. #axes = plt.gca()
  678. #axes.set_ylim([0, 100])
  679. #axes.set_xlim([0,Fs/2])
  680. #plt.plot(freqaxis, freqsig)
  681. #plt.show()
  682.  
  683. #u_flucs_10deg = np.zeros(len(wake_pos_20deg))
  684. #sds = u_fluc(wake_vel_20deg)
  685. #
  686. #plt.plot(wake_pos_20deg, sds)
  687.  
  688. u_flucs_10deg = u_fluc10(wake_vel_10deg)
  689. u_flucs_20deg = u_fluc20(wake_vel_20deg)
Add Comment
Please, Sign In to add comment