news 2026/5/2 5:26:20

完整dab变换器的dsp28335程序,包含状态机,adc中断,抗饱和pi算法等

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
完整dab变换器的dsp28335程序,包含状态机,adc中断,抗饱和pi算法等

完整dab变换器的dsp28335程序,包含状态机,adc中断,抗饱和pi算法等。

DAB变换器的数字控制核心在于状态管理和实时调节,搞过数字电源的兄弟应该都清楚,这玩意儿对时序和精度的要求有多变态。拿DSP28335来搞的话,咱们得把整个系统拆成几个关键模块来盘。

状态机这块必须得稳,直接上switch-case结构最实在。比如定义运行模式、故障保护、待机这几个基本状态:

typedef enum { SYS_INIT, STANDBY, RUNNING, FAULT } SystemState; volatile SystemState g_sysState = SYS_INIT;

在main循环里搞个状态巡检,重点注意状态切换时的硬件初始化。特别是从故障恢复时,记得先复位PWM输出再清故障标志,不然分分钟炸管给你看。

完整dab变换器的dsp28335程序,包含状态机,adc中断,抗饱和pi算法等。

ADC中断这块有个坑得注意,28335的ADC结果寄存器居然他娘的不是双缓冲结构!这就意味着如果在中断里直接读取数据时刚好遇到ADC正在转换,可能读到半截数据。解决办法是在中断里先把数据拷贝到临时变量:

__interrupt void adc_isr(void){ static struct AdcResult { Uint16 input_voltage; Uint16 output_current; } adc_buff; adc_buff.input_voltage = AdcResult.ADCRESULT0 >>4; adc_buff.output_current = AdcResult.ADCRESULT1 >>4; AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // 复位排序器 AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR = 1; PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; g_real_time_data = adc_buff; // 用结构体整体赋值避免数据撕裂 }

这里用结构体整体赋值是个骚操作,因为28335是32位处理器,两个16位数据刚好可以原子操作,避免主程序读到不一致的数据。

抗饱和PI算法才是重头戏,普通PI在输出限幅时积分项会疯狂累积。咱们在误差符号变化时给积分项来个急刹车:

typedef struct { float Kp; float Ki; float integral; float out_max; float out_min; } AntiWindupPI; float pi_calculate(AntiWindupPI *pi, float error){ float output = pi->Kp * error + pi->integral; // 抗饱和处理 if((error >0 && output >= pi->out_max) || (error <0 && output <= pi->out_min)){ return (output > pi->out_max) ? pi->out_max : pi->out_min; } pi->integral += pi->Ki * error * 0.0001; // 根据控制周期调整 return output; }

注意这里积分项更新前先判断输出是否饱和,这样当系统处于饱和状态时,积分器自动停止累积。实测这个操作能让系统从过载恢复时响应速度快一倍不止。

最后把这三个模块串起来,主循环里根据状态机切模式,ADC中断喂数据,PI计算结果扔给PWM模块。有个细节是PWM死区时间建议用硬件自动生成,别在软件里折腾,28335的ePWM模块配置好之后比软件模拟的靠谱多了:

void InitEPwm(){ EPwm1Regs.TBPRD = SYSTEM_FREQ / SWITCHING_FREQ; // 周期寄存器 EPwm1Regs.CMPA.half.CMPA = 0; // 初始占空比 EPwm1Regs.DBCTL.bit.OUT_MODE = 0x3; // 使能上升沿和下降沿死区 EPwm1Regs.DBFED = 100; // 死区时间ns级配置 EPwm1Regs.DBPRD = 100; }

调试时建议先拿电子负载做测试,别直接上真实负载。曾经有个兄弟没加死区时间直接上电,瞬间两千块的MOS管就放烟花了,那味道能在实验室飘三天...

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

2026必备!9个AI论文工具测评:专科生毕业论文+开题报告写作全攻略

随着人工智能技术的快速发展&#xff0c;AI写作工具在学术领域的应用日益广泛。对于专科生而言&#xff0c;撰写毕业论文和开题报告不仅是学业的重要环节&#xff0c;更是提升科研能力的关键实践。然而&#xff0c;面对复杂的选题、繁重的文献整理以及格式规范要求&#xff0c;…

作者头像 李华
网站建设 2026/4/29 19:01:41

Minecraft矿物透视:探索者的地下资源定位指南

Minecraft矿物透视&#xff1a;探索者的地下资源定位指南 【免费下载链接】XRay-Mod Minecraft Forge based XRay mod designed to aid players who dont like the ore searching process. 项目地址: https://gitcode.com/gh_mirrors/xra/XRay-Mod 作为一名资深的Minec…

作者头像 李华
网站建设 2026/5/1 7:09:02

零基础上手VoxelShop:免费开源3D建模工具效率倍增指南

零基础上手VoxelShop&#xff1a;免费开源3D建模工具效率倍增指南 【免费下载链接】voxelshop This is the official repositiory for VoxelShop 项目地址: https://gitcode.com/gh_mirrors/vo/voxelshop 在3D创作领域&#xff0c;体素建模以其独特的表现力和直观性正迅…

作者头像 李华
网站建设 2026/4/23 13:36:08

毕业论文神器!降AIGC网站 千笔·降AI率助手 VS Checkjie 本科生专属

在AI技术迅速发展的今天&#xff0c;越来越多的本科生开始借助AI工具辅助论文写作&#xff0c;以提升效率、优化内容。然而&#xff0c;随着学术审核标准的不断提高&#xff0c;AI生成内容的痕迹越来越容易被识别&#xff0c;论文中的“AI率”问题逐渐成为影响成绩的关键因素。…

作者头像 李华
网站建设 2026/5/1 11:42:24

颠覆式3合1智能登录助手:告别米哈游游戏扫码难题

颠覆式3合1智能登录助手&#xff1a;告别米哈游游戏扫码难题 【免费下载链接】MHY_Scanner 崩坏3&#xff0c;原神&#xff0c;星穹铁道的Windows平台的扫码和抢码登录器&#xff0c;支持从直播流抢码。 项目地址: https://gitcode.com/gh_mirrors/mh/MHY_Scanner MHY_S…

作者头像 李华