返回 Skill 列表
extension
分类: 效率与办公无需 API Key

cathodic-protection

专业的电气工程师,专门从事阴极保护(CP)系统

person作者: jakexiaohubgithub

Cathodic Protection Skill

Expert guidance on cathodic protection (CP) systems for offshore platforms, subsea pipelines, storage tanks, and onshore oil and gas facilities.

Version Metadata

version: 1.0.0
python_min_version: '3.10'
compatibility:
  tested_python:
  - '3.10'
  - '3.11'
  - '3.12'
  - '3.13'
  os:
  - Windows
  - Linux
  - macOS

Changelog

[1.0.0] - 2026-01-07

Added:

  • Initial version metadata and dependency management
  • Semantic versioning support
  • Compatibility information for Python 3.10-3.13

Changed:

  • Enhanced skill documentation structure

When to Use

  • CP system design (SACP and ICCP)
  • Anode calculation and spacing
  • Transformer rectifier unit sizing
  • Pipeline CP design
  • Coating breakdown assessment
  • AC/DC interference analysis
  • CP monitoring system design
  • NACE/ISO/DNV compliance

Domain Expertise

Cathodic Protection Systems

| System Type | Applications | |-------------|--------------| | SACP (Sacrificial Anode) | Offshore structures, pipelines, short-term protection | | ICCP (Impressed Current) | Long pipelines, complex structures, retrofit | | Hybrid | Combined systems for optimal protection |

Anode Materials

| Material | Application | Environment | |----------|-------------|-------------| | Al-Zn-In | Marine, seawater | Offshore, subsea | | Magnesium | Soil, freshwater | Onshore pipelines | | MMO (Mixed Metal Oxide) | ICCP anodes | All environments | | Graphite | Deep well anodes | Soil, groundbeds | | High-silicon iron | Groundbeds | Soil |

Industry Standards

| Standard | Scope | |----------|-------| | NACE SP0169 | External corrosion control of pipelines | | NACE SP0177 | Mitigation of AC and lightning effects | | NACE SP0286 | Electrical isolation of CP systems | | NACE RP0176 | Corrosion control of steel fixed offshore platforms | | ISO 15589-1 | Pipelines - Onshore | | ISO 15589-2 | Pipelines - Offshore | | DNV-RP-B401 | Cathodic protection design | | API RP 651 | Cathodic protection of aboveground tanks | | API RP 1632 | Cathodic protection of underground tanks |

CP Design Calculations

Anode Mass Calculation

from digitalmodel.modules.cp import AnodeDesign

# Initialize anode designer
anode = AnodeDesign()

# Calculate required anode mass
result = anode.calculate_mass(
    structure={
        "surface_area": 5000,  # m2
        "coating_efficiency": 0.95,  # 95% coating
        "bare_area": 250  # m2 (5% of total)
    },
    environment={
        "resistivity": 0.25,  # ohm-m (seawater)
        "temperature": 15,  # Celsius
        "water_depth": 100  # m
    },
    design={
        "current_density": 0.03,  # A/m2 (mean)
        "design_life": 25,  # years
        "utilization_factor": 0.85,
        "anode_material": "Al-Zn-In"
    }
)

print(f"Total current required: {result['current_required']:.2f} A")
print(f"Total anode mass: {result['mass_required']:.0f} kg")
print(f"Number of anodes: {result['anode_count']}")
print(f"Anode spacing: {result['spacing']:.1f} m")

Pipeline Attenuation

from digitalmodel.modules.cp import PipelineCP

# Initialize pipeline CP designer
pipeline = PipelineCP()

# Calculate attenuation and CP spread
result = pipeline.calculate_attenuation(
    pipeline={
        "length": 50000,  # m (50 km)
        "diameter": 0.914,  # m (36 inch)
        "wall_thickness": 0.0254,  # m (1 inch)
        "coating_type": "FBE",
        "coating_resistance": 10000  # ohm-m2
    },
    soil={
        "resistivity": 50,  # ohm-m
        "type": "clay"
    },
    cp_stations={
        "type": "ICCP",
        "voltage": -1.1,  # V vs Cu/CuSO4
        "locations": [0, 25000, 50000]  # m
    }
)

print(f"Attenuation constant: {result['attenuation_constant']:.6f} 1/m")
print(f"Effective CP spread: {result['effective_spread']:.0f} m")
print(f"Minimum potential: {result['min_potential']:.3f} V")
print(f"Protection criteria met: {result['criteria_met']}")

Coating Breakdown Factor

from digitalmodel.modules.cp import CoatingAnalysis

coating = CoatingAnalysis()

# Calculate coating breakdown factor
cbf = coating.calculate_breakdown_factor(
    coating_type="3LPE",
    initial_quality=0.99,  # 99% initial efficiency
    design_life=25,  # years
    temperature=65,  # Celsius (operating)
    method="DNV-RP-F103"  # or ISO 15589
)

print(f"Initial CBF: {cbf['initial']:.4f}")
print(f"Mean CBF: {cbf['mean']:.4f}")
print(f"Final CBF: {cbf['final']:.4f}")
print(f"Bare area at design life: {cbf['bare_area_percentage']:.1f}%")

ICCP System Design

Transformer Rectifier Sizing

from digitalmodel.modules.cp import ICCPDesign

iccp = ICCPDesign()

# Size transformer rectifier unit
tru = iccp.size_tru(
    current_requirement={
        "initial": 50,  # A
        "mean": 75,  # A
        "final": 100  # A
    },
    anode_string={
        "resistance": 0.5,  # ohm
        "count": 10,
        "type": "MMO"
    },
    cable={
        "length": 500,  # m
        "type": "XLPE",
        "size": 25  # mm2
    },
    safety_factor=1.25
)

print(f"TRU Rating: {tru['power_rating']:.1f} kW")
print(f"Output Voltage: {tru['voltage']:.1f} V DC")
print(f"Output Current: {tru['current']:.1f} A")
print(f"Efficiency: {tru['efficiency']:.1f}%")

Deep Well Anode Design

# Design deep well anode groundbed
groundbed = iccp.design_groundbed(
    type="deep_well",
    soil_resistivity=100,  # ohm-m
    current_output=50,  # A
    design_life=30,  # years
    anode_material="graphite"
)

print(f"Well depth: {groundbed['depth']:.1f} m")
print(f"Anode count: {groundbed['anode_count']}")
print(f"Anode length: {groundbed['anode_length']:.1f} m")
print(f"Groundbed resistance: {groundbed['resistance']:.3f} ohm")

Monitoring and Assessment

Remote Monitoring System

from digitalmodel.modules.cp import CPMonitoring

monitoring = CPMonitoring()

# Design monitoring system
system = monitoring.design_system(
    structure_type="offshore_platform",
    monitoring_points=25,
    parameters=[
        "potential",
        "current",
        "temperature",
        "reference_electrode_check"
    ],
    communication="satellite",
    data_interval=3600  # seconds
)

print(f"Monitoring units: {system['unit_count']}")
print(f"Reference electrodes: {system['reference_electrodes']}")
print(f"Communication: {system['communication_type']}")

Survey Analysis

from digitalmodel.modules.cp import SurveyAnalysis

survey = SurveyAnalysis()

# Analyze CIPS/CIS survey data
analysis = survey.analyze_cips(
    data_file="pipeline_survey.csv",
    criteria={
        "on_potential": -0.85,  # V vs Cu/CuSO4
        "off_potential": -0.85,
        "100mV_shift": True
    }
)

print(f"Protected length: {analysis['protected_percentage']:.1f}%")
print(f"Under-protected sections: {len(analysis['under_protected'])}")
print(f"Coating defects detected: {len(analysis['coating_defects'])}")

# Analyze DCVG survey
dcvg = survey.analyze_dcvg(
    data_file="dcvg_survey.csv"
)

for defect in dcvg['defects']:
    print(f"Defect at {defect['chainage']}m: {defect['severity']} ({defect['ir_drop']}mV)")

Interference Analysis

AC Interference

from digitalmodel.modules.cp import InterferenceAnalysis

interference = InterferenceAnalysis()

# Analyze AC interference from power line
ac_analysis = interference.analyze_ac(
    pipeline={
        "length": 10000,  # m parallel exposure
        "coating_resistance": 10000,  # ohm-m2
        "diameter": 0.6  # m
    },
    power_line={
        "voltage": 400000,  # V
        "current": 500,  # A
        "separation": 50  # m
    },
    soil_resistivity=100  # ohm-m
)

print(f"Induced AC voltage: {ac_analysis['voltage']:.1f} V")
print(f"AC current density: {ac_analysis['current_density']:.2f} A/m2")
print(f"Mitigation required: {ac_analysis['mitigation_required']}")

Stray Current

# Analyze DC stray current
dc_analysis = interference.analyze_stray_current(
    pipeline={
        "coating_resistance": 10000,  # ohm-m2
        "length": 5000  # m affected
    },
    source={
        "type": "railway",
        "current": 1000,  # A
        "distance": 100  # m
    }
)

print(f"Stray current pickup: {dc_analysis['pickup_current']:.2f} A")
print(f"Discharge current density: {dc_analysis['discharge_density']:.4f} A/m2")
print(f"Corrosion rate: {dc_analysis['corrosion_rate']:.2f} mm/year")

MCP Tool Integration

Swarm Coordination

// Initialize CP design swarm
mcp__claude-flow__swarm_init { topology: "hierarchical", maxAgents: 4 }

// Spawn specialized agents
mcp__claude-flow__agent_spawn { type: "analyst", name: "cp-calculator" }
mcp__claude-flow__agent_spawn { type: "reviewer", name: "standards-checker" }

Memory Coordination

// Store CP design parameters
mcp__claude-flow__memory_usage {
  action: "store",
  key: "cp/design/parameters",
  namespace: "corrosion",
  value: JSON.stringify({
    structure: "offshore_platform",
    system: "SACP",
    design_life: 25,
    standards: ["DNV-RP-B401", "NACE SP0176"]
  })
}

Design Workflow

CP System Design Process

  1. Environment Assessment

    • Soil/water resistivity
    • Temperature
    • Oxygen content
    • Biological activity
  2. Current Requirement

    • Surface area calculation
    • Coating efficiency
    • Current density selection
  3. System Selection

    • SACP vs ICCP decision
    • Hybrid considerations
  4. Component Design

    • Anode sizing and distribution
    • Cable sizing
    • TRU specification (ICCP)
  5. Interference Analysis

    • AC/DC interference
    • Stray current
    • Galvanic interaction
  6. Monitoring Design

    • Reference electrode placement
    • Test point locations
    • Remote monitoring

Best Practices

  1. Conservatism: Apply appropriate safety factors
  2. Standards Compliance: Follow NACE/ISO requirements
  3. Design Life: Consider coating degradation over time
  4. Monitoring: Design for long-term performance tracking
  5. Documentation: Record all assumptions and calculations

Related Skills

References

  • NACE International Standards
  • ISO 15589-1/2: Cathodic Protection of Pipelines
  • DNV-RP-B401: Cathodic Protection Design
  • API RP 651/1632: Tank Cathodic Protection
  • Agent Source: agents/cathodic-protection-engineer.md

Version History

  • 1.0.0 (2025-01-02): Initial release from agents/cathodic-protection-engineer.md