基于 STM32 的配网变压器涌流抑制器设计与实现

基于 STM32 的配网变压器涌流抑制器设计与实现

配网变压器在空载合闸或故障恢复过程中,铁芯磁通饱和会产生数倍于额定电流的励磁涌流,轻则导致保护装置误动作,重则引发系统不稳定、缩短变压器寿命。本文基于 STM32F103C8T6 单片机设计了一套配网变压器涌流抑制器:EG8542 运放电路实时检测变压器电流,STM32 内置 ADC 采集电压数据,OLED12864 实时显示运行参数,用户可通过按键设置电流阈值------一旦检测到电流超过阈值,系统立即驱动 SRD-05V 电磁继电器切断回路,抑制涌流、保护设备。文章完整给出模块选型论证、硬件电路设计、软件流程与调试过程,可作为电力设备保护类毕业设计的参考方案。

一、系统功能总览

功能编号 功能名称 功能说明
F1 电流实时检测 EG8542 运放电路采样电流信号,经 ADC 转换得到实时电流值
F2 电压实时检测 利用 STM32F103 内置 12 位 ADC 直接采集电压数据
F3 参数阈值设置 用户通过按键模块设置电流、电压等参数的报警阈值
F4 数据实时显示 OLED12864 实时显示电压、电流数据与系统状态,便于监控
F5 涌流抑制保护 电流超过预设阈值时自动触发继电器切断回路,保护变压器
F6 持续循环监控 主循环持续采集、分析、响应,保障变压器安全稳定运行

二、核心模块选型对比

2.1 主控模块选型

对比项 方案1:STM32F103C8T6 方案2:NXP Kinetis K60
内核 ARM Cortex-M3,主频 72 MHz ARM Cortex-M4,主频 120 MHz,带 FPU
存储 64 KB Flash + 20 KB SRAM 256 KB Flash + 64 KB SRAM
外设接口 3×SPI、2×I2C、3×USART、多路定时器/PWM 4×SPI、4×I2C、4×UART、1×CAN
功耗与成本 低功耗、价格低 性能高但功耗与成本均较高

本系统的任务以数据采集、阈值比较和继电器控制为主,属于中低复杂度应用,STM32F103C8T6 的处理能力绰绰有余,且开发工具(STM32CubeMX、Keil)与社区资源成熟,性价比明显更高。

选择方案1:STM32F103C8T6

2.2 电流检测模块选型

对比项 方案1:EG8542 运放电流检测 方案2:INA226 数字电流传感器
测量方式 运放放大采样电阻压降,模拟输出 内置 12 位 ADC,I2C 数字输出
精度特性 10 MHz 增益带宽积、10 pA 低输入偏置电流、高输入阻抗 ±1% 测量精度
增益配置 外部电阻灵活设定增益,适应不同电流量程 软件校准
成本 低 高,极端条件下需软件补偿

EG8542 低偏置电流与低噪声特性保证了电流检测精度,增益可由外部电阻灵活配置,成本也低于 INA226,在预算有限的精密电流检测场景中是理想选择。

选择方案1:EG8542 运放电流检测

2.3 电压检测模块选型

对比项 方案1:STM32F103 内置 ADC 方案2:ADS1115 高精度 ADC
集成度 片上外设,无需额外硬件 需外接模块,增加电路复杂度
分辨率 12 位,支持多通道采样 16 位,内置 PGA,抗干扰强
成本 零额外成本 较高

系统对电压检测的精度要求在 12 位分辨率即可满足,使用内置 ADC 降低了系统复杂性与成本,开发也更便捷。

选择方案1:STM32F103 内置 ADC

2.4 数据显示模块选型

对比项 方案1:OLED12864 方案2:LCD2004
显示能力 128×64 自发光像素,高对比度、广视角 20×4 字符,分辨率低,不支持图形
背光 无需背光,暗处依然清晰 依赖背光,亮度受限
接口 I2C/SPI,引脚占用少 并行接口,引脚多
功耗与耐用性 低功耗,无背光故障点 背光功耗高,高温高湿环境易退化

OLED12864 自发光特性带来鲜明清晰的显示效果,接口简单、功耗低、耐用性好,适合本系统的实时监控显示需求。

选择方案1:OLED12864

2.5 电路开关模块选型

对比项 方案1:SRD-05V 电磁继电器 方案2:SSR-25DA 固态继电器
负载能力 10 A,适合高功率设备 25 A,但大电流需额外散热
隔离与安全 控制端与负载端良好电气隔离 光耦隔离
切换速度 机械触点,速度较慢 无触点,切换速度快
成本 低 高

涌流抑制属于低频次控制动作,对切换速度要求不高,电磁继电器负载能力充足、隔离可靠、成本低,完全满足需求。

选择方案1:SRD-05V 电磁继电器

三、系统接线总表

系统以 STM32F103C8T6 最小系统(8 MHz 晶振 HSE + 32.768 kHz RTC 晶振 + 按键复位电路 + 3.3 V 供电)为核心:

模块 模块引脚 单片机引脚 说明
EG8542 电流检测电路 Vout PA6(ADC2 输入通道) 运放放大后的电流信号送入模拟输入
+Vcc / −Vcc 5V / GND 运放供电
+IN / −IN 接电流采样电阻上端 / 下端 采样电阻串联在电流路径中,压降与电流成正比
R_f(反馈电阻) Vout 与 −IN 之间 设定运放增益
电压检测 电压采样信号 PA7(ADC2 输入通道) 内置 ADC 直接采集电压
OLED12864 VCC / GND 3.3V / GND SSD1306 驱动,I2C 总线
SCL PB6 I2C 时钟线
SDA PB7 I2C 数据线
按键模块(阈值设置) 信号端 PB0~PB2 一端接 I/O,另一端接地,按下为低电平
SRD-05V 继电器 线圈一端 PB5(串 1 kΩ 限流电阻) 高电平吸合,低电平释放
线圈另一端 5V 线圈供电
COM / NO 串入负载回路 高电平时触点闭合,实现回路通断控制

四、系统软件设计

4.1 主程序流程设计

系统上电后首先完成初始化:配置 ADC 寄存器(用于电压电流数据采集)、GPIO 寄存器(用于按键输入与继电器控制)、OLED 显示驱动。随后进入 while 主循环,循环执行以下流程:

复制代码
int main(void)
{
    System_Init();              // 时钟、ADC2、GPIO、I2C、OLED 初始化

    while (1)
    {
        current = Current_Get();       // EG8542 采样 -> ADC2 均值滤波 -> 电流值
        voltage  = Voltage_Get();      // 内置 ADC 采集电压值
        OLED_Show(current, voltage);   // 实时显示运行参数

        threshold = Key_Scan();        // 读取按键设定的电流阈值

        if (current > threshold)       // 电流超过预设阈值
        {
            Relay_On();                // 继电器吸合切断回路,抑制涌流
            OLED_ShowAlarm();          // 显示报警信息
        }
        else
        {
            Relay_Off();               // 正常区间内保持回路接通
        }
    }
}

主循环持续运行,确保系统实时监控、快速响应,一旦电流越限立即切断,保障配网变压器安全稳定运行。

4.2 电流检测流程设计

电流检测程序按以下步骤执行:

  1. 将对应 GPIO 配置为模拟输入模式,接收 EG8542 运放输出信号;

  2. 激活 ADC2 时钟,选择时钟源并设置分频因子,使 ADC 工作在合适频率;

  3. 配置 ADC 为独立模式、单通道、非连续转换、无外部触发(软件触发),数据右对齐;

  4. 启动 ADC2,指定转换通道并设置合适的采样时间;

  5. 轮询转换完成标志位 ADC_FLAG_EOC,读取转换结果;

  6. 调用 Get_Adc2() 多次读取同一通道数据并求平均值,抑制噪声;

  7. 按 (ADC值 / 4095) × 3.3 V 将平均值换算为电压值,再按运放增益与采样电阻换算为实际电流值。

    u16 Get_Adc2(u8 ch)
    {
    ADC_RegularChannelConfig(ADC2, ch, 1, ADC_SampleTime_239Cycles5);
    ADC_SoftwareStartConvCmd(ADC2, ENABLE);
    while (!ADC_GetFlagStatus(ADC2, ADC_FLAG_EOC));
    return ADC_GetConversionValue(ADC2);
    }

    float Current_Get(void)
    {
    u32 sum = 0;
    for (u8 i = 0; i < N; i++) // 多次采样取均值,减少噪声影响
    sum += Get_Adc2(ADC_CH_6);
    float v = (sum / N) / 4095.0f * 3.3f; // 转换为电压值
    return v / GAIN; // 按增益换算实际电流值
    }

4.3 数据显示流程设计

OLED 显示程序基于 I2C(PB6=SCL、PB7=SDA)驱动 SSD1306:

  1. 配置 I2C 接口,初始化时钟速率与应答信号等基本参数;
  2. 发送初始化命令序列,配置显示模式、对比度、扫描方向、时钟,并开启充电泵,最后发送 0xAF 命令点亮屏幕;
  3. 设置显示起始坐标------屏幕分为 128 列(x 坐标)与 8 页(y 坐标),通过配置页地址与列地址精确定位显示区域;
  4. 调用 OLED_Fill(0x00) 循环遍历 0~7 页、0~127 列完成清屏;
  5. 通过 I2C 写入函数依次发送设备地址、寄存器地址与显示数据,每次传输等待应答信号确认;
  6. 按需调用字符串、字符显示函数,将电流值、电压值与阈值信息刷新到指定位置。

五、系统实现与测试

5.1 硬件焊接与调试

按设计方案依次焊接主控模块、电流检测模块、电压检测模块、数据显示模块与继电器模块,焊接时确保各模块引脚连接正确,避免短路或虚焊。调试阶段逐步上电测试,验证各模块功能是否正常,重点检查电流与电压检测模块的精度和响应速度,并使用万用表和示波器对关键信号进行测量,确保系统工作在正常范围。最后整体联调,确认系统稳定运行。

5.2 软件实现与测试

使用 Keil 5 编写与编译程序,通过 ST-Link 下载调试,设置断点、监视变量与内存,逐步验证程序逻辑。调试重点关注电流与电压检测算法的准确性和实时性,并通过模拟电流超限等异常情况,验证继电器触发逻辑是否可靠。调试中还优化了代码执行效率,减少不必要的资源占用,保证系统在高负载下仍能稳定运行。

5.3 功能测试结果

测试项目 测试方法 测试结果
电流检测精度 模拟不同负载条件下的电流变化,与万用表读数对比 检测值与实际值一致,精度与响应速度满足要求
电压检测功能 采集不同电压信号并与示波器测量值对比 数据采集准确、稳定
阈值设置 按键调整电流阈值并观察 OLED 显示 阈值设置响应正确、显示清晰
涌流抑制保护 人为使电流超过预设阈值 继电器迅速切断回路,保护动作可靠
数据显示 观察 OLED 显示效果与刷新速度 显示正常,可实时监控系统状态
长时间运行 系统连续运行测试 复杂环境下稳定运行,各项功能达到设计要求

六、总结

本文设计并实现了一套基于 STM32F103C8T6 的配网变压器涌流抑制器系统。系统通过 EG8542 运放电路与内置 ADC 实时采集变压器的电流与电压数据,OLED12864 实时显示运行参数,用户可通过按键设置阈值;当电流超过预设阈值时,系统自动触发 SRD-05V 电磁继电器切断回路,有效抑制涌流、保护设备安全。系统整体设计合理、功能实现稳定,能够有效满足配网变压器涌流抑制的需求,具有较高的实用性与可靠性,也为电力设备保护的智能化升级提供了可行的技术路径。

七、资料内容完整工程资料(原理图、PCB、代码、元件清单)

八、资料获取方式

相关推荐
倔强的小石头_2 小时前
从Go+SQLite编译到浏览器开局:landlord部署、AI对局与固定地址实战
人工智能·golang·sqlite
Rany-2 小时前
基于机器学习的长距离原水管线泄漏检测和定位
人工智能
Dawson Zhu2 小时前
《Agentic Design Patterns》第 17 章导读:推理技术
人工智能·语言模型·架构·aigc·agi
lank_M2 小时前
WebCodecs解码竖拍视频变横的?四个浏览器实测
图像处理·人工智能·计算机视觉·音视频
ybdesire2 小时前
使用agent-audit扫描Agent源码发现安全漏洞
人工智能·语言模型
kaka.liulin -study2 小时前
Colulu Agents Research:基于YOLO的端侧牛只检测课题的两阶段可审计研究
人工智能·multi agents
天真有邪09022 小时前
MVE:让 Voyager 在 VLML 上学会「取数编排」
人工智能
程序员大狐狸2 小时前
Ultra X7 358H 笔记本电脑,本地部署 Bonsai-2-27B,实测生成速度 11.6 tok/s
人工智能·llm