def calculate_beta(m, vcc): col = ColsProxy(m) col.Ab=uarray((col.Ab,1)) col.Ac=uarray((col.Ac,1)) col.Ub = an2v(col.Ab, vcc) col.Uc = an2v(col.Ac, vcc) Rout = 20 pnp = col.polarity == 'PNP' npn = col.polarity == 'NPN' col.Urb[pnp] = col.Ub[pnp] col.Urb[npn] = vcc - col.Ub[npn] col.Urc[pnp] = col.Uc[pnp] col.Urc[npn] = vcc - col.Uc[npn] col.Ib = col.Urb / (col.Rb + Rout) col.Ic = col.Urc / (col.Rc + Rout) col.Ie = col.Ib + col.Ic col.beta = col.Ic / col.Ib[nominal_values(col.Ib) != 0] col.Ue[pnp] = vcc - (Rout * col.Ie[pnp]) col.Ue[npn] = Rout * col.Ie[npn] col.Ube[pnp] = -(col.Ub[pnp] - col.Ue[pnp]) col.Ube[npn] = (col.Ub[npn] - col.Ue[npn])
def calculate_beta(m, vcc): col = ColsProxy(m) col.Ab = uarray((col.Ab, 1)) col.Ac = uarray((col.Ac, 1)) col.Ub = an2v(col.Ab, vcc) col.Uc = an2v(col.Ac, vcc) Rout = 20 pnp = col.polarity == 'PNP' npn = col.polarity == 'NPN' col.Urb[pnp] = col.Ub[pnp] col.Urb[npn] = vcc - col.Ub[npn] col.Urc[pnp] = col.Uc[pnp] col.Urc[npn] = vcc - col.Uc[npn] col.Ib = col.Urb / (col.Rb + Rout) col.Ic = col.Urc / (col.Rc + Rout) col.Ie = col.Ib + col.Ic col.beta = col.Ic / col.Ib[nominal_values(col.Ib) != 0] col.Ue[pnp] = vcc - (Rout * col.Ie[pnp]) col.Ue[npn] = Rout * col.Ie[npn] col.Ube[pnp] = -(col.Ub[pnp] - col.Ue[pnp]) col.Ube[npn] = (col.Ub[npn] - col.Ue[npn])
def calculate_c(A1, A2, R, t1, t2): t = t2 - t1 t = uarray((t, terror)) A1 = uarray((replace0(A1), 1)) A2 = uarray((replace0(A2), 1)) # http://en.wikipedia.org/wiki/RC_circuit # if A1 > 0 and A2 > 0 and R > 0 and A1 != A2: c = -t / (R * unumpy.log(A2 / A1)) return c
def calculate_ohm(R, Atop, Amiddle, Abottom, reverse=False): Atop = uarray((Atop, 1)) Amiddle = uarray((Amiddle, 1)) Abottom = uarray((Abottom, 1)) a1 = abs(Atop - Amiddle) a2 = abs(Amiddle - Abottom) if reverse: # if nominal_value(a2) < 1: # return ratio = a1 / a2 else: # if nominal_value(a1) < 1: # return # print a1, a2 ratio = a2 / a1 # print ratio Rx = R * ratio # Rx -= McuRout return Rx