コード例 #1
0
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)")
コード例 #2
0
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")
コード例 #3
0
ファイル: VSA.py プロジェクト: supergravity/PYQUM
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
コード例 #4
0
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
コード例 #5
0
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)")
コード例 #6
0
ファイル: dilution.py プロジェクト: zeyanchen/PYQUM
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)")
コード例 #7
0
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()
コード例 #8
0
ファイル: DC.py プロジェクト: supergravity/PYQUM
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
コード例 #9
0
                        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)
コード例 #10
0
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)
コード例 #11
0
                  '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")
コード例 #12
0
ファイル: QCRoadMap.py プロジェクト: supergravity/PYQUM
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'])
コード例 #13
0
ファイル: READ_SQEP.py プロジェクト: supergravity/PYQUM
    # 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)
コード例 #14
0
ファイル: ENA.py プロジェクト: supergravity/PYQUM
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