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; }
public static void HardFixData(MFCMDataFull currentHeatResult) { int matrixId = currentHeatResult.MFMEquationId; if (VerificateDataHF(currentHeatResult)) { Program.MatrixStateDataFull[matrixId].MatrixList.RemoveAt(0); Program.MatrixStateDataFull[matrixId].MatrixList.Add(currentHeatResult); //var indexF = Program.MatrixStateDataFull[matrixId].MatrixList.Count - 1; //Program.MatrixStateDataFull[matrixId].MatrixList[indexF].MFMEquationId = matrixId; //CIterator.DataCurrentHeat.MatrixStateData = Program.MFCMDataGenerate(Program.MatrixStateDataFull); } Program.MatrixStateDataFullTotal.Add(currentHeatResult); //var indexFT = Program.MatrixStateDataFullTotal.Count - 1; //Program.MatrixStateDataFullTotal[indexFT].MFMEquationId = matrixId; //DataArchSec.HeatingName = Program.PathArch + @"\" + Program.ArchNameGenerate("Sec"); //DataArchSec.NumberHeating = CurrentHeatResult.NumberHeat; //DataArchSec.Separator = Program.Separator; //DataArchSec.TimeHeating = DateTime.Now.ToString(); //File.WriteAllText(DataArchSec.HeatingName, DataArchSec.ToString()); for (int iD = 0; iD < Program.MatrixStateDataFull[matrixId].MatrixList.Count; iD++) Program.MatrixStateDataFull[matrixId].MatrixList[iD].IdHeat = iD; Program.SaveMatrix(Program.ModelsPathDic[matrixId], Program.Separator, Program.MatrixStateDataFull[matrixId].MatrixList); Program.SaveMatrix(Program.ArchFileName, Program.Separator, Program.MatrixStateDataFullTotal); //StartHeating(); }
public static void Init() { m_sw = new Stopwatch(); CurrentHeatResult = new MFCMDataFull(); DataCurrentHeat = new HeatData(); //CIterator.DataCurrentHeat.MatrixStateData = Program.MFCMDataGenerate(Program.MatrixStateDataFull); //!! DataArchSec = new SecondDataArch(); 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; }
public static void EnqueueWaitC(MFCMDataFull currentHeatResult) { var numberHeat = currentHeatResult.NumberHeat; if (numberHeat <= 0) return; if (!Program.WaitCarbonDic.ContainsKey(numberHeat)) { currentHeatResult.SteelCarbonPercent = 0; // на всякий обнуляем Program.WaitCarbonDic.Add(numberHeat, currentHeatResult); } else return; }