浮点运算单元FPU能给电机控制带来什么?

 

编者按:在计算领域,例如三角函数以及时域频域变换通常会用到浮点运算。当CPU执行一个需要浮点数运算的程序时,有三种方式可以执行:软件仿真器(浮点运算函数库)、附加浮点运算器和集成浮点运算单元。在控制应用中会有很多的坐标变换,PID运算,估算器等,浮点运算单元可以提高运算的效率和精度。过去这几年,越来越多的MCU集成了硬件的浮点运算单元,比如TI的DSP/CLA,ARM的Cortex-M4F内核等。

下面这篇文章是瑞萨的RX V2内核中集成FPU的说明,有针对电机控制常用数学运算的对比数据,也系统阐述了FPU能够给三相逆变这个应用带来的好处。

过去几年,瑞萨电子的 RX62T/RX63T 大获成功,广泛应用于同步和异步电机的三相逆变器中。这些系列已集成了浮点运算单元。在此基础上,瑞萨电子决定改进整个 RX 内核,FPU 便是其中一项内容。

以下图表列出了 RX V2 内核的指令,其中带红框的是在 V1 基础上新增的指令。

 

 

基于新增的三条 FPU 指令(详见下表)以及十四条 DSP 新指令,RX v2 内核可通过单个指令执行 32 位乘法实现更高的计算精确度。此外,还有特定的指令用于管理累加器和舍入处理,确保获得较高的整体性能。新的 RX v2 提供高达 2 DMIPs/MHz 的性能,而 RX v1 的性能仅为 1.65 DMIPs/MHz。

新增 RX v2 指令

功能

FSQRT

浮点开方

FTOU

浮点型至整型转换

UTOF

整型至浮点型转换


 通过对比同一微控制器 RX23T 上实现的三分流器无感矢量控制算法,片上 FPU 模块可将处理时间减少 27%,将 CPU 负载降低 28%,因而具有显著优势。

 

RX23T

性能
差异

CPU 时钟

40MHz,V2 内核

运算方式

定点

浮点

控制循环时间

51µs

40µs

27%

闪存使用量

26KB

20KB

30%

RAM 使用量

3KB

2KB

50%

CPU 负荷@16KHz PWM/控制环路

82%

64%

28%

 

以上测量是基于运行在RX23T 套件上的逆变软件,套件名是“YROTATE-IT-RX23T”。该套件软件包括以下模块:

  • 比例-积分电流控制器

  • 比例-积分速度控制器

  • 钳位脉冲宽度调制

  • Clarke 和 Park 变换

  • 磁链相位估算器

  • 速度估算

  • 三分流器电流采样

 我们免费提供用于Benchmarks测试的软件的完整源代码。

 此外,在很多运动控制应用中,最基本的就是对传感器信号与数据的滤波处理。

 瑞萨电子在不同的滤波操作中,对 RX V1 和 V2 版本进行了一些比较。

 

您可从上图中看到,在使用快速傅立叶变换 (FFT)、无限脉冲响应 (IIR) 和矩阵乘法的各项滤波操作中,最新 RX v2 内核的速度至少增加一倍。该图表在与 RX V1 内核进行比较的基础上进行了标准化处理,数据表示与 RXv 1 内核的相对关系。此处未标明计时单位。

在二阶滤波器 (IIR Biquad) 中,在相同的时钟频率下,由于采用了新指令,RX v2 内核的速度是 RX v1 内核的三倍。

 到目前为止,我们已经阐述了嵌入浮点运算单元模块的原因及其在性能、代码大小和整体代码效率方面的效果。

 如何从定点运算过渡到浮点运算?

第一步是评估驱动现有永磁电机的可用三相逆变器参考平台。使用基于 RX23T 的套件(例如 YROTATE-IT-RX23T),任何开发人员都能够快速确认浮点型变量的使用情况。

以下网站提供与 RX23T 套件相关的完整资料:www.renesas.eu/motorcontrol

 首先,我们来了解逆变器的嵌入式软件源代码。

 在逆变器算法中使用的常量具有很高的分辨率和精确度。

这意味着对扭矩和速度的控制是精确的。

 使的嵌入式软件的开发和维护变得更加简单。

 此外,在固件中使用的变量直接表示实际单位,例如安培、伏特、赫兹、韦伯和亨利等。

在微控器上,使用浮点型变量是表示实数的一种方式。

 

 使用浮点,所有三相逆变器系统物理量的内部表示都非常简单。无需对变量进行标准化或归一化。

 凭借这些优点,代码变得易于管理和阅读。电机模型可以轻松创建,而无需对每个固有值进行归一化。

 此外,我们再看一下如下所示的“磁链相位估算”模块。

磁链相位估算方法的实现如下所示。三个主要低通滤波器的实现仅使用了三行代码和几个时钟周期。

 与定点运算相比,使用 FPU 将会显著降低错误和变量溢出的风险。

开发时间和测试过程也有所缩短。

 

 

最后,三角函数使用了实数值,不使用表格等,因而它可以确保高精确度。下面提供了用于 Park 和 Clarke 变换的软件源代码。

每次变换最多使用两行代码,不使用表格来管理 Cos 和 Sin。与使用整型运算的任何实现相比,Cos 表格使用 256 个字节,Sin 表格和反正切函数也是如此。

最后一点,整个实施过程的代码大小显著减小,更易于维护。通过使用 Simulink、Scilab 或任何建模工具,使用浮点运算的输出模型可以直接重复应用于 RX23T 逆变器套件使用的 e2studio 项目。

 

将 FPU 用于三相逆变器有哪些具体优点?

 使用 FPU 可以高效地实施无感矢量控制算法,因为可以快速执行控制环路和变换,从而加快整体转子位置的估算速度。

最后,FPU 保证了高动态算法,这种算法可在脉冲宽度调制频率下以相同速度运行。对于 RX23T,这种实施可以确保高效的控制,控制频率最高达到 22KHz(整个算法使用 40µs)。

这意味着,对于 22KHz 频率以下的每个 PWM 周期,控制算法可在很高负载变化下快速反应来调节扭矩和电流。

 在 RX23T 套件中,全套软件包将包括以下模块。

 

通过将 RX 编译器优化级别设置为“Max”,可以达到以下所示的性能。

 

 

 

在 RX23T 上运行的软件消耗的资源非常有限:20KB 闪存和 2KB RAM,这意味着在具有 128KB 闪存的 RX23T 上,将有 108KB 的空闲空间可供应用程序使用。

 结论:

 

 

本文详细介绍了使用 RX23T 浮点运算单元可在多大程度上改进逆变器算法的性能。

整体代码有所减少,整个软件执行速度显著加快,因为不会发生归一化或饱和。此外,与整型相比,它提供更高的精确度,因为在嵌入式软件中使用了实际的物理单位。最后一点,FPU 可以保证 PI 控制器和估算器的计算速度更快。

  

免责声明:本文部分内容来自网络,版权归原作者所有,如涉及作品版权问题,请与我联系删除。

如何配置C2000进入低功耗模式

使用CCS连接正在运行的C2000芯片

CCS奇怪现象如何解决

TMU介绍及使用方法

三相电机控制方式入门,看完这一篇就够了

TI eSMO 库 Fsmopos 和 Gsmopos 参数解析

增量式旋转编码器工作原理