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); }
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); }
/// <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(); }