(图10 LMV324运放)
直流母线电压和电流的模拟信号需要运放进行隔离和放大。考虑到TMS320f28035是一个3.3V的单片机,GPIO只能接受0~3.3V的信号。于是选择了低压差的运放LMV324,使用3.3V的电源电压,这样运放的输出电压为0~3.0V,对单片机永远是安全的。运放使用了标准的电压放大器接法。在输入端使用了Ds15和DS16两个肖基特二极管对输入信号限幅。同时用一个0.01uF的旁路电容C87。
4. 系统软件设计
在系统软件设计中,主要分为上位机(PC)软件设计和下位机(DSP)程序设计。上位机的监控软件使用C++编写,采用开源Qt By Nokia v4.7.3库,拥有柔和的界面,直观的波形输出功能,和全面的控制能力;下位机程序和上位机通过USB转232串口连接,具有双向通讯功能。下位机程序设计包括具有热启动热配置功能的系统主框架设计;通过对由SCI发来的数据包解码从而可重复初始化的,初始化模块程序设计;全部模块化封装的算法实现部分;全局宏定义和全局参数组设计。本文将详细介绍主框架流程、SVPWM算法流程、SCI热配置流程和智能变频模块流程。由于异步电机无传感器测速尚在算法研究阶段,本文只在前面介绍其基本思想。其余的模块非主要模块,代码中有详细注解,此处省略。
对与上位机,其结构符合Qt程序规范,由于代码量较大,而且只起到辅助实验功能,所以这里只介绍其功能、用法与特点。附件中备有上位机软件Release版本一份,可供查看。
注:上位机软件可在winXP、winVista、win7系统下运行,需要在运行前装载vs最小运行库。
4.1 下位机程序设计
下位机程序各模块的联系如下图。 初始化模块包含三部分,一部分是系统刚开始运行就立即执行,包括系统初始化、GPIO初始化、SCI初始化和CPUTimer0的初始化;一部分是在SCI配置过程中的初始化,包括ADC初始化和EPWM初始化;除此以外PIE中断向量的初始化在系统启动时和SCI配置时都要进行。
算法模块分为四个主要算法,包括SVPWM演算、智能变频、智能调压、无传感器转速计算。
功能模块包括一些功能函数(如各种延时函数)、串口通信借口、过压过流保护、异步电机失速保护、全局宏定义、全局结构体(参数组)定义等。
- 11 -
系统初始化GPIO初始化PIE初始化AD初始化ePWM初始化SCI初始化SVPWM算法串口通信初始化模块主控程序功能模块功能函数算法模块自我保护全局定义智能变频智能调压转速计算CPUTimer初始化 (图11 DSP程序模块关系总览) 4.1.1 主框架流程图
系统的主框架如下图所示。程序启动后开始系统初始化,然后进入主循环,但此时EPWM和ADC模块都是闭锁状态,电动机并不会运行。如果dsp芯片已经通过USB转232串口连接好电脑,那么可以打开ExMainWindow.exe,设置好串口参数(波特率9600,校验位NONE,数据位8,停止位1),打开串口,设置好配置参数(初始频率值,设定频率值,是否反馈,正转/反转),单击“配置下发”键。此时SCI中断程序将根据不同的包头标志解包,将参数配置进全局参数组,此时EPWM初始化,ADC根据指令决定是否初始化,系统进入等待运行的状态。如果这时点击“开机”,EPWM的TBCLK将开启,电机启动。
另外,如果在上位机软件中点击“智能启动”按钮(那个闪电状图标),电动机将经过自动配置后直接开机。此时变频器将不再运行到面板中设定的频率,而是会一直增加SVPWM的频率,直到达到电动机的安全稳定极限工作频率。在电动机运行的任何时刻,如果单击“关机”键,电动机将缓慢降低速度到停止。如果电动机在运行过程中发生过流或失速的情况,变频器将会进入自我保护模式,将所有上桥臂置1下桥臂置0, 程序终止。
特点:1、系统规模较大,具有电动机热启动、热关机、热配置的功能,关机时并非程序终止,可以随时配置新参数并重新启动。
2、运行频率参数组中包括初始频率、当前频率和设定频率,我们手动或自动修改的都是设定频率,当前运行频率会以每0.5s变化1Hz的速度接近设定频率。即SVPWM频率是缓慢变化的,不会出现频率跳动剧烈而电机失速滑差率剧增的问题。
3、主循环中,算法程序分为实时算法和非实时算法,实时算法如测速、SVPWM演算等在实时中断程序中做,而非实时算法如变频计算、过流保护在主循环中做,为其定时的CPUTimer0中断只负责置位算法程序的进入标志,而在算法执行过一遍后该标志被清除。由于DSP是单线程运行的,这样做使得复杂的非实时算法不会影响EPWM的比较值的在线演算。
4、运用软件标志位,解决“DSP无法在PIE中断程序中使能或禁止其他中断IER”的问题。
5、可以采用ADC采样反馈来构成闭环运行,也可以完全开环运行,适应没有采样电路的功率板。外设配置方式灵活。
- 12 -
开始系统及变量初始化PIE中断向量、GPIO、CPUTimer0SCI初始化进入主循环,等待参数配置NO初始化ADC,开启反馈上传NOYES是否需要反馈?NO启动手动调试模式,配置参数,初始化EPWMNO智能模式?NOYES启动智能化参数配置,初始化ADC,开启反馈上传,初始化EPWMNO启动EPWM,等待手动调压调频启动EPWM,等待手动调压调频电压、电流检测,转速计算,上传运行状态数据关机?进入过流保护模式,PWM全部置位,程序停止。启动EPWM,根据环境智能调频调压过电流?YES电压、电流检测,转速计算,上传运行状态数据NOYESYES过电流?关机?NO关闭EPWM,若开启ADC则关闭ADCYESYES关机? (图12 主框架流程图)
4.1.2 SVPWM算法流程图
SVPWM算法流程如下图。
SVPWM占空比计算为典型的实时算法,需要放在中断函数中进行,其效率较低,但其刷新频率而又很高,所以需要尽量减少计算量。
特点:1、我们采用电压相角θ作为变化参数,在扇区判断上会节省一部分计算量,不需要传统的A+2B+4C判断扇区。
2、此处采用IQmath库进行运算,将变量定义为_IQ28格式,比直接使用math.h中的三角函数更快一些。
3、另外,本模块和ADC数据处理部分,也正在开发使用CLA运算加速单元进行并行处理,目前正处于算法优化阶段。
- 13 -
EPWM1中断进入,保护现场根据当前转角增量计算参考电压的相角?计算?所在的扇区计算?所在扇区的两个相邻电压矢量所作用的时间计算6路空间矢量PWM的占空比,并将其赋值给EPWM全比较器
(图13 EPWM中断流程)
4.1.3 SCI热配置流程
SCI热配置在本程序中是一大特点。其流程如上图。
SCI参数配置模式只有在电机真正停转的时候才会有效,表现为只有在全局参数trueStop = true时,解码模块才会接受参数配置包。在该中断函数中,如果进入配置模式,程序会对全局参数组进行配置,或者对其他外设进行初始化;如果进入运行模式,程序仅会对允许修改的参数进行更新。
特点:1、该模块具有较强的纠错逻辑,会对接收到的命令进行逐一验证,能够检测出SCI因各种扰动发生的误码,并且能够拒绝错误操作。即如果在尚未配置的环境下开机,或者在电动机高速旋转时发下高速反转命令等危险操作,该模块有能力无视这些指令,不予执行。
2、SCI中的各参数在编码方式上采用了更为稳定的原则。例如在ExDefination.h文件中,定义
#define ROLL_TOWARDS 0x07 #define ROLL_BACK 0x00
这是正反转参数的编码,没有只采用1位编码而是3位编码,这样做即使发生1~2位误码,也不会导致下位机程序作出错误的动作,此包指令将会被丢弃。 以上两点,连同上位机软件的操作限制功能,共同组成了对错误操作和误码的联合防线。
中断结束,恢复现场- 14 -
中断进入,保持现场取内容,准备解码解码测试参数测试模式解码模式配置模式解码配置参数运行模式根据参数配置单相EPWM,与上位机双向通讯测试通讯质量解码运行指令重新配置外设时钟将运行参数传递给运行参数组配置三相6路EPWM引脚,初始化EPWM根据参数决定是否配置ADC?YESNO初始化ADC清楚SCI各种中断标志,退出中断程序配置所有需要的中断使能位 (图14 SCI热配置流程图)
4.1.4 智能变频模块流程
智能变频模块的设计方案,完全是针对本文引言中所提到的情况。偏远缺水地区地下水位很低,电动机的转速将决定井泵的实际扬程;但越偏远的地区,他拉过去的电压越低。我们希望电动机在使用时能够达到环境允许的安全稳定极限转速,但是在本来就欠压的环境下,单纯提高同步磁场的转速有可能会导致转矩无法维持从而电动机失速,滑差系数瞬间变大,电流陡增,严重时会烧坏电动机和变频器等附属设备。我们设计该模块,就是为了使电动机在恒定负载的情况下,能够安全地加速到极限功率。
该变频模块的控制手段属于经过改进的恒转矩控制——恒功率控制,恒转矩启动控制较为常见,这里省略;我们的恒功率控制,会在监控电动机各项参数的情况下,逐步加快电机运行速度。如下图,每增加1Hz频率,将会面对三个分支选择:1)继续增加频率,2)停止增加频率,3)减小频率。判断的方法是对滑差系数、转速变化率、三相电流值的进行数值运算,然后将其和自动生成的阈值进行逻辑比较,以此决定下一变频周期的目标频率值。
特点:无需手动调试,达到安全稳定极限转速。
- 15 -