def test(): b = bluefors() b.selectday(b.whichday()) P = b.pressure(1) curve(P[1], P[2], "Starting %s" % P[0], "t(hr)", "P(mbar)") T = b.temperature(1) curve(T[1], T[2], "Starting %s" % T[0], "t(hr)", "T(K)")
def test(): from scipy.stats import linregress from pyqum.instrument.network import notify b = bluefors() # b.selectday(b.whichday()) b.selectday(len(b.Days) - 2) #latest reading valve = 'compressor' V = b.channellog(valve) curve(V[0], V[1], valve, "t(hr)", "State")
def test(detail=True): from pyqum.instrument.analyzer import curve, IQAParray from numpy import array debug(detail) print(Fore.RED + "Debugger mode: %s" %eval(debugger)) s = InitWithOptions() if eval(debugger): print(Fore.RED + "Detailed Test:") # resource_descriptor(s) # model(s) acquisition_time(s) acquisition_time(s, action=["Set", 2e-6]) preselector_enabled(s) preselector_enabled(s, action=["Set", False]) frequency(s, action=["Set", 5e9]) power(s, action=["Set", -5]) bandwidth(s, action=['Set', 250e6]) # setting trigger trigger_source(s, action=["Set", 1]) # trigger_delay(s) # external_trigger_level(s) # external_trigger_slope(s) # trigger_timeout(s) # Measure-loop Init_Measure(s) sr = sample_rate(s) print("sampling rate: %s" %sr[1]) stat = samples_number(s) # how many pairs of IQ (sample) while True: Arm_Measure(s) # measure the signal gd = Get_Data(s, 2*stat[1]) # print(gd[1]['ComplexData']) display2D(gd[1]['ComplexData'][0:len(gd[1]['ComplexData'])], sr[1]) I, Q, A, Pha = IQAParray(array(gd[1]['ComplexData'])) print("Plotting %s IQ-pairs" %len(I)) curve(I,Q,"","","") if bool(input("press enter (any key) to continue (stop)")): break else: print(Fore.RED + "Basic IO Test") close(s) return
def test(): # Test Amplifier settings A = amplifier() for i in range(1): print(Back.GREEN + Fore.WHITE + "\nSensing Hard Panel #%s:" %(i+1)) A.sensehardpanel() print("SupplyP: %s" %A.SupplyP) print("SupplyN: %s" %A.SupplyN) print("Symmetry: %s" %A.Symmetry) print("Division: %s" %A.Division) print("Rb: %s" %A.Rb) print("Bias Mode: %s" %A.BiasMode) print("V Gain 1: %s" %A.VGain1) print("V Gain 2: %s" %A.VGain2) print("Vg Mode 1: %s" %A.VgMode1) print("Vg Mode 2: %s" %A.VgMode2) A.close() # Test Streaming IV-curve X0 = waveform("0 to -1 *150 to 1 *300 to 0 *150") XX = waveform("1to1*2") print("XX-count: %s\nXX-data:\n%s"%(XX.count,XX.data)) # waveform("0 to 5 *700 to 10*1300 to 0 * 1000"), waveform("0 to 3 *700 to 1*1500 to 7*500 to 0 * 300") #原本的 M = measure(sample_rate=1000, duty_cycle=0.8, samps_per_chan=X0.count) M = measure(sample_rate=1500, duty_cycle=0.825, samps_per_chan=X0.count) # New one read_values = M.IVb(X0.data) V0 = read_values[0] V = read_values[3]/(A.Rb) #curve([range(X0.count),range(V.size)], [array(X0.data)/A.Division,list(V0)], "Channel #0", "arb time", "V(V)", ["-k","or"]) # print(list(V)) # curve([],[list(V)] ,"IRCdelayT","RCdelayT", "I", [".k"]) # New one curve([array(X0.data)/A.Division], [list(V)], "IVb", "V", "I", [".k"]) curve([array(X0.data[:-1])/A.Division], [derivative(array(X0.data)/A.Division, V)[1]], "IVb", "V", "I", [".k"]) M.close() return
def test(): b = bluefors() b.selectday(b.whichday()) Ch = 3 P = b.pressure(Ch) curve(P[1], P[2], "P%s Starting %s" % (Ch, P[0]), "t(hr)", "P(mbar)") t, dPdt = derivative(P[1], P[2], 3) curve(t, dPdt, "dP%s/dt Starting %s" % (Ch, P[0]), "t(hr)", "dP/dt(mbar/hr)") Ch = 2 T = b.temperature(2) curve(T[1], T[2], "T%s Starting %s" % (Ch, T[0]), "t(hr)", "T(K)") t, dTdt = derivative(T[1], T[2], 3) curve(t, dTdt, "dT%s/dt Starting %s" % (Ch, T[0]), "t(hr)", "dT/dt(K/hr)")
def test(): b = bluefors() b.selectday(b.whichday()) P = b.pressure(3) curve(P[1], P[2], "Starting %s" % P[0], "t(hr)", "P(mbar)") T = b.temperature(2) curve(T[1], T[2], "Starting %s" % T[0], "t(hr)", "T(K)") t, dTdt = derivative(T[1], T[2], 3) curve(t, dTdt, "Starting %s" % T[0], "t(hr)", "dT/dt(K)")
def test(): b = bluefors() b.selectday(b.whichday()) Ch = 5 P = b.pressurelog(Ch) curve(P[1], P[2], "P%s Starting %s" % (Ch, P[0]), "t(hr)", "P(mbar)") t, dPdt = derivative(P[1], P[2], 3) curve(t, dPdt, "dP%s/dt Starting %s" % (Ch, P[0]), "t(hr)", "dP/dt(mbar/hr)") # Ch = 2 # T_unit = 'C' # T = b.temperature(2, T_unit) # curve(T[1], T[2], "T%s Starting %s"%(Ch, T[0]), "t(hr)", "T(%s)"%T_unit) # t, dTdt = derivative(T[1], T[2], 3) # curve(t, dTdt, "dT%s/dt Starting %s"%(Ch, T[0]), "t(hr)", "dT/dt(%s/hr)"%T_unit) if b.connecting(): v, s = valve(b.connect), scroll(b.connect) print(v.status(17)) print("P2: %s" % b.gauge(2)) print(s.status(2)) # print("ON Scroll2: %s"%s.on(2).upper()) if int(input("TURN OFF SCROLL2(0/1)? ")): print("OFF Scroll2: %s" % s.off(2).upper()) b.close()
def test(): # Test Amplifier settings A = amplifier() for i in range(1): print("\nSensing Hard Panel #%s:" % (i + 1)) A.sensehardpanel() print("SupplyP: %s" % A.SupplyP) print("SupplyN: %s" % A.SupplyN) print("Symmetry: %s" % A.Symmetry) print("Division: %s" % A.Division) print("Rb: %s" % A.Rb) print("Bias Mode: %s" % A.BiasMode) print("V Gain 1: %s" % A.VGain1) print("V Gain 2: %s" % A.VGain2) print("Vg Mode 1: %s" % A.VgMode1) print("Vg Mode 2: %s" % A.VgMode2) A.close() # Test Streaming IV-curve X0 = waveform( "0 to -10 *1000 to 10 *2000 to 0 * 1000 " ) # waveform("0 to 5 *700 to 10*1300 to 0 * 1000"), waveform("0 to 3 *700 to 1*1500 to 7*500 to 0 * 300") M = measure(delay=5e-3, waiting=5e-3, samps_per_chan=X0.count) read_values = M.IVb(X0.data) V0 = read_values[0] I = read_values[3] / (A.Rb) curve([range(X0.count), range(I.size)], [array(X0.data) / A.Division, list(V0)], "Channel #0", "arb time", "V(V)", ["-k", "or"]) # print(list(V)) curve([array(X0.data) / A.Division], [list(I)], "IVb", "V", "I", [".k"]) curve([array(X0.data[:-1]) / A.Division], [derivative(array(X0.data) / A.Division, I)[1]], "IVb", "V", "I", [".k"]) M.close() return
and OPT.IQparams[3] - OPT.IQparams[4] > 180): print("phase skew Q-I:\n %s" % (OPT.IQparams[4] - OPT.IQparams[3])) if (OPT.IQparams[2] > -1.0) and (OPT.IQparams[2] < 1.0): Iamp = 1 Qamp = Iamp * OPT.IQparams[2] else: Qamp = 1 Iamp = Qamp / OPT.IQparams[2] print("Ioffset:\n %s" % OPT.IQparams[0]) print("Qoffset:\n %s" % OPT.IQparams[1]) print("Iamp:\n %s" % Iamp) print("Qamp:\n %s" % Qamp) print("Iphase:\n %s" % OPT.IQparams[3]) print("Qphase:\n %s" % OPT.IQparams[4]) break curve(T, LO, 'LO Leakage vs time', 'T(#)', 'DLO(dB)') curve(T, Mirror, 'Mirror Image vs time', 'T(#)', 'DMirror(dB)') # closing instruments: ans = input("Press any keys to close AWG, PSGA and RSA-5 ") AWG.Abort_Gen(awgsess) AWG.close(awgsess) PSGA.rfoutput(saga, action=['Set', 0]) PSGA.close(saga, False) MXA.close(mxa, False)
def test(): LO_0 = float((MXA.fpower(mxa, str(5.5) + 'GHz')).split('dBm')[0]) Mirror_0 = float((MXA.fpower(mxa, str(5.475) + 'GHz')).split('dBm')[0]) Initial = [0., 0., 1., 0., 0.] time = 0 OPT = IQ_Cal() OPT.IQparams = array(Initial, dtype=float64) #overwrite initial values result = OPT.nelder_mead(time=time) prev = result[0] no_improv, no_improv_thr, no_improv_break = 0, 1e-5, 4 LO, Mirror, T = [], [], [] while True: time += 1 if time % 2: OPT = IQ_Cal('MR', result[0], ratio=time) else: OPT = IQ_Cal('LO', result[0], ratio=time) result = OPT.nelder_mead(time=time) # if len(result) == 3: # print("Optimized IQ parameters:\n %s" %result) # break LO.append( float((MXA.fpower(mxa, str(5.5) + 'GHz')).split('dBm')[0]) - LO_0) Mirror.append( float((MXA.fpower(mxa, str(5.475) + 'GHz')).split('dBm')[0]) - Mirror_0) print(Back.BLUE + Fore.WHITE + "Mirror has been suppressed for %s from %s" % (Mirror[-1], Mirror_0)) T.append(time) ssq = sum((result[0] - prev)**2) if ssq > no_improv_thr: no_improv = 0 prev = result[0] else: no_improv += 1 if no_improv >= no_improv_break: AWG_Sinewave(25, OPT.IQparams) print(type(OPT.IQparams)) print("Optimized IQ parameters:\n %s" % result) print("Amplitude Imbalance:\n %s" % OPT.IQparams[2]) if OPT.IQparams[3] > OPT.IQparams[ 4] and OPT.IQparams[3] - OPT.IQparams[4] < 180: print("phase skew I-Q:\n %s" % (OPT.IQparams[3] - OPT.IQparams[4])) if OPT.IQparams[3] > OPT.IQparams[ 4] and OPT.IQparams[3] - OPT.IQparams[4] > 180: print("phase skew Q-I:\n %s" % (360 - (OPT.IQparams[3] - OPT.IQparams[4]))) if (OPT.IQparams[4] > OPT.IQparams[3] and OPT.IQparams[4] - OPT.IQparams[3] < 180) or ( OPT.IQparams[3] > OPT.IQparams[4] and OPT.IQparams[3] - OPT.IQparams[4] > 180): print("phase skew Q-I:\n %s" % (OPT.IQparams[4] - OPT.IQparams[3])) if (OPT.IQparams[2] > -1.0) and (OPT.IQparams[2] < 1.0): Iamp = 1 Qamp = Iamp * OPT.IQparams[2] else: Qamp = 1 Iamp = Qamp / OPT.IQparams[2] print("Ioffset:\n %s" % OPT.IQparams[0]) print("Qoffset:\n %s" % OPT.IQparams[1]) print("Iamp:\n %s" % Iamp) print("Qamp:\n %s" % Qamp) print("Iphase:\n %s" % OPT.IQparams[3]) print("Qphase:\n %s" % OPT.IQparams[4]) break curve(T, LO, 'LO Leakage vs time', 'T(#)', 'DLO(dB)') curve(T, Mirror, 'Mirror Image vs time', 'T(#)', 'DMirror(dB)') # closing instruments: ans = input("Press any keys to close AWG, PSGA and RSA-5 ") AWG.Abort_Gen(awgsess) AWG.close(awgsess) PSGA.rfoutput(saga, action=['Set', 0]) PSGA.close(saga, False) MXA.close(mxa, False)
'realimag', 1, (0, 3, 4), fdata_unit=1e9, delimiter=',') port1.autofit() print("Fit results:", port1.fitresults) # port1.plotall() print('z_data %s' % port1.z_data) print('z_data_sim %s' % port1.z_data_sim) print('z_data_raw %s' % port1.z_data_raw) x, y = [], [] for i in range(2): x.append(dataf[title]) y.append(abs(port1.z_data_raw)) y.append(abs(port1.z_data_sim)) curve(x, y, 'Q_fit', 'freq', 'I', style=['or', '.b']) I, Q = [], [] I.append(port1.z_data_raw.real) I.append(port1.z_data_sim.real) Q.append(port1.z_data_raw.imag) Q.append(port1.z_data_sim.imag) curve(I, Q, 'IQ_fit', 'I', 'Q', style=['or', '.b']) print("single photon limit:", port1.get_single_photon_limit(diacorr=True), "dBm") print("photons in resonator for input -140dBm:", port1.get_photons_in_resonator(-140, unit='dBm', diacorr=True), "photons")
from pyqum.instrument.analyzer import curve x = [1, 2, 3, 4, 5] y1 = [1, 2, 4, 8, 16] y2 = [1, 2, 4, 7, 10] curve([x, x], [y1, y2], 'QC Road Map', 'Year', 'KPI', yscal='log', basy=2, style=['b', 'r'])
# replacing c-constant: caddress = caddress[:2 * CStructure.index(C[C_option]) + 1] + C_index + caddress[2 * CStructure.index(C[C_option]) + 2:] print("C-Address: %s" % (caddress)) # Sweep first curve to decide: IQdata = array([ alldata[gotocdata([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, x], cstructure)] for x in timesweep ]) I, Q, Amp, Pha = IQAParray(IQdata) A = [sqrt(i**2 + q**2) for (i, q) in zip(I, Q)] # slower iteration # select which range you need from the curve: curve(range(len(I)), I, 'Pick the start-end point:', '#', 'A(V)') curve(range(len(Q)), Q, 'Pick the start-end point:', '#', 'A(V)') curve(range(len(A)), A, 'Pick the start-end point:', '#', 'A(V)') # assemble the analytics startpoint = int(input("Reading the measured pulse from: ")) endpoint = int(input("Reading the measured pulse until: ")) firstpoint = int(input('Total %s points, plot from: ' % len(xdata))) lastpoint = int(input('Total %s points, plot until: ' % len(xdata))) # Start post-averaging: iA, aphase, aAmp, Asquare, Isquare, Qsquare = [], [], [], [], [], [] for i in range(firstpoint, lastpoint): if not i % 10: print("\rprocessing %s/%s" % (i, lastpoint), end='\r', flush=True)
def test(detail=True): from pyqum.instrument.analyzer import curve, IQAParray, UnwraPhase from pyqum.instrument.toolbox import waveform bench = Initiate(False) if bench is "disconnected": pass else: model(bench) if debug(mdlname, detail): # print(setrace(bench, window='D12_34')) print(setrace(bench, Mparam=['S21', 'S43'], window='D1_2')) power(bench, action=['Set', -35]) power(bench) N = 3000 # sweep(bench, action=['Set', 'OFF 10', N]) sweep(bench, action=['Set', 'ON', N]) f_start, f_stop = 0.7e9, 18e9 linfreq(bench, action=['Set', f_start, f_stop]) #F-sweep stat = linfreq(bench) fstart, fstop = stat[1]['START'], stat[1]['STOP'] # Building X-axis # fstart, fstop = float(fstart), float(fstop) # noisefilfac = 20000 IFB = 600 #abs(float(fstart) - float(fstop))/N/noisefilfac ifbw(bench, action=['Set', IFB]) ifbw(bench) # averag(bench, action=['Set', 1]) #optional # averag(bench) # start sweeping # stat = sweep(bench) # print("Time-taken would be: %s (%spts)" %(stat[1]['TIME'], stat[1]['POINTS'])) # print("Ready: %s" %measure(bench)[1]) # autoscal(bench) cwfreq(bench, action=['Set', 5.25e9]) cwfreq(bench) # power(bench, action=['Set', '', -75.3, -40.3]) #power sweep power(bench, action=['Set', '', -10, -10]) power(bench) # start sweeping stat = sweep(bench) print("Time-taken would be: %s (%spts)" % (stat[1]['TIME'], stat[1]['POINTS'])) print("Ready: %s" % bool(measure(bench))) autoscal(bench) dataform(bench, action=['Set', 'REAL']) selectrace(bench, action=['Set', 'para 1 calc 1']) data = sdata(bench) print("Data [Type: %s, Length: %s]" % (type(data), len(data))) rfports(bench, action=['Set', 'OFF']) rfports(bench) # Plotting trace: yI, yQ, Amp, Pha = IQAParray(array(data)) curve(range(len(data) // 2), Amp, 'CW-Amp time-series', 'arb time', 'Amp(dB)') # TEST SCPI ZONE: # bench.write(':SYSTem:PRESet') # scanning(bench) #continuous scan else: print(Fore.RED + "Basic IO Test") close(bench) return