From 6d63f8d02e4b87379e31e24640c6a9c6167388ad Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Thu, 11 Aug 2022 14:30:20 +0500 Subject: [PATCH] Edit DetectorTemplatingWhileDrilling --- .../DetectOperations/DetectedOperationService.cs | 4 ++-- .../Detectors/DetectorTemplatingWhileDrilling.cs | 9 ++++++++- .../Specifications/Шаблонировка при бурении.md | 14 +++++++++----- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs index 3b9b1379..eecaebc0 100644 --- a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs +++ b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs @@ -37,11 +37,11 @@ namespace AsbCloudInfrastructure.Services.DetectOperations private readonly IAsbCloudDbContext db; private readonly IWellService wellService; - private readonly IOperationValueService operationValueService; + private readonly IRepositoryWellRelated operationValueService; private readonly IScheduleRepository scheduleService; public DetectedOperationService(IAsbCloudDbContext db, IWellService wellService, - IOperationValueService operationValueService, IScheduleRepository scheduleService) + IRepositoryWellRelated operationValueService, IScheduleRepository scheduleService) { this.db = db; this.wellService = wellService; diff --git a/AsbCloudInfrastructure/Services/DetectOperations/Detectors/DetectorTemplatingWhileDrilling.cs b/AsbCloudInfrastructure/Services/DetectOperations/Detectors/DetectorTemplatingWhileDrilling.cs index 75e0a3de..f6c08747 100644 --- a/AsbCloudInfrastructure/Services/DetectOperations/Detectors/DetectorTemplatingWhileDrilling.cs +++ b/AsbCloudInfrastructure/Services/DetectOperations/Detectors/DetectorTemplatingWhileDrilling.cs @@ -36,8 +36,15 @@ namespace AsbCloudInfrastructure.Services.DetectOperations.Detectors protected override int DetectEnd(DetectableTelemetry[] telemetry, int position, DetectedOperation? previousOperation) { var point0 = telemetry[position]; + + if (point0.Pressure < 15) + return IdReasonOfEnd_PressureIsLo; + + if (RisesFromBegin(telemetry, t=>t.WellDepth, position, 10, 0.01)) + return IdReasonOfEnd_WellDepthDeviates; + var delta = point0.WellDepth - point0.BitDepth; - if ((delta > 0.03d ) + if ( (delta > 0.03d ) && (point0.Pressure > 15) && (!ContainsDeviationApprox(telemetry, t=>t.BlockPosition, position, 60, 0.03))) return IdReasonOfEnd_Custom1; diff --git a/AsbCloudInfrastructure/Services/DetectOperations/Specifications/Шаблонировка при бурении.md b/AsbCloudInfrastructure/Services/DetectOperations/Specifications/Шаблонировка при бурении.md index 42cde2a2..0463730c 100644 --- a/AsbCloudInfrastructure/Services/DetectOperations/Specifications/Шаблонировка при бурении.md +++ b/AsbCloudInfrastructure/Services/DetectOperations/Specifications/Шаблонировка при бурении.md @@ -6,15 +6,19 @@ ## Метод определения Признак начала операции = - ( предыдущая операция == промывка) + ( предыдущая операция == промывка ) ( давление > 15 атм ) И ( положение блока увеличится на 0,5м за следующие 30сек ) И - ( Обороты ротора меньше 1) + ( Обороты ротора меньше 1 ) Признак окончания операции = - ( высота блока не изменяется больше чем на 0.03м в течении 60 сек после окончания операции) И - ( расстояние от долота до забоя > 0.03м ) И - ( давление > 15 атм ) + ( + ( высота блока не изменяется больше чем на 0.03м в течении 60 сек после окончания операции ) И + ( расстояние от долота до забоя > 0.03м ) И + ( давление > 15 атм ) + ) ИЛИ + ( давление < 15 атм ) ИЛИ + ( Увеличение глубины забоя > 0,01м за 10 секунд) ## Ключевой параметр Продолжительность операции.