2026/4/3 9:28:35
网站建设
项目流程
网站后台登陆显示验证码错误,罗田建设局网站,做网站属于什么技术,招远网站建设公司报价LLC谐振软开关全数字控制3kw#xff0c;批量图#xff0c;含源代码最近在搞一个3kW的LLC谐振电源#xff0c;数字控制方案搞死人。玩过LLC的都知道#xff0c;软开关时序比女朋友心情还难伺候。这次用STM32G4系列搞全数字控制#xff0c;先上个批量测试的波形镇楼#xf…LLC谐振软开关全数字控制3kw批量图含源代码最近在搞一个3kW的LLC谐振电源数字控制方案搞死人。玩过LLC的都知道软开关时序比女朋友心情还难伺候。这次用STM32G4系列搞全数字控制先上个批量测试的波形镇楼图片位置。ZVS干净利落效率直接拉到96.8%老板看了直呼要加鸡腿。代码仓库先甩出来github链接里面藏着硬核的开关时序生成逻辑。举个栗子PWM初始化这段就暗藏玄机void PWM_Init(void) { TIM1-CCER ~TIM_CCER_CC1E; // 先关输出防炸机 TIM1-CR1 | TIM_CR1_ARPE; // 缓冲寄存器必须开 TIM1-CCMR1 TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1; // PWM模式1 TIM1-BDTR | TIM_BDTR_MOE | 0x3C; // 死区时间直接怼到480ns // 下面这行是祖传秘方治开机炸管 TIM1-CCR1 SystemCoreClock / (2 * 100000) - 1; // 初始100kHz }这段代码最骚的操作在BDTR寄存器的设置。死区时间算得抠到纳秒级实测发现当负载突变时原边电流反向会导致死区不够。后来在代码里埋了个动态调整的逻辑后面会细说。中断服务程序才是重头戏。ADC采样、PID计算、频率调整全塞在20us的中断里void TIM6_DAC_IRQHandler(void) { static uint8_t phase 0; if(TIM6-SR TIM_SR_UIF) { Vout ADC_GetValue(0); // 同步采样输出电容电压 Ipri ADC_GetValue(1); // 原边电流必须实时跟踪 // 软开关检测核心逻辑 if(Ipri -0.3 phase 0) { TIM1-CCR1 calc_new_freq(); // 切频操作 phase 1; } // 省略二十行状态机代码... TIM6-SR ~TIM_SR_UIF; // 手动清标志更靠谱 } }这里有个坑爹细节ADC采样值必须做滑动平均滤波但滤波窗口太大又会影响响应速度。最后用了个变长滤波算法负载轻时窗口大重载时自动缩小窗口代码里像俄罗斯套娃似的嵌了三层判断。说到频率跟踪必须秀一下这个非线性PID控制器float LLC_PID(float err) { static float integral 0; float Kp 0.5, Ki 0.02, Kd 0.1; // 抗积分饱和处理 if(fabs(err) 2.0) { integral * 0.7; // 误差太大时削弱积分 } else { integral err; } // 非线性微分项 float derivative (err - last_err) * (err 0 ? 1.2 : 0.8); return Kp*err Ki*integral Kd*derivative; }这个PID骚在动态调整微分系数实测发现输出电压过冲时反向调节需要更猛的操作。参数整定花了整整两周烧了六个MOS管才摸出这个魔改版。最后给个效率测试彩蛋贴批量测试效率曲线图。注意看1kW到2.5kW之间的效率平台这就是数字控制比模拟方案强的地方——能根据负载自动切换工作模式。源码里Mode_Switch()函数藏着五个工作模式用状态机实现无缝切换。代码仓库里还有个隐藏文件夹里面是生成PWM波形的verilog原型当初在FPGA上验证拓扑用的。下期可能会讲讲怎么用Matlab生成LLC的3D参数曲面比教科书上的设计公式靠谱十倍。