element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
FPGA
  • Technologies
  • More
FPGA
Forum 基于FPGA高速硬件在环仿真器实现电机控制器测试
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join FPGA to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 0 replies
  • Subscribers 577 subscribers
  • Views 256 views
  • Users 0 members are here
  • 电机控制器
  • fpga
  • labview
Related

基于FPGA高速硬件在环仿真器实现电机控制器测试

Flush
Flush over 15 years ago

介绍

 

电机在现代生活中扮演着重要角色。出于对安全、成本及效率的考虑,工程师——尤其是混合电动力汽车(HEV)工程师——往往希望在特定的真实环境下通过仿真电机模型对电机控制器进行测试。

由于在经济及环境等方面展现出的优势,HEV受到了广泛的关注,而电机正是HEV的核心部件。尤其是考虑到HEV的电机及电力电子器件体积大, 成本高; 在让控制器去控制这些实际的部件前, 先用硬件在环仿真的方法来测试和验证控制器的性能是非常必要的.

本文讨论基于FPGA而设计的高速HIL仿真器来实现电机控制器测试。下图为HIL测试系统。
image

 

电机驱动仿真器包括DC电压源、逆变器桥路以及电机。我们支持永磁同步电机(PMSM)及无刷DC电机(BLDC).


为何需要基于FPGA的硬件在环仿真器

现代电机驱动系统通常由脉冲宽度调制(PWM)所驱动。下图描述了PWM的基本概念。

 

image
电机控制器将参考波形与三角载波相比较,从而确定门控制信号的状态。

当image时,上面一个电力电子器件的门极控制信号为高, 下面的器件的控制信号为低

当image时,上面一个电力电子器件的门极控制信号为低, 下面的器件的控制信号为高

准确检测门信号的开关时刻对仿真器正确产生仿真信号来说非常重要。否则仿真器可能产生抖动、非特征谐波等不准确结果,甚至变得不稳定。下图为PMSM电机驱动的电流波形仿真结果。
image

 

PWM频率为10 kHz。可以看到,50 kHz的仿真循环速率还不足以让仿真器及时地检测出开关时刻

因此不能获得精确结果。检测结果中包含了不想要的谐波分量,使结果与期望值偏差很大。而在200 kHz的循环速率下,检测结果就好了很多。

为了获得精确结果,仿真器的采样间隔必须比控制器的PWM周期小很多。如此高循环速率的应用使基于FPGA的方案成为理想选择。我们的定点PMSM模型及定点BLDC模型均能在40个FPGA时钟周期内完成一次更新运算。

提示:有时,期望仿真循环速率可能超过模拟了I/O所能够达到的速率。一般此时无需更新模拟I/O(扭矩输入、电流输出等)来匹配仿真循环率,用户可使用多频编程来保持数字I/O及仿真循环处于高速率,从而用于门信号开关时刻的精确检测,而将模拟I/O设置于另一个循环状态,之后再通过FIFO在两个不同频率的循环间传输数据。

设计的前提假设

 

a. 电力电子器件的理想开关模型

将电力电子器件建模为理想开关,当门信号为真(高)时,开关为理想的短路电路。当门信号为假(低)时,开关为理想的开路电路。理想开关模型非常适用于系统级仿真,此时我们不关心电力电子器件的寄生效应。此外,理想开关模型可大幅提升仿真速度。

对于电力电子器件的热损失,可以计算其等效电阻,并将此电阻值计入电机的总电阻。

 

b. 积分方法

电机的数学模型是一组微分方程。当在FPGA上仿真电机驱动模型时,实际上是在FPGA上对这些微分方程进行积分。由于期望的积分步长非常的小,仅为几微秒的量级。

所以用户可选择最简单的积分方法,如欧拉方法,此方法适用于小步长情况。


方案流程图

 

下图为创建基于FPGA电机仿真器的流程图。
image

 

第一步,用户需要采集电机参数及原始数据。通过浮点仿真来验证仿真结果是否与测量数据相符。然后采用定点仿真来验证定点电机模型,确定精度是否达到要求、输出结果是否令人满意。完成定点模型验证后,就可以进入最终部署阶段。


应对定点实现的挑战

不同的电机通常具有相差较大的功率级,然而定点数据类型的范围及精度是确定的,因此选择合适的定点数据类型非常重要,否则量化误差就会快速积累从而导致错误的仿真结果。用户往往难以调整或校准所有的定点数配置来适应自己的情况。美国国家仪器公司提供以下方案来应对这些挑战。

a. 归一化系统

除了使用工程单位外,电气工程师还使用归一化系统。归一化系统将电流、电压、速率等统一度量,使其操作点的归一化值接近1.0。归一化系统的这一特点非常适用于定点实现。通过归一化可将定点电机模型用于各类不同电机。

使用归一化系统以后,用户可为定点电机模型选择确定的预定义定点数据类型。下表为部分选择列表。

字长

整数字长

数据范围

归一化电流

32

5

[-16, 16)

归一化速率

32

4

[-8, 8)

归一化电压

24

4

[-8, 8)

 

以上选择都为极端情况(如电流过载等)留有余量。

确定以上参数的定点数据类型可帮助用户选择内部计算单位的定点配置,如下图中Idq至Iabc的转换。
image

 

b. 将部分计算量移至主机

电机仿真过程涉及一些除法操作,如image。此类操作不涉及电流等时变参数,因此用户无需每步都更新该值。用户可将这个除法操作移至主机来运算,避免在FPGA中进行除法运算的棘手问题。

因此针对定点电机模型共需两个VI。主机VI处理一些除法操作及参数转换工作;FPGA VI用于仿真目标的定点电机模型。

案例

 

下图显示了定点PMSM模型在加速及减速过程中的速率及电磁转矩。
image

 

用户可在上图中观察到减速阶段的再生制动效应。当电机将能量回馈给DC电源(电池)时,电磁转矩为负值。


结论

 

本文介绍了基于LabVIEW FPGA的电机驱动仿真器,可以用来帮助用户通过NI-RIO硬件创建高速电机驱动HIL测试。

  • Sign in to reply
  • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube