0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

8/20浪涌测试波形时域转频域的解释及仿真思路(基于Python)

深圳比创达EMC 来源:jf_99355895 作者:jf_99355895 2025-06-18 14:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.引言

在电子工程和电磁兼容性(EMC)领域,8/20μs浪涌波形是一种标准的感应雷,常用于模拟雷电引起的瞬态过电流。这个波形因其陡峭的上升沿(8μs)和较长的下降沿(20μs)而得名,能够很好地模拟雷电冲击对电子设备的影响。今天,我将带领大家一步步了解如何通过仿真分析8/20μs浪涌波形的时域特性,并将其转换到频域进行分析,揭示其频率成分。2.时域分析

2.1 8/20μs浪涌波形的定义

8/20μs浪涌波形是一种典型的双指数脉冲波形,其数学表达式可以表示为:

数学表达式.png

其中:
33a49752ec254a4285e87a28db23726.png

这个公式看起来有点复杂,但其实就是在两个指数函数之间做差,从而得到一个脉冲波形。简单来说,就是用一个快速下降的指数函数减去一个更慢下降的指数函数,形成一个快速上升、缓慢下降的脉冲。

2.2仿真生成时域波形

在代码中,generate_8_20_waveform函数通过上述公式生成8/20μs浪涌波形。具体步骤如下:

1.使用np.linspace生成时间数组time,表示仿真时间范围。

2.计算电流波形current,使用双指数函数模拟上升沿和下降沿。

3.对波形进行归一化处理,确保峰值电流为4kA。

生成的时域波形,展示了8/20μs浪涌波形的典型特性。

3.频域分析

3.1时域到频域的转换

为了分析8/20μs浪涌波形的频率成分,需要将其从时域转换到频域。这一过程可以通过快速傅里叶变换(FFT)实现。FFT的基本原理是将时域信号分解为不同频率成分的叠加,从而得到信号的频谱。

在代码中,analyze_frequency_domain函数使用scipy.fft.fft计算信号的频域表示。具体步骤如下:

1.计算信号的FFT,得到复数频谱。

2.提取频率数组freq和幅度谱magnitude

3.对幅度谱进行归一化处理,使其单位为“kA/Hz”。

3.2频域波形的特性

8/20μs浪涌波形的频域特性可以通过其频谱图进行分析。由于该波形是一个瞬态脉冲,其频谱通常呈现宽带特性,包含从低频到高频的成分。

在代码中,频域波形以对数-对数(log-log)尺度绘制。频谱图展示了信号在不同频率下的幅度分布。通过频谱图可以观察到:

-信号在低频段(如1MHz以下)具有较高的幅度。

-随着频率的增加,幅度逐渐减小,但仍然包含高频成分。

3.3频域分析的意义

频域分析对于理解8/20μs浪涌波形的特性具有重要意义:

1.频谱特性:频域分析可以揭示信号在不同频率下的能量分布,有助于设计滤波器保护电路

2.电磁兼容性:通过频域分析,可以评估信号对其他设备的干扰特性,从而优化电磁兼容性设计。

3.实际应用:频域特性可以用于验证设备在不同频率下的抗干扰能力。

4.仿真思路总结

4.1仿真流程

1.时域波形生成:

-使用双指数函数生成8/20μs浪涌波形。

-确保波形的峰值电流为4kA。

2.频域分析:

-使用FFT将时域信号转换为频域信号。

-计算频率数组和幅度谱。

3.结果可视化:

-绘制时域波形图,展示8/20μs浪涌波形的时域特性。

-绘制频域波形图,展示信号的频谱特性。

4.2仿真结果分析

通过仿真可以得到以下结论:

-8/20μs浪涌波形在时域上表现为一个快速上升、缓慢下降的脉冲。

-在频域上,该波形呈现宽带特性,包含从低频到高频的成分。

-频域分析可以为电磁兼容性设计和滤波器设计提供重要参考。

5.结论

通过对8/20μs浪涌波形的时域和频域分析,可以全面理解其特性及其对电子设备的影响。时域分析揭示了波形的瞬态特性,而频域分析则揭示了其频率成分。这种分析方法对于设计抗干扰电路和优化电磁兼容性具有重要意义。

通过本文的仿真思路和代码实现,进一步探索8/20μs浪涌波形的特性,并将其应用于实际工程中。希望这篇文章能帮助大家更好地理解8/20μs浪涌波形的时域转频域分析,同时也希望大家在学习过程中能够保持好奇心和探索精神,不断进步!

826bfb1fb3c1f460c09775b82b247d11.png

附代码:

  1. import numpy as np
    import matplotlib.pyplot as plt
    from scipy.fft import fft, fftfreq
    #import B-tron EMC

Set font to support English display

plt.rcParams["font.family"] = ["DejaVu Sans", "Arial", "sans-serif"]
plt.rcParams["axes.unicode_minus"] = False # Ensure minus sign display

def generate_8_20_waveform(duration=100e-6, samples=10000):
*"""*

  • Generate 8/20μs standard lightning impulse current waveform*
  • Parameters:*
  • duration: Simulation duration (seconds)*
    
  • samples: Number of sampling points*
    
  • Returns:*
  • time: Time array (seconds)*
    
  • current: Current array (kA)*
    
  • """*
    t = np.linspace(0, duration, samples)
# 8/20μs waveform parameters
tau1 = 8e-6  # Front time constant
tau2 = 20e-6  # Tail time constant
amplitude = 4  # Amplitude (kA)

# Calculate current waveform (exponential decay model)
current = amplitude * (np.exp(-t / tau2) - np.exp(-t / tau1))

# Normalize to make peak value 4kA
current = current / np.max(current) * amplitude

return t, current

def analyze_frequency_domain(time, signal, sampling_freq):
"""

  • Perform frequency domain analysis*
  • Parameters:*
  • time: Time array (seconds)*
    
  • signal: Signal array*
    
  • sampling_freq: Sampling frequency (Hz)*
    
  • Returns:*
  • freq: Frequency array (Hz)*
    
  • magnitude: Amplitude spectrum*
    
  • """*
    n = len(signal)
    yf = fft(signal)
    freq = fftfreq(n, 1 / sampling_freq)[:n // 2]
    magnitude = 2.0 / n * np.abs(yf[:n // 2])
return freq, magnitude

def plot_waveforms(time, current, freq, magnitude):
"""Plot time-domain and frequency-domain waveforms"""
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 10))

# Time-domain waveform
ax1.plot(time * 1e6, current)  # Convert time to μs
ax1.set_title('8/20μs Lightning Impulse Current Waveform (Time Domain)')
ax1.set_xlabel('Time (μs)')
ax1.set_ylabel('Current (kA)')
ax1.grid(True)

# Mark peak value and time parameters
peak_idx = np.argmax(current)
t_peak = time[peak_idx] * 1e6
ax1.annotate(f'Peak: {current[peak_idx]:.2f} kAnTime: {t_peak:.2f} μs',
             xy=(t_peak, current[peak_idx]),
             xytext=(t_peak + 5, current[peak_idx] * 0.8),
             arrowprops=dict(facecolor='black', shrink=0.05))

# Frequency-domain waveform (log-log scale)
ax2.loglog(freq, magnitude)
ax2.set_title('Frequency Spectrum of 8/20μs Lightning Impulse Current')
ax2.set_xlabel('Frequency (MHz)')
ax2.set_ylabel('Magnitude (kA/Hz)')
ax2.grid(True, which='both', linestyle='--', alpha=0.7)

# Add spectral feature annotations
freq_1MHz = np.interp(1e6, freq, magnitude)
freq_10MHz = np.interp(1e7, freq, magnitude)



ax2.annotate(f'1 MHz: {freq_1MHz:.2e} kA/Hz',
             xy=(1e6, freq_1MHz),
             xytext=(1e6 * 2, freq_1MHz * 3),
             arrowprops=dict(facecolor='black', shrink=0.05))

ax2.annotate(f'10 MHz: {freq_10MHz:.2e} kA/Hz',
             xy=(1e7, freq_10MHz),
             xytext=(1e7 * 2, freq_10MHz * 3),
             arrowprops=dict(facecolor='black', shrink=0.05))

plt.tight_layout()
return fig

def main():

Generate 8/20μs waveform

time, current = generate_8_20_waveform(duration=100e-6, samples=10000)

# Calculate sampling frequency
sampling_freq = len(time) / (time[-1] - time[0])

# Frequency domain analysis
freq, magnitude = analyze_frequency_domain(time, current, sampling_freq)

# Plot waveforms
fig = plot_waveforms(time, current, freq, magnitude)

# Display waveforms
plt.show()

# Print magnitude at key frequencies
print("8/20μs Waveform Frequency Characteristics:__B-tron")

if name == " main ":
main()

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电磁兼容性
    +关注

    关注

    7

    文章

    505

    浏览量

    34758
  • 浪涌测试
    +关注

    关注

    2

    文章

    26

    浏览量

    14086
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何通过频域AC小信号分析和时域瞬态分析来优化DC-DC转换器的稳定性

    本白皮书探讨如何通过频域 AC 小信号分析和时域瞬态分析来优化 DC‑DC 转换器的稳定性。尽管 Middlebrook(米德尔布鲁克)稳定性判据等频域方法能有效评估阻抗相互作用,但它们无法捕捉瞬态条件下的非线性动态特性及恒功率
    的头像 发表于 04-11 14:31 927次阅读
    如何通过<b class='flag-5'>频域</b>AC小信号分析和<b class='flag-5'>时域</b>瞬态分析来优化DC-DC转换器的稳定性

    [VirtualLab] 使用Python运行VirtualLab Fusion光学仿真

    Fusion的简单方法。在本示例中,我们将演示如何使用Python脚本运行光学仿真,以向用户简要概述这种跨平台的仿真能力。 用例概览 文件路径 用户可以在样本文件的文件夹中找到所有文件。包含这些文件
    发表于 03-31 09:39

    看图说话,单频正弦信号与方波信号傅里叶变换是什么样子

    原文来自《运放秘籍》第三部 信号电路与系统新说 图3-1 是10v@10Hz的单频正弦信号10*sin(2*π*10*t)的时域波形频域波形,示波器显示的是
    的头像 发表于 03-02 12:05 1934次阅读
    看图说话,单频正弦信号与方波信号傅里叶变换是什么样子

    网络分析仪时域分析:原理、操作与应用

    。 一、 基础原理与模式 VNA的时域分析基于傅里叶逆变换(IFT/FFT)。仪器先在频域测量S参数,再通过算法转换为时域响应,仿真时域
    的头像 发表于 02-03 13:59 272次阅读
    网络分析仪<b class='flag-5'>时域</b>分析:原理、操作与应用

    利用泰克示波器FFT功能进行频域分析

    在电子测量领域,时域波形能告诉我们信号电压如何随时间变化,但许多关键问题——如谐波失真、电源噪声、电磁干扰(EMI)源——隐藏在信号的频率成分中。这时,就需要将视角从时域转换到频域
    的头像 发表于 02-02 18:24 306次阅读
    利用泰克示波器FFT功能进行<b class='flag-5'>频域</b>分析

    矢量网络分析仪的时域分析技术:从频域到时间的精密测量

    矢量网络分析仪作为射频与微波领域的核心测量工具,其频域分析能力已广泛应用于通信、雷达、天线设计等场景。然而,当面对复杂系统调试、故障定位或环境反射抑制等挑战时,时域分析功能展现出独特的优势。通过将
    的头像 发表于 12-10 17:28 1268次阅读
    矢量网络分析仪的<b class='flag-5'>时域</b>分析技术:从<b class='flag-5'>频域</b>到时间的精密测量

    PCB电源完整性的双面视角,用一篇文章理清时域电源噪声与频域PDN阻抗的关系

    噪声或纹波范围有没有在3%以内啊,或者峰峰值是不是在±30mV,就像下图一样,用时域的方式来看电源噪声的确是很直观哈。 但是和高速先生团队合作过的客户都知道,我们去进行电源仿真的时候,却喜欢在频域上去
    发表于 09-04 13:48

    浪涌测试、脉冲群测试、ESD测试的对比

    1. 浪涌测试(Surge Test) 1.1 测试目的 模拟 雷击、电网切换、大功率设备启停 等高能量瞬态干扰,验证电源模块的耐高压冲击能力。 1.2 测试
    的头像 发表于 08-12 21:46 1817次阅读

    标准浪涌测试波形对比解析

    电子产品常用的浪涌测试波形有多不同浪涌波形的主要区别在于能量、持续时间和模拟的物理现象(如直击雷、感应雷、开关操作,抛负载),用于在实验室针
    的头像 发表于 08-06 18:55 6008次阅读
    标准<b class='flag-5'>浪涌</b><b class='flag-5'>测试</b><b class='flag-5'>波形</b>对比解析

    雷击浪涌测试中的TVS波形验证:雷卯电子专业解析

    讲解在进行雷击浪涌抗扰度测试时,波形验证是确保测试准确性的关键环节。作为专业的TVS(瞬态电压抑制二极管)器件生产厂家,雷卯电子始终关注浪涌
    的头像 发表于 07-07 16:19 1154次阅读
    雷击<b class='flag-5'>浪涌</b><b class='flag-5'>测试</b>中的TVS<b class='flag-5'>波形</b>验证:雷卯电子专业解析

    充电器测试系统:浪涌电流测试的关键

    在现代电子制造业中,充电器的性能和质量至关重要,而浪涌电流测试是确保充电器可靠性和稳定性的重要环节。本文将探讨浪涌电流对充电器的影响,以及源仪电子的充电器测试系统如何高效地进行
    的头像 发表于 07-07 14:03 922次阅读
    充电器<b class='flag-5'>测试</b>系统:<b class='flag-5'>浪涌</b>电流<b class='flag-5'>测试</b>的关键

    二级浪涌电路之保险丝选型

    datasheet ,一般保险丝厂家都会提供I^2^T这个参数。 如何计算浪涌波形的能量呢,以应用最多的8/20us浪涌
    发表于 06-28 22:00

    示波器如何在时域频域中同时使用区域触发

    今天用罗德施瓦茨的这台示波器来演示一下示波器如何在时域频域中同时使用区域触发什么是区域触发,触发区域在其它品牌示波器里边也叫视频触发。在波形显示区域画一个框,然后定义这个框,让它进入或者不进入;再
    的头像 发表于 06-18 17:31 1046次阅读
    示波器如何在<b class='flag-5'>时域</b>和<b class='flag-5'>频域</b>中同时使用区域触发

    雷击浪涌发生器的波形验证

    在做雷击浪涌抗扰度测试前,通常我们都要检验下雷击浪涌模拟器的电压与电流波形,一般我们会对浪涌发生器主机和
    的头像 发表于 06-06 09:30 1339次阅读
    雷击<b class='flag-5'>浪涌</b>发生器的<b class='flag-5'>波形</b>验证

    什么是信号的时域频域

    时域频域是信号的基本性质,用来分析信号的不同角度称为域,一般来说,时域的表示较为形象与直观,频域分析则更为简练,剖析问题更为深刻和方便。目前,信号分析的趋势是从
    的头像 发表于 06-03 09:13 4033次阅读