没有合适的资源?快使用搜索试试~ 我知道了~
首页基于Matlab/Simulink的TMS320F2812代码开发
基于Matlab/Simulink的TMS320F2812代码开发

文章以三相异步电动机的VVVF结合SVPWM控制算法的开环控制系统为例,给出了Matlab/Simulink平台上DSP代码开发的设计流程。
资源详情
资源评论
资源推荐

基于基于Matlab/Simulink的的TMS320F2812代码开发代码开发
文章以三相异步电动机的VVVF结合SVPWM控制算法的开环控制系统为例,给出了Matlab/Simulink平台上DSP
代码开发的设计流程。
引言
随着现代电力电子技术的迅猛发展,兼有高运算速度和强控制能力的DSP在逆变器、电机等电力电子设备的控制领域得到了
广泛应用。通用DSP的源代码开发都可以采用两种方法:一种是直接利用其提供的汇编指令编写源代码,然后经汇编器和链
接器进行汇编链接后生成目标可执行代码;另一种方法是利用标准C/C++语言编写源代码,然后经C/C++编译器、汇编器和链
接器进行编译链接,最后生成目标可执行代码。这两种代码开发方法都使得开发人员不得不花费大量的时间在代码的编写上
面,增大产品开发难度,延长产品开发周期,从而影响开发效率[1]。
Math Works公司和TI公司联合开发的工具包——Matlab Link for CCS Development Tools,已经能把Matlab和TI公司的DSP集
成开发环境CCS(Code Composer Stadiu)及目标DSP连接起来。利用此工具可以像操作Matlab变量一样来操作TI DSP的存
储器或寄存器,即整个目标DSP对于Matlab像透明的一样,开发人员在Matlab环境下,就可以完成对CCS的操作。Matlab
Link for CCS Development Tools可以支持CCS能够识别的任何目标板,包括TI公司的DSK、EVM板和用户自己开发的目标
DSP板。如果把Matlab Link for CCS Development Tools与MathWorks公司和TI公司联合开发的另外一个工具包——
Embedded Target for the TI TMS320C2000 DSP Platform配合使用,则可以直接由Matlab的Simulink模型生成DSP的可执行
代码,即在集成的、统一的Matlab环境下可完成DSP开发的整个过程。1DSP代码自动生成流程
首先,根据系统的设计思路在Matlab/Simulink平台下搭建系统模型(.mdl),仿真满意后通过Matlab提供的Real Time
Workshop(RTW)生成面向TI编译器的工程文件代码(.prj),并进一步完成代码的编译,链接生成DSP可执行机器码
(.out),最后下载到目标DSP板上运行,完成系统的开发[2]。
上述开发过程全部在Matlab/Simulink环境下进行,开发人员不需要写任何代码,只需利用Matlab的模型模块完成系统设计即
可;而且开发人员在系统设计过程可对系统进行仿真验证,保证系统设计的正确性。图1为DSP代码自动生成的开发流程。
图1 DSP代码自动生成开发流程
2 三相异步电机转速控制系统的设计
本设计采用开环恒压频比(VVVF)与空间矢量脉宽调制(SVPWM)相结合的算法,驱动控制三相异步电动机。控制系统主
要模块及其功能如下:
① RAMP_CNTL缓升缓降模块。该模块类似低通滤波器,实现给定信号的缓慢变化,避免信号的突变给电机造成冲击。
② V/F模块。基频以下,通过对定子电压幅值与频率的协调控制,保持定子磁通恒定,实现恒转矩控制,在低频段,系统要补
偿定子压降;基频以上,保持额定电压,实现恒功率控制。
③ IPARK模块。该模块实现PARK逆变换,实现两相旋转坐标到两相静止坐标的转换。
④ SVGEN模块。该模块计算出应用SVPWM产生给定定子参考电压所需的3个比较值Ta、Tb、Tc,再经DSP的比较单元,产
生控制功率器件的开关信号。
⑤ PWM模块。配置该模块,控制DSP PWM的工作模式,包括载波频率、有效电平、工作时钟频率等。
图2为控制系统的原理框图。
图2 电机控制算法框图
3 控制系统的实现
3.1 Matlab/Simulink平台下系统的建模及仿真
根据系统控制算法,利用Matlab Link for CCS Development Tools工具包和Simulink常用工具包的功能模块,搭建控制系统的
仿真模型,如图3所示。
建模过程中要处理好数据格式的设置。TMS320F2812是一款定点DSP,为了能进行浮点运算,一般会在DSP数据处理中使用
Q格式。所以在建立模型的时候就要设置好数据格式,尤其要注意那些和前后两级模块都有连接的数据格式的设置。为方便处
理,这里将所有可设置的数据都配置为Q24格式。在空间矢量发生模块和C28x PWM之间要加一个数据转换模块,因为空间矢
量发生模块输出是一个归一化的Q24数据,而C28x PWM的默认输入数据格式是16位整数,所以直接将这两级连在一起可能
会导致出错。转换公式为:W(1,2,3) =T(a,b,c) &pide;224 ×216
根据实际的电路配置C28x PWM参数,可以设定合适的死区、PWM信号的有效电平等。
最后要注意的是,一定要加入F2812 eZdsp模块。虽然该模块对模型的仿真无影响,但是在实现代码自动生成的时候需要通过
模块进行相关参数的设置。


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1