news 2026/4/16 12:14:11

3kw开关电源单相PFC加移相全桥直流电源原型机,输出电压电流可调,可通讯可均流

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3kw开关电源单相PFC加移相全桥直流电源原型机,输出电压电流可调,可通讯可均流

3kw开关电源单相PFC加移相全桥直流电源原型机,输出电压电流可调,可通讯可均流,有机器有全套资料

这电源板子刚上电的时候,我盯着示波器上的波形看了足足五分钟——单相PFC和移相全桥这对组合拳打出来,母线电压稳得像是用水泥浇筑的。3kW的功率密度下,输出纹波硬是压到了50mV以内,这波操作必须得唠唠里面的门道。

先看PFC部分,数字控制的核心在电压环和电流环的配合。用STM32G4的HRTIM配置PWM时,重点在于死区补偿和频率抖动:

// HRTIM配置片段 hrtim1.Instance->sTimerxRegs[0].CMP1xR = 175; // 占空比设置 hrtim1.Instance->sTimerxRegs[0].DTxR |= (2 << 16); // 死区时间2*41ns hrtim1.Instance->sTimerxRegs[0].CR2 |= HRTIM_CR2_DLLEN; // 启用频率抖动

这段骚操作把开关频率在95kHz附近±5%范围内抖动,实测EMI传导骚扰直降6dB。注意CMP1xR寄存器值的动态调整,配合电压环PID输出实时改变占空比,后面ADC采样母线电压的代码里必须做滑动平均滤波,不然电流过零处会出现蜜汁震荡。

移相全桥的驱动时序是另一个重头戏。用互补PWM配合相位偏移实现ZVS,关键要看准谐振点。调测时用GPIO抓取的驱动波形必须满足这种相位关系:

[PWM1] |**** |**** |**** [PWM2] | ****| ****| [PWM3] |**** |**** | [PWM4] | ****| ****|

代码里用HRTIM的相位加载寄存器实现微秒级精度的移相:

hrtim1.Instance->sTimerxRegs[2].PERxR = period; hrtim1.Instance->sTimerxRegs[2].PHxR = phase_shift;

调试时发现个坑:当负载突变超过30%时,移相量需要动态调整。后来在中断服务程序里加了负载率查表法,用线性插值计算相位补偿量才稳住波形。

通讯模块玩的是Modbus RTU over RS485,但加了点私货——用DMA+空闲中断实现的双缓冲机制:

// 串口接收处理 void USART3_IRQHandler() { if(USART3->ISR & USART_ISR_IDLE) { DMA_Cmd(DMA1_Channel3, DISABLE); uint8_t len = 256 - DMA_GetCurrDataCounter(DMA1_Channel3); memcpy(recv_buf[active_buf^1], recv_buf[active_buf], len); active_buf ^= 1; DMA_SetCurrDataCounter(DMA1_Channel3, 256); DMA_Cmd(DMA1_Channel3, ENABLE); } }

这招让9600bps的波特率下也能吃满64字节数据包,实测丢包率从万分之一降到十万分之三。均流算法用的主从式架构,主机通过广播周期同步各从机的输出电流,从机用PI调节自身输出跟随主机基准。调试时在CAN总线上抓到个彩蛋:当多个从机同时响应时,冲突检测里的随机退避算法居然参考了TCP/IP的二进制指数退避,这波跨界属实没想到。

整套系统最秀的是输出电压/电流的线性调整率,用0.5%精度的普通电阻分压网络配合软件校准,硬是做到了0.1%的设定精度。秘诀在于ADC采样时用了分段线性化补偿:

// 电压采样校准 float read_voltage() { uint16_t raw = ADC_Read(0); if(raw < 512) return raw * 0.0048f + 0.012f; // 低区补偿 else if(raw < 2048) return raw * 0.0049f - 0.105f; // 中区补偿 else return raw * 0.0051f - 1.872f; // 高区补偿 }

这代码看着平平无奇,实则是用最小二乘法拟合了上百组实测数据后的结晶。板子上的TL431基准源必须做恒温处理,否则环境温度变化10℃就会吃掉0.3%的精度。

现在这电源已经能稳定带载3kW连续运行八小时不喘气,风扇调速策略也玩出花——不是傻乎乎的温度触发,而是结合了负载率和温升速率的预测式调速。下次拆机时注意看散热片上的硅脂涂覆方式,那是我用流体仿真软件优化过的蛇形走位,比传统刮刀法降温至少5℃。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 8:57:05

欧姆龙NJ501-1500枕包机:六轴定位控制,初学者的理想之选

枕包机 欧姆龙NJ501-1500,六轴定位控制,凸轮控制&#xff0c; 程序经典&#xff0c;结构清晰&#xff0c;梯形图编程&#xff0c;特别适合初学者入门&#xff1b;最近在调试枕包机时发现欧姆龙NJ501-1500真是块宝藏PLC&#xff0c;尤其是它自带的六轴定位功能&#xff0c;能把送…

作者头像 李华
网站建设 2026/4/14 6:30:30

26. AI-框架工具-LangChain LangGraph

文章目录前言一、LangChain1.什么是LangChain&#xff1f;2. 核心功能与主要特点1. 核心功能2. 主要特点3. 架构组件与工作原理1. 模型I/O&#xff08;Model I/O&#xff09;2. 提示工程&#xff08;Prompt Engineering&#xff09;3. 链&#xff08;Chains&#xff09;4. 记忆…

作者头像 李华
网站建设 2026/4/11 18:10:19

一、需求拆解与参数计算核心

制袋机横切机程序威纶通触摸屏和三菱3UPLC加模拟量4DA模块&#xff0c;控制两台变频器&#xff08;主机和给料辊筒)和一台送料伺服。 通过触摸屏设定一分钟张数&#xff0c;程序自动算出伺服送料速度&#xff0c;和后面给料速度。 主要是参数计算思路。 程序带详细注释&#xf…

作者头像 李华