首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

浅谈IQmath库的定点DSP算法设计(2)

浅谈IQmath库的定点DSP算法设计(2)

浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学记数法。  定点数是计算机中采用的一种数的表示方法。参与运算的数的小数点位置固定不变。
  在现代交流电机控制领域,空间矢量控制法(SVPWM)使得交流电机的控制策略能像直流电机的控制策略一样,可以实现转矩电流和磁通的单独控制,因此成为主流的交流伺服驱动控制策略。利用DSP强大的计算能力和信号处理能力,SVPWM的电流和磁通控制均可以采用软件实现。TMS320F2812处理器专门为电机控制设有两个事件管理器(EVA/EVB)和编码器电路(QEP),因此成为运动控制的最佳选择之一。图1是采用TMS320F2812实现SVPWM控制算法的系统结构框图。

    从图1可以看出,PARK变换是SVPWM控制算法中最为复杂的变换之一,是一个旋转矢量is从静止二相坐标系(α-β)变换到同步旋转的二相坐标系(d-q)。PARK变换坐标映射如图2所示。


    由图2可以得到PARK变换的方程式:
   

  因为PARK变换是一个浮点算法,如果在定点处理器TMS320F2812上采用浮点运算来实现,代价很高。采用浮点类型进行编程将产生十分庞大的代码,而且在循环计算中势必影响系统的效率和性能。采用IQmath库可以将浮点算法转换为定点数算法,这样运算速度可以明显提高,这对实时性要求很好的运动控制系统的设计十分有效。利用IQmath库实现PARK变换的程序段如下:

  图3是利用Embedded Target for TI C2000 DSP集成开发工具对IQmath库编写的SVPWM程序计算PWM占空比的波形图。

5 结论

  利用IQmath库可以在32位定点处理器TMS320F2812上实现浮点算法与定点算法之间的无缝连接,能够极大地增强定点DSP的运算能力;在不牺牲时间周期的情况下可以实现高精度计算,能够快速地完成对浮点算法的转换、植入和执行;还可以根据应用系统不同要求相应地调整运算精度,比直接采用ANSI C语言相比效率更高。

继承事业,薪火相传
返回列表