本文描绘了环绕根据ARM的嵌入式电机操控处理器构建的根据模型规划(MBD)渠道的具体状况。 随后,本文供给开端布置的根本永磁同步电机(PMSM)操控算法示例,并介绍了便利的功用扩展,以包括主动化体系的多轴方位操控。
长期以来,体系和电路建模一直是电机操控体系规划的重要方面。 选用MBD办法后,电气、机械和体系级模型用于在构建和测验物理硬件前评价规划概念。 MathWorks最新的仿真东西能够对完好的嵌入式操控体系进行建模,包括电气电路和机械体系范畴。 一起,嵌入式编码东西从操控体系模型生成C言语代码,将操控算法布置在嵌入式操控渠道上。
这些东西完结了根据模型的规划进程,人们能够在终究硬件测验前先在仿真渠道上进行规划并彻底测验。 成功构建MBD渠道的要害是分隔体系模型和嵌入式软件代码。 一旦MBD渠道运用已知算法和体系进行测验后,便可开发新算法,并在仿真渠道上以体系作业极限安全地测验。
完好的规划流程
MBD通过数十年的评论,直到最近几年才发展为从模型创立到完好完结的完好规划流程。 MBD是处理规划杂乱嵌入式操控体系相关问题的数学和可视化办法。
规划师无需运用杂乱的结构和许多软件代码,通过接连时刻和离散时刻构建模块,就能够运用MBD界说具有高档功用特性的各种模型。 这些与仿真东西一起运用的模型能够缩短原型规划、软件测验和硬件在环(HIL)仿真的时刻。
通过仿真,咱们能够当即发现各种规范差异和模型差错,不会比及规划周期的后续环节才发现。 为了优化全体代码生成进程,能够参加主动代码生成来削减任何手动布置进程,并进一步有助于缩短全体产品上市时刻。 总而言之,MBD办法使规划师能够从更多经典规划方案开端扩展,以可控办法直接从模型创立转到仿真、代码生成和HIL测验,无需从头规划整个体系就可对体系行为作出递加改动。
本文中的试验性设置根据沟通馈入闭合电机操控体系,如图1所示。该体系表明一个功用完好的PMSM市电输入电机驱动,具有功率因数校对、彻底操控、通讯信号阻隔和光学编码器反应功用。 该体系的中心是一个ARM Cortex®-M4混合信号操控处理器,即ADI的ADSP-CM408。 它通过调配IAR和MathWorks公司的东西,完结完好的MBD渠道布置。
沟通电机驱动体系建模
方针驱动体系是带有编码器方位反应的PMSM,衔接三相沟通电源逆变器,带有阻隔式相位电流反应。 驱动操控算法布置在混合信号专用信号处理器(ASSP),包括外设,可捕获电机反应信号并操控电源逆变器。
图1. 驱动体系渠道 (a)沟通馈入闭合电机操控体系框图 (b)体系原型制造
体系有三个首要组件可用于建模: 电源逆变器和电机(方针)、操控反应电路和数字操控器。 方针模型运用Simulink Simscape组件来仿真接连时刻域内的电源逆变器电气电路和电机机电元素。 反应电路模型处理操控器和电机驱动模型之间的增益和数据类型。
Simulink嵌入式编码器东西创立的C言语代码能够在仿真渠道和嵌入式操控处理器上准确反映算法的履行。 根据模型规划的成功履行有赖于准确的体系和电路模型,以及正确分隔体系模型和嵌入式操控软件。 由于体系中混合了离散和接连时刻函数,因而该仿真求解器选用了固定步长离散求解器。
驱动体系硬件包括电源板、操控板、以及带编码器反应的PMSM(参见图1b)。 电源板包括输入整流器、三相逆变器模块、电流和电压传感器、数字和模拟信号阻隔电路,以及编码器信号缓冲器。 操控板包括电机操控ASSP(集成240 MHz ARM Cortex-M4F内核)以及专用电机操控外设(包括PWM定时器、正交编码计数器、Sinc滤波器和嵌入式模数转化器(ADC))。 硬件包括电机电流反应选项,选用阻隔电流传感器(集成嵌入式ADC)或分流器(集成阻隔式ADC Σ-型转化器),以及嵌入式Sinc滤波器。
反应信号收集和操控算法履行通过处理器中止机制与PWM开关频率同步。 由于方针中被重视的时刻常数远善于PWM开关周期,体系仿真选用相同的时刻步长。 由于全开关信号仿真无法供给有用的操控信息,电源逆变器运用平均值模型。
PMSM电机模型来源于MathWorks SimPower体系库,受装备菜单(乃至预设模型参数)的支撑。 用户能够在自界说电机或逆变器模型之间切换,具体取决于规划开发的要求。
电机操控(MC)算法模型是一组离散时刻函数,每一个时刻步进均在仿真和嵌入式渠道上履行。 一般,MC算法函数包括在单个子体系模块内,简化代码发生进程。 代码生成器创立C言语代码,来履行算法输入、输出和状态变量的操控算法和数据结构。 算法自身是常用的磁场定向操控(FOC),具有外部速度环路、内部d轴和q轴电流环路,如图2所示。
逆变器接口和反应途径分为传感器信号调度和嵌入式接口模块。 电流传感器和信号调度模型是简略的增益元素,由于它们的带宽超出了操控反应所关怀的规模。方位传感器模型更为杂乱,由于它供给高分辨率增量方位信号和低分辨率肯定方位信号。
嵌入式信号接口模型包括类型转化函数,由于ADC、Sinc滤波器、计数器和定时器外设具有16位或32位定点输出数据寄存器。 每个嵌入式接口的增益都是外设体系时钟速率、采样速率和接口外设寄存器设置的函数。 模型参数有必要匹配嵌入式体系装备,保证仿真成果的准确性。
软件分隔和代码生成
电机驱动体系履行多种功用和电机操控算法。 嵌入式软件分为多个功用模块,来完结渠道灵活性,并便利开发。 要害的代码功用是体系初始化、通讯接口、运用使命、电机操控接口和电机操控算法。 图3显现的是高电平驱动程序流程图,图4显现的是代码结构。
主程序调用初始化例程来装备ASSP硬件,然后将处理器置于接连等候环路。 一切其它函数都由事情驱动型中止服务例程(ISR)调用。 ADC中止具有最高优先级,而当新传感器数据样本安排妥当时,ADC ISR调用电机操控函数。
ADC采样与PWM切换同步,为操控环路供给履行时序。 ADC ISR每一个PWM周期履行一次,但仅在电机运转标置位时才调用电机操控例程(PMSMctrl)。 在代码构建前挑选电机电流反应途径。
PWM触发中止是异步的;它仅在呼应硬件毛病时才会调用,而且是推迟毛病的仅有函数,由于硬件PWM触发函数会主动关断逆变器PWM信号。 通讯端口ISR具有较低的优先级,处理用户指令,并发送调试监控器函数捕捉的数据。 内核定时器ISR办理布景运用使命,比方电机发动和中止序列、调试监控器接口以及其它办理类使命。
图2. FOC算法
2 | 根据模型的规划简化嵌入式电机操控体系开发
图3. ISR阐明
图4. 代码分隔
嵌入式代码依照功用安排而不是按编程次序安排。体系初始化代码时以规范办法设置处理器时钟、电源和内核定时器,与运用程序函数简直无关。 通讯和运用程序使命代码通过用户接口和体系办理要求界说,与电机操控算法简直没有关系。
电机操控(MC)接口函数办理电机驱动硬件和操控算法之间的信号数据流。此代码专门用于操控驱动电路以及操控为操控算法供给反应信号的电机操控相关外设。电机操控算法是独立于渠道的代码,由Simulink生成,包括反应和输出信号的数据结构。一切其它驱动代码均为手动编码。
完结细节
若要发挥MBD的最大效益,了解电机操控体系不同部分的建模具体要求并尽或许将要害物理体系参数与相应模型参数相匹配很重要。 这包括将已建模的体系分隔为不同的具体部分。 全体而言,以PWM平均值办法对整个体系建模就足够了。 例如,在高频PWM开关周期中以平均值处理一切信号,而且在电压或电流信号中不包括PWM纹波或开关重量。
体系模型分隔至逻辑模块内,如图5所示(图中显现相关信号流)。 每一个模块再进一步细分(如图中右侧所示),且每一个子模块采纳恰当的建模办法,如表1中所列。表中未列出用户指令模块。 用户指令通过C言语代码内部的大局参数结构与内核算法通讯;一旦它们在Simulink算法中界说为大局可调参数后,便可正确处理。
图5. 体系模型分隔
*括号中的数字对应图5中的框图。
除了根本设置(比方类型巨细、字节次序等),通过使主动代码生成变为不针对某个特定方针,便可最大程度完结代码便携性和易于保护。 MathWorks供给特定处理器的代码生成模块,可直接寻址处理器外设和驱动器。 尽管某些状况下这种功用十分吸引人,其缺点是代码便携性缺乏,且设备驱动程序或外设装备的任何改动(比方新处理器变体)都将要求更改代码。 因而,在本文所述的规划示例中,代码生成仅限操控算法,而Simulink模型包括悉数外设函数模型,并在运用项目中手动编码。 此办法在图6中着重;由图可知,MathWorks操控器模型生成的代码衔接至主运用程序项目的其它代码和库模块。
图6. 模型代码接口
带分隔模型模块的Simulink模型如图7所示。如图所示,代码由模型的电机操控算法部分生成。 代码生成的重要设置可在装备代码 → 硬件布置窗口中挑选(该窗口中能够挑选全体设备类型),以及在装备参数 → 代码生成 → 接口窗口中挑选(在该窗口中挑选规范数学库)。
影响代码功率的另一个要素是运用的C言语“方言”。 大部分代码生成东西以及嵌入式作业台支撑的常见“方言”是C89/C90和C99。 最重要的是,在东西中应当运用相同的“方言”。 例如,假如嵌入式作业台装备为根据C99构建代码,则主动代码生成东西有必要相同根据C99规范构建代码。 假如不能做到这一点,则代码功用会大打折扣,乃至在最差的状况下会使代码发生非预期的效果。
另一个重要的要素是定点和浮点类型表明。 两种编码“方言”均支撑定点,因而这种状况下挑选何种“方言”并不重要,只需在一切东西中运用相同的“方言”即可。 但是,假如运用了浮点类型,则C“方言”的挑选就变得很重要。
C89/C90不区别单精度浮点和双精度浮点。 假如代码要在支撑双精度的处理器上运转,那这样做也许是能够承受的;但关于仅支撑单精度的处理器而言(比方ARM Cortex-M4),状况就大为不同了。 请记住,应当保证主动代码生成东西以及嵌入式作业台设置为运用C99“方言”。
Simulink供给Simscape和SimMechanics等东西箱,当物理参数已知时可用来为机电体系轻松建模。 即便物理参数未彻底特性化,预界说组件模型(比方电机)能够加载大致恰当的规范,完结电机操控算法的初步规划。 就算法自身来说,某些模块很有用,比方Park改换和正弦余弦CORD%&&&&&%近似模块能够简化电机操控算法的开发。
主动代码接口由初始化函数调用和一个或多个时刻步长函数调用界说,有必要在主运用程序代码内以恰当的时刻步长调用。 本例中有两个时刻步进函数——主操控算法,在10 kHz PWM速率时调用,以及速度丈量函数,在1 kHz速率时调用。 主动生成的代码模块集成至主项目中,如图8所示。
图7. 建模和代码生成布置
图8. 代码模块安排和算法函数调用
如图所示,代码以模块化办法安排,集成特定运用函数,比方联网和保护,十分直观。 高优先级使命(比方电机操控算法)从图3中的ISR处调用。运用程序级使命从根本调度程序内核处作为调度使命调用。 MC接口例程包括于电机操控和丈量代码模块中,后者包括一切电流反应信号处理代码。 ADI电机代码包括用于体系测验的调试监视器函数,能够在电机运转时捕捉运用和操控算法信号数据。 数据通过串行链路传输至PC,以供显现和剖析。
体系测验与调试
通过丈量、核算和查阅数据手册确认表1中的要害参数后,速度和电流环路的正确操控器增益便可运用Simulink模型确认。 这能够运用规范PID调谐法[2]或MathWorks供给的调谐东西(比方PID调谐器东西)完结。 该进程详见参阅文献3。
建模和试验操作的电流环路功用如图9和图10所示。该曲线中的试验数据仅每隔5 ms采样一次,因而存在一些混叠,但全体趋势十分显着。
根据模型的主动生成代码的功用能够通过在PWM周期内查看代码履行的时刻期限确认。 这能够运用I/O引脚和示波器来完结,或更简略地运用IAR Embedded Workbench C-SPY调试器中的ITM事情功用来完结。 PWM周期中事情的序列如图11时刻期限所示。
PWM同步脉冲发生在每一个新PWM周期开端处,并在硬件中衔接ADC定时器,操控每个ADC通道的采样。 这种状况下,电机电流将在PWM同步脉冲之后当即采样,并直接存储器存储(DMA)至存储器,然后履行算法,并生成PWM占空比更新值。 如图11所示,履行根据模型的主动生成代码耗费的PWM周期不到10%,然后答应有许多的其它布景使命开支。 曾经关于主动生成代码功率的忧虑将不复存在。
图9. 比较模型操作和经历操作的(a)速度呼应以及(b) q轴电流参阅
图10. 电流环路功用——模型和经历成果
图11. 代码履行时刻期限
新运用程序开发
本文所评论的软件假定为含有两个首要组件的体系。 第一个是根据模型的组件,布置操控算法。 尽管模型以嵌入式方针为准则开发,从主动生成东西获取的代码本质上是通用的。 第二个是手写软件组件,将通用算法代码绑定至嵌入式方针,处理调度并分配处理器资源。 在重用模型和扩展性方面,这种体系分隔有必定优势。
本文评论了单个电机(单轴)的操控开发。 现在,幻想驱动程序规范通过同一个处理器调用两个电机(双轴)操控。 无疑,这对体系来说是一个很大的改变,但选用通用模型进行作业的优势也得以凸显。 现已完结开发的单轴模型不对处理器外设作出任何假定——它是PM电机的通用操控算法。 因而,创立一个能够操控单轴/双轴的模型就变成了创立单轴模型第二个实例的问题。
天然,手写代码需求修正才干支撑单轴/双轴,但假定处理器具有一组正确的外设和核算资源来操控双轴,则手写代码的修正也很直观。 不管操控的是单轴或是双轴,手写代码的首要使命都是将数值分配至模型的输入、将模型的输出写入处理器外设,以及调度模型的履行时刻。 因而,从单轴到双轴只不过是外设的分配/装备,并调度添加轴的算法履行时刻。 该进程是无缝的,并由于模型是通用的这一现实而得以完结。
假如只开发一个单操控体系,那么运用根据模型的规划优势有限。 但是,大多数状况下,产品开发意味着多个产品变体,而且关于这些状况而言,重用模型具有很大的吸引力——不只由于缩短了开发时刻,还由于运用受信赖模型而导致的质量不断上升。 跟着时刻的推移,算法开发人员将会创立模型库;假如布置正确,这些模型可在不同产品之间重用。 由于模型是通用的,它们能够运转在现在和未来的处理器上。
除了满意产品变体的潜在要求或操控多轴之外,开发人员有时候还能供给不同的操控器形式。 一个典型的比方就是供给扭矩操控、速度操控和方位操控形式的运用。 在电流和速度操控算法的根底构建块上能够布置方位操控算法。
在大多数运用中,方位操控环路作为环绕内层速度和电流环路的外层。 根本的方位操控器仅需份额增益项。 一般不需求积分项,由于方位环路中的任何稳态差错都会导致非零速度参阅。 若内层电流和速度环路通过杰出调谐,则这些能够视为抱负的单位增益模块,以及调谐方位环路变为一个直观的使命。
除了外层份额操控环路,包括一个方位参阅也或许很重要,以便负载遵从界说的周期和加速度与减速度速率。 这关于最大程度削减许多体系中的机械应力而言十分重要。 在本运用示例中,稳定加速度、稳定速度和稳定减速度曲线施加到方位参阅改变, 如图12所示;图中表明方位参阅、曲线方位参阅以及相应的抱负速度曲线。 至于哪个实践速度遵从该曲线则取决于速度操控器的动态呼应。
图12. 方位参阅曲线
一切这些功用——方位环路增益、方位曲线以及辅佐功用(比方回零定位和终端-中止检测)作为额定模块布置在代码中根据模型的部分。 仅有需求的手写代码更改是I/O装备,以支撑家庭方位和终端-中止信号。
定论
根据模型的规划是强壮的东西,能够加速电机驱动制造商的嵌入式开发。 假如以通用办法设置和装备,则能够大幅减轻手写代码开发和保护的重担。 它还能加速产品上市时刻,由于代码开发可在短少硬件的状况下初始处理——只需供给要害体系组件的合理准确模型。
这些特性已在PMSM驱动器景象中得到证明,该驱动器在扩展至多轴和方位操控的FOC下操作。 对软件模块和根据模型的组件进行切割的办法现已具体阐明,能够优化根据模型的处理方案供给的数值。 试验数据也表明晰模型在优化速度操控器参数、代码生成紧凑性和功率方面的优势。