Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from scipy import optimize
- import numpy as np
- import matplotlib.pyplot as plt
- def compute_diode_current(est_v,ide_value,temp,is_value):
- k = 1.380648e-23
- q = 1.6021766208e-19
- return (is_value*(np.exp((q*est_v)/(ide_value*k*temp))-1))
- def step1(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = .1
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step2(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = .2
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step3(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = .3
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step4(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = .4
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step5(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = .5
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step6(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = .6
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step7(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = .7
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step8(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = .8
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step9(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = .9
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step10(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 1
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step11(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 1.1
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step12(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 1.2
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step13(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 1.3
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step14(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 1.4
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step15(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 1.5
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step16(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 1.6
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step17(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 1.7
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step18(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 1.8
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step19(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 1.9
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step20(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 2
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step21(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 2.1
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step22(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 2.2
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step23(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 2.3
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step24(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 2.4
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- def step25(Vd):
- Is = 1e-9
- n = 1.7
- R = 11000
- T = 350
- V = 2.5
- return ((Vd/R) - (V/R) + compute_diode_current(Vd,n,T,Is))
- root1 = optimize.fsolve(step1,1)
- root2 = optimize.fsolve(step2,1)
- root3 = optimize.fsolve(step3,1)
- root4 = optimize.fsolve(step4,1)
- root5 = optimize.fsolve(step5,1)
- root6 = optimize.fsolve(step6,1)
- root7 = optimize.fsolve(step7,1)
- root8 = optimize.fsolve(step8,1)
- root9 = optimize.fsolve(step9,1)
- root10 = optimize.fsolve(step10,1)
- root11 = optimize.fsolve(step11,1)
- root12 = optimize.fsolve(step12,1)
- root13 = optimize.fsolve(step13,1)
- root14 = optimize.fsolve(step14,1)
- root15 = optimize.fsolve(step15,1)
- root16 = optimize.fsolve(step16,1)
- root17 = optimize.fsolve(step17,1)
- root18 = optimize.fsolve(step18,1)
- root19 = optimize.fsolve(step19,1)
- root20 = optimize.fsolve(step20,1)
- root21 = optimize.fsolve(step21,1)
- root22 = optimize.fsolve(step22,1)
- root23 = optimize.fsolve(step23,1)
- root24 = optimize.fsolve(step24,1)
- root25 = optimize.fsolve(step25,1)
- 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)
- 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])
- Vs = np.arange(.1,2.6,.1)
- current = np.zeros_like(Vd)
- for x in range(0,24):
- current[x] = compute_diode_current(Vd[x],1.7,350,1e-9)
- plt.xlabel("Source Voltage")
- plt.ylabel("log(current)")
- plt.title("Current vs Source Voltage")
- plt.plot(Vs,np.log(current))
- plt.show()
- plt.xlabel("Diode Voltage")
- plt.ylabel("log(current)")
- plt.title("Current vs Diode Voltage")
- plt.plot(Vd,np.log(current))
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement