021-64886750

  • 实时目标机

    Simulink模型库

    Demo套件

info@yisuworld.com

基于Speedgoat FPGA板卡的 兆赫兹开关频率PMSM控制算法的开发与验证

网站首页    技术blog和使用技巧    基于Speedgoat FPGA板卡的 兆赫兹开关频率PMSM控制算法的开发与验证

 

兆赫兹开关频率的挑战 
 

当电力电子和电机控制的开关频率上升至兆赫兹水平,控制器的性能指标和处理能力面临巨大的挑战:

 

PWM的精度。

当开关频率为1MHz时,如果计数器的频率为100MHz,则计数范围为0-100,计数器每次增加1,因此PWM的精度为1%。同理,如果计数器为200MHz,则精度0.5%。

 

● 电流采样速率。

当开关频率为1MHz时,控制周期可以是1 μs或者0.5 μs,因此电流采样的ADC转换时间必须小于1 μs或者0.5 μs。推荐ADC的转换速率至少为5MHz,占用200ns的时间,剩余800ns或者300ns的时间留给电流控制算法运行。

 

● 电流控制算法的FPGA开发与验证。

电流的闭环控制算法必须在FPGA中运行才能满足几百ns的时间限制。

对于原来习惯于利用Simulink开发CPU控制算法的小伙伴,光想想HDL语言,时序,乘法器,资源这些概念,这脑袋瓜子不是要晕就是要爆!

 

那么如何实现简单高效的电流控制算法的FPGA开发与验证呢?

 

Mathworks 与 Speedgoat 的解决之道 
 

MathWorks公司的HDL Coder工具和Speedgoat公司的FPGA板卡,两者在Simulink环境中无缝集成,实现板卡配置、HDL生成、编译、位流部署的自动化,可应对上述挑战。

 

● PWM的精度。

Speedgoat公司的FPGA板卡的计数器频率最高可达为250MHz,在1MHz开关频率下的精度为0.4%。

 

● 电流采样速率。

Speedgoat公司的FPGA板卡的ADC转换速率为5MHz,并且为16位精度,同时满足高速和高精度要求。

 

● 电流控制算法的FPGA开发与验证。

对于原来习惯于利用Simulink开发CPU控制算法的小伙伴,只需利用MathWorks公司的HDL Coder工具,将Simulink模型自动转换为HDL代码,无需增加额外的开发工作,然后自动编译和下载,这大大降低FPGA的开发难度。

 

FPGA模型开发与验证 
 

Speedgoat实时仿真解决方案能够保证用户在完整的基于模型的设计流程中持续的验证其设计,因此,此次软件开发流程遵循行业内广泛采用的基于模型的开发方式(Model based development),所有的开发与验证工作均在Simulink环境下完成,包括以下三部分工作:

 

 

>>>> 
离线模型开发与验证

 

利用Simulink软件搭建PMSM的闭环控制系统模型,包括两部分:

(1) 被控对象

  • 两电平逆变器

  • PMSM

  • 机械负载

  • 速度和位置传感器

(2)控制器

  • FOC控制算法

  • SVPWM算法

  • PWM生成

  • 速度与位置测量

 

以上模型的搭建采用熠速基于Simulink开发的电力电子和电机控制模型库。两电平逆变器和PMSM电机模型如下所示。

                                                       两电平逆变器模型                                                      PMSM电机模型 

 

PMSM电机控制的流程如下图所示,为保证每个控制时刻电流采样与PWM信号的同步,在模型搭建时可以采用Function Call子系统或者Enable子系统,如下图所示,此时PMSM Controller的运行不与时间同步,而与PWM的trigger同步。

 

PMSM电机控制的流程

基于Function Call的PMSM控制框图

 

离线Simulink模型如下图所示,考虑到下一步需要将模型拆分至CPU和FPGA中,在搭建时,就将需要部署至不同计算单元的模型,封装至不同的子系统中,如下图所示。绿色部分为部署至FPGA中的仿真模型,其他部分为部署至CPU中的仿真模型。 

 

PMSM离线闭环控制系统模型

 

通过仿真低速下的死区效应,离线验证仿真模型的准确性和精度。 

定子频率5Hz下的电流波形(开关频率20kHz,死区时间2us)

定子频率5Hz下的电流波形(开关频率1MHz,死区时间20ns)
 
 
>>>>  基于CPU的在线模型开发与验证

 

 
将离线模型拆分为被控对象和控制器两部分,其中被控对象模型下载至Performance实时仿真主机的IO334 FPGA板卡中运行,仿真频率为100MHz。控制器模型的FOC控制算法和SVPWM算法在Baseline实时仿真主机的CPU中运行,控制周期为50us,PWM生成和速度与位置测量在IO397 FPGA板卡中运行,PWM频率为20kHz。
 
 

 
在线模型拆分1
 
对原有的离线模型的控制器模型,进行拆分和封装,需要下载至FPGA的部分,封装为一个子系统(下图绿色部分),其他模块为下载至CPU中运行的部分。完成所有的拆分和封装之后,可以在Simulink环境中进行离线验证,确认模型没有问题之后,就可以进行模型的生成工作。 
 

基于CPU的在线控制器模型

 
对原有的离线模型的被控对象模型同样进行拆分和封装,确认模型没有问题之后,就可以进行模型的生成工作。 
 

基于FPGA的在线被控对象模型

 

上述模型通过HDL Workflow Advisor流程中的第1.2步骤,配置模型中标注的接口部分,完成Subsystem接口与FPGA板卡IO通道的映射,如下图所示:

 

配置Subsystem接口与FPGA板卡IO通道的映射
 

再通过HDL Workflow Advisor进行后续的HDL Coder代码的生成和编译工作。具体请参考Speedgoat的HCIP软件的帮助文档,链接如下:

https://www.speedgoat.com/help/hdlcoder/page/refentry_workflow_HDLWA_settings
 

 

>>>>

基于FPGA的在线模型开发与验证 

 
对基于CPU的控制器模型进行拆分和封装,PWM生成和速度与位置测量在IO397 FPGA板卡中运行,PWM频率为1MHz。FOC控制算法和SVPWM算法也在IO397 FPGA板卡中运行,控制周期1us。Baseline实时仿真主机用于接收上位机指令和实时数据记录。
 

在线模型拆分2

 

 
FPGA-based Online 控制器模型
 

从上述开发流程中可以看到,通过Speedgoat FPGA板卡与MathWorks公司的HDL Coder工具的结合,电机控制器模型,从离线模型的开发,到基于CPU的在线模型的开发,到最终的基于FPGA的在线模型的开发,其模型的搭建过程和验证过程都是一致的,模型的改动量也非常少,只需要进行少量的拆分和封装,以及接口配置的工作,非常的方便。

 

此外,所有的开发和验证工作都是在Simulink环境下完成的,不需要切换第三方工具,包括的实时模型的生成、编译、下载,以及在线监视,数据记录等工作。

 
 
 
测试平台 
 

搭建电机控制器桌面式HIL测试平台,如下图所示。包括:

上位机:在线参数修改,实时波形监视与记录;

示波器:波形显示;

Performance实时仿真机(包含IO334 FPGA板卡和IO3XX-21数字扩展板):运行被控对象模型。

Baseline实时仿真机(包含IO397 FPGA板卡):运行电机控制器模型。

旋变调理卡:将2路单端模拟信号转换为2路差分模拟信号,以及线圈阻抗等效

旋变解码卡:输出旋变激励信号,测量PMSM的位置和速度。

 

电机控制器桌面式HIL测试平台

 

上位机界面 
 

利用Simulink real time explorer上位机软件,搭建控制界面。界面的搭建过程是基于组态式的控件,简单方便。 

 

上位机控制界面

 

 

自动化测试与脚本 
 

上位机运行M语言脚本,在线修改控制器模型中DQ轴电流的给定值,和被控对象模型中的电机转速值,实现自动化测试。MATLAB 2019b的脚本示例如下图。 

 

MATLAB 2019b的自动化脚本

 

 

实时验证结果 
 

下图是自动化运行时,上位机实时记录的电流和转速波形 

实时波形记录的波形(整体)

 

 

 

实时波形记录的波形(工况切换点)

 

1MHz的开关频率和20ns的死区时间

 

 

旋转变压器位置解析

 

示波器的电流波形如下,定子频率5Hz的实时仿真电流波形与离线仿真一致,说明基于Speedgoat FPGA板卡和MathWorks HDL Coder工具开发的实时FPGA模型是满足工业应用精度和实时性要求的。定子频率600Hz时,从20kHz开关频率的电流中能看到PWM导致的电流纹波,但是从1MHz开关频率的电流中则无法看到PWM导致的电流纹波。

定子频率5Hz时的电流波形 

 

定子频率600Hz时的电流波形

 

 

总结 
 

随着SiC和超高速电机在各行业中的逐步应用,以实现更高功率体积比和功率密度比,更好的NVH性能,更快的动态响应等指标。对于百千赫兹,甚至兆赫兹开关频率的需求将越来越多,应用也越来越广。

 

Speedgoat FPGA板卡和MathWorks HDL Coder工具,作为一套强大电力电子和电机控制FPGA算法开发工具,不仅满足MBD流程而且完全基于Simulink环境,大大降低了FPGA算法开发难度,提高了开发效率,加快了项目进度。非常适合开发百千赫兹,甚至兆赫兹开关频率的电力电子和电机控制算法,尤其适合广大Simulink使用者。

 

此外,此工具也适用于电力电子和电机控制的HIL系统的开发。

 

 

附表 开发过程中使用的硬件

 

_

硬件

HIL

1)Performance实时仿真主机 × 1

2)IO334 FPGA板卡 × 1

3)IO3XX-21数字扩展板 × 1

RCP

1)Baseline实时仿真主机 × 1

2)IO397 FPGA板卡 × 1

信号调理

 1)YS8002 旋变调理卡

 2)YS8001 旋变解码卡

 

附表 开发过程中使用的软件

 

_

软件

Mathworks公司

1)MATLAB

2)Simulink

3)MATLAB Coder

4)Simulink Coder

5)HDL Coder

6)Simulink Real-Time

7)Simscape Electrical

Speedgoat公司

1)HDL Coder Integration Package(HCIP)

Xilinx公司

 1 )Vivado

 

 
2020年8月6日 15:59
浏览量:0