公司动态
基于TMS320F280039C的7.2kW Heric并网逆变器控制方案解析
并网逆变器的控制算法是很多做电力电子的人绕不开的一道坎。拓扑选型、DSP 选型、PCB 布局、采样调理、软件锁相、双闭环 PI、调制策略任何一个环节出错轻则波形畸变重则炸机。尤其是像 Heric 这种无变压器拓扑漏电流抑制原理和控制时序强耦合只看拓扑图根本学不会很多新手第一次调通 PWM 后一接直流源就发现共模电流大得离谱。这篇文章要讲的是一套基于 TI TMS320F280039C 的 7.2kW 单相光伏储能 Heric 并网逆变器控制方案覆盖 DSP 代码、PCB 和原理图三个工程维度。我会把 Heric 拓扑的原理、DSP 外设分工、双闭环控制与调制时序、代码实现思路、硬件设计要点、调试验证步骤以及常见坑位一次讲清楚。读完这篇文章你应该能建立起“拓扑如何影响算法、算法如何影响代码、代码如何落到硬件”的完整链条。1. 做 Heric 并网逆变器最容易卡住的三个点先回答一个更实际的问题为什么很多人拿到了 DSP 代码甚至照着原理图打板还是调不出稳定的并网电流第一个卡点是拓扑理解停留在“少了一个变压器”。很多人知道 Heric 是为了省掉工频变压器提高效率减小体积但真正决定 Heric 价值的不是“省变压器”而是“续流阶段如何切断共模回路”。如果你不理解续流开关管在共模电压抑制中扮演的角色你就无法理解为什么调制策略必须和拓扑强耦合。第二个卡点是控制算法和 DSP 外设对不上。并网逆变器的控制环是一个典型的“强实时”任务ADC 采样要卡在 PWM 周期的固定时刻PWM 比较值要在下一个周期开始时更新电压外环和电流内环的带宽分配要合理。很多人把代码写成了“主循环里跑 PI”看起来逻辑没问题实际上相位滞后和采样噪声早就把系统搞坏了。第三个卡点是硬件和软件脱节。PCB 布局会影响电流采样噪声采样噪声会直接影响电流环的控制精度。原理图设计时如果没有留出足够的地平面和滤波位置软件写得再好波形也会有一堆毛刺。尤其注意Heric 拓扑里 H 桥四只管和交流侧双向开关管之间的死区、时序配合如果完全靠软件去保证风险是很高的。这篇文章的做法是把拓扑原理、DSP 选型、硬件设计、控制算法、代码实现、调试方法串成一条线帮你形成“从原理到工程”的完整认知。2. Heric 拓扑核心原理它到底解决了什么问题2.1 无变压器并网的漏电流难题单相并网逆变器如果采用工频变压器光伏阵列和电网之间是电气隔离的变压器原副边的寄生电容不会形成明显的共模电流回路。但变压器体积大、重量大、效率低所以在组串式逆变器和储能逆变器里大家更愿意用无变压器拓扑。无变压器拓扑意味着直流侧和交流侧共地光伏阵列对地存在一个较大的寄生电容。当 H 桥开关管高频动作时共模电压不断跳变寄生电容上就会产生高频充放电电流也就是漏电流。漏电流过大会导致并网电流波形畸变THD 超标触发漏电保护系统频繁跳闸产生电磁干扰影响其他设备。2.2 Heric 拓扑的特殊结构Heric 拓扑是在传统单相 H 桥的基础上在交流输出侧增加了一个双向开关支路这个支路通常由两个开关管反向串联构成放在 H 桥交流输出端之间。它的工作关键点是在续流阶段H 桥的四个开关管全部关断由交流侧双向开关支路承担续流电流。这时候直流侧和交流侧在续流阶段被完全切断共模回路被打破漏电流自然得到抑制。为了帮助理解可以和传统 H 桥对比拓扑续流路径直流侧与交流侧连接状态漏电流抑制能力传统 H 桥下管或上管续流续流阶段仍然相关较弱Heric交流侧双向开关续流续流阶段隔离强H6 全桥额外开关管切断直流侧依赖开关时序中等2.3 Heric 的工作模态与调制策略Heric 拓扑在并网逆变器中通常配合单极性调制。在电网电压正半周高频管 Q1 按 SPWM 高频动作Q4 保持导通续流阶段Q1 和 Q4 全部关断双向开关管 Q5 导通负载电流通过 Q5 续流直流侧与交流侧断开。在电网电压负半周高频管 Q2 按 SPWM 高频动作Q3 保持导通续流阶段Q2 和 Q3 全部关断双向开关管 Q6 导通。这样无论正负半周续流阶段都会切断直流侧与交流侧的共模回路。需要注意的是这种调制策略对开关管时序有严格要求。如果 Q1、Q4 还没完全关断Q5 就已经导通就会出现直通造成功率管损坏。这里需要硬件层面的死区逻辑或者使用 DSP 的 PWM 模块配合 CLB 实现硬件保护。这一段的关键结论是Heric 不是“拓扑换了就完事”而是“拓扑 调制策略”共同决定了漏电流抑制效果。控制算法要直接服务于拓扑的工作模态。3. TMS320F280039C为什么这块 DSP 适合这个项目很多人在选控制芯片时会在 TMS320F28379D、TMS320F280049、TMS320F280039C 之间犹豫。对于 7.2kW 单相并网逆变器280039C 是一个在成本和性能之间非常平衡的选择。TMS320F280039C 属于 TI C2000 系列主频最高 120MHz带浮点运算单元适用于数字电源和电机驱动这类强实时控制场景。它面向的是成本敏感、但需要足够外设和控制精度的量产型电力电子产品。从本项目需求来看它有几个关键优势第一PWM 资源足够。单相并网逆变器通常需要 4 路 H 桥驱动信号和 2 路 Heric 双向开关驱动信号。280039C 的 EPWM 模块可以灵活生成互补 PWM、死区时间可配置还能通过动作限定器实现自定义调制波形。第二ADC 采样链路设计合理。并网控制需要采集直流母线电压、电网电压、电感电流等信号。280039C 带有高速 12 位 ADC支持多路 SOC 触发可以同步触发采样这对电流环的采样精度和相位一致性很重要。第三内部比较器和 CLB 模块能实现硬件级保护。Heric 拓扑最大的风险是开关时序配合错误导致直通。CLB 可以把死区逻辑、互锁逻辑等做成硬件逻辑即使 CPU 跑飞也不会输出危险时序。如果把这套系统放在 F28379D 上做不是不行但多出来的资源和成本在单相储能逆变器上往往用不满。如果放在更小的 F28002x 上ADC 通道和 PWM 通道又显得紧张。280039C 正好卡在中间。4. 系统硬件设计原理图与 PCB 的关键思路拿到了 DSP 代码之后很多人会忽略一个问题代码最终要跑在一块设计合理的硬件上。原理图和 PCB 的质量直接决定了控制算法的实际表现。4.1 系统整体架构这套 7.2kW 单相光伏储能 Heric 并网逆变器的硬件大致分成以下几个部分模块功能关键器件功率主电路实现 DC-AC 能量变换H 桥功率管、Heric 双向开关管、滤波电感驱动电路功率管驱动与隔离栅极驱动芯片、隔离电源采样电路电压电流采样与调理霍尔传感器、运放、滤波器控制电路DSP 最小系统TMS320F280039C、晶振、电源辅助电源为控制板和驱动供电多路隔离 DC-DC保护电路过流、过压、过温保护比较器、CPLD 或 CLB 逻辑4.2 原理图设计的几个关键点首先是采样电路。电流采样建议使用霍尔传感器或者分流电阻加隔离运放采样信号要经过 RC 滤波和钳位保护后再进入 DSP 的 ADC 引脚。采样点要靠近功率管输出避免走线过长引入噪声。其次是驱动电路。H 桥开关管的驱动必须提供足够的峰值电流和米勒钳位能力。Heric 双向开关管也要独立驱动不能在逻辑上和 H 桥共用一路 PWM。第三是地平面设计。控制板的地和功率地建议单点连接避免功率地上的高频噪声通过地线耦合到采样电路。ADC 采样电路的地要单独走不要和驱动电路的地混在一起。4.3 PCB 布局的核心原则从 PCB 布局的角度看功率回路和控制回路要分区布置。功率回路包括直流母线电容、H 桥功率管、交流滤波电感。这个回路的面积要小因为回路面积越小寄生电感越小开关管的电压尖峰就越低。母线电容要靠近功率管放置最好采用叠层母排结构。控制部分包括 DSP、采样调理电路、驱动信号走线。DSP 尽量远离功率管采样信号走线要短而直关键信号可以做包地处理。PWM 信号到驱动的走线要有足够的线宽驱动芯片尽量靠近功率管以减少栅极回路电感。这里真正容易踩坑的是很多人把 ADC 采样电阻放在功率电感附近结果电感产生的强磁场把采样信号污染得一塌糊涂。布局时候应该优先保证采样电路的“绝对安静”。5. DSP 软件工程与初始化配置硬件设计完成后下一步是把 DSP 的软件工程搭建起来。5.1 开发环境与工程结构TI C2000 系列的开发工具是 Code Composer Studio配合 C2000Ware 开发套件。280039C 的工程可以基于寄存器开发也可以基于 driverlib 外设库开发。推荐的工程结构如下project_root/ ├── include/ // 头文件 ├── source/ │ ├── main.c // 主函数 │ ├── system_init.c // 系统初始化 │ ├── adc_config.c // ADC 初始化 │ ├── pwm_config.c // PWM 初始化 │ ├── control.c // 控制算法 │ └── interrupt.c // 中断服务函数 ├── cmd/ // 链接命令文件 └── debug/ // 编译输出5.2 系统时钟与 GPIO 初始化先配置系统时钟。280039C 内部有锁相环可以把外部晶振倍频到 120MHz。随后配置 GPIO 复用把 PWM 输出引脚和 ADC 采样引脚配置为对应外设功能。// 文件路径source/system_init.c void SystemInit(void) { // 1. 配置系统时钟 // 外部晶振 10MHz通过 PLL 倍频到 120MHz DevCfgRegs.PLLCTL.bit.PLLEN 0; DevCfgRegs.PLLCTL.bit.PLLSRCSEL 0; DevCfgRegs.PLLCTL.bit.PLLCLKSRC 0; // 具体的 PLL 配置需要根据参考手册和实际晶振计算 // 以实际项目的 system_init 工程模板为准 // 2. 配置 ePWM 相关 GPIO GPIO_SetupPinMux(0, GPIO_MUX_CPU1, 1); // EPWM1A GPIO_SetupPinMux(1, GPIO_MUX_CPU1, 1); // EPWM1B GPIO_SetupPinMux(2, GPIO_MUX_CPU1, 1); // EPWM2A GPIO_SetupPinMux(3, GPIO_MUX_CPU1, 1); // EPWM2B GPIO_SetupPinMux(4, GPIO_MUX_CPU1, 1); // EPWM3A GPIO_SetupPinMux(5, GPIO_MUX_CPU1, 1); // EPWM3B }这里需要提醒的是GPIO 复用编号必须以 TMS320F280039C 的数据手册为准。不同芯片即使同属 C2000 系列引脚复用表也有差异。不要直接复制 F2837x 的代码。5.3 PWM 模块初始化PWM 是整个控制系统的核心。对于单极性调制的 Heric 拓扑我们需要至少 3 个 ePWM 模块一个用于 H 桥左桥臂高频管一个用于 H 桥右桥臂低频管一个用于双向开关管。为了减少 CPU 开销可以把 PWM 周期和 ADC 触发同步起来。PWM 计数器运行在增减计数模式周期值设置为对应开关频率。ADC 的 SOC 触发源选择为 EPWM1 的周期事件也就是零点和峰值点各触发一次采样这样做可以保证采样点始终在 PWM 波形的中心位置能有效减少采样噪声。// 文件路径source/pwm_config.c void PWM_Init(void) { // 以 20kHz 开关频率、增减计数模式为例 // 具体周期值由时钟频率和死区时间决定项目调试时按需调整 // EPWM1H 桥左桥臂高频 PWM EPwm1Regs.TBPRD PWM_PERIOD; // 周期值 EPwm1Regs.TBCTL.bit.CTRMODE 2; // 增减计数模式 EPwm1Regs.TBCTL.bit.PRDLD 0; // 周期值立即装载 EPwm1Regs.AQCTLA.bit.CAD 0x2; // 计数减到 0 时输出高 EPwm1Regs.AQCTLA.bit.CAU 0x1; // 计数增到比较值时输出低 EPwm1Regs.CMPA.bit.CMPA PWM_PERIOD / 2; // 初始占空比 50% EPwm1Regs.DBTCCTL.bit.IN_MODE 0; // 上升沿和下降沿使用同一模式 EPwm1Regs.DBRED.bit.DBRED DEAD_TIME; // 上升沿延迟 EPwm1Regs.DBFED.bit.DBFED DEAD_TIME; // 下降沿延迟 EPwm1Regs.DCTRCTL.bit.DCTR 0; // 使能死区 // 配置 ADC 触发 EPwm1Regs.ETSEL.bit.SOCAEN 1; // 使能 ADC SOCA 触发 EPwm1Regs.ETSEL.bit.SOCASEL 1; // 选择周期事件触发 }PWM 初始化时要特别注意死区时间。Heric 双向开关管的动作时序和 H 桥管的动作时序必须严格错开如果死区时间太小可能出现直通死区时间太大又会导致波形畸变和输出电压损失。6. 核心控制算法与 Heric 调制时序实现6.1 并网控制整体架构单相并网逆变器的控制通常采用双闭环结构电压外环 电流内环。电压外环的作用是稳定直流母线电压。在光伏储能系统中直流侧可能是光伏组件经 MPPT 电路后的母线电压也可能是储能电池电压。无论哪种并网逆变器都需要把直流母线电压控制在设定值附近这样才可能向电网输送稳定的有功功率。电流内环的作用是控制并网电流的幅值和相位。输出电压外环得到的电流指令电流内环通过 PI 调节器跟踪该指令同时通过锁相环获得电网电压的相位保证电流与电网电压同频同相。6.2 软件锁相环的实现单相系统没有三相系统那样天然的两相静止坐标系常用方法有过零检测锁相、SOGI 锁相、单相 dq 锁相环。对于 7.2kW 等级的单相系统建议至少使用 SOGI-PLL 或基于虚拟正交量的 dq 锁相过零检测在电网电压畸变时容易出现抖动。一个简化的实现思路是先用 ADC 采样电网电压然后构造一个正交信号再通过 Park 变换得到 dq 轴分量用 PI 调节器把 q 轴分量调节到 0最终得到电网电压相位。// 文件路径source/control.c // 简化的单相锁相环结构提供相位角度 typedef struct { float theta; // 电网相位 float omega; // 电网角频率 float sin_theta; float cos_theta; float v_alpha; float v_beta; } PLL_STRUCT; void PLL_Update(PLL_STRUCT *pll, float vGrid, float Ts) { // 1. 根据采样电压构造 alpha 轴分量 pll-v_alpha vGrid; // 2. 计算 beta 轴分量实际项目可用 SOGI 算法生成 pll-v_beta pll-v_beta (pll-v_alpha - pll-v_beta) * 314.159f * Ts; // 3. Park 变换得到 dq 分量 pll-sin_theta sinf(pll-theta); pll-cos_theta cosf(pll-theta); float vd pll-v_alpha * pll-cos_theta pll-v_beta * pll-sin_theta; float vq -pll-v_alpha * pll-sin_theta pll-v_beta * pll-cos_theta; // 4. PI 调节使 q 轴分量为 0 float vqErr 0.0f - vq; pll-omega TWOPI_FREQ PLL_KP * vqErr PLL_KI_INTEGRAL; PLL_KI_INTEGRAL PLL_KI * vqErr * Ts; // 5. 积分得到相位 pll-theta pll-omega * Ts; if (pll-theta TWOPI_FLOAT) pll-theta - TWOPI_FLOAT; }这段代码只是演示单相锁相环的基本数据流。实际上 SOGI 正交信号发生器的实现还有滤波系数和离散化细节建议在项目调试时结合真实电网电压波形验证锁相效果。6.3 双闭环 PI 调节器实现电压外环和电流内环的核心都是 PI 调节器。PI 调节器在 DSP 里实现时要注意积分饱和处理。// 文件路径source/control.c typedef struct { float Kp; float Ki; float integral; float outMax; float outMin; } PI_STRUCT; float PI_Update(PI_STRUCT *pi, float ref, float feedback, float Ts) { float err ref - feedback; float out; // 1. 积分项累加 pi-integral pi-Ki * err * Ts; // 2. 抗饱和限幅 if (pi-integral pi-outMax) pi-integral pi-outMax; else if (pi-integral pi-outMin) pi-integral pi-outMin; // 3. 比例积分输出 out pi-Kp * err pi-integral; // 4. 输出限幅 if (out pi-outMax) out pi-outMax; else if (out pi-outMin) out pi-outMin; return out; }在实际工程中电流内环的 PI 参数需要先根据滤波电感和开关周期计算理论值再在实验中进行微调。电压外环的带宽要比电流内环低通常只有电流环带宽的 1/5 到 1/10这样才能保证两个环路不会互相激励。6.4 Heric 调制时序的实现这是整个控制代码中最关键的环节。Heric 拓扑要求 H 桥开关管和双向开关管严格交替工作任何一段重叠都可能导致功率管直通。在软件中可以定义一个状态机根据电网电压极性判断当前处于正半周还是负半周再结合 PWM 比较值决定驱动信号。// 文件路径source/heric_modulation.c // Heric 调制状态机按电网电压极性切换工作模态 typedef enum { HERIC_STANDBY, HERIC_POSITIVE_HF, // 正半周Q1 高频Q4 常通 HERIC_POSITIVE_FREE, // 正半周续流Q5 导通 HERIC_NEGATIVE_HF, // 负半周Q2 高频Q3 常通 HERIC_NEGATIVE_FREE // 负半周续流Q6 导通 } HERIC_STATE; void Heric_Modulation(HERIC_STATE state, float duty) { switch (state) { case HERIC_POSITIVE_HF: // Q1 高频动作Q4 常通双向开关管关断 EPwm1Regs.CMPA.bit.CMPA (uint16_t)(duty * PWM_PERIOD); EPwm2Regs.CMPA.bit.CMPA 0; // Q4 常通 EPwm3Regs.CMPA.bit.CMPA 0; // Q5/Q6 关断 break; case HERIC_POSITIVE_FREE: // H 桥全关断Q5 导通续流 EPwm1Regs.CMPA.bit.CMPA 0; EPwm2Regs.CMPA.bit.CMPA 0; EPwm3Regs.CMPA.bit.CMPA PWM_PERIOD; // 双向开关导通 break; // 负半周类似这里省略细节 default: break; } }如果只用软件状态机实现这个切换需要注意 PWM 更新时刻的同步。更稳妥的做法是在硬件上用 CLB 模块将电流极性信号、PWM 高频信号和死区逻辑组合起来把“半周切换”和“死区插入”全部交给硬件逻辑软件只需要输出占空比。这样即使 DSP 跑飞或者中断阻塞也不会输出危险的开关时序。7. 运行结果与波形验证代码写完并不代表系统就能稳定并网。实际调试时建议按照“先不接电网、后接电网”的顺序分步验证。7.1 第一步开环确认 PWM 时序先不上主电路电源也不接电网只给 DSP 供电。用示波器同时测量 H 桥四路驱动信号和 Heric 双向开关管驱动信号确认PWM 频率和死区时间是否符合设计值正半周状态下 Q1 是否有高频动作Q4 是否常通续流状态下 H 桥是否全部关断双向开关管是否导通正负半周切换时是否存在贯通重叠。这一步如果发现时序不对先修正不要急忙上功率电。7.2 第二步直流母线低压测试用可调直流源给定一个低压例如 50V 直流不接电网观察逆变器输出电压波形。此时系统应该输出与调制波同频率的交流电压。确认电压波形没有明显畸变死区造成的缺口在可接受范围。7.3 第三步接入电网闭环运行在安全隔离条件下接入电网观察并网电流波形。正常情况下并网电流应该与电网电压同频同相波形接近正弦波。可以通过示波器对比电网电压过零点和并网电流过零点的时间差确认功率因数接近 1。还要测量漏电流。用电流钳卡在直流母线的正负极上观察高频漏电流分量。采用 Heric 拓扑并在调制逻辑正确的情况下漏电流应该明显小于传统 H 桥拓扑即使在直流侧负极对地并联较大寄生电容的情况下漏电流也不应显著上升。如果并网电流出现 THD 偏高、过零点畸变、波形毛刺等问题优先检查采样电路噪声和 PLL 锁相稳定性再考虑是否调 PI 参数。8. 常见问题与排查方法问题现象可能原因排查方式解决方案启动后立刻过流保护H 桥时序错误上下管直通示波器检查 PWM 驱动波形测量死区时间重新配置死区确认互补 PWM 逻辑正确并网电流过零点畸变PLL 锁相不准或电网电压过零噪声检查锁相环输出的相位波形观察 q 轴分量是否趋近 0加入滤波改用 SOGI-PLL检查电网电压采样调理电路并网电流谐波大电流内环 PI 参数偏大或偏小采样噪声大从小 Kp 开始逐步增大观察电流波形变化查看 ADC 采样值是否有毛刺优化采样滤波参数调整 PI 增益检查地平面噪声漏电流偏大Heric 续流状态切换错误或调制策略不是单极性用示波器检查续流状态下 H 桥是否完全关断修改调制状态机在硬件上增加 CLB 互锁保护直流母线电压波动大电压外环带宽和电流内环带宽不匹配分别测试两个环路的阶跃响应降低电压环带宽增加电压环积分限幅某个功率管温度异常高死区时间设置不当开关损耗过大检查该管的驱动波形和开关损耗调整死区时间优化栅极驱动电阻9. 工程最佳实践与后续学习方向9.1 控制代码层面的建议控制中断不要做浮点运算之外的冗余工作。ADC 采样、PLL 更新、电流内环、调制波更新都应该在一个中断里完成中断周期固定。PWM 比较值的更新要放到 PWM 计数器为零点的时刻避免在计数器任意位置更新导致输出波形不对称。积分限幅必须做。电流环积分饱和会导致并网电流在电网电压过零附近出现很长的平顶严重时甚至烧毁滤波电感。积分限幅的值可以从额定电流对应的调制波幅值推算出来。9.2 硬件层面的建议直流母线电容尽量靠近 H 桥安装母排或走线要低电感。采样电阻和运放周围不要走功率线。驱动芯片的输出电阻要根据功率管栅极电荷和开关速度来选择不要一味追求大电流驱动。用隔离示波器探头测量高压侧波形确保调试安全。强电调试时必须使用隔离变压器或可编程交流源避免电网侧意外冲击。9.3 后续可以深入的方向如果这套 Heric 并网逆变器已经能稳定运行下一步可以考虑几个方向一是把 PI 电流环替换为 PR 调节器。单相并网电流是正弦量PI 对正弦指令存在稳态误差PR 调节器在基波频率处增益极大能显著降低稳态误差和 THD。二是引入重复控制或模型预测控制。重复控制可以进一步抑制电网电压畸变对并网电流的影响模型预测控制则可以用更直接的代价函数处理多目标约束例如同时优化电流跟踪和开关次数。三是把 MPPT 控制与并网控制结合起来。在光伏储能系统中前级 DC-DC 负责 MPPT后级并网逆变器负责稳定母线电压并输出功率两级之间的效率配合也是值得深入研究的课题。四是关注 STANLEY、LQR、ADRC 这类控制算法在并网逆变器中的应用。ADRC 对系统参数变化和外部扰动有更强的鲁棒性在弱电网条件下往往比传统 PI 表现更好。这些算法都属于当前电力电子控制研究中的热门方向可以作为后续学习的主线之一。本文把 TMS320F280039C 平台上的 7.2kW 单相光伏储能 Heric 并网逆变器从拓扑原理到控制代码再到硬件设计的关键链路做了整体梳理。Heric 的漏电流抑制效果一半靠拓扑一半靠调制时序系统能否稳定并网一半靠控制算法一半靠硬件设计和调试方法。对于正在做毕业设计或工程项目的人来说建议先搭一个低压小功率的实验平台把状态机和双闭环调通之后再逐步升压到 7.2kW 等级。最后再强调一次所有强电调试必须在隔离、限流、合规的条件下进行安全永远是第一优先级。