コード例 #1
0
 public static bool VerificateDataHF(MFCMDataFull currentHeatResult)
 {
     var result = false;
     const double minCarbonPercent = 0.03;
     const double maxCarbonPercent = 0.1;
     const double minOxygenVolumeRate = 600;
     const double maxOxygenVolumeRate = 1400;
     const double maxHeightLance = 230;
     const double maxCarbonMonoxideVolumePercent = 30;
     const double maxCarbonOxideVolumePercent = 30;
     result = (currentHeatResult.SteelCarbonCalculationPercent != 0) &&
              (currentHeatResult.SteelCarbonPercent > minCarbonPercent) &&
              (currentHeatResult.SteelCarbonPercent < maxCarbonPercent) &&
              (currentHeatResult.OxygenVolumeRate > minOxygenVolumeRate) &&
              (currentHeatResult.OxygenVolumeRate < maxOxygenVolumeRate) &&
              (currentHeatResult.HeightLanceCentimeters <= maxHeightLance) &&
              (currentHeatResult.CarbonMonoxideVolumePercent <= maxCarbonMonoxideVolumePercent) &&
              (currentHeatResult.CarbonOxideVolumePercent <= maxCarbonOxideVolumePercent);
     return result;
 }
コード例 #2
0
        public static void HardFixData(MFCMDataFull currentHeatResult)
        {
            if (VerificateDataHF(currentHeatResult)) {
                Program.MatrixStateDataFull.RemoveAt(0);
                Program.MatrixStateDataFull.Add(currentHeatResult);
                DataCurrentHeat.MatrixStateData = Program.MFCMDataGenerate(Program.MatrixStateDataFull);
                Decarbonater.ComplexNMCTrain(DataCurrentHeat.MatrixStateData);
            }
            Program.MatrixStateDataFullTotal.Add(currentHeatResult);

            for (int iD = 0; iD < Program.MatrixStateDataFull.Count; iD++)
                Program.MatrixStateDataFull[iD].IdHeat = iD;
            Program.SaveMatrix(Program.Path, Program.Separator, Program.MatrixStateDataFull);
            Program.SaveMatrix(Program.ArchFileName, Program.Separator, Program.MatrixStateDataFullTotal);
            //StartHeating();
        }
コード例 #3
0
 public static void Init()
 {
     m_sw = new Stopwatch();
     CurrentHeatResult = new MFCMDataFull();
     DataCurrentHeat = new HeatData();
     DataCurrentHeat.MatrixStateData = Program.MFCMDataGenerate(Program.MatrixStateDataFull); //!!
     Decarbonater.ComplexNMCTrain(DataCurrentHeat.MatrixStateData); //!!
     DataSmoothCurrent = new HeatDataSmoother(100);
     m_smoothSecondLancePosition = new RollingAverage();
     TotalCarbonMass = 0.0;
     RemainCarbonMass = 0.0;
     RemainCarbonPercent = 0.0;
     m_maxDownLancePosition = 10000;
     m_lanceSpeed = 0.0;
     TotalCarbonMassCalculated = false;
     GasCarbonMassFinished = false;
     m_noFixData = true;
     ModelIsStarted = false;
 }
コード例 #4
0
        public static void EnqueueWaitC(MFCMDataFull currentHeatResult)
        {
            long numberHeat = currentHeatResult.NumberHeat;
            if (numberHeat <= 0) return;

            if (!Program.WaitCarbonDic.ContainsKey(numberHeat)) {
                currentHeatResult.SteelCarbonPercent = 0; // на всякий обнуляем
                Program.WaitCarbonDic.Add(numberHeat, currentHeatResult);
            }
            else return;
        }