36 lines
502 B
Python
36 lines
502 B
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import numpy as np
|
||
|
|
||
|
vref = 0.8
|
||
|
|
||
|
def par(*rlist):
|
||
|
s = 0
|
||
|
for r in rlist:
|
||
|
s += 1 / r
|
||
|
return 1 / s
|
||
|
|
||
|
Rt = 18e3
|
||
|
|
||
|
Ra = 2.2e3
|
||
|
Rb = 4.7e3
|
||
|
Rc = 10e3
|
||
|
Rd = 22e3
|
||
|
|
||
|
Rs = [Ra, Rb, Rc, Rd]
|
||
|
|
||
|
Rbs = []
|
||
|
for i in range(1, 2**len(Rs)):
|
||
|
rlist = []
|
||
|
for k in range(len(Rs)):
|
||
|
if i & (1 << k):
|
||
|
rlist.append(Rs[k])
|
||
|
Rbs.append(par(*rlist))
|
||
|
|
||
|
Rbs = np.array(Rbs)
|
||
|
|
||
|
vouts = vref * (Rbs + Rt) / Rbs
|
||
|
|
||
|
for vout in sorted(list(vouts)):
|
||
|
print(f"{vout:6.2f} V")
|