设为首页收藏本站优领域

优领域

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
优领域 优领域 电子领域 技术文库 DSP 查看内容

MATLAB在DSP代码开发中的应用

2014-5-13 10:02| 发布者: dzly| 查看: 577| 评论: 0|原作者: □王海滨 闫鹏 程武涛 欧栋杰

摘要: DSP 在电机系统开发中应用广泛,但是在对DSP 进行代码开发时则比较繁琐,效率不高,容易出错。Matlab 提 供的Embedded Coder 功能,则可以很好的解决上述问题。不仅可以进行系统级仿真,还可以对自动生成的代码进行验 证。本文以永磁同步电机的磁场定向算法为例,详细介绍在Matlab 中DSP 代码开发的流程。
  DSP在电力电子控制中的应用越来越广泛。传统的开发流程是系统仿真,编写代码,最后测试。采用手工编程的方式,难度大、效率低、容易出错,测试和编程不能同步进行。Matlab提供的Coder功能,可以将Simulink建立的算法直接生成可以在目标处理器中执行的C代码,同时Maltab提供的PIL测试功能,可以将测试和编程同步执行,便于前期发现问题,较好的提高开发的效率。
  一、磁场定向算法(FOC)模型简介
  本例中对于FOC算法,采用Id=0的转速和电流闭环控制方案,速度环具有增强系统抗负载扰动的能力,根据速度给定和速度反馈,通过速度调节器输出电流转矩分量给定值。电流环为双环结构分别调节电流转矩分量与电流励磁分量跟踪给定值的变化,快速提高系统的响应性能。经两个电流调节器输出的d-q轴电压分量合成为一个电压矢量,通过svpwm调制,直流母线电压将以PWM波的方式加到电机上。
  模型中用到的模块是由matlab中提供的TIC2000系列的DigitalMotorControl(DMC)和IQMath库构建,这些库是专门针对TIC2000系列处理器编写,生成代码的效率可以和汇编语言相媲美。TargetPreference设置为F2812,具体设置和处理器相一致。在模型中设置RateTranation2模块输出采样时间为0.01s,为转速闭环的采样周期。电流环采用系统的采样时间5E-5s即PWM频率为20KHZ。由于TIC2000系列处理器为定点处理器,所以本例在建模时是按照定点模型建立。对于FOC所有输入信号都采用的是Q17格式,所以空间矢量发生模块输出的也是Q17格式的数据,但是TIC2000中PWM模块默认的输入数据是Uint16格式,所以要进行数据格式的转换,这一功能由PWMScaing模块实现。


  二、处理器在环测试
  处理器在环测试是在Simulink中搭建被控对象的模型,而将控制器算法代码下载到目标处理器中去执行。
  系统输入端口信号是利用永磁同步电机控制系统仿真时产出的数据,通过logsout数据结构记录,然后导入到PIL测试模块中,最后记录其输出的PWM波形。图中的FOC子系统为Simulink搭建的算法模块,FOC1是有FOC子系统生成的PIL测试模块。通过InspectLoggedSignals工具观察其具体波形,结果如图1所示:通过观察结果可知其PWM和PWM_PIL波形误差为零,验证了算法生成代码在处理器中执行的正确性。
  三、总结
  基于模型的设计优势在于算法的早期验证,使得开发者可以将主要精力放在算法开发上,代码则由Matlab自动生成,很好的提高工作效率。在实际的开发中,将算法生成为函数进行调用,一般底层驱动和控制流程使用汇编语言或者C手工编写。如果通过Matlab对底层驱动建模则十分复杂,得不偿失,控制流程开发也没有C语言灵活。
  
  

网站统计|优领域|优领域 ( 粤ICP备12011853号-1 )  

GMT+8, 2019-6-17 02:58 , Processed in 0.040714 second(s), 12 queries .

Copyright © 2008-2014 优领域

回顶部