作者:Dara O’Sullivan、Jens Sorensen、Aengus Murray,ADI公司
本文描述了围绕基于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)。 在代码构建前选择电机电流反馈路径。
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变换和正弦余弦CORDIC近似模块可以简化电机控制算法的开发。
自动代码接口由初始化函数调用和一个或多个时间步长函数调用定义,必须在主应用程序代码内以适当的时间步长调用。 本例中有两个时间步进函数——主控制算法,在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. 代码执行时间期限
就代码尺寸而言,算法自动代码的相对尺寸如表2所示;可以看出,自动生成的代码仅占据略大于10 kb的存储器,约为总尺寸的15%。 ADSP-CM408的可用SRAM为384 kB,显然可以轻松支持该存储器要求,允许程序以最高速率从SRAM运行,并提供足够多的裕量用于更复杂的算法和其它监控或用户接口功能。
新应用程序开发
本文所讨论的软件假设为含有两个主要组件的系统。 第一个是基于模型的组件,部署控制算法。 虽然模型以嵌入式目标为原则开发,从自动生成工具获取的代码本质上是通用的。 第二个是手写软件组件,将通用算法代码绑定至嵌入式目标,处理调度并分配处理器资源。 在重用模型和扩展性方面,这种系统分隔有一定优势。
本文讨论了单个电机(单轴)的控制开发。 现在,想象驱动程序规格通过同一个处理器调用两个电机(双轴)控制。 无疑,这对系统来说是一个很大的变化,但采用通用模型进行工作的优势也得以凸显。 已经完成开发的单轴模型不对处理器外设作出任何假设——它是PM电机的通用控制算法。 因而,创建一个可以控制单轴/双轴的模型就变成了创建单轴模型第二个实例的问题。
自然,手写代码需要修改才能支持单轴/双轴,但假设处理器具有一组正确的外设和计算资源来控制双轴,则手写代码的修改也很直观。 无论控制的是单轴或是双轴,手写代码的主要任务都是将数值分配至模型的输入、将模型的输出写入处理器外设,以及调度模型的执行时间。 因此,从单轴到双轴只不过是外设的分配/配置,并调度增加轴的算法执行时间。 该过程是无缝的,并由于模型是通用的这一事实而得以实现。
如果只开发一个单控制系统,那么使用基于模型的设计优势有限。 然而,大多数情况下,产品开发意味着多个产品变体,并且对于这些情况而言,重用模型具有很大的吸引力——不仅因为缩短了开发时间,还由于使用受信任模型而导致的质量不断上升。 随着时间的推移,算法开发人员将会创建模型库;如果部署正确,这些模型可在不同产品之间重用。 由于模型是通用的,它们可以运行在目前和未来的处理器上。
除了满足产品变体的潜在要求或控制多轴之外,开发人员有时候还能提供不同的控制器模式。 一个典型的例子便是提供扭矩控制、速度控制和位置控制模式的应用。 在电流和速度控制算法的基础构建块上可以部署位置控制算法。
在大多数应用中,位置控制环路作为围绕内层速度和电流环路的外层。 基本的位置控制器仅需比例增益项。 一般不需要积分项,因为位置环路中的任何稳态误差都会导致非零速度参考。 若内层电流和速度环路经过良好调谐,则这些可以视为理想的单位增益模块,以及调谐位置环路变为一个直观的任务。
除了外层比例控制环路,包含一个位置参考也可能很重要,以便负载遵循定义的周期和加速度与减速度速率。 这对于最大程度减少很多系统中的机械应力而言十分重要。 在本应用示例中,恒定加速度、恒定速度和恒定减速度曲线施加到位置参考变化, 如图12所示;图中表示位置参考、曲线位置参考以及相应的理想速度曲线。 至于哪个实际速度遵循该曲线则取决于速度控制器的动态响应。
图12. 位置参考曲线
所有这些功能——位置环路增益、位置曲线以及辅助功能(比如回零定位和终端-停止检测)作为额外模块部署在代码中基于模型的部分。 唯一需要的手写代码更改是I/O配置,以支持家庭位置和终端-停止信号。
结论
基于模型的设计是强大的工具,可以加速电机驱动制造商的嵌入式开发。 如果以通用方式设置和配置,则可以大幅减轻手写代码开发和维护的重担。 它还能加快产品上市时间,因为代码开发可在缺少硬件的情况下初始处理——只要提供关键系统组件的合理精确模型。
这些特性已在PMSM驱动器情形中得到证实,该驱动器在扩展至多轴和位置控制的FOC下操作。 对软件模块和基于模型的组件进行分割的方法已经详细说明,可以优化基于模型的解决方案提供的数值。 实验数据也表明了模型在优化速度控制器参数、代码生成紧凑性和效率方面的优势。
上一篇:解析意法半导体的电机驱动生态系统
下一篇:3相无刷电机驱动器用于通用电动工具的演示
推荐阅读最新更新时间:2024-03-30 21:57
合泰触控稳步增长,瞄准医疗、电机控制及32位单片机
合泰半导体“2013新品发表会”成功举办,众多专业观众积极参与,共同回顾去年的成绩,展望未来的市场发展,并分享优质新品和解决方案。活动现场展示目前市场热门的应用解决方案,包括:移动电源、报警烟感器、家电触控、节能风扇、3D眼镜、LED 模块、电磁炉、金融卡读卡器、便携医疗方案、32Bit应用方案等,配合精彩演讲和现场专业解说,使来宾充分感受到合泰在产品开发与市场的紧密结合协同发展,与会观众收获颇多。
触控稳步增长
合泰半导体蔡荣宗先生在合泰“2013新品发表会”上表示,公司今年的营运目标为38亿台币,相比去年的35.6亿,有所增长,主要成长地区为中国大陆,其中华南占5成以上,合泰非常看好中国大陆的市场前景。
合泰半
[单片机]
电机控制与驱动,卷出新高度
过去一年,半导体市场经历了前所未有的下行冲击。展望未来一年,越来越多机构和行业人士预测市场即将回暖。要说今年哪个领域最卷?那一定是电机驱动。 全球行业趋势显示,预计市场对电机驱动的运动控制系统的需求将显著增长。国际能源署(IEA)报告显示,工业用能占全球总能耗的37%,占全球二氧化碳排放量的24%,建筑和楼宇用能占全球总能耗的30%,占全球二氧化碳排放量的28%,能源消耗中的很大一部分与电机相关。据估算,约70%的工业电力用于为电机供电。在商业楼宇中,38%的电能消耗用于驱动电机。 而电机不止在工业中,在新能源汽车甚至消费电子等领域正得到更多的应用,从更好用的电吹风,到更舒适的电动汽车,无数新体验都是由电机创新所带来的。快速增
[半导体设计/制造]
S32M2出道:跟上“中国速度”,将恩智浦12v电机控制方案带入软件定义汽车时代
众所周知或不知,恩智浦汽车业务能力很强,占营收的50%以上,汽车处理器占是其中的支柱,2022年恩智浦被TechInsights和StrategyAnalytics评为年度汽车处理器领域的市场领先企业。 这位汽车业务的领跑者,最近推出了软件定义汽车边缘节点专用电机控制解决方案S32M2系列产品,一款将高压模拟功能与嵌入式MCU集成在一起的12v电机控制集成解决方案。 S32M2起源:基于成熟的12V电机控制S12 MagniV系列 S32M2虽是恩智浦新发布系列,但它源自恩智浦成熟的产品线,就是恩智浦支持12v电机控制领域的S12 MagniV系列,此产品线可追溯于飞思卡尔时代,新品S32M2充分融合了恩智浦在电机控制领
[焦点新闻]
51单片机的步进电机控制,正转反转等
步进电机应用广泛, 例如打印机、磁盘驱动器、玩具、汽车雨刷、手机震动、机械夹具、刻录机等各种机械控制场合 一些概念: 拍数N 定子控制绕组每改变一次通电方式,即为一拍 一个磁场通电周期是 A-B-C-D-A 完成一个磁场周期性变化所需脉冲数, 也指电机转过一个齿距角所需脉冲数,用N表示 拍数又等于相数的1倍或2倍, 以四相电机为例, 有4相4拍, A-B-C-D-A... 4相8拍, A-AB-B-BC-C-CD-D-DA-A... 齿距角θz 一个通电循环周期(比如4拍)转子转过一个齿距角 齿距角又等于360除以转子齿数Z, θz=360/Z 步距角θs 步距角,即在没有减速齿轮的情况下,对于一个脉冲信号,转子所转过的机械角度.
[单片机]
基于旋转变压器的电机控制设计
如今,在科技的浪潮下,机械设备的智能化发展已经成为一种必然趋势,这使得高能效的电机控制设计面临着严峻的挑战。与此同时,随着电子产品精细化发展趋势显著,能够在体积和成本双重受限的状况下,还能保持长期运行且安全可靠的电机控制设计更是难上加难。 为了缩短客户的研发时间,减轻客户的研发难度,瑞萨电子推出了使用旋转变压器的电机控制方案,该方案提供了具有旋转变压器位置控制功能的步进电机设计和可选的BLDC电机设计,集成了一个带内置旋转变压器的马达、MCU、旋转变压器、数字转换器、电机驱动器,以及用于电机和控制电路的电源IC,不仅具有极高的性能,而且高集成度和紧凑的设计,也可使其应用于体积受限的应用中。 系统框图 MCU选型 本方案采用
[嵌入式]
基于LabVIEW的步进电机控制
步进电机是一种将电脉冲信号转换成角位移或线位移的机电元件。它在在工业自动化控制、数控机床、机器人等领域有着广泛的应用。在远程实验系统中,经常有需要利用步进电机对一些旋钮、位置等进行自动调节。本文设计了基于虚拟仪器技术的步进电机控制方案。该方案采用虚拟仪器控制步进电机,编程简单,界面友好,易于更改程序功能,控制灵活性得到了提高。 1 步进电机工作原理 步进电机按其力矩产生原理可以分为反应式、永磁式和混合式几种。本文采用的是反应式二相四线步进电机,定子有两个线圈绕组,设其中一个线圈绕组为A相,另一个线圈绕组为B相。当给A相绕组通电时,该绕组即产生磁场,转子齿与A相绕组各齿对齐;当给B相绕组通电时,转子齿将与B相绕组各齿对
[嵌入式]
基于单片机的步进电机控制系统设计
单片机实现的步进电机控制系统具有成本低、使用灵活的特点,广泛应用于数控机床、机器人,定量进给、工业自动控制以及各种可控的有定位要求的机械工具等应用领域。步进电机是数字控制电机,将脉冲信号转换成角位移,电机的转速、停止的位置取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,非超载状态下,根据上述线性关系,再加上步进电机只有周期性误差而无累积误差,因此步进电机适用于单片机控制。步进电机通过输入脉冲信号进行控制,即电机的总转动角度由输入脉冲总数决定,而电机的转速由脉冲信号频率决定。步进电机的驱动电路是根据单片机产生的控制信号进行工作。因此,单片机通过向步进电机驱动电路发送控制信号就能实现对步进电机的控制。 1 系统设计原理
[工业控制]
基于TMS320F2812无刷直流电机控制系统设计
1 引言 众所周期,无刷直流电机既具有交流电机简单,运行可靠,维护方便等优点,又具有直流电机运行效率高,不受机械换向限制,调速性能好,易于做到大容量、高转速等特点。TI公司的TMS320F2812数字信号处理器(DSP)既具有高速信号处理和数字功能所需的体系结构。还具有专为电机控制应用提供单片解决方案所需的外围设备。以TMS320F2812为核心的全数字电机控制系统极大地简化了硬件设计,提高了系统的可靠性,降低了成本,并对无刷直流电机的普及应用具有良好的前景。为此,提出了一种基于TMS320F2812的全数字永磁无刷直流电机控制方案。 2 系统设计方案 该系统设计采用三相Y型永磁方波无刷电机PWM控制方案,通电方式
[嵌入式]