账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
以FPGA为基础的系统提高马达控制性能
 

【作者: Andrei Cozma、Eric Cigan】2015年11月16日 星期一

浏览人次:【22523】


被广泛使用于工业、汽车业及商业应用的电动马达,是藉由能够变化其电力输入功率的驱动器,来控制其力矩、速度及位置。高性能马达驱动器可以增加效能,并提供较快及更精确的控制。先进的马达​​控制系统结合了控制演算法、工业网路及使用者介面,因此它们需要额外的处理能力来即时执行所有的工作。多晶片架构通常会被用来实现现代的马达控制系统:一个数位信号处理器(DSP)负责执行马达控制演算法、一个FPGA负责完成高速I/O及网路协定、以及一个微处理器负责管理类的处理控制。 [1]


藉由诸如Xilinx Zynq All Programmable(完全可编程)SoC这类的系统单晶片(SOC)的出现, 由于结合了CPU的多功能性及FPGA的处理能力,设计者现在已能够将马达控制功能及额外的处理功能整合到单一的晶片中。控制演算法、网路及其它处理密集型功能的重担便可转移到可编程逻辑,而监督控制、系统监视与诊断、使用者介面、以及调试(commissioning)则可由处理单元来负责。可编程逻辑可包含平行运行的多控制核心,以便实现多轴机器或多控制系统。藉由将完整的控制器实现于单一晶片上,得以让硬体设计更为容易、更可靠及更省成本。


近年来,软体模型化及模拟工具,像是MathWorks的Simulink,已让模型化(model-based)的设计演进到完整的设计流程─亦即从模型创建一直到完成。 [2]这种改变工程师及科学家工作方式的模型化设计,正在将设计任务从实验室及现场,移往到桌上电脑上。现在, 整个系统 - 包括受控体(plant)及控制器─已可以被模型化,让工程师能在部署到现场之前调整控制器的行为。这降低了损害风险、加速了系统整合、并减少了对设备可用性的依赖程度。一旦控制器模型被完成, Simulink环境可自动将它转为能够在控制系统上执行的C及HDL代码,不但节省了时间,也避免了人工编码的错误。此外,将系统模型连结到能够观察控制器在真实状况条件中会如何动作的快速原型环境,还可进一步降低风险。


一套可提高马达控制性能的完整开发环境,使用到的软体包含:由Xilinx提供用来完成控制器的Zynq SoC、由MathWorks提供用来进行模型化设计及自动代码产生的Simulink、以及由ADI提供用来进行驱动系统快速原型建立的Intelligent Drives Kit。


Xilinx FPGA与SoC马达控制解决方案

先进的马达​​控制系统必须执行控制、通信及使用者介面等工作的结合,而此每一个工作都有不同的处理频宽需求及即时性上的限制。被选用来实现这类控制系统的硬体平台必须坚固且具扩展性, 又同时能容许后续的系统改善及扩张。 Zynq的完全可编程SoC实现了这些需求,它结合了一高性能处理系统与可编程逻辑,如图1所示,此一结合提供了优越的平行处理能力、即时性能、快速运算、及多样性连结等特点。此SoC也整合了两个Xilinx类比数位转换器(XADC),以供系统监视或外部类比感测器的使用。



图1 : Xilinx Zynq SoC方块图
图1 : Xilinx Zynq SoC方块图

Zynq的处理端包含了一个双核ARM Cortex-A9处理器、一个NEON共同处理器、以及可以加速软体执行的浮点延展。处理系统负责对应诸如监督控制、动作控制、系统管理、使用者介面、及远端维修等这些非常适于用软体来实现的功能。嵌入式Linux或即时作业系统则可被部署以发挥系统的能力。自足式(self-contained)处理器可在不需设置可编程逻辑的情况下被使用,这让软体开发人员能够与负责FPGA结构设计硬体工程师平行地进行编码。


在可编程的逻辑端,有高达444,000个逻辑元(cell)及2200个DSP片段(slice),可提供很大的处理频宽。 FPGA结构(fabric)具有可伸缩性, 因此使用者能选用的,可从小到只有28,000逻辑元的产品,一路到可对应最具挑战的信号处理应用的高端产品。 5个AMBA-4 AXI高速互连结(interconnects)将可编程逻辑紧密地互耦到处理系统,提供了同等于3000pins以上的有效频宽。可编程逻辑适合于实现时间紧迫且需密集处理的工作,如即时工业乙太网协定,且它可适应多轴机器或多控制系统中的平行运作多控制核心。


Xillinx全可编程SoC解决方案及平台,能够符合现今诸如现场导向控制(field oriented control, FOC)之类的复杂控制演算法,以及诸如Xilinx与Qdesys所设计的再生(regenerative)脉冲频率调变[3 ] 之类的复杂调变体系,所要求的关键时序及性能。


使用MathWorks的Simulink进行模型化设计

Simulink是一种方块图环境,可进行多领域模拟及模型化设计,特别适合用来模拟包含控制演算法及受控体(plant)模型的系统。马达控制演算法能调节速度、力矩、及其它参数,通常是用在精准定位上。使用模拟方法来评估控制演算法,是一种判断马达控制设计适合性的有效方式,且能在投入昂贵的硬体测试之前,降低演算法的开发时间与成本。图2描述了设计马达控制演算法的有效工作流程:


‧ 建立精准的控制器及受控体模型,通常是从马达、驱动器、感测器、及负载的元件库开始


‧ 模拟系统行为以确认控制器是否如预期般动作


‧ 产生C代码及HDL供即时测试及完成


‧ 使用原型硬体来测试控制演算法


‧ 一旦控制系统已在原型硬体上透过模拟及测试,证实是符合需求的,即可将控制器布局到最终的量产系统上.



图2 : 马达控制演算法设计的工作流程
图2 : 马达控制演算法设计的工作流程

MathWorks的产品包括了Control System Toolbox、SimPowerSystems,以及Simscape,它们能为线性控制系统的系统化分析、设计及调整,提供业界标准的演算法则及应用,并提供元件库及分析工具,供模型化及模拟跨越于机械、电子、水力及其它物理领域的系统。这些工具提供了能够建立高真实性的受控体及控制器的模型化方法,以在进入实际完成前可以验证控制系统的行为及性能。模拟环境是一个能够用来验证功能性边界条件(fu​​nctionality corner cases)及极端动作条件的完美场合,它能确保控制器已针对如此的情况准备好,并也确保在真实状况的动作下,设备与操作人员都很安全。


一旦控制系统已透过模拟环境中的嵌入编码器及HDL编码器工具加以完全确认过,它就可以被翻译成C代码及HDL,并布局到原型硬体来进行测试以及之后的最终量产系统上。此时,诸如定点及时序行为(timing behavior)需求之类的软体与硬体的实施法(implementation)会明确化。自动代码产生可协助减少从概念到实际系统完成、消除编码错误、以及确保实际完成品能符合其模型等所需的时间。图3描述了在Simulink中模型化马达控制器,并将它转换为最终量产系统的真实作业步骤。



图3 : 从模拟到量产的途径
图3 : 从模拟到量产的途径

第一个步骤是要在Simulink中模型化并模拟控制器及受控体(plant)。在此阶段时,控制器演算法被分割为多个将以软体来完成的方块,以及多个将以可编程逻辑来完成的方块。一旦分割及模拟完成,控制器模型会透过嵌入编码器及HDL编码器被转换成C代码及HDL。接着,Zynq基底的原型系统可确认控制演算法的性能,并在进入量产阶段前,帮助进一步调整控制器模型。到了量产阶段时,自动产生出来的C代码及HDL会被整合入复杂的量产系统框架。此一流程能确保当控制演算法在达到量产阶段时,它已被完整的验证及测试过,因而提供了系统坚固可靠性上的高信心度。


使用EDI的Intelligent Drives Kit来完成快速原型

选择正确的原型硬体是设计过程中的一个主要步骤,ADI的Intelligent Drives Kit(智慧型驱动器套件)能实现快速而有效率的原型制作。透过将Zynq-7000 All Programmable SoC ARM双核Cortex-A9 + 28nm可编程逻辑,与最新一代的ADI高精确度资料转换及数位隔离两方的结合, Avnet Zynq-7000 All Programmable SoC / ADI Intelligent Drives Kit可实现高​​性能马达控制及双gigabit乙太工业网路的连结。此套件包含一Avnet的ZedBoard 7020 基板,以及ADI的AD-FMCMOTCON1-EBZ模组,此模组为完整的驱动系统,能为多种类型的马达提供有效的控制。此外,此套件能经由ADI的AD-DYNO1-EBZ动力计(dynamometer)驱动系统,也就是一种可用来测试即时马达控制性能的动态可调负载,来加以扩展。 AD-FMCMOTCON-EBZ模组包含了控制器及驱动电路板,如图4所示。



图4 : AD-FMCMOTCON1-EBZ的方块图
图4 : AD-FMCMOTCON1-EBZ的方块图

控制电路板是一款混合信号的FPGA小板卡(FPGA Mezzanine Card,FMC),被设计来透过低脚数(LPC)或高脚数(HPC)FMC接头连接到任何Xilinx的FPGA或SoC平台。它的特点有:


‧ 使用隔离的DC来进行电流或电压量测


‧ 隔离式Xilinx XADC介面


‧ 完全隔离型数位控制及回授信号


‧ 霍尔、差动式霍尔、编码器及解角器(resolver)的介面


‧ 2-Gb乙太网PHY以实现高速工业通讯协定,如EtherCAT、ProfiNET、Ethernet/IP、或Powerlink


‧ FMC信号电压调试介面,以便在所有的FMC电压位准上的无缝动作


隔离是任何马达控制系统中的一项关键层面,借以保护控制器及使用者。在控制电路板上完全的类比与数位信号的隔离,能确保FPGA平台随时受到保护,避免来自马达驱动端的危险电压。


驱动电路板包含了所有驱动马达所需的电力电子,以及电流与电压的感测及保护电路。此板的特点为:


‧ 在12V到48V的电压范围及18-A的最大电流下,驱动BLDC(无刷直流)/PMSM(永磁同步马达)/整流式直流/步进等各类马达


‧ 动态煞车能力及整合的过电流与反电压保护


‧ 使用隔离式ADC进行相位电流量测;可编程增益放大器将电流量测范围加以最大化


‧ 提供DC汇流排电压、相位电流、及总电流回授信号给控制器电路板


‧ 整合EMF零交叉(zero-crossing)侦测供PMSM或BLDC马达的无感测器控制用


动力计(dynamometer)是一种可用来测试即时马达控制性能的动态可调负载,它包含了两个直接透过一牢固的连结而相互耦合的BLDC马达。其中之一的BLDC马达扮演负载的角色,且受控于动力计的嵌入控制系统;另一个马达则是由ADI Intelligent Drives Kit驱动,如图5所示。此系统,配备了一个能够显示有关负载电流及速度资讯的使用者介面,可容许设定不同的负载设置档(profiles)。外部控制的实现,可透过Analog Discovery USB oscilloscope来进行负载信号捕捉, 并使用MathWorks的Instrument Control Toolbox来直接透过MATAB控制。



图5 : 动力计驱动系统
图5 : 动力计驱动系统

任何马达控制系统的性能都会受到马达电流及电压量测品质很大的影响。藉由使用高性能类比信号调节(conditioning)元件及ADCs,ADI Intelligent Drives Kit可提供精准的电流及电压量测。量测路径如图6所示,被区分为控制器及驱动电路板两段。



图6 : 相位电流信号链
图6 : 相位电流信号链

相位电流的感测,是由量测跨在并联分流(shunt)电阻上的电压来完成。视ADC是否靠近并联分压电阻,会有两种可能的量测通路来取得最佳的量测准确度。如果ADC靠近并联分压电阻,信号通路会非常短且较不易有杂讯耦合(noise coupling)。因此并联分压电阻上的小差动电压可由AD7401隔离式Σ-Δ调变器直接量测,而不需额外的介面与信号调节电路。


如果ADC远离并联分压电阻,信号通路会很长且容易出现杂讯耦合,特别是来自电源供应交换杂讯及马达。此时就需特别注意,一定要确保在PC板上ADC与并联分压电阻之间的走线及信号调节电路须有适当的屏蔽处理。并联分压电阻上的小差动信号会被驱动电路板上的AD8207差动放大器加以放大,而此差动放大器设置于并联分压电阻附近以避免杂讯耦合。信号由全幅±125-mV的输入范围被放大到±2.5-V,以尽量降低耦合杂讯的影响。


放大后的信号经过使用AD8251增益可编程仪器放大器(programmable gain instrumentation amplifier,PGIA)所构成的另一个放大器阶段,​​以确保ADC所收到的输入信号都能被适当的缩放调整以符合其输入范围。经放大的类比信号经过接头送往控制器板,此接头包含了能将每一个类比信号的杂讯耦合降低到最小的屏蔽。来自驱动电路板的类比信号,透过ADA4084-2运算放大器被移回AD7401的输入范围内.


电流及电压回授信号链中的最重要部份,是AD7401A二次(2nd order)隔离式Σ-Δ调变器。此高性能ADC的特点,包括没有漏失码(missing codes)的16位元解析度、13.3有效位元数(effective number of bits, ENOB)、以及83-dB SNR。二线数位介面包含一20-MHz时脉输入,以及一1-位元数位位元流输出。 ADC的输出透过一sinc3数位滤波器来重建。规格书中针对16位元输出及78kHz取样率,提供了一滤波器的模型及HDL完成范例,其输出解析度及取样率可藉由改变滤波器的模型及抽样(decimation)来加以控制。虽然78-kHz取样率可能对于许多应用而言已很足够,但有些情形会需要更高的速率。


在这些情形下,如图7所示的滤波器组(filter bank)可以将系统的取样率提高到真实16-位元资料的10MSPS。此滤波器组含有n个sinc3滤波器,并使用经过T时间(sinc3滤波器传递时间除以n)的倍数延迟的取样率。最后再由资料选择器输出周期与T相同的ADC码。



图7 : 滤波器组
图7 : 滤波器组

相位电流量测也可以由Zynq XADC来进行。 XADC信号量测链使用固定量测链的整个通路,并在AD7401 Σ-Δ调变器之后加入一Sallen-Key类比重建(reconstruction)滤波器。此滤波器是使用控制器电路板上的AD8646运算放大器所构成。隔离式Σ-Δ调变器与类比重建滤波器的结合,提供了方便且低成本的方式来达到XADC输入信号的类比隔离,而不需牺牲到量测的品质。


ADI Intelligent Drives Kit包含了一组Simulink控制器模型、完整的Xilinx Vivado 框架(framework)、以及ADI Linux基础架构(infrastructure),让使用者能够进行设计马达控制系统时所有需要的步骤,包括从模拟开始,经过原型制作,一直到量产系统的完成。


有两种控制器模型可供开始设计过程,一是六阶(six-step)控制器,另一个则是PMSM场导向(field-oriented)的控制器。图8所示是以最上层的角度来看这两种控制器,六阶控制器可实现BLDC马达的梯形(trapzoidal)控制器,而FOC控制器则提供了一个可用来整合入控制系统的FOC核心。



图8 : Simulink控制器模型
图8 : Simulink控制器模型

受控体及控制性模型是在模拟阶段中所创建出来的,而完整系统的动作行为会被模拟,以确认控制器会依照预期的方式动作。控制器模型被分割为由C代码及由HDL所完成的元件,而诸如时序、定点(fixed-point)完成、取样率、及环路次数等限制条件,则被明确定义以确保控制器模型会如同其在硬体实现中的方式动作。图9显示了六步控制器在软体及HDL之间的分割。



图9 : 控制器的C程式码及HDL分割
图9 : 控制器的C程式码及HDL分割

一旦控制器经由模拟加以完全确认过,下一步就是要在硬体平台上建立它的原型。由Zynq SoC所引导的工作流程,能够从针对ARM核心及可编程逻辑而被分割为子系统的Simulink模型,产生出C代码及HDL。藉由此工作流程,HDL编码器会产生针对可编程逻辑所需的HDL,而嵌入编码器则负责产生ARM所需的C代码。MathWorks Zynq支援包能实现:(1)ARM可执行码的产生, 包括了来自模型且和AXI汇流排介接的演算法C代码,以及(2)位元串流的产生,包括了来自模型且可和可编程逻辑接脚及AXI汇流排介接的HDL代码。图10为控制器的实现及与ADI Intelligent Drive硬体的关联性。



图10 : 在原型系统上实现的控制器
图10 : 在原型系统上实现的控制器

一旦位元流及可执行码被载入硬体,控制器的动作测试就可以开始。硬体回路(hardware-in-the-loop,HIL)测试的执行,是透过Simulink及运行开放源码Linux OS的嵌入系统之间的乙太网路连结。诸如轴转速之类的马达参数可被Simulink所撷取,并与模拟的结果相比较,以确保真实完成的系统能符合模型。一旦控制演算法测试完成,控制器就可以被转移到量产系统。


除了Intelligent Drives Kit,ADI也一并提供了完整的Vivado框架及Linux基础结构,可用在原型及最终量产上。支援Intelligent Drives Kit的Zynq基础架构。此可编程逻辑完成了用来与ADCs、位置感测器、及马达驱动级等介接的IP核心。由HDL编码器所产生用来代表马达控制演算法的HDL,被整合到Analog Devices的IP中。所有的IP都有低速AXI-Lite介面可设置及控制,以及高速AXI-Streaming介面,以容许它们透过DMA通道将即时资料传送到软体阶层。高速乙太网介面可使用ARM处理器系统的硬体MAC周边,或是可编程逻辑中的Xilinx乙太网路IPs来完成。


ARM Cortex A9处理系统可运行由ADI提供的Ubuntu Linux,这包括与ADI Intelligent Drive硬体介面连接时所需的Linux IIO驱动程式、供监视与控制用途的IIO Oscilloscope(Scope)使用者空间应用程式、一可实现透过TCP进行即时资料采集和系统控制的libiio伺服器、在远端电脑上执行的客户端(clients)程式、以及由嵌入编码器产生的C代码所构成的选项使用者应用程式。


所有的ADI Linux驱动程式都是基于Linux Industrial I/O(IIO)子系统, 此子系目前已包含在所有的主线(mainline)Linux核心(kernel)中。 IIO Scope,一种由Analog Devices所开发且可以在Xilinx Zynq内的双ARM Cortex A9s上运行的公开源Linux应用程式,能够显示从任何与Xilinx Zynq平台连结的Analog Devices FMC卡取得的即时资料。此资料的显示方式包括有时间域、频率域、或是星座图等。此程式支援以一些常用的档案格式,如comma seperated values​​或,mat Matlab档案等,将捕捉到的资料储存起来并进行分析。 IIO Scope提供了图形化使用者介面,以改变或读回Analog Devices FMC卡的设置。


Libiio伺服器可搭配上远端电脑上所运行的用户端程式,实现透过TCP的即时资料撷取及系统控制。此伺服器在Linux下的嵌入目标(embedded object)上运行,并管理介于目标及远端用户间的TCP上即时资料交换。 IIO用户可做为系统目标,并被整合入原始MATLAB及Simulink应用中。 HDMI输出被用来在监视器上显示Linux介面,而键盘及滑鼠则可接到系统的USB2.0埠。


由ADI为Intellignet Drives Kit提供的Linux软体及HDL基础架构,再搭配上由MathWorks及Xilinx提供的工具,对马达控制应用的原型建立是一理想的套件。它们也包含了可量产化的元件, 可被整合入最终控制系统,来协助降低从概念到量产所需的时间与成本。


结论

本文说明了以FPGA完成现代化马达控制系统的需求与趋势,以及由MathWorks、Xilinx和ADI等公司所推出的工具与系统,以便符合其限制并协助推动更有效及精准的马达控制解决方案。藉由将MathWorks所提供的模型化的设计与自动代码产生工具,与高能力的Xilinx Zynq SoC及ADI提供的隔离、功率、信号调节及量测解决方案两者的结合,马达驱动系统的设计、验证、测试及完成可以比以往更有效率, 从而改善马达控制性能并缩短产品上市的时间,ADI Intelligent Drives Kit与Avnet Zynq-7000 All Programmable SoC的搭配,能够为使用MathWorks的Simullink所设计出来的马达控制演算法,提供一极佳的原型开发环境。Intelligent Drives Kit包含了一套参考设计[4],为任何想要评估此系统的使用者提供一起始点,并协助开启任何的新马达控制专案。


(本文作者Andrei Cozma 及 Eric Cigna任职于亚德诺半导体)


参考文献

[1] Hill,Tom “Motor Drives Migrate to Zynq SoC with Help from Matlab.” Xcell Journal,Issue 87, Second Quarter 2014.


[2] O’Sullivan, Dara,Jens Sorensen,and Anders Frederiksen.“Model Based Design Tools in Closed Loop Motor Control.”PCIM Europe,2014.


[3] Corradi,Dr.Giulio.“FPGA High Efficiency, Low Noise Pulse Frequency Space Vector Modulation—Part I.” EDN Network,October 04, 2012.


[4] AD-FMCMOTCON1-EBZ User Guide.


相关文章
具备超载保护USB 供电ISM无线通讯
以GMSL取代GigE Vision的相机应用方案
运用PassThru技术延长储能系统寿命
巨磁阻多圈位置感测器的磁体设计
为新一代永续应用设计马达编码器
comments powered by Disqus
相关讨论
  相关新闻
» 亚湾2.0以智慧科技领航国际 加速产业加值升级
» ADI与BMW集团合作推出10Mb车载乙太网路技术 支援软体定义汽车发展
» 贸泽与ADI合作全新电子书 探讨工业生产力和能源效率方案
» DigiKey《Farm Different》第三季影集探索农业未来
» ADI扩大与TSMC合作以提高供应链产能及韧性


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK83T7I292WSTACUKR
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw