diff --git a/crates/applications/stacked_cores/scripts/plot_inverters.py b/crates/applications/stacked_cores/scripts/plot_inverters.py index 4f7cdcc..40041ad 100755 --- a/crates/applications/stacked_cores/scripts/plot_inverters.py +++ b/crates/applications/stacked_cores/scripts/plot_inverters.py @@ -62,7 +62,31 @@ of_interest = [] # of_interest += filter_meas(run="40", rad_um=1200, drive=1e11, couplings=10, wrappings=11) # of_interest += filter_meas(run="40", rad_um=1200, drive=2e11, couplings=12, wrappings=9) -of_interest += filter_meas(run="41") +# of_interest += filter_meas(run="41") +# of_interest = [ +# (p, c) for (p, c) in of_interest if p not in [ +# SimParams41(9, 3, 600, "3e9"), +# SimParams41(9, 1, 400, "3e9"), +# SimParams41(10, 3, 800, "25e8"), +# SimParams41(9, 1, 400, "2e9"), +# SimParams41(10, 3, 800, "2e9"), +# SimParams41(10, 3, 800, "3e9"), +# SimParams41(10, 3, 800, "1e9"), +# SimParams41(10, 3, 800, "5e9"), +# SimParams41(10, 3, 800, "5e10"), +# ] +# ] + +of_interest += [(p, get_meas(p)) for p in [ + SimParams41(9, 1, 400, "1e10"), + SimParams41(9, 1, 400, "2e10"), + SimParams41(12, 2, 600, "1e10"), + SimParams41(9, 3, 600, "1e10"), + SimParams41(10, 3, 800, "2e10"), + SimParams41(10, 3, 800, "1e10"), + SimParams41(9, 1, 400, "5e9"), +] if get_meas(p)] + # plot all viable inverters diff --git a/crates/applications/stacked_cores/scripts/stacked_cores_40xx_db.py b/crates/applications/stacked_cores/scripts/stacked_cores_40xx_db.py index 8181af6..4486baa 100755 --- a/crates/applications/stacked_cores/scripts/stacked_cores_40xx_db.py +++ b/crates/applications/stacked_cores/scripts/stacked_cores_40xx_db.py @@ -12,6 +12,9 @@ class SimParams: self.um = um self.drive_str = drive + def __eq__(self, other: 'SimParams') -> bool: + return self.tuple == other.tuple + @property def run(self) -> str: raise NotImplementedError @@ -113,17 +116,19 @@ sims = [ (SimParams40(10, 5, 1200, "1e11"), "fwd_40_1200um_10_11_1_1e11", 8000), (SimParams40(12, 4, 1200, "2e11"), "fwd_40_1200um_12_9_1_2e11", 8000), - (SimParams41(9, 3, 600, "3e9"), None, 20000), - (SimParams41(9, 1, 400, "3e9"), None, 20000), + (SimParams41(9, 1, 400, "2e9"), None, 20000), + (SimParams41(9, 1, 400, "3e9"), None, 20000), + (SimParams41(9, 1, 400, "5e9"), None, 20000), + (SimParams41(9, 3, 600, "3e9"), None, 20000), (SimParams41(10, 3, 800, "25e8"), None, 20000), - (SimParams41(9, 1, 400, "5e9"), None, 20000), - (SimParams41(9, 1, 400, "2e9"), None, 20000), - (SimParams41(10, 3, 800, "3e9"), None, 20000), + (SimParams41(10, 3, 800, "3e9"), None, 20000), (SimParams41(9, 1, 400, "1e10"), None, 20000), - (SimParams41(9, 3, 600, "1e10"), None, 20000), - (SimParams41(10, 3, 800, "1e10"), None, 20000), (SimParams41(9, 1, 400, "2e10"), None, 20000), + (SimParams41(12, 2, 600, "1e10"), None, 20000), + (SimParams41(9, 3, 600, "1e10"), None, 20000), + (SimParams41(10, 3, 800, "2e10"), None, 20000), + (SimParams41(10, 3, 800, "1e10"), None, 20000), ] measurements = { real.machine_name: [human, norm, None, None] for (real, human, norm) in sims } @@ -1136,35 +1141,20 @@ Piecewise( ) """) -set_meas("41-0.00059999997rad-9coupling-7_1_winding-3e9-drive", """ +set_meas("41-0.0004rad-9coupling-3_1_winding-2e9-drive", """ Piecewise( [ - [ -17102, 6449 ], # -2.0 - [ -17031, 6440 ], # -1.5 - [ -16783, 6426 ], # -1.0 - [ -16089, 6493 ], # -0.8 - [ -9028, 8147 ], # -0.6 - [ -6768, 8679 ], # -0.5 - [ -6195, 8807 ], # -0.4 - [ -5589, 8931 ], # -0.3 - [ -5268, 8992 ], # -0.25 - [ -4937, 9056 ], # -0.2 - [ -4735, 9094 ], # -0.17 - [ -4600, 9118 ], # -0.15 - [ -4463, 9142 ], # -0.13 - [ -4257, 9181 ], # -0.1 - [ -4052, 9219 ], # -0.07 - [ -3915, 9246 ], # -0.05 - [ -3573, 9323 ], # 0.0 - [ -3236, 9403 ], # 0.05 - [ -2906, 9484 ], # 0.1 - [ -2270, 9641 ], # 0.2 - [ -1639, 9803 ], # 0.3 - [ 4763, 11378 ], # 0.5 - [ 16092, 13915 ], # 0.8 - [ 16937, 13981 ], # 1.0 - [ 17192, 13998 ], # 1.5 - [ 17253, 14001 ], # 2.0 + [ -16571, 2372 ], # -1.0 + [ -5986, 5641 ], # -0.17 + [ -5733, 5725 ], # -0.15 + [ -5481, 5809 ], # -0.13 + [ -5105, 5933 ], # -0.1 + [ -4734, 6057 ], # -0.07 + [ -4491, 6139 ], # -0.05 + [ -3909, 6334 ], # 0.0 + [ -3352, 6521 ], # 0.05 + [ -2818, 6702 ], # 0.1 + [ 16714, 12996 ], # 1.0 ] ) """) @@ -1201,24 +1191,6 @@ Piecewise( ) """) -set_meas("41-0.0008rad-10coupling-7_1_winding-25e8-drive", """ -Piecewise( - [ - [ -12586, 10173 ], # -1.0 - [ -1330, 11989 ], # -0.17 - [ -1243, 12002 ], # -0.15 - [ -1157, 12014 ], # -0.13 - [ -1034, 12033 ], # -0.1 - [ -916, 12051 ], # -0.07 - [ -841, 12062 ], # -0.05 - [ -662, 12087 ], # 0.0 - [ -506, 12107 ], # 0.05 - [ -378, 12124 ], # 0.1 - [ 12563, 12412 ], # 1.0 - ] -) -""") - set_meas("41-0.0004rad-9coupling-3_1_winding-5e9-drive", """ Piecewise( [ @@ -1237,28 +1209,18 @@ Piecewise( ) """) -set_meas("41-0.0004rad-9coupling-3_1_winding-2e9-drive", """ -Piecewise( - [ - [ -16571, 2372 ], # -1.0 - [ -5986, 5641 ], # -0.17 - [ -5733, 5725 ], # -0.15 - [ -5481, 5809 ], # -0.13 - [ -5105, 5933 ], # -0.1 - [ -4734, 6057 ], # -0.07 - [ -4491, 6139 ], # -0.05 - [ -3909, 6334 ], # 0.0 - [ -3352, 6521 ], # 0.05 - [ -2818, 6702 ], # 0.1 - [ 16714, 12996 ], # 1.0 - ] -) -""") - set_meas("41-0.0004rad-9coupling-3_1_winding-1e10-drive", """ Piecewise( [ + [ -17010, -16789 ], # -2.0 [ -16931, -16791 ], # -1.0 + [ -16907, -16791 ], # -0.8 + [ -16880, -16792 ], # -0.6 + [ -16858, -16793 ], # -0.5 + [ -16830, -16793 ], # -0.4 + [ -16798, -16793 ], # -0.3 + [ -16758, -16793 ], # -0.25 + [ -16500, -16793 ], # -0.2 [ -15511, -16791 ], # -0.17 [ -14631, -16790 ], # -0.15 [ -14115, -16790 ], # -0.13 @@ -1268,7 +1230,99 @@ Piecewise( [ -11224, -16783 ], # 0.0 [ -5604, -16743 ], # 0.05 [ 4926, -14787 ], # 0.1 + [ 16783, -1850 ], # 0.2 + [ 17042, -1577 ], # 0.3 + [ 17111, -1482 ], # 0.5 + [ 17183, -1405 ], # 0.8 [ 17210, -1376 ], # 1.0 + [ 17283, -1286 ], # 2.0 + ] +) +""") + +set_meas("41-0.0004rad-9coupling-3_1_winding-2e10-drive", """ +Piecewise( + [ + [ -16990, -16708 ], # -1.0 + [ -16776, -16697 ], # -0.17 + [ -16722, -16697 ], # -0.15 + [ -16629, -16696 ], # -0.13 + [ -16189, -16686 ], # -0.1 + [ -14738, -16659 ], # -0.07 + [ -13985, -16644 ], # -0.05 + [ -11222, -16598 ], # 0.0 + [ 4919, -14379 ], # 0.05 + [ 16811, -3604 ], # 0.1 + [ 17335, -3072 ], # 1.0 + ] +) +""") + +set_meas("41-0.00059999997rad-9coupling-7_1_winding-3e9-drive", """ +Piecewise( + [ + [ -17102, 6449 ], # -2.0 + [ -17031, 6440 ], # -1.5 + [ -16783, 6426 ], # -1.0 + [ -16089, 6493 ], # -0.8 + [ -9028, 8147 ], # -0.6 + [ -6768, 8679 ], # -0.5 + [ -6195, 8807 ], # -0.4 + [ -5589, 8931 ], # -0.3 + [ -5268, 8992 ], # -0.25 + [ -4937, 9056 ], # -0.2 + [ -4735, 9094 ], # -0.17 + [ -4600, 9118 ], # -0.15 + [ -4463, 9142 ], # -0.13 + [ -4257, 9181 ], # -0.1 + [ -4052, 9219 ], # -0.07 + [ -3915, 9246 ], # -0.05 + [ -3573, 9323 ], # 0.0 + [ -3236, 9403 ], # 0.05 + [ -2906, 9484 ], # 0.1 + [ -2270, 9641 ], # 0.2 + [ -1639, 9803 ], # 0.3 + [ 4763, 11378 ], # 0.5 + [ 16092, 13915 ], # 0.8 + [ 16937, 13981 ], # 1.0 + [ 17192, 13998 ], # 1.5 + [ 17253, 14001 ], # 2.0 + ] +) +""") + +set_meas("41-0.00059999997rad-9coupling-7_1_winding-1e10-drive", """ +Piecewise( + [ + [ -17161, -16039 ], # -1.0 + [ -9246, -15387 ], # -0.17 + [ -8663, -15290 ], # -0.15 + [ -8204, -15211 ], # -0.13 + [ -7628, -15110 ], # -0.1 + [ -7141, -15021 ], # -0.07 + [ -6826, -14962 ], # -0.05 + [ -5969, -14789 ], # 0.0 + [ -4881, -14560 ], # 0.05 + [ -2118, -13958 ], # 0.1 + [ 17401, -2236 ], # 1.0 + ] +) +""") + +set_meas("41-0.0008rad-10coupling-7_1_winding-25e8-drive", """ +Piecewise( + [ + [ -12586, 10173 ], # -1.0 + [ -1330, 11989 ], # -0.17 + [ -1243, 12002 ], # -0.15 + [ -1157, 12014 ], # -0.13 + [ -1034, 12033 ], # -0.1 + [ -916, 12051 ], # -0.07 + [ -841, 12062 ], # -0.05 + [ -662, 12087 ], # 0.0 + [ -506, 12107 ], # 0.05 + [ -378, 12124 ], # 0.1 + [ 12563, 12412 ], # 1.0 ] ) """) @@ -1281,4 +1335,22 @@ Piecewise( ) """) +set_meas("41-0.0008rad-10coupling-7_1_winding-1e10-drive", """ +Piecewise( + [ + [ -17045, -11918 ], # -1.0 + [ -8957, -10158 ], # -0.17 + [ -8473, -10047 ], # -0.15 + [ -8028, -9944 ], # -0.13 + [ -7424, -9805 ], # -0.1 + [ -6870, -9676 ], # -0.07 + [ -6507, -9592 ], # -0.05 + [ -5569, -9373 ], # 0.0 + [ -4459, -9115 ], # 0.05 + [ -2919, -8757 ], # 0.1 + [ 17145, 245 ], # 1.0 + ] +) +""") + if __name__ == '__main__': main() diff --git a/crates/applications/stacked_cores/src/main.rs b/crates/applications/stacked_cores/src/main.rs index aad3568..78633f5 100644 --- a/crates/applications/stacked_cores/src/main.rs +++ b/crates/applications/stacked_cores/src/main.rs @@ -4009,29 +4009,36 @@ fn main() { ][..], &[ // establish the slope around the most likely stable/amplifying region - -0.05, - 0.05, - -0.15, - 0.10, - -0.10, - -0.07, - -0.17, - -0.13, + 0.05, + 0.10, + 0.15, + 0.20, + 0.07, + 0.17, + // -0.05, + // 0.05, + // -0.15, + // 0.10, + // -0.10, + // -0.07, + // -0.17, + // -0.13, ][..], &[ // fill in the hopefully-less-interesting/impactful regions - 0.50, - -0.50, - 2.00, - -2.00, 0.30, -0.30, + 0.50, + -0.50, 0.80, -0.80, - // ][..], - // &[ 0.20, -0.20, + 2.00, + -2.00, + // ][..], + // &[ + -0.10, -0.25, -0.40, -0.60, @@ -4042,14 +4049,16 @@ fn main() { for (coupling_loops, s0_loops, s_major, cur_flt) in [ // VIABLE INVERTERS from 40xx, modified for new control (9, 1, um(400), 1e10), // incomplete; VIABLE INVERTER + (9, 1, um(400), 2e10), // incomplete - (9, 3, um(600), 1e10), // unstarted + (12, 2, um(600), 1e10), // incomplete + (9, 3, um(600), 1e10), // incomplete + (10, 3, um(800), 2e10), // incomplete; verified geom (10, 3, um(800), 1e10), // incomplete; verified geom + (9, 1, um(400), 5e9), // incomplete; good tx 0; not enough samples // (9, 3, um(600), 3e9), // incomplete; too low slope; too high tx @ 0 // (9, 1, um(400), 3e9), // incomplete; too low slope; too high tx @ 0 // (10, 3, um(800), 25e8), // incomplete; verified geom; too low slope; too high tx @ 0 - (9, 1, um(400), 5e9), // incomplete; good tx 0; not enough samples - (9, 1, um(400), 2e10), // unstarted // (9, 1, um(400), 2e9), // incomplete; too low slope; too high tx @ 0 // (10, 3, um(800), 2e9), // unstarted; verified geom. too low current // (10, 3, um(800), 3e9), // incomplete; verified geom. mildly high current