主要内容

半精度磁场定向控制算法

此示例说明如何为永磁同步电机 (PMSM) 实现磁场定向控制 (FOC) 算法。该示例既演示单精度浮点实现,也演示半精度浮点实现。当算法包含较大或未知的动态范围(例如反馈环中的积分器)时,或当算法使用难以采用定点设计的运算(例如 atan2)时,使用浮点表示可能是有利的。半精度数据类型仅占用 16 位内存,但其浮点表示使其能够处理比相同大小的整数或定点数据类型更宽的动态范围。

加载仿真模型所需的数据。

focModelData

打开 ex_foc_current 模型。此模型对一个磁场定向控制算法的两个版本使用相同的源模块。第一个版本使用单精度数据类型,而第二个版本使用半精度数据类型。

model = 'ex_foc_current.slx';
open_system(model)

对模型进行仿真。从示波器中可以看到,单精度实现的响应与半精度实现的响应相同。

sim(model)
ans = 

  Simulink.SimulationOutput:
           logTestBench: [1x1 Simulink.SimulationData.Dataset] 

     SimulationMetadata: [1x1 Simulink.SimulationMetadata] 
           ErrorMessage: [0x0 char]