diff --git a/crates/applications/stacked_cores/scripts/inverter_characteristics.py b/crates/applications/stacked_cores/scripts/inverter_characteristics.py index 8b95b56..e74a946 100755 --- a/crates/applications/stacked_cores/scripts/inverter_characteristics.py +++ b/crates/applications/stacked_cores/scripts/inverter_characteristics.py @@ -90,6 +90,39 @@ class Piecewise: def plot_equilibrium(self, from_: float = 0.0, to: float = 1.0, title: str = "Piecewise"): self.plot_for(from_, to, title, self.get_repeated) +fwd_17_4_0_8e10 = Piecewise( + [ + [ -16381, 6688 ], + [ -15885, 6778 ], + [ -14831, 6878 ], + [ -13622, 7004 ], + [ -883, 8528 ], + [ 6252, 9496 ], + [ 7846, 9703 ], + [ 8148, 9766 ], + [ 8425, 9831 ], + [ 8705, 9892 ], + [ 8988, 9916 ], + [ 9866, 10114 ], + [ 11179, 10234 ], + [ 12033, 10382 ], + [ 12491, 10422 ], + [ 13135, 10494 ], + [ 14363, 10649 ], + ] +).normalized(17000) + +fwd_18 = Piecewise( + [ + [ -16206, -1131 ], + [ -15192, -746 ], + [ -12827, 33 ], + [ -642, 4990 ], + [ 13082, 9652 ], + [ 16696, 10600 ], + ] +).normalized(17000) + fwd_24 = Piecewise( [ @@ -375,6 +408,7 @@ inv_39_2_0_15e10 = Piecewise( ).normalized(17000) for (name, curve) in [ + ("18", fwd_18.logically_inverted()), # ("24", fwd_24.logically_inverted()), # ("26", fwd_26.logically_inverted()), # ("38 1:0 (2e10 I)", fwd_38_1_0.logically_inverted()), @@ -393,4 +427,4 @@ for (name, curve) in [ ]: curve.plot(title = f"{name} mapping") curve.logically_inverted().plot_slope(title = f"{name} slope") - # curve.plot_equilibrium(title = f"{name} equilibrium") + curve.plot_equilibrium(title = f"{name} equilibrium") diff --git a/crates/applications/stacked_cores/scripts/stacked_cores_39xx.py b/crates/applications/stacked_cores/scripts/stacked_cores_39xx.py index c9601a3..9612167 100755 --- a/crates/applications/stacked_cores/scripts/stacked_cores_39xx.py +++ b/crates/applications/stacked_cores/scripts/stacked_cores_39xx.py @@ -8,23 +8,23 @@ import sys from stacked_cores import load_csv, labeled_rows, last_row_before_t, extract_m -def extract_one(path: str): +def extract_one(path: str, t_first: float, t_last: float): header, raw_rows = load_csv(path) rows = labeled_rows(header, raw_rows) - tx_init = last_row_before_t(rows, 2e-9) - tx_fini = last_row_before_t(rows, 3e-9) + tx_init = last_row_before_t(rows, t_first) + tx_fini = last_row_before_t(rows, t_last) m_init = extract_m(tx_init) m_fini = extract_m(tx_fini) return m_init[0], m_fini[-1] -def extract_39xx(base_path: str): +def extract_39xx(base_path: str, t_first: str = "2e-9", t_last: str = "3e-9"): base_dir, prefix = os.path.split(base_path) mappings = [] for entry in os.listdir(base_dir): if entry.startswith(prefix): - (input_, output) = extract_one(os.path.join(base_dir, entry, "meas.csv")) + (input_, output) = extract_one(os.path.join(base_dir, entry, "meas.csv"), float(t_first), float(t_last)) mappings.append((input_, output)) print("Piecewise(") @@ -36,4 +36,4 @@ def extract_39xx(base_path: str): if __name__ == '__main__': - extract_39xx(sys.argv[1]) + extract_39xx(*sys.argv[1:])