update 20180819: add experiments and start with regulation

This commit is contained in:
2018-08-19 20:59:07 +02:00
parent 469501fda4
commit 0189007435
13 changed files with 200 additions and 56 deletions
Binary file not shown.
+74 -2
View File
@@ -1,4 +1,5 @@
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np
import wafer
import VisTools.plotting as vtp
@@ -9,6 +10,40 @@ plt.rcParams['axes.facecolor'] = 'white'
plt.figure(figsize=(8, 4))
def gen_reg_theory():
xdata = np.linspace(0, 150, 1001)
# consts
rpar = 75000
rser = 9400
r0 = 1.0029e-3
r1 = 15.966e-3
iret = 9.1
plt.clf()
plt.figure(figsize=(8, 4))
for n, voff in enumerate([1.75, 1.8, 1.85, 1.9]):
ydata = iret * r1 + r0 * xdata + voff
ydata = (.7*30100 / (ydata - .7)) - 6490 - rser
ydata = rpar * ydata / (rpar + ydata) * 256 / 10000
plt.plot(
[x for x, y in zip(xdata, ydata) if y >= 0],
[y for y in ydata if y >= 0],
color=f"C{n}",
label=f"V$_{{off}}$ = {voff}"
)
plt.plot(
xdata,
ydata,
color=f"C{n}",
linestyle='dotted'
)
plt.legend()
plt.savefig('reg.pdf')
def gen_reticle_empty():
plt.clf()
@@ -20,6 +55,37 @@ def gen_reticle_empty():
ax.set_aspect("equal")
plt.savefig('wafer.pdf')
def gen_reticle_patterns():
plt.clf()
f, sax = plt.subplots(2, 2, figsize=(8, 6))
sax = np.resize(sax, 4)
patterns = [
[0, 2, 8, 10, 12, 14, 25, 27, 29, 31, 41, 43],
[1, 9, 11, 13, 24, 26, 28, 30, 32, 40, 42, 44],
[3, 5, 7, 15, 17, 19, 21, 23, 34, 36, 38, 46],
[4, 6, 16, 18, 20, 22, 33, 35, 37, 39, 45, 47]
]
for ax, p in zip(sax, patterns):
w = wafer.WaferRepr()
for r in p:
w.set(r, .2)
w.placeim(ax, (0, 0), cmap=cm.tab20c, nonumber=True)
ax.set_ylim([-.6, 7.6])
ax.set_xlim([-.6, 8.6])
ax.set_aspect('equal')
ax.axis('off')
ax.invert_yaxis()
plt.tight_layout()
plt.savefig('wpattern.pdf')
def gen_48v_theory():
xdata = np.linspace(43, 53, 100)
@@ -58,9 +124,13 @@ def gen_1v8_theory():
plt.clf()
plt.plot(xdata, ydata, label="Equation after Datasheet")
vps = vtp.fit(xdata, ydata, lambda x,m,p,a,c: a/(m*x-p)+c, [.1, -1, 1, 1.5])
vps = vtp.fit(
xdata,
ydata,
lambda x, m, p, a, c: a/(m*x-p)+c, [.1, -1, 1, 1.5]
)
#plt.plot(xdata, vps[2].n / (vps[0].n * xdata - vps[1].n) + vps[3].n)
# plt.plot(xdata, vps[2].n / (vps[0].n * xdata - vps[1].n) + vps[3].n)
vtt.unc_tolatex(vps[0], None, 'theo.tex', name="m")
vtt.unc_tolatex(vps[1], None, 'theo.tex', name="p")
vtt.unc_tolatex(vps[2], None, 'theo.tex', name="a")
@@ -77,3 +147,5 @@ if __name__ == "__main__":
gen_48i_theory()
gen_1v8_theory()
gen_reticle_empty()
gen_reg_theory()
gen_reticle_patterns()
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.