ADI; Dara O’Sullivan, Jens Sorensen, 和 Aengus Murray
本文描述了围绕基于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平台部署。
图1. 驱动系统平台(a)交流馈入闭合电机控制系统框图(b)系统原型制作 交流电机驱动系统建模
目标驱动系统是带有编码器位置反馈的PMSM,连接三相交流电源逆变器,带有隔离式相位电流反馈。驱动控制算法部署在混合信号专用信号处理器(ASSP),包含外设,可捕获电机反馈信号并
控制电源逆变器。
系统有三个主要组件可用于建模:电源逆变器和电机(对象)、控制反馈电路和数字控制器。对象模型使用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所示。
图2. FOC算法
逆变器接口和反馈路径分为传感器信号调理和嵌入式接口模块。电流传感器和信号调理模型是简单的增益元素,因为它们的带宽超出了控制反馈所关心的范围。位置传感器模型更为复杂,因为它提供高分辨率增量位置信号和低分辨率绝对位置信号。
嵌入式信号接口模型包括类型转换函数,因为ADC、Sinc滤波器、计数器和定时器外设具有16位或32位定点输出数据寄存器。每个嵌入式接口的增益都是外设系统时钟速率、采样速率和接口外设寄存器设置的函数。模型参数必须匹配嵌入式系统配置,确保仿真结果的精确性。
软件分隔和代码生成电机驱动系统执行多种功能和电机控制算法。嵌入式软件分为多个功能模块,来实现平台灵活性,并方便开发。关键的代码功能是系统初始化、通信接口、应用任务、电机控制接口和电机控制算法。图3显示的是高电平驱动程序流程图,图4显示的是代码结构。
图3. ISR说明
主程序调用初始化例程来配置ASSP硬件,然后将处理器置于连续等待环路。所有其它函数都由事件驱动型中断服务例程(ISR)调用。ADC中断具有最高优先级,而当新传感器数据样本就绪时,ADC ISR调用电机控制函数。ADC采样与PWM切换同步,为控制环路提供执行时序。ADC ISR每一个PWM周期执行一次,但仅在电机运行标识置位时才调用电机控制例(PMSMctrl)。在代码构建前选择电机电流反馈路径。
PWM触发中断是异步的;它仅在响应硬件故障时才会调用,而且是延迟故障的唯一函数,因为硬件PWM触发函数会自动关断逆变器PWM信号。通信端口ISR具有较低的优先级,处理用户命令,并发送调试监控器函数捕捉的数据。内核定时器ISR管理背景应用任务,比如电机启动和停止序列、调试监控器接口以及其它管理类任务。
嵌入式代码按照功能组织而不是按编程顺序组织。系统初始化代码时以标准方式设置处理器时钟、电源和内核定时器,与应用程序函数几乎无关。通信和应用程序任务代码通过用户接口和系统管理要求定义,与电机控制算法几乎没有关系。
电机控制(MC)接口函数管理电机驱动硬件和控制算法之间的信号数据流。此代码专门用于控制驱动电路以及控制为控制算法提供反馈信号的电机控制相关外设。电机控制算法是独立于平台的代码,由Simulink生成,包含反馈和输出信号的数据结构。所有其它驱动代码均为手动编码。
图4. 代码分隔 实现细节
若要发挥MBD的最大效益,理解电机控制系统不同部分的建模详细要求并尽可能将关键物理系统参数与相应模型参数相匹配很重要。这包括将已建模的系统分隔为不同的详细部分。总体而言,以PWM平均值方式对整个系统建模就足够了。例如,在高频PWM开关周期中以平均值处理所有信号,并且在电压或电流信号中不包含PWM纹波或开关分量。
系统模型分隔至逻辑模块内,如图5所示(图中显示相关信号流)。每一个模块再进一步细分(如图中右侧所示),且每一个子模块采取适当的建模方法,如表1中所列。表中未列出用户命令模块。用户命令通过C语言代码内部的全局参数结构与内核算法通信;一旦它们在Simulink算法中定义为全局可调参数后,便可正确处理。
图5. 系统模型分隔
表1. 模型考虑因素
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)