public double 功率计读取脉冲后沿数值(频率工作范围 freq)
 {
     _SignalGener.VisaWrite(_SCPI_SignalGenerator.SOURCE_SYSTEM.设置频率((int)freq + "MHz"));
     _PowerMeter.VisaWrite(_SCPI_PowerMeter.TRIGGER_SYSTEM.设置Slope("NEG"));
     Thread.Sleep(1000);
     return(Math.Round(_PowerMeter.VisaRead_double(_SCPI_PowerMeter.SENSE_SYSTEM.读取脉冲后沿()) * 1000000000, 2));
 }
Exemplo n.º 2
0
        public void 该测试前设置(频率工作范围 freq, 宽类型 pulseWidth, decimal dutyRadio)
        {
            冲源基础设置(pulseWidth, dutyRadio);

            _ControlModule.SwitchControl(ControlModule.仪表选择.功率计);
            _PowerMeter.VisaWrite(_SCPI_PowerMeter.CALC_SYSTEM.设置MeasureType(1, "1", PowerMeterSCPIBase_Keysight.CALCulate_System.MeasureType.PEAK));

            _PowerMeter.VisaWrite(_SCPI_PowerMeter.UNIT_SYSTEM.设置UNIT(2, "W"));
            _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置TraceSetup_Unit(1, "W"));
            Thread.Sleep(2000);
        }
Exemplo n.º 3
0
 public double Get指标要求(频率工作范围 freq)
 {
     if ((int)freq <= (int)频率工作范围.F05)
     {
         return(45);
     }
     else
     {
         return(50);
     }
 }
Exemplo n.º 4
0
        public double Start(频率工作范围 freq, ControlModule.功率控制 control)
        {
            补偿设置(freq);

            _ControlModule.PowerControl(control);

            _SignalGener.VisaWrite(_SCPI_SignalGenerator.SOURCE_SYSTEM.设置频率((int)freq + "MHz"));
            _Spec.VisaWrite(_SCPI_SPEC.SENSE_SYSTEM.设置中心频率center((int)freq + "MHz"));
            Thread.Sleep(300);
            _Spec.VisaWrite(_SCPI_SPEC.CALC_SYSTEM.设置MARK最大MAX(1));
            Thread.Sleep(300);
            return(Math.Round(_Spec.VisaRead_double(_SCPI_SPEC.CALC_SYSTEM.读取MARK点(1)), 2));
        }
        public double 功率计读取顶降值(频率工作范围 freq)
        {
            补偿设置(freq);
            _SignalGener.VisaWrite(_SCPI_SignalGenerator.SOURCE_SYSTEM.设置频率((int)freq + "MHz"));
            _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置TraceSetup_AutoScale());

            Thread.Sleep(2500);//等待AutoScale时间
            double _P1 = Convert.ToDouble(_PowerMeter.VisaRead_double(_SCPI_PowerMeter.SENSE_SYSTEM.读取GateSetup_MARK_POW(1, 1, 1)));

            Thread.Sleep(200);
            double _P2 = Convert.ToDouble(_PowerMeter.VisaRead_double(_SCPI_PowerMeter.SENSE_SYSTEM.读取GateSetup_MARK_POW(1, 1, 2)));

            return(Math.Round(_P1 - _P2, 2));
        }
 public void 补偿设置(频率工作范围 freq)
 {
     //L0信号源补偿 = Convert.ToDecimal(Modules.ucJiaoZhun.CalibrationObjectList.Find(m => m.FileName == "XHY.prn").CalibrationData[LX频率校准映射[freq]]);
     L1功率计补偿 = Convert.ToDecimal(Modules.ucJiaoZhun.CalibrationObjectList.Find(m => m.FileName == "GLJ.prn").CalibrationData[LX频率校准映射[freq]]);
     L2频谱仪补偿 = Convert.ToDecimal(Modules.ucJiaoZhun.CalibrationObjectList.Find(m => m.FileName == "PPY.prn").CalibrationData[LX频率校准映射[freq]]);
     //if (freq != 频率工作范围.F13 && freq != 频率工作范围.F14)
     //{
     //    _SignalGener.VisaWrite(_SCPI_SignalGenerator.SOURCE_SYSTEM.设置功率("2.5dbm"));
     //}
     //else
     //{
     //    _SignalGener.VisaWrite(_SCPI_SignalGenerator.SOURCE_SYSTEM.设置功率("2dbm"));
     //}
     //_SignalGener.VisaWrite(_SCPI_SignalGenerator.SOURCE_SYSTEM.设置功率Offsets(L0信号源补偿.ToString()));
     //_SignalGener.VisaWrite(_SCPI_SignalGenerator.SOURCE_SYSTEM.设置频率(string.Format("{0}MHz", (int)freq)));
     _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置增益DB补偿Offset(1, (-L1功率计补偿).ToString()));
 }
 public void 该测试前设置(频率工作范围 freq, 宽类型 pulseWidth, decimal dutyRadio)
 {
     补偿设置(freq);
     冲源基础设置(pulseWidth, dutyRadio);
     _ControlModule.SwitchControl(ControlModule.仪表选择.功率计);
     _PowerMeter.VisaWrite(_SCPI_PowerMeter.CALC_SYSTEM.设置MeasureType(1, "1", PowerMeterSCPIBase_Keysight.CALCulate_System.MeasureType.AVER));
     if (pulseWidth == 宽类型._60μs)
     {
         _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置TraceSetup_X_Scale(1, "0.000008"));
         _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置TraceSetup_X_Start(1, "-0.000005"));
     }
     else
     {
         _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置TraceSetup_X_Scale(1, "0.0000006"));
         _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置TraceSetup_X_Start(1, "-0.000001"));
     }
     Thread.Sleep(3000);
 }
Exemplo n.º 8
0
        //算法2
        public double 读取脉内信杂比(频率工作范围 freq)
        {
            补偿设置(freq);

            _Spec.VisaWrite(_SCPI_Spec.SENSE_SYSTEM.设置中心频率center((int)freq + "MHz"));
            _SignalGener.VisaWrite(_SCPI_SignalGenerator.SOURCE_SYSTEM.设置频率((int)freq + "MHz"));
            Thread.Sleep(500);
            int           mainSignalCountInSpan = 4;
            List <double> noiseList             = new List <double>();
            List <double> maxList = new List <double>();

            double[] resAllY = _Spec.VisaReads(_SCPI_Spec.CALC_SYSTEM.读取所有Y值());
            if (resAllY != null && resAllY.Length != 0)
            {
                noiseList.AddRange(resAllY);
            }
            else
            {
                return(0);
            }

            for (int i = 0; i < mainSignalCountInSpan; i++)
            {
                maxList.Add(noiseList.Max());
                noiseList.Remove(noiseList.Max());
            }

            double noiseAvg;

            if (noiseList.Where(M => M < -60).Count() != 0)
            {
                noiseAvg = noiseList.Where(M => M < -60).Average();
            }
            else
            {
                return(0);
            }

            double res = maxList.Average() - noiseAvg;

            return(Math.Round(res, 2));
        }
Exemplo n.º 9
0
        public void 该测试前设置(频率工作范围 freq, 宽类型 pulseWidth, decimal dutyRadio)
        {
            冲源基础设置(pulseWidth, dutyRadio);
            _ControlModule.SwitchControl(ControlModule.仪表选择.频谱仪);
            _Spec.VisaWrite(_SCPI_Spec.SYSTEM_SYSTEM.控时保持显示());
            _Spec.VisaWrite(_SCPI_Spec.DISPLAY_SYSTEM.设置参考电平("1", "10"));

            if (pulseWidth == 宽类型._5μs)
            {
                _Spec.VisaWrite(_SCPI_Spec.SENSE_SYSTEM.设置Span("160KHz"));
            }
            else
            {
                _Spec.VisaWrite(_SCPI_Spec.SENSE_SYSTEM.设置Span("13.3KHz"));
            }
            _Spec.VisaWrite(_SCPI_Spec.SENSE_SYSTEM.设置RBW("10Hz"));
            _Spec.VisaWrite(_SCPI_Spec.SENSE_SYSTEM.设置VBW("1Hz"));

            Thread.Sleep(1200);
        }
 public void 该测试前设置(频率工作范围 freq, 宽类型 pulseWidth, decimal dutyRadio)
 {
     冲源基础设置(pulseWidth, dutyRadio);
     _PowerMeter.VisaWrite(_SCPI_PowerMeter.SYSTEM_SYSTEM.PRESET模式("RADar"));
     Thread.Sleep(2800);
     _ControlModule.SwitchControl(ControlModule.仪表选择.功率计);
     _PowerMeter.VisaWrite(_SCPI_PowerMeter.CALC_SYSTEM.设置MeasureType(1, "1", PowerMeterSCPIBase_Keysight.CALCulate_System.MeasureType.PTAV));
     _PowerMeter.VisaWrite(_SCPI_PowerMeter.UNIT_SYSTEM.设置UNIT(2, "DBM"));
     if (pulseWidth == 宽类型._60μs)
     {
         _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置GateSetup_MARK1_TIME(1, 1, "6us"));
         _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置GateSetup_MARK1到MARK2_TIME(1, 1, "48us"));
     }
     else
     {
         _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置GateSetup_MARK1_TIME(1, 1, "0.5us"));
         _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置GateSetup_MARK1到MARK2_TIME(1, 1, "4us"));
     }
     Thread.Sleep(2000);
 }
Exemplo n.º 11
0
 public double 功率计读取峰值功率(频率工作范围 freq, 宽类型 pulseWidth)
 {
     补偿设置(freq);
     _SignalGener.VisaWrite(_SCPI_SignalGenerator.SOURCE_SYSTEM.设置频率((int)freq + "MHz"));
     _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置Freq((int)freq + "MHz"));
     if (pulseWidth == 宽类型._60μs)
     {
         _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置TraceSetup_X_Scale(1, "0.00001"));
         _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置TraceSetup_X_Start(1, "-0.00003"));
         _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置GateSetup_MARK1_TIME(1, 1, "6us"));
     }
     else
     {
         _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置TraceSetup_X_Scale(1, "0.0000008"));
         _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置TraceSetup_X_Start(1, "-0.000001"));
         _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置GateSetup_MARK1_TIME(1, 1, "700ns"));
     }
     _PowerMeter.VisaWrite(_SCPI_PowerMeter.SENSE_SYSTEM.设置TraceSetup_AutoScale());
     Thread.Sleep(1000);
     return(Math.Round(_PowerMeter.VisaRead_double(_SCPI_PowerMeter.MEASUREMENT_SYSTEM.读取Fetch数值(2)), 2));
 }
 public double Get指标要求(频率工作范围 freq)
 {
     return(100);
 }
 public double Get指标要求(频率工作范围 freq)
 {
     return(0.5);
 }