Files
egm/README.md
2026-03-04 19:22:34 +08:00

6.0 KiB
Raw Permalink Blame History

EGM - 输电线路绕击跳闸率计算程序

基于电气几何模型Electro-Geometric Model, EGM的架空输电线路雷电防护性能计算工具用于评估输电线路的绕击跳闸率。

功能特点

  • 支持单回和双回输电线路的绕击跳闸率计算
  • 考虑工作电压对雷电击距的影响
  • 支持地面倾角参数
  • 支持自定义地闪密度和雷电流概率密度曲线
  • 支持交流/直流线路计算
  • 输出CAD图形DXF格式可视化击距模型
  • 提供动画演示模式(可选项)
  • 提供图形化界面pywebview,支持可视化参数配置和计算

安装

环境要求

  • Python >= 3.12
  • Node.js >= 18图形界面开发需要

安装依赖

# 使用 uv推荐
uv sync

# 或使用 pip
pip install -r requirements.txt

依赖包

  • ezdxf - DXF文件生成
  • loguru - 日志记录
  • numpy - 数值计算
  • tomli - TOML配置文件解析
  • pywebview - 图形界面框架

使用方法

基本使用

# 使用默认配置文件
python main.py

# 指定配置文件
python main.py <配置文件路径>.toml

批量计算

批量计算不同保护角下的跳闸率:

python main-batch.py <配置文件路径>.toml

结果将输出到 r.txt 文件中。

打包为可执行文件

使用 Makefile 打包:

make

生成的可执行文件位于 dist/Lightening.exe

图形界面使用

程序提供基于 pywebview 的图形界面,使用 Vue 3 + Quasar + TypeScript + Tailwind CSS 开发。

安装前端依赖

cd webui
npm install

开发模式运行

# 终端1启动前端开发服务器
cd webui
npm run dev

# 终端2启动 pywebview 窗口
python webview_app.py

生产模式运行

# 构建前端
cd webui
npm run build

# 启动 pywebview 窗口
python webview_app.py

图形界面支持:

  • 可视化参数配置(基本参数、高级参数、可选参数)
  • 动态添加/删除数组参数
  • 参数导出功能
  • 计算结果展示

详细说明请参考 webui/README.md

配置文件格式

配置文件使用 TOML 格式,包含三个主要部分:

[parameter] - 基本参数

[parameter]
rated_voltage = 750        # 额定电压等级 (kV)
h_c_sag = 14.43            # 导线弧垂 (m)
h_g_sag = 11.67            # 地线弧垂 (m)
insulator_c_len = 7.4      # 导线串子绝缘长度 (m)
string_c_len = 9.2         # 导线串长 (m)
string_g_len = 0.5         # 地线串长 (m)
h_arm = [130, 100]         # 导、地线挂点垂直距离 (m),第一个值为地线挂点高度
gc_x = [17.9, 17]          # 导、地线水平坐标 (m)
ground_angels = [0]        # 地面倾角 (°),向下为正,支持多个角度
altitude = 1000            # 海拔高度 (m)
td = 20                    # 雷暴日 (d)

[advance] - 高级参数

[advance]
ng = -1              # 地闪密度 (次/(km²·a))大于0时使用此值否则通过雷暴日计算
Ip_a = -1            # 雷电流概率密度曲线系数a大于0时使用此值
Ip_b = -1            # 雷电流概率密度曲线系数b大于0时使用此值

注意:当 ng > 0 时,不会通过雷暴日计算地闪密度;当 Ip_aIp_b > 0 时,不会使用默认雷暴日对应的概率密度。

[optional] - 可选参数

[optional]
voltage_n = 3    # 计算时电压分成多少份(考虑电压波动影响)
max_i = 200      # 最大尝试雷电流 (kA)

计算原理

击距模型

程序使用基于电气几何模型的方法计算绕击跳闸率,主要涉及以下击距公式:

  1. 地线击距r_s = 10 \times I^{0.65}
  2. 导线击距r_c = 1.63 \times (5.015 \times I^{0.578} - 0.001 \times U_{ph})^{1.125}
  3. 地面击距
    • h_{av} < 40m: r_g = (3.6 + 1.7 \ln(43 - h_{av})) \times I^{0.65}
    • h_{av} \ge 40m: r_g = 5.5 \times I^{0.65}

地闪密度计算

根据 Q/GDW 11452-2015 导则:

N_g = 0.023 \times T_d^{1.3}

跳闸率计算

通过积分暴露弧面积与雷电流概率密度的乘积得到最终跳闸率,并考虑建弧率。

输出结果

  1. 控制台日志:显示详细的计算过程和中间结果
  2. DXF文件egm1.dxf、egm2.dxf 等,可视化击距模型
  3. 跳闸率结果:单位为 次/(100km·a)

项目结构

EGM/
├── main.py                 # 主程序入口
├── main-batch.py           # 批量计算程序
├── core.py                 # 核心计算模块
├── animation.py            # 动画演示模块
├── webview_app.py          # pywebview 图形界面后端
├── article.toml            # 示例配置文件
├── default.toml            # 默认配置文件
├── Makefile                # 构建脚本
├── pyproject.toml          # 项目配置
├── README.md               # 说明文档
├── webui/                  # 图形界面前端项目
│   ├── src/
│   │   ├── components/
│   │   │   ├── ParameterForm.vue  # 参数表单组件
│   │   │   ├── Animation.vue      # 动画可视化组件
│   │   │   └── Log.vue            # 日志显示组件
│   │   ├── types/
│   │   │   └── index.ts           # TypeScript 类型定义
│   │   ├── App.vue                # 主应用组件
│   │   ├── main.ts                # 应用入口
│   │   └── style.css              # 全局样式
│   ├── package.json               # 前端依赖配置
│   ├── vite.config.ts             # Vite 配置
│   ├── tsconfig.json              # TypeScript 配置
│   ├── tailwind.config.js         # Tailwind CSS 配置
│   └── index.html                 # HTML 入口
├── CSharp/                 # C# 版本实现
└── 历史/                   # 历史配置文件和DXF文件

技术支持

程序基于新版大手册公式和 Q/GDW 11452-2015《架空输电线路防雷导则》实现。

许可证

请参考项目许可证文件。