核心内容摘要
xxxxwwww:点亮你的数字生活,开启无限可能
基于DSP28377的三相并网双二阶锁相环DSOGI-PLL程序。
程序概述本程序基于TI公司的DSP28377芯片面向三相并网双向逆变器应用场景核心实现了双二阶锁相环DSOGI-PLL功能同时集成了完整的模拟信号采集、数字控制、脉冲宽度调制PWM输出及系统保护等模块。
程序采用模块化设计涵盖121个代码文件主要分为应用层APP和头文件层Include各模块间协同工作确保逆变器稳定、高效地接入电网具备高可靠性和实时性。
核心模块功能解析一ADC模块模拟信号采集ADC模数转换模块是系统获取外部电气参数的核心负责采集三相电网电压、电流、直流母线电压及温度信号为后续控制算法提供原始数据支撑。
硬件资源配置程序使用DSP28377的4个独立ADC模块ADCA、ADCB、ADCC、ADCD分别对应A、B、C三相及直流/温度信号采集具体分工如下ADCAA相采集A相电压VaINA4通道、A相电流IaINA2通道及LEM电流传感器信号采样窗口保持时间为25个系统时钟125ns确保信号采集的准确性。
ADCBB相采集B相电压VbIN14通道、B相电流IbINB2通道采样参数与ADCA一致保证三相信号采集的同步性。
ADCCC相采集C相电压VcINC4通道、C相电流IcINC3通道遵循统一的采样时序为三相平衡控制提供基础。
ADCD直流及温度采集直流母线负极电压Vbus-IND0通道、正极电压VbusIND1通道、母线电压VbusIND2通道及两路温度信号temp1/IND
temp2/IND4其中温度采样仅支持软件触发满足系统状态监测需求。
关键配置参数转换精度所有ADC均配置为12位分辨率兼顾采样精度与转换速度适用于电网信号的实时采集。
时钟配置ADC预分频系数设为6系统时钟200MHz经过分频后ADCCLK频率为50MHz转换时间12位为
1
5个ADCCLK确保采样速率满足控制算法需求。
触发方式除温度采样外其余信号均由ePWM1的SOCA信号触发实现ADC采样与PWM输出的同步避免时序偏差导致的控制延迟。
中断配置ADCA的SOC0结束后触发ADCA-INT1信号用于启动CLA控制律加速器的Task1任务ADCD的SOC2结束后触发ADCD-INT1信号标识直流母线电压采样完成确保关键信号采集后的快速处理。
二CLA模块实时控制加速CLAControl Law Accelerator是DSP28377的专用实时控制加速器可独立于CPU执行控制算法显著提升系统的实时性尤其适用于DSOGI-PLL等对时序要求严苛的算法。
内存配置代码加载在FLASH存储模式下程序会将CLA函数代码Cla1funcs从FLASH复制到RAMCla1funcsRunStart地址利用RAM的高速访问特性减少代码执行延迟。
消息RAM初始化初始化CLA1与CPU之间的双向消息RAMCLA1ToCPUMsgRAM、CPUToCLA1MsgRAM并等待初始化完成确保CLA与CPU之间的数据交互可靠。
存储空间分配将LS2~LS5 RAM配置为CLA的程序空间CLAPGMLS0~LS1 RAM配置为数据空间合理分配内存资源避免程序与数据访问冲突。
任务配置任务向量映射将8个CLA任务Cla1Task1~Cla1Task8的入口地址分别映射到CLA的任务向量寄存器MVECT1~MVECT8确保CLA能正确识别并执行各任务。
触发源配置通过DmaClaSrcSelRegs寄存器设置CLA1的Task1由ADCAINT1触发即ADCA完成A相电压/电流采样后立即启动CLA执行锁相环或电流控制算法实现“采样-计算”的无缝衔接。
中断使能全局使能CLA的8个任务中断MIER寄存器并允许通过IACK指令软件启动任务提升系统的灵活性。
三控制算法模块核心逻辑实现控制算法模块是程序的“大脑”包含低通滤波LPF和空间矢量脉宽调制SVPWM等关键功能为DSOGI-PLL锁相环提供信号预处理和执行输出支撑。
低通滤波LPF低通滤波用于滤除电网信号中的高频噪声确保输入到锁相环的信号稳定避免噪声导致的锁相偏差。
程序实现了三类LPF函数电网电压LPFLPFgrid对A、B、C三相电网电压Vgrid-a/b/c进行一阶低通滤波公式为Va1 Vgrid-aLPFQ Vgrid-alast(1 - LPFQ)LPF_Q为滤波系数范围0~1通过迭代更新当前与历史电压值平衡滤波效果与响应速度。
直流母线电压LPFLPFVdc对直流母线的负极电压Vn、正极电压Vp及母线电压Vpn分别滤波其中Vpn采用不同的滤波系数LPFQ1适配直流信号的慢变化特性减少电压波动对控制的影响。
电网频率LPFLPFfgrid对锁相环输出的电网频率fo进行两级低通滤波LPFQ、LPFQ1进一步平滑频率信号确保PLL输出的频率稳定避免频率跳变导致的并网电流畸变。
空间矢量脉宽调制SVPWMSVPWM是逆变器输出控制的核心技术相比传统SPWM正弦脉宽调制具有电压利用率高、谐波含量低的优势程序通过SVPWM_Assignment函数实现SVPWM矢量到ePWM寄存器的赋值。
扇区判断与矢量分解函数首先根据SVPWM的扇区sector1~6和小扇区smallSector1~6结合A/C相电流方向ia、ic计算出三个电压矢量的作用时间T
T
T3确保矢量合成的准确性。
ePWM寄存器配置根据不同扇区和小扇区分别配置ePWM1~ePWM6的比较寄存器CMPA和动作限定寄存器AQCTLA。
例如在扇区
小扇区1时设置EPwm1Regs.CMPA 2p-T3EPwmPRDEPwm2Regs.AQCTLA.bit.ZRO AQSET计数器为0时置位EPwm3Regs.AQCTLA.bit.ZRO AQCLEAR计数器为0时清零最终生成符合SVPWM逻辑的PWM波形驱动逆变器开关管。
四ePWM模块功率器件驱动ePWM模块负责生成逆变器开关管的驱动信号需满足高频率、高精度及死区保护等要求确保功率器件安全、高效工作。
基础参数配置时钟与分频关闭时基时钟同步TBCLKSYNC0后配置EPWM时钟为1分频EPWMCLKDIV0确保ePWM时钟与系统时钟同步时基计数器不分频HSPCLKDIVTBDIV
CLKDIVTBDIV1保证PWM输出的高频特性。
计数器配置计数器周期TBPRD设为1666对应PWM频率60kHz系统时钟200MHz / (2 *
≈ 60kHz采用向上-向下计数模式TBCOUNTUPDOWN生成对称的PWM波形减少谐波含量。
比较寄存器与死区比较寄存器CMPA初始值设为500后续由SVPWM算法动态更新死区时间DeadTime设为60对应100ns延迟防止同一桥臂的上下开关管同时导通导致的短路故障。
通道配置程序共配置9路ePWM通道分工明确ePWM1~ePWM6对应逆变器A、B、C三相的上下桥臂每相由两路ePWM驱动如A相上桥臂ePWM
下桥臂ePWM2支持SVPWM波形输出且配置故障保护TZSEL故障时强制输出低电平保护功率器件。
ePWM7用于PWM电容充电PWM_CAP和12V辅助电源控制计数器周期200050kHzCMPA/CMPB初始值分别为1900/100适配辅助电源的电压调节需求。
ePWM8驱动风扇Driver_fan计数器周期50000通过调整CMPA值控制风扇转速实现系统散热管理。
ePWM9用于5V辅助电源控制配置与ePWM7类似计数器周期200050kHzCMPA初始值1800为系统低压电路提供稳定电源。
同步与中断同步配置ePWM1的同步输出SYNCOSEL设为计数器为0时输出ePWM2~ePWM6的同步输入SYNCOSELTBSYNCIN实现多通道PWM的相位同步避免三相输出的相位偏差。
中断配置ePWM1在计数器达到周期值TBPRD时触发中断用于周期内的控制逻辑更新同时ePWM1的SOCA信号用于触发ADC采样实现PWM与ADC的同步。
五GPIO模块数字IO控制GPIO模块负责系统的数字信号输入/输出包括状态指示、继电器控制及故障保护是系统与外部硬件交互的关键接口。
输出配置LED指示灯GPIO50~GPIO51LED1~LED3配置为推挽输出初始输出高电平熄灭通过configtestled函数可翻转LED状态用于指示系统运行状态如正常运行、故障报警。
继电器控制包含A、B、C三相的启动继电器GPIO36~GPIO38和维持继电器GPIO39~GPIO41初始输出低电平继电器断开。
通过RelayStart函数可置位启动继电器RelayEfficient函数关闭辅助继电器并维持主继电器RelayStop函数关闭所有继电器实现并网前的预充电和并网后的稳定运行。
驱动使能GPIO48配置为驱动芯片的DISABLE信号初始输出高电平用于使能或禁用功率器件驱动故障时可快速切断驱动信号保护逆变器。
输入配置故障检测GPIO52~GPIO57分别配置为A~C相的电流/电压保护信号输入正常运行时输入高电平故障时输入低电平系统可通过读取这些GPIO状态快速识别过流、过压等故障。
保护解锁GPIO30~GPIO35配置为A~C相的电流/电压保护解锁信号输出初始输出低电平系统启动且自检正常后置位为高电平解锁保护电路允许逆变器正常工作。
六DAC模块模拟信号输出DAC数模转换模块用于将系统的数字控制信号转换为模拟信号主要用于测试、校准或外部设备的信号反馈。
基于DSP28377的三相并网双二阶锁相环DSOGI-PLL程序。
程序初始化3个DAC模块Daca、Dacb、Dacc配置参数如下参考电压选择VREFHI作为DAC的参考电压确保输出信号的精度稳定。
输出使能使能DAC的输出DACOUTEN1允许模拟信号从DAC引脚输出。
初始值DAC的输出影子寄存器DACVALS初始化为0后续可通过更新该寄存器输出指定的模拟电压例如输出锁相环的电网相位信号用于示波器观测或外部校准。
系统工作流程
初始化阶段硬件初始化依次执行GPIO、ADC、DAC、ePWM、CLA的初始化函数配置各模块的寄存器、时钟、触发方式及中断确保硬件处于就绪状态。
内存与CLA准备将CLA代码从FLASH复制到RAM初始化消息RAM映射CLA任务向量为实时控制做准备。
系统自检读取GPIO的故障检测引脚状态检查驱动芯片、继电器等硬件是否正常若存在故障则点亮故障LED禁止逆变器启动若正常则置位保护解锁信号允许后续操作。
运行阶段同步采样与计算ePWM1生成SOCA信号触发ADC采集三相电压/电流、直流母线电压ADCA采样完成后触发ADCA-INT1启动CLA的Task1执行DSOGI-PLL算法计算电网相位、频率同时执行电流闭环控制生成SVPWM的控制信号。
SVPWM输出控制算法模块根据CLA的计算结果调用SVPWM_Assignment函数更新ePWM1~ePWM6的CMPA寄存器生成SVPWM波形驱动逆变器开关管实现三相电流的并网控制。
状态监测与保护CPU周期性读取ADC采集的温度、直流母线电压信号通过LPF滤波后判断是否超出阈值同时读取GPIO的故障输入信号若检测到过流、过压、超温等故障立即触发保护逻辑关闭ePWM输出、断开继电器、禁用驱动芯片确保系统安全。
辅助功能根据系统温度调整ePWM8的输出占空比控制风扇转速通过DAC输出关键控制信号用于外部监测或校准。
停机阶段当系统收到停机指令或检测到严重故障时执行以下操作调用RelayStop函数关闭所有继电器切断逆变器与电网的连接。
禁用ePWM输出强制功率器件关断。
置位驱动芯片的DISABLE信号禁止驱动电路工作。
翻转故障LED状态提示操作人员系统停机原因。
程序特点与优势高实时性采用CLA加速控制算法ADC采样与CLA计算通过中断触发无缝衔接ePWM与ADC同步确保“采样-计算-输出”的总延迟控制在微秒级满足三相并网对时序的严苛要求。
高可靠性具备完善的故障保护机制包括过流、过压、超温保护故障时可快速切断驱动信号、断开继电器同时ePWM配置死区保护避免功率器件短路提升系统稳定性。
模块化设计各功能模块ADC、CLA、PWM、GPIO独立封装接口清晰便于后续维护、升级或移植到其他类似平台如DSP28379。
高精度控制12位ADC确保采样精度SVPWM算法提升电压利用率DSOGI-PLL保证电网相位跟踪精度使并网电流谐波含量低满足电网接入标准。
五、
总结本程序基于DSP28377芯片构建了一套完整的三相并网双向逆变器控制系统涵盖模拟信号采集、实时控制加速、核心算法实现、功率驱动及系统保护等功能。
通过ADC与ePWM的同步、CLA的实时加速、完善的故障保护系统能够稳定、高效地实现逆变器并网控制适用于分布式光伏并网、储能变流器等应用场景。
程序的模块化设计和高实时性特点也为后续功能扩展如无功补偿、谐波抑制提供了良好的基础。