Exemple #1
0
        public static ResultDiagnostics CalculBearing(Machine machine, float CurrentHead)
        {
            ResultDiagnostics result     = new ResultDiagnostics();
            float             maxBearing = 0;

            StateClass CurrenClass = GetCurrentStateClass(model.StateClass.GetBearingStateClasses(machine), CurrentHead); //Определение подходящий классов состояния

            float fiftyHz = 0;                                                                                            //вычисляем среднее значение при 50Гц
            int   countFL = TempStorage.GetFL().Count;

            foreach (var item in TempStorage.GetFL())
            {
                fiftyHz += item.GetdB(50);
            }
            fiftyHz = fiftyHz / countFL;

            float SpeedHz = machine.Speed / 60; // Находим частоту оборотов в герцах

            float maxAmplitude = 0;             //Находим среднюю максимальную амплитуду в файлах

            foreach (var fl in TempStorage.GetFL())
            {
                maxAmplitude += fl.GetMaxAmplitudeBearing(SpeedHz);
            }
            maxAmplitude = maxAmplitude / countFL;

            maxBearing   = maxAmplitude / fiftyHz;
            result.file  = "В разработке";
            result.value = maxBearing;
            result.date  = DateTime.Now;
            if (maxBearing <= CurrenClass.nicely)
            {
                result.level = "Хорошо";
            }
            else if ((maxBearing <= CurrenClass.acceptably) && (maxBearing > CurrenClass.nicely))
            {
                result.level = "Допустимо";
            }
            else if ((maxBearing <= CurrenClass.limited) && (maxBearing > CurrenClass.acceptably) && (maxBearing > CurrenClass.nicely))
            {
                result.level = "Требует принятия мер";
            }
            else
            {
                result.level = "Недопустимо";
            }
            DiagnosticResultController.AddBearingResult(machine, result);
            return(result);
        }
Exemple #2
0
        public static ResultDiagnostics CalculEngine(Machine machine, float CurrentHead)
        {
            ResultDiagnostics result     = new ResultDiagnostics();
            float             averEngine = 0;

            float fiftyHz = 0; //вычисляем среднее значение при 50Гц
            int   countFL = TempStorage.GetFL().Count;

            foreach (var item in TempStorage.GetFL())
            {
                fiftyHz += item.GetdB(50);
            }
            fiftyHz = fiftyHz / countFL;

            float SpeedHz = machine.Speed / 60; // Находим частоту оборотов в герцах

            float maxAmplitudeEngine  = 0;      //Максимальная амплитуда на отрезках fподш дв и fэксц дв
            float maxAmplitudeBearing = 0;      //Максимальная амплитуда на отрезке fподш

            foreach (var fl in TempStorage.GetFL())
            {
                maxAmplitudeEngine  += fl.GetMaxAmplitudeEngine(SpeedHz, machine.CountPairs);
                maxAmplitudeBearing += fl.GetMaxAmplitudeBearing(SpeedHz);
            }
            maxAmplitudeEngine  = maxAmplitudeEngine / countFL;
            maxAmplitudeBearing = maxAmplitudeBearing / countFL;

            averEngine   = maxAmplitudeEngine / maxAmplitudeBearing;
            result.file  = "Не реализованно!";
            result.value = averEngine;
            result.date  = DateTime.Now;
            if (averEngine > 0.7)
            {
                result.level = "Обнаружено";
            }
            else
            {
                result.level = "Не обнаружено";
            }
            DiagnosticResultController.AddEngineResult(machine, result);
            return(result);
        }
Exemple #3
0
        /// <summary>
        /// Перерисовака графика
        /// </summary>
        private void CreateChart()
        {
            int WidthDifference  = pbChart.Location.X + chart.Indent + 5;
            int HeightDifference = pbChart.Location.Y + chart.Indent + 10;

            pbChart.Size = new Size(this.Size.Width - WidthDifference, this.Size.Height - HeightDifference);
            StateClass stateClass =
                CalculationDefectsController.GetCurrentStateClass(StateClassController.GetShaft(cbMachines.SelectedItem as Machine),
                                                                  (cbMachines.SelectedItem as Machine).Head);
            List <ResultDiagnostics> resultDiagnostics = new List <ResultDiagnostics>();
            List <Repairs>           repairs           = RepairsController.GetRepairs((cbMachines.SelectedItem as Machine));
            List <ResultForecast>    forecasts         = new List <ResultForecast>();

            if (rbBearing.Checked)
            {
                resultDiagnostics = DiagnosticResultController.GetBearingResult(cbMachines.SelectedItem as Machine);
            }
            else
            {
                resultDiagnostics = DiagnosticResultController.GetShaftResult(cbMachines.SelectedItem as Machine);
            }
            if (rbStandartForecast.Checked)
            {
                forecasts =
                    ForecastController.GetStandartForecast(resultDiagnostics,
                                                           stateClass,
                                                           (cbMachines.SelectedItem as Machine));
            }
            else
            {
                forecasts =
                    ForecastController.GetSimpleForecast(resultDiagnostics,
                                                         stateClass,
                                                         (cbMachines.SelectedItem as Machine));
            }

            chart = new Chart(pbChart.ClientRectangle, resultDiagnostics, forecasts, stateClass, repairs);
            pbChart.Invalidate();
        }