简介:这份PSCAD/EMTDC建模资源面向电力系统与高电压方向的学生、研究人员和工程技术人员,围绕雷电波电磁暂态仿真提供完整建模思路与结果分析。内容基于GB18802标准中I级50kA 1.2/50和II级20kA 8/20冲击波形,给出了对应的雷电波数学表达式,并在PSCAD中完成模型搭建,生成仿真图并配以详细文字说明。读者可以从中掌握波形参数换算、负值时间常数设置、曲线拟合调试等关键操作,并了解直击雷、感应雷等不同雷电波及浪涌保护器动作性能的评估方法。资源包内为1个doc文档,共120KB,内容精炼,便于阅读和打印。目前已有2006人学习下载,适合作为课程设计、技术报告或雷击过电压仿真的入门参考资料。
1. 雷电波模拟在PSCAD里怎么起手:从一次过电压算偏低的仿真实例讲起
那次我拿一个双指数雷电流源做某配电线路的雷电过电压分析,计算步长随手给了2μs,跑出来的末端过电压只有预期的一半多一点。后来把步长压到20ns,同一套模型峰值直接抬了一倍左右,才意识到问题不在源,而在步长把波头陡度吃掉了。这类“结果不对但说不清哪里不对”的情况,在雷电波模拟里很常见。这篇文章就把 PSCAD 里做雷电波模拟这条线理顺:雷电流源用哪种函数、线路和接地怎么搭、步长怎么设、仿真图怎么读、哪个环节最容易翻车。适合要做防雷保护、绝缘配合和输电线路暂态仿真的工程师,也适合刚把 PSCAD 跑通的同学照着复现第一套像样的雷电波模型。
2. 雷电波建模的理论底座:雷电流波形与行波的PSCAD表述
2.1 雷电流源模型:双指数、Heidler与PSCAD里的实现路径
雷电流源是整个仿真的输入,它决定了后面所有过电压结果。雷电波不是正弦波,也不是阶跃波,实际观测波形是极短时间内冲到峰值,再按指数规律衰减。仿真只需要关心两件事:峰值电流和波前陡度。峰值电流决定绝缘能否被击穿,波前陡度决定电感和变压器上的感应过电压。雷电流波形函数有几种常用表达,选哪个不是学术问题,是直接影响结果输入的问题。
双指数函数是最早的一类表达:
i(t) = I0 * (e^(-αt) - e^(-βt))
α控制波尾衰减,β控制波前上升。优势是形式简单,手算方便,适合做定性估算。但它的缺点也很明显:在 t=0 时刻导数不为 0,意味着电流从零开始就有初始速度,这与实测雷电波不符。用在精细绝缘配合里,波前段的差异会在阻感元件上被放大,造成过电压峰值和陡度偏高或偏低。
Heidler 函数是目前做雷电过电压更常用的选择:
i(t) = (I0 / η) * ((t / τ1)^n) / (1 + (t / τ1)^n) * e^(-t / τ2)
τ1 控制波前时间常数,τ2 控制波尾时间常数,n 一般取 2~10,波形在 t=0 附近导数为 0,更贴近实测雷电波。代价是要多算一个峰值修正系数 η,否则式子里 I0 并不是真正的波形峰值。业内做防雷设计时常用的三组典型雷电流参数如下:快速后续雷 0.25/100μs、峰值 50kA;首次负极性雷 1/200μs、峰值 100kA;正极性首次雷 10/350μs、峰值 200kA。实际项目按雷电日、杆塔高度和电流幅值概率分布来选,不要直接抄推荐值。
PSCAD 里实现雷电流源,常见三条路。一是受控电流源接信号发生器,直接在信号源里填表达式;二是把波形数据整理成 csv,在自定义元件里按时间查表;三是写自定义模型代码。对多数场景,第一种和第二种最实用。需要注意,PSCAD 里的受控电流源是理想源,内部阻抗为零,而真实雷电通道是一个高阻抗通道。建模时必须在电流源上并联一个等效波阻抗,工程上常取 300~500Ω 量级,否则注入到线路里的电流和真实情况会差很多。这个细节放到第 4 章展开讲。
2.2 行波传播与PSCAD元件选型:架空线、塔体和接地阻抗
雷电波从注入点沿导线传播,本质是行波。电压波和电流波以波阻抗 Z0 关联,遇到末端阻抗不连续就产生反射,折射和反射的大小由两端阻抗差决定。所以搭 PSCAD 模型不是把雷电流源往节点一接就完事,关键是把线路波阻抗、末端负载、接地支路这三个边界条件搭对。
线路模型方面,PSCAD 里架空线主要分两类。Bergeron 模型用恒定参数,计算快,适合看波形趋势和做机理验证;频率相关模型考虑参数随频率变化,雷电波这种宽频窄脉冲沿导线传播时高频分量衰减明显,用频率相关模型更接近实际情况,代价是计算慢、参数敏感。我做定量分析用频率相关模型,做调试和初步估算先用 Bergeron,两边结果对比一下还能发现参数设置错误。
杆塔部分要区分场景。如果研究雷击塔顶再沿线路侵入,塔身要按波阻抗模型处理,简单做法是分成两三段集中波阻抗,再接接地支路;如果只看雷电波沿线路传播,杆塔只要用集中电感或者一段波阻抗近似就够了,重点放在被击点之后的传播通路上,不要在塔体细化上耗费太多时间。
接地阻抗是个容易想错的地方。工频接地电阻是 50Hz 概念,雷电波高频分量作用下,接地体呈现的是冲击阻抗,土壤电离、接地体电感都会起作用。PSCAD 里起步阶段可以用固定电阻,但电阻值要取冲击接地阻抗的工程经验范围,不是图纸上的工频电阻值。更精确一点的做法是给接地支路串联一小段电感代表接地体,再并联一个电容代表土壤放电特性,精度要求高的项目可以这样建模。
行波传播的边界条件可以总结成一句话:被击点之前的雷道阻抗、被击点之后的线路波阻抗、末端负载和接地支路,是决定过电压峰值的三要素。后面搭建模型和排查问题时,始终盯住这三处参数。
3. 在PSCAD中搭建雷电波模拟回路:可抄作业的建模步骤与参数
3.1 放元件与接线:受控电流源、线路模块和输出通道怎么连
下面是一套从零开始的搭建步骤,按顺序做完就能跑出第一版雷电波仿真图。
第一步,新建空白 case。从主元件库拖一个 Controlled Current Source 放到画布左侧,作为注入源。再拖一个电阻元件,与电流源并联,电阻值先取 300Ω,作为雷道等效波阻抗。这一步把理想电流源变成带内阻抗的工程模型。
第二步,从 Transmission Line/Cable 库选架空线元件,放在画布中间。长度按实际线路取,比如先设 1km。如果选频率相关模型,需要设置导线半径、弧垂、相间距、土壤电阻率等参数,这些数据决定线路波阻抗和传播速度,直接影响后续所有波形结果,不要用默认值一路点下去。
第三步,线路末端按分析目标接负载。想看入射波本身,接匹配电阻,阻值等于线路波阻抗;想看最恶劣的绝缘考验,末端空着不接元件;想模拟真实接地,接接地电阻 Rg。三种终端在第 5 章有对比表。
第四步,在注入点和线路末端各放一个电压表和一个电流表,接到 Channel Plot。Channel Plot 用于直接看波形,调试阶段尤其重要。
第五步,拖一个 Signal to Output File 输出通道,把电流和电压数据写入文本文件。PSCAD 的绘图通道和文件输出是两回事,后者用于后续用 Python 或 Excel 做定量分析。
第六步,给受控电流源控制端接信号源,或直接导入波形数据文件。最省事的做法是用第 3.3 节生成的 csv 数据,在自定义元件里按时间查表。
接线时注意一个关键点:电流源并联雷道阻抗之后,一端接注入点,另一端接地。线路模型有两个端口,注入端和电流源共用一个节点,末端按需接负载。末端悬空不是问题,但如果节点上没有任何导纳路径,PSCAD 很容易报出奇异矩阵错误,或者给出物理上不可信的悬浮电位。
3.2 仿真控制参数:时间步长、总时长和绘图步长怎么设
仿真控制参数是雷电波模拟里最容易被低估的一环。下面给一组经验参数,按这个设置基本不会因为步长出问题。
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 计算步长 ΔT | 10~20ns | 保证微秒级波前内有 10~20 个采样点 |
| 绘图步长 | 20~50ns | 画图平滑,输出文件不至于过大 |
| 仿真总时长 | 50~100μs | 覆盖波尾衰减和多次反射 |
| 线路模型频率上限 | 1~10MHz | 覆盖雷电流主要频谱分量 |
为什么步长要压到纳秒级。假设波前时间 1μs,如果步长取 200ns,整个波前只有 5 个点,数值积分会把陡度抹平,过电压峰值可能被低估。先用 20ns 跑一版,再改成 10ns 跑一版,对比峰值变化,如果差异小于 1%,说明步长已经收敛,这是排查波形问题的标准动作。
仿真总时长要覆盖到波尾衰减和线路反射。雷电波半峰时间通常几十微秒,加上线路几百米到几公里的往返传播时间,50~100μs 足够看到首波和主要反射。时长再长意义不大,只会让输出文件变大、后处理变慢。特殊场景比如有多次雷击回击时,再单独加长。
3.3 用Python生成Heidler波形表:从公式到PSCAD可用的数据文件
手敲表达式容易出错,而且参数不好维护。我一般用 Python 先把波形数据生成好,再让 PSCAD 按时间查表,换波形参数只需要重新生成一份 csv,模型不用动。下面是生成 Heidler 雷电流波形的脚本。
import numpy as np import csv def heidler(t, I0, tau1, tau2, n, eta): # Heidler 雷电流波形函数 # tau1 控制波前,tau2 控制波尾,n 控制上升急缓 return (I0 / eta) * ((t / tau1) ** n) / (1 + (t / tau1) ** n) * np.exp(-t / tau2) eta = 0.93 # 峰值修正因子,经验取 0.85~0.95 I0 = 100e3 # 目标峰值电流,这里取 100kA tau1 = 1.2e-6 # 波前时间常数,越小波前越陡 tau2 = 50e-6 # 波尾时间常数,控制半峰持续时间 n = 2 # 陡度指数,n 越大波前上升越急 dt = 10e-9 # 采样步长 10ns t_end = 100e-6 # 总时长 100us t = np.arange(0, t_end, dt) i = heidler(t, I0, tau1, tau2, n, eta) with open('lightning_current.csv', 'w', newline='') as f: writer = csv.writer(f) writer.writerow(['time_s', 'current_A']) for ti, ii in zip(t, i): writer.writerow([f'{ti:.9e}', f'{ii:.6e}'])这段脚本的逻辑很简单:按 10ns 间隔采样 100μs,把时间和电流两列写入 csv。参数调整要领在注释里已经标出,tau1 改小,波前变陡,di/dt 峰值变大;tau2 改大,波尾拖长,半峰时间变长;n 影响上升曲线的形态,一般取 2~10 之间。
少了一个环节会翻车:eta 的取值。Heidler 公式在有限 n 和 τ1/τ2 组合下,实际峰值不会正好等于 I0,eta 就是用来抬峰值的。脚本生成后,先看一眼 csv 里的最大电流是不是接近 I0,差得多就调整 eta,这是做波形源时最常踩的坑。生成的 csv 可以直接在 PSCAD 自定义查表元件里加载,也可以用其它仿真软件复现同一波形做交叉对比。
4. 雷电波建模避坑:5个高发错误与排查记录
4.1 波形“变钝”:上升时间被步长吃掉
现象:设置里写了 1μs 波前,仿真图里却拉成 3μs,峰值也偏低,末端过电压跟着低。
原因:计算步长取 200ns 或更大时,陡波前在数值积分里被插值抹平了。波前只有几个采样点,微分和积分的精度都不够,波形自然变钝。这不是模型错,是数值求解精度不够。
解决:把 ΔT 压到 10~20ns,再看波前时间是不是回到设置值附近。更严谨的做法是步长折半对比峰值:20ns 和 10ns 两组跑完,峰值变化小于 1%,才说明步长没问题。工程上有个经验判据,波前时间内至少要有 10 个点,少于这个数就纯属看运气了,这阶段的峰值结果不要写进报告。
4.2 电压翻倍不是接线错:开路末端本来就会全反射
现象:末端电压是入射电压的两倍,第一反应是自己把线接错了,反复检查接线都没发现异常。
原因:行波传播到开路末端时,反射系数是 +1,入射波和反射波叠加,电压变成两倍。这是物理规律,不是模型 bug。很多初学者在这里消耗大量时间。
解决:先确认末端到底接了什么。开路、匹配、接地三种终端对应三种结果,开路就是两倍。如果只想看入射波本身,末端接匹配电阻 Z0;如果想评估绝缘耐受,开路给出的两倍电压是最恶劣情况,但要在分析里写清楚。实际线路末端接变压器或开关,都有等效入口电容和阻抗,不能直接拿理想开路当真实工况,否则选型会偏保守。
4.3 接地电阻失真:用工频电阻代替冲击接地阻抗的后果
现象:接地电阻按工频接地电阻取 0.5Ω,算出来的塔顶或末端过电压明显偏低;换成冲击接地阻抗后,电压幅值和波形陡度都变了。
原因:雷电波高频分量下,接地体呈现的是冲击阻抗,接地体电感、土壤电离效应都会改变阻抗值。工频接地电阻是 50Hz 下的概念,用在微秒级雷电波里没有物理依据。
解决:起步阶段可以用固定电阻,但取值要按冲击接地阻抗经验值来。更细的做法是给接地支路串联一个小电感代表接地体本身,再并联一个电阻或电容代表土壤放电特性,让高频下呈现的阻抗随电流变化。做精确绝缘配合时,这一步不能省。
4.4 电流源报奇异点:节点上电流源与电压源打架
现象:运行报错,提示矩阵奇异或者某个节点电压飞升到不可信量级。
原因:受控电流源直接并联在线路模型或电压源类元件上,节点电压没有明确的导纳路径,数值上出现病态。理想电流源是诺顿等效,节点需要一个并联导纳才能稳定求解。
解决:给电流源并联雷道波阻抗,或者并联一个有限电阻,让节点有导纳路径。同时检查节点上不能同时存在理想电压源和理想电流源。这个翻车现场在 PSCAD 里很典型,报错信息不一定直接指向问题元件,排查时先把电流源并联支路加上,大概率就恢复了。
4.5 输出曲线毛刺或错位:输出步长与数据记录设置不一致
现象:Channel Plot 里的波形很平滑,导出 csv 后,用 Python 一算陡度,全是毛刺,甚至出现负值,数据点还和测量通道对不上。
原因:绘图步长和 Signal to Output File 的记录步长不是一回事。绘图步长设了 20ns,文件输出步长可能是默认值,或者多个通道数据写入时对齐方式不对。
解决:把输出通道的记录步长设为与计算步长相同或整数倍,导出前检查时间列是否单调递增、等间隔。多通道数据务必用同一时基导出,否则在外部工具里做波形对齐时非常痛苦。这个坑我踩过不止一次,导出后先画一个总览图看数据形态,再开始做定量计算。
5. 仿真图与分析:雷电波结果里真正值得读的四个指标
5.1 电流波形读数:峰值、波前时间和半峰时间怎么量
跑出仿真图之后,第一张要看的波形是注入点的雷电流。典型形态是零开始迅速上升冲到峰值,然后指数衰减。用 PSCAD 的游标工具读三个位置:峰值点、10% 幅值点、90% 幅值点。峰值电流直接读纵轴;波前时间按 10%~90% 两个点的时间间隔来量;半峰时间从波形起点到衰减到峰值一半的时刻来量。
这三个值和源设置对得上,模型的第一步就验证通过了。如果对不上,回到第 4.1 节查步长,或者检查波形导入数据是否被缩放。要较真这三个值,是因为绝缘配合里它们各自管一块:电流峰值决定闪络概率,波前陡度决定感应过电压梯度,半峰时间决定注入能量。很多报告只写峰值,忽略陡度,这会让雷电过电压的结论偏乐观。
5.2 过电压波形与行波反射:开路、匹配、接地三种终端的对比
末端过电压波形反映行波在终端的反射情况,用三种终端配置做对比,能快速理解 PSCAD 模型边界有没有搭错。
| 终端条件 | 末端电压首波期望值 | 反射特征 |
|---|---|---|
| 匹配电阻 Rg = Z0 | ≈ I0 × Z0 | 无反射,波形与源一致 |
| 开路 | ≈ 2 × I0 × Z0 | 全反射,电压加倍 |
| 接地电阻 Rg | ≈ 2 × I0 × Z0 × Rg / (Z0 + Rg) | 部分反射,随 Rg 降低而减小 |
表里的公式假设理想无损线,并且读的是首波幅值。PSCAD 用频率相关模型算出来的数值会略低,因为线路有损耗,这是正常的,不要硬凑完全一致。做分析时把仿真图数值和公式期望值对比,偏差在 5% 以内基本可以认为模型边界正确。
实际工程里,线路末端接的是变压器、断路器或开关,不能简单用开路代替。评估绝缘子闪络或设备端子过电压时,按设备等效入口电容和阻抗建模更合理。理想开路给出的两倍电压是最严苛情况,适合做上限评估,不适合直接用于设备选型。
5.3 用Python把波形转成指标:陡度计算与带宽估算
PSCAD 里用游标读波形只能得到粗值,做量化分析还是要把数据导出来算。下面这个脚本直接读 PSCAD 导出的 csv,算波头陡度和 10%~90% 上升时间。
import numpy as np data = np.genfromtxt('lightning_current.csv', delimiter=',', skip_header=1) t, i = data[:, 0], data[:, 1] # 波头陡度:电流对时间梯度的最大值 di = np.gradient(i, t) di_max = np.max(np.abs(di)) print('di/dt_max = %.3e A/s' % di_max) # 峰值和峰值时刻 i_peak = np.max(i) t_peak = t[np.argmax(i)] # 10%~90% 上升时间 i10, i90 = 0.1 * i_peak, 0.9 * i_peak t10 = t[np.where(i >= i10)[0][0]] t90 = t[np.where(i >= i90)[0][0]] tr = t90 - t10 print('rise_time_10_90 = %.3f us' % (tr * 1e6)) # 等效带宽估算,工程近似公式 print('bandwidth_est = %.3f MHz' % (0.35 / tr / 1e6))脚本逻辑:np.gradient 求电流变化率,绝对值最大就是波头陡度;再用 10% 和 90% 阈值找上升时间;等效带宽用 0.35/tr 估算。算出带宽后回到 PSCAD 检查线路模型的频率上限是否覆盖,如果带宽超过模型频率上限,高频分量会被滤掉,波形自然失真。
这段脚本可以直接换成 PSCAD 导出的任意通道数据,只要文件格式是“时间,幅值”两列就行。它输出的波头陡度就是第 5.1 节说的第二个关键指标,也是绝缘配合里最容易被低估的一个数。
6. 用行波解析解校核PSCAD模型:一个每次建模都先跑的验证技巧
6.1 三种基准配置和它们的解析期望值
每次搭完新模型,先不要急着跑完整线路或加复杂负载,先做三组基准校核。三组配置如下:末端匹配电阻 Z0、末端开路、末端接地电阻 Rg。这三组都不涉及复杂波形细节,用同一份 Heidler 波形即可。期望值按第 5.2 节的表计算:匹配时电压峰值等于电流峰值乘波阻抗;开路时是匹配值的两倍;接地电阻时按 2×I0×Z0×Rg/(Z0+Rg) 估算。
如果 PSCAD 结果和这三组解析值偏差超过 5%,说明模型基本边界有问题,先不要加杆塔、变压器、绝缘子这些复杂度,回头查接线、波阻抗取值和步长设置。
6.2 校核执行步骤与误差容限
校核步骤很固定。复制当前 case,只保留受控电流源、雷道阻抗、一段 0.5~1km 线路和末端负载。末端依次改成匹配、开路、接地电阻三个值,各跑一次。用游标或者导出的 csv 取末端电压峰值,和解析值对比。三者都吻合后,再逐步加回杆塔、绝缘子、二次设备等内容。
加了复杂度之后如果结果突变,说明新加元件与行波通路存在阻抗不匹配,这时候去检查新元件的等效阻抗,而不是回头怀疑雷电源。三连校核的习惯也是从几次工期拖延里学到的,早期不校核直接上完整模型,最后查到一个电感参数手滑多输了一个数量级,前面都白做了。之后每套新模型先跑三连校核再往下推进,效率反而高不少。希望帮到你。
本文还有配套的精品资源,点击获取