certflow.services.pressure_calc_service module¶
物理计算引擎 —— 试压报告的压力与保压时间计算
对标 VBA Fun_计算压力时间 模块,提供: 1. Lb 压力等级 → MPa 换算(150Lb→2.0, 300Lb→5.17, 600Lb→10.34) 2. 强度试验压力(按标准号 × 公称压力倍率) 3. 上密封试验压力(按标准号 × 公称压力倍率,止回阀/蝶阀特殊处理) 4. 主密封试验压力(按标准号 × 公称压力倍率) 5. 四种保压时间查表(强度 / 上密封 / 主密封,按标准号 + 口径)
设计原则: - 纯函数,无副作用,无 DB / 文件 I/O 依赖 - 对标 VBA 逐行语义,不一致处标注差异 - 未匹配标准号 → 返回 None / "≥",不伪造数据
- class certflow.services.pressure_calc_service.PressureCalcInput(standard='', nominal_pressure_mpa=0.0, caliber_mm=0.0, is_check_valve=False, is_butterfly_valve=False, is_metric=True, is_imperial=False)[源代码]¶
基类:
object物理计算输入参数
- 参数:
- class certflow.services.pressure_calc_service.PressureCalcResult(strength_test_pressure=None, strength_test_pressure_display='', upper_seal_pressure=None, upper_seal_pressure_display='', main_seal_pressure=None, main_seal_pressure_display='', strength_hold_time='≥', upper_seal_hold_time='≥', main_seal_hold_time='≥', errors=<factory>)[源代码]¶
基类:
object物理计算结果
- class certflow.services.pressure_calc_service.PressureCalcService[源代码]¶
基类:
object物理计算服务 —— 试压报告的压力与保压时间计算
对标 VBA Fun_计算压力时间 模块的 7 个函数。 所有方法均为纯函数(无状态、无副作用),可直接用于报告生成管线。
示例
>>> svc = PressureCalcService() >>> result = svc.calculate(PressureCalcInput( ... standard="GB/T 13927-2022", ... nominal_pressure_mpa=2.5, ... caliber_mm=100, ... )) >>> result.strength_test_pressure 3.75 >>> result.strength_hold_time '≥60'
- calculate(inp)[源代码]¶
一次性计算所有试压参数(压力 + 保压时间)
- 参数:
inp (PressureCalcInput) -- 输入参数
- 返回:
完整计算结果
- 返回类型:
- static calc_strength_pressure(standard_norm, nominal_pressure_mpa)[源代码]¶
计算强度试验压力
标准倍率规则(对标 VBA 根据标准号计算强度试验压力):
API 598 1.5x Lb 已在调用前换算为 MPa GB/T 13927 1.5x GB/T 26480 1.5x JB/T 9092 1.5x JB/T 3595 1.5x GB/T 12465 1.5x GB/T 12245 1.5x 减压阀 GB/T 14382 1.5x GB/T 14478 1.5x GB 12242 1.5x 水流指示器 GB/T 12251 1.5x 蒸汽疏水阀 SL 553 1.5x DL/T 5190.5 1.5x NB/T 47044 见下 电站阀门(分级)
≤4 MPa 1.5x (等同 JB/T 3595) 4-10 MPa 1.5x (等同 GB/T 26480) 10-17 MPa 3.0x =17 MPa 48.0 (固定值, PW55 170V)
- 背压阀外购 4.0x
- static calc_upper_seal_pressure(standard_norm, nominal_pressure_mpa, is_check_valve=False, is_butterfly_valve=False)[源代码]¶
计算上密封试验压力
返回 None 表示无上密封试验项目(对标 VBA 返回 "/")。 返回 0.0 表示压力为 0(VBA 返回 0,如 GB/T 12465)。
关键规则: - 止回阀(check valve):多数标准无上密封 → "/" - 减压阀(GB/T 12245):无上密封 → "/" - 伸缩节(GB/T 12465):无上密封 → 0 - 蒸汽疏水阀(GB/T 12251):只有强度试验 → "/" - 背压阀外购:无上密封 → "/" - GB/T 14382:无上密封 → "/"
- static calc_main_seal_pressure(standard_norm, nominal_pressure_mpa, is_check_valve=False, is_butterfly_valve=False)[源代码]¶
计算主密封试验压力
关键规则: - API 598:所有阀门 1.1x - GB/T 26480 / JB/T 9092:止回阀 1.0x,其他 1.1x - NB/T 47044:止回阀/蝶阀 1.0x,其他按公称压力分级 - GB/T 12465 / GB/T 14382 / DL/T 5190.5:1.25x - GB 12242(水流指示器):1.2x - 背压阀外购:1.2x - GB/T 12251(蒸汽疏水阀):0(只有强度试验) - GB/T 14478:需用户输入最大净水头(此处返回 None 需人工)
- static calc_strength_hold_time(standard_norm, caliber_mm, is_check_valve=False, is_metric=True)[源代码]¶
计算强度试验最短保压时间
对标 VBA `查找强度试验最短保压时间`(第658-861行)。
按标准号 + 口径查表,英制单位仅支持 API 598。