本帖最后由 zhoujiewen 于 2013-5-10 23:02 编辑
本来对电力电子一无所知,刚进研二的时候老板便将三相电压型PWM整流器的项目抛给了我,并笑着对我说:“这事就交给你了,你负好责....”,我当时听了,顿感亚历山大,因为我完全是个门外汗。接手项目一年多,虽然搭建的实验平台没有调试出理想的效果,但是我对整流器的基本理论和实践的知识有了一定的理解,比如有空间矢量脉宽调制(Space Vector PWM,SVPWM)、Clark变换、Park变换、双闭环控制、IGBT、TMS320F2812等等,摸爬滚打总算掌握了一些基本的知识。我想趁着自己没毕业之前,应该分享一下我的学习心得,总得留下点知识,嘿嘿。
SVPWM如此简单——学习与总结(一)
SVPWM的理论分析在网上资料已经比较多,参考资料和调试程序在附件中给出。在这里我主要给出SVPWM的测试结果。
一、参考资料
(1) SVPWM的原理及法则推导和控制算法详解:
SVPWM的原理及法则推导和控制算法详解.pdf
(215.03 KB)
(2) TI资料 SVPWM_DQ:
SVGEN_DQ.PDF
(154.27 KB)
(3) 参考书—苏奎峰《TMS320X281x DSP应用系统设计》——第六章 空间矢量脉宽调制技术。注:我这有该书高清晰的电子版,但是容量比较大,共88M。需要的联系我。邮箱zhoujiewenxtu@aliyun.com.
(4)SVPWM调试程序:
SVPWM_test.rar
(469.18 KB)
二、调试结果
1 测试程序 1.1 SVGEN_DQ模块 测试程序采用TI公司提供的SVPWM程序模块——SVGEN_DQ,如图1所示:
图1 SVGEN_DQ函数
函数从外部接收经过归一化处理后的 Ualfa、Ubeta 值,经过处理后得到三个桥臂的开关时间Ta、Tb、Tc。SVGEN_DQ模块的计算都是基于IQmath库,这样能使程序运算速度快,精度也高。
1.2 测试函数包含的主要模块 IQmathlib.h IQmath.lib 运算都是基于IQmath库定点运算 svgen_dq.h svgen_dq.c 程序主体,产生开关时间 DSP28_User_Def.h 用户模块变量及函数定义 main.c 系统初始化
1.3 测试函数流程图
图2 矢量空间算法流程图
2 测试结果 2.1 测试电路 TMS320F2812产生 PWM1~6六路开关信号,开关信号经 RC低通滤波电路,得到输出信号 Va、 Va’、 Vb、 Vb’、 Vc、 Vc’。如图 3所示。
图3 PWM调理电路
2.2测试工具 National Instrument公司 DAQ-mx PCI6221数据采集卡,将数据显示到Labview Tek双通道示波器 2.3 测试结果 开关频率分为2kHz、5kHz、10kHz、20kHz,4种情况测试。 测试方法: (1) 采用双通道示波器观察Va、Vb、Vc滤波后的波形 (2) 采用 Labview观察 Vab = Va–Vb;Vbc =Vb-Vc;Vca=Vc-Va的波形,如图 4所示, Labview界面程序。
图4 Labview程序
(1)2kHz(2.3us死区时间)
图5 2kHz开关频率输出波形
( 2) 5kHz开关频率
图6 5kHz开关频率输出波形
( 3) 10kHz开关频率
图7 10kHz开关频率输出波形
( 4) 20kHz开关频率
图8 20kHz开关频率输出波形
3.总结:
从调试的结果可以看到,示波器检测到的SVPWM并不对成,后面发现是滤波电容的问题,我当时采用的滤波电容是电解电容,在高频下电解电容ESR比较大,从而导致SVPWM出现如图所示情况,将电解电容改成钽电容后,SVPWM波形对称,结果理想,但遗憾的是没有保存当时的实验图片。
总过调试发现SVPWM程序能够正常运行。程序正确无误。
心得:因为DSP处理数据量比较大,相对普通单片机而言,其面对的系统也更加复杂,所以DSP编程与单片机不同。DSP编程不仅要熟悉所使用的算法,而且还要保证程序的可靠性和鲁棒性,因为只要程序处理稍微不注意(如数据溢出、数据精度达不到要求等),这将会对整个系统要很大的影响。 保证程序的算法的正确性和可靠性应该是最为关键的,要证明自己编制的程序运行可靠,就需要把握好正确的调试方法,学会使用不同的工具和仪器来证明自己程序的可靠性,这一点对于DSP编程来说相当重要。
|