Advertisement
Guest User

Untitled

a guest
Mar 29th, 2020
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.57 KB | None | 0 0
  1. from scipy import optimize
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4.  
  5. def compute_diode_current(est_v,ide_value,temp,is_value):
  6. k = 1.380648e-23
  7. q = 1.6021766208e-19
  8. return (is_value*(np.exp((q*est_v)/(ide_value*k*temp))-1))
  9.  
  10. def step1(Vd):
  11. Is = 1e-9
  12. n = 1.7
  13. R = 11000
  14. T = 350
  15. V = .1
  16. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  17.  
  18. def step2(Vd):
  19. Is = 1e-9
  20. n = 1.7
  21. R = 11000
  22. T = 350
  23. V = .2
  24. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  25.  
  26. def step3(Vd):
  27. Is = 1e-9
  28. n = 1.7
  29. R = 11000
  30. T = 350
  31. V = .3
  32. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  33.  
  34. def step4(Vd):
  35. Is = 1e-9
  36. n = 1.7
  37. R = 11000
  38. T = 350
  39. V = .4
  40. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  41.  
  42. def step5(Vd):
  43. Is = 1e-9
  44. n = 1.7
  45. R = 11000
  46. T = 350
  47. V = .5
  48. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  49.  
  50. def step6(Vd):
  51. Is = 1e-9
  52. n = 1.7
  53. R = 11000
  54. T = 350
  55. V = .6
  56. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  57.  
  58. def step7(Vd):
  59. Is = 1e-9
  60. n = 1.7
  61. R = 11000
  62. T = 350
  63. V = .7
  64. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  65.  
  66. def step8(Vd):
  67. Is = 1e-9
  68. n = 1.7
  69. R = 11000
  70. T = 350
  71. V = .8
  72. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  73.  
  74. def step9(Vd):
  75. Is = 1e-9
  76. n = 1.7
  77. R = 11000
  78. T = 350
  79. V = .9
  80. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  81.  
  82. def step10(Vd):
  83. Is = 1e-9
  84. n = 1.7
  85. R = 11000
  86. T = 350
  87. V = 1
  88. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  89.  
  90. def step11(Vd):
  91. Is = 1e-9
  92. n = 1.7
  93. R = 11000
  94. T = 350
  95. V = 1.1
  96. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  97.  
  98. def step12(Vd):
  99. Is = 1e-9
  100. n = 1.7
  101. R = 11000
  102. T = 350
  103. V = 1.2
  104. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  105.  
  106. def step13(Vd):
  107. Is = 1e-9
  108. n = 1.7
  109. R = 11000
  110. T = 350
  111. V = 1.3
  112. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  113.  
  114. def step14(Vd):
  115. Is = 1e-9
  116. n = 1.7
  117. R = 11000
  118. T = 350
  119. V = 1.4
  120. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  121.  
  122. def step15(Vd):
  123. Is = 1e-9
  124. n = 1.7
  125. R = 11000
  126. T = 350
  127. V = 1.5
  128. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  129.  
  130. def step16(Vd):
  131. Is = 1e-9
  132. n = 1.7
  133. R = 11000
  134. T = 350
  135. V = 1.6
  136. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  137.  
  138. def step17(Vd):
  139. Is = 1e-9
  140. n = 1.7
  141. R = 11000
  142. T = 350
  143. V = 1.7
  144. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  145.  
  146. def step18(Vd):
  147. Is = 1e-9
  148. n = 1.7
  149. R = 11000
  150. T = 350
  151. V = 1.8
  152. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  153.  
  154. def step19(Vd):
  155. Is = 1e-9
  156. n = 1.7
  157. R = 11000
  158. T = 350
  159. V = 1.9
  160. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  161.  
  162. def step20(Vd):
  163. Is = 1e-9
  164. n = 1.7
  165. R = 11000
  166. T = 350
  167. V = 2
  168. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  169.  
  170. def step21(Vd):
  171. Is = 1e-9
  172. n = 1.7
  173. R = 11000
  174. T = 350
  175. V = 2.1
  176. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  177.  
  178. def step22(Vd):
  179. Is = 1e-9
  180. n = 1.7
  181. R = 11000
  182. T = 350
  183. V = 2.2
  184. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  185.  
  186. def step23(Vd):
  187. Is = 1e-9
  188. n = 1.7
  189. R = 11000
  190. T = 350
  191. V = 2.3
  192. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  193.  
  194. def step24(Vd):
  195. Is = 1e-9
  196. n = 1.7
  197. R = 11000
  198. T = 350
  199. V = 2.4
  200. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  201.  
  202. def step25(Vd):
  203. Is = 1e-9
  204. n = 1.7
  205. R = 11000
  206. T = 350
  207. V = 2.5
  208. return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
  209.  
  210. root1 = optimize.fsolve(step1,1)
  211. root2 = optimize.fsolve(step2,1)
  212. root3 = optimize.fsolve(step3,1)
  213. root4 = optimize.fsolve(step4,1)
  214. root5 = optimize.fsolve(step5,1)
  215. root6 = optimize.fsolve(step6,1)
  216. root7 = optimize.fsolve(step7,1)
  217. root8 = optimize.fsolve(step8,1)
  218. root9 = optimize.fsolve(step9,1)
  219. root10 = optimize.fsolve(step10,1)
  220. root11 = optimize.fsolve(step11,1)
  221. root12 = optimize.fsolve(step12,1)
  222. root13 = optimize.fsolve(step13,1)
  223. root14 = optimize.fsolve(step14,1)
  224. root15 = optimize.fsolve(step15,1)
  225. root16 = optimize.fsolve(step16,1)
  226. root17 = optimize.fsolve(step17,1)
  227. root18 = optimize.fsolve(step18,1)
  228. root19 = optimize.fsolve(step19,1)
  229. root20 = optimize.fsolve(step20,1)
  230. root21 = optimize.fsolve(step21,1)
  231. root22 = optimize.fsolve(step22,1)
  232. root23 = optimize.fsolve(step23,1)
  233. root24 = optimize.fsolve(step24,1)
  234. root25 = optimize.fsolve(step25,1)
  235. print(root1,root2,root3,root4,root5,root6,root7,root8,root9,root10,root11,root12,root13,root14,root15,root16,root17,root18,root19,root20,root21,root22,root23,root24,root25)
  236.  
  237. Vd = np.array([root1,root2,root3,root4,root5,root6,root7,root8,root9,root10,root11,root12,root13,root14,root15,root16,root17,root18,root19,root20,root21,root22,root23,root24,root25])
  238. Vs = np.arange(.1,2.6,.1)
  239. current = np.zeros_like(Vd)
  240. for x in range(0,24):
  241. current[x] = compute_diode_current(Vd[x],1.7,350,1e-9)
  242.  
  243. plt.xlabel("Source Voltage")
  244. plt.ylabel("log(current)")
  245. plt.title("Current vs Source Voltage")
  246. plt.plot(Vs,np.log(current))
  247. plt.show()
  248. plt.xlabel("Diode Voltage")
  249. plt.ylabel("log(current)")
  250. plt.title("Current vs Diode Voltage")
  251. plt.plot(Vd,np.log(current))
  252. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement