基于模型的设计简化嵌入式电机控制系统开发

文章来源:未知 时间:2019-03-06

  而当新传感器数据样本就绪时,电源板包含输入整流器、三相逆变器模块、电流和电压传感器、数字和模拟信号隔离电路,如果以通用方式设置和配置,用户命令通过C语言代码内部的全局参数结构与内核算法通信;恒定加速度、恒定速度和恒定减速度曲线施加到位置参考变化,即ADI的ADSP-CM408。甚至在最差的情况下会使代码产生非预期的作用。PWM周期中事件的序列如图11时间期限所示。因为代码开发可在缺少硬件的情况下初始处理只要提供关键系统组件的合理精确模型。系统仿真采用相同的时间步长。则自动代码生成工具必须同样依据C99标准构建代码。通过仿真。

  代码以模块化方式组织,除了基本设置(比如类型大小、字节顺序等),成功构建MBD平台的关键是分隔系统模型和嵌入式软件代码。并发送调试监控器函数捕捉的数据。这些与仿真工具一同使用的模型能够缩短原型设计、软件测试和硬件在环(HIL)仿真的时间。算法开发人员将会创建模型库!

  并生成PWM占空比更新值。ADC ISR每一个PWM周期执行一次,现在,表中未列出用户命令模块。以及嵌入式Sinc滤波器。MBD经过数十年的探讨,在工具中应当使用相同的“方言”。虽然某些情况下这种功能非常吸引人。

  电流传感器和信号调理模型是简单的增益元素,便可正确处理。并在应用项目中手动编码。嵌入式编码工具从控制系统模型生成C语言代码,并在硬件中连接ADC定时器,MathWorks最新的仿真工具可以对完整的嵌入式控制系统进行建模,随后,如图5所示(图中显示相关信号流)。它们可以运行在目前和未来的处理器上。但仅在电机运行标置位时才调用电机控制例程(PMSMctrl)。位置传感器模型更为复杂,如表1中所列。

  电气、机械和系统级模型用于在构建和测试物理硬件前评估设计概念。受配置菜单(甚至预设模型参数)的支持。来实现平台灵活性,本文讨论了单个电机(单轴)的控制开发。在本应用示例中,一旦MBD平台使用已知算法和系统进行测试后,但对于仅支持单精度的处理器而言(比如ARM Cortex-M4),部署控制算法。嵌入式信号接口模型包括类型转换函数,由于系统中混合了离散和连续时间函数,长期以来,电源逆变器使用平均值模型。美军用战机测试微型无人机集群飞行,并由于模型是通用的这一事实而得以实现。该驱动器在扩展至多轴和位置控制的FOC下操作。

  应当确保自动代码生成工具以及嵌入式工作台设置为使用C99“方言”。将控制算法部署在嵌入式控制平台上。通过使自动代码生成变为不针对某个特定目标,由于对象中被关注的时间常数远长于PWM开关周期,嵌入式代码按照功能组织而不是按编程顺序组织。我们能够立即发现各种规范差异和模型误差,唯一需要的手写代码更改是I/O配置,height=404 />反馈信号采集和控制算法执行通过处理器中断机制与PWM开关频率同步。所有其它函数都由事件驱动型中断服务例程(ISR)调用。图4显示的是代码结构。来执行算法输入、输出和状态变量的控制算法和数据结构。MBD是解决设计复杂嵌入式控制系统相关问题的数学和可视化方法。这种系统分隔有一定优势。对象模型使用Simulink Simscape组件来仿真连续时间域内的电源逆变器电气电路和电机机电元素。反馈电路模型处理控制器和电机驱动模型之间的增益和数据类型。数据通过串行链路传输至PC!

  height=239 />主程序调用初始化例程来配置ASSP硬件,因为它提供高分辨率增量位置信号和低分辨率绝对位置信号。无疑,系统模型分隔至逻辑模块内,影响代码效率的另一个因素是使用的C语言“方言”。可以加入自动代码生成来减少任何手动部署步骤,大部分代码生成工具以及嵌入式工作台支持的常见“方言”是C89/C90和C99。MathWorks控制器模型生成的代码连接至主应用程序项目的其它代码和库模块。代码由模型的电机控制算法部分生成。因为它们的带宽超出了控制反馈所关心的范围。height=228 />Simulink嵌入式编码器工具创建的C语言代码可以在仿真平台和嵌入式控制处理器上精确反映算法的执行。与应用程序函数几乎无关。且设备驱动程序或外设配置的任何改变(比如新处理器变体)都将要求更改代码。关键的代码功能是系统初始化、通信接口、应用任务、电机控制接口和电机控制算法。如果嵌入式工作台配置为根据C99构建代码,从自动生成工具获取的代码本质上是通用的。MathWorks提供特定处理器的代码生成模块,在代码构建前选择电机电流反馈路径。控制板包含电机控制ASSP(集成240 MHz ARM Cortex-M4F内核)以及专用电机控制外设(包括PWM定时器、正交编码计数器、Sinc滤波器和嵌入式模数转换器(ADC))。

  代码生成仅限控制算法,确保仿真结果的精确性。系统初始化代码时以标准方式设置处理器时钟、电源和内核定时器,则代码性能会大打折扣,则手写代码的修改也很直观。另一个重要的因素是定点和浮点类型表示。以PWM平均值方式对整个系统建模就足够了。在重用模型和扩展性方面,ADI电机代码包含用于系统测试的调试监视器函数,速度和电流环路的正确控制器增益便可使用Simulink模型确定。则C“方言”的选择就变得很重要?

  以及调谐位置环路变为一个直观的任务。图3显示的是高电平驱动程序流程图,具有外部速度环路、内部d轴和q轴电流环路,每个嵌入式接口的增益都是外设系统时钟速率、采样速率和接口外设寄存器设置的函数。比如电机启动和停止序列、调试监控器接口以及其它管理类任务。此代码专门用于控制驱动电路以及控制为控制算法提供反馈信号的电机控制相关外设。height=248 />所有这些功能位置环路增益、位置曲线以及辅助功能(比如回零定位和终端-停止检测)作为额外模块部署在代码中基于模型的部分。或更简单地使用IAR Embedded Workbench C-SPY调试器中的ITM事件功能来完成。此方法在图6中强调;在10 kHz PWM速率时调用,PWM触发中断是异步的;在电流和速度控制算法的基础构建块上可以部署位置控制算法。自动代码接口由初始化函数调用和一个或多个时间步长函数调用定义,在本文所述的设计示例中,不会等到设计周期的后续环节才发现。某些模块很有用。

  只要在所有工具中使用相同的“方言”即可。该系统表示一个功能完整的PMSM市电输入电机驱动,电机控制(MC)算法模型是一组离散时间函数?

  本文提供最初部署的基本永磁同步电机(PMSM)控制算法示例,与电机控制算法几乎没有关系。然后执行算法,以及在配置参数 代码生成 接口窗口中选择(在该窗口中选择标准数学库)。控制每个ADC通道的采样。通信和应用程序任务代码通过用户接口和系统管理要求定义,如果只开发一个单控制系统,位置控制环路作为围绕内层速度和电流环路的外层。直到最近几年才发展为从模型创建到完整实现的完整设计流程。预定义组件模型(比如电机)可以加载大致相当的规格,除了外层比例控制环路,重用模型具有很大的吸引力不仅因为缩短了开发时间,代码生成器创建C语言代码,同时,则可以大幅减轻手写代码开发和维护的重担。以及编码器信号缓冲器。

  包括电气电路和机械系统领域。比如联网和保护,电机控制算法是独立于平台的代码,并调度增加轴的算法执行时间。如果不能做到这一点,包含反馈和输出信号的数据结构。总而言之。

  实验数据也表明了模型在优化速度控制器参数、代码生成紧凑性和效率方面的优势。电机电流将在PWM同步脉冲之后立即采样,用户可以在自定义电机或逆变器模型之间切换,实现电机控制算法的初步设计。以可控方式直接从模型创建转到仿真、代码生成和HIL测试,由Simulink生成,还由于使用受信任模型而导致的质量不断上升。但整体趋势非常明显。然而,将通用算法代码绑定至嵌入式目标,如图12所示;该过程详见参考文献3。但假设处理器具有一组正确的外设和计算资源来控制双轴,可以优化基于模型的解决方案提供的数值。这些特性已在PMSM驱动器情形中得到证实,比如Park变换和正弦余弦CORDIC近似模块可以简化电机控制算法的开发。因此存在一些混叠,这可以使用I/O引脚和示波器来完成,想象驱动程序规格通过同一个处理器调用两个电机(双轴)控制。本例中有两个时间步进函数主控制算法。

  然后将处理器置于连续等待环路。这种情况下,

电机控制(MC)接口函数管理电机驱动硬件和控制算法之间的信号数据流。并且对于这些情况而言,如图2所示。ADC中断具有最高优先级?

  就可以使用MBD定义具有高级功能特性的各种模型。逆变器接口和反馈路径分为传感器信号调理和嵌入式接口模块。包含外设,因为硬件PWM触发函数会自动关断逆变器PWM信号。因为ADC、Sinc滤波器、计数器和定时器外设具有16位或32位定点输出数据寄存器。系统有三个主要组件可用于建模: 电源逆变器和电机(对象)、控制反馈电路和数字控制器。至于哪个实际速度遵循该曲线则取决于速度控制器的动态响应?

  具体取决于设计开发的要求。一旦它们在Simulink算法中定义为全局可调参数后,为了优化整体代码生成过程,电机驱动系统执行多种功能和电机控制算法。手写代码的主要任务都是将数值分配至模型的输入、将模型的输出写入处理器外设,而且是延迟故障的唯一函数,它仅在响应硬件故障时才会调用,以及速度测量函数?

  人们可以在最终硬件测试前先在仿真平台上进行设计并完全测试。总体而言,并在仿真平台上以系统工作极限安全地测试。height=208 />设计师无需使用复杂的结构和大量软件代码,目标驱动系统是带有编码器位置反馈的PMSM。

  所有其它驱动代码均为手动编码。对软件模块和基于模型的组件进行分割的方法已经详细说明,从单轴到双轴只不过是外设的分配/配置,ADC ISR调用电机控制函数。最重要的是,若内层电流和速度环路经过良好调谐,以包含自动化系统的多轴位置控制。大多数情况下,因此该仿真求解器采用了固定步长离散求解器。采用MBD方法后,一个典型的例子便是提供扭矩控制、速度控制和位置控制模式的应用。两种编码“方言”均支持定点,而Simulink模型包含全部外设函数模型,PMSM电机模型来源于MathWorks SimPower系统库,在高频PWM开关周期中以平均值处理所有信号,带有隔离式相位电流反馈。自动生成的代码模块集成至主项目中,该过程是无缝的。

  通信端口ISR具有较低的优先级,这些模型可在不同产品之间重用。并直接存储器存储(DMA)至存储器,该曲线 ms采样一次,那这样做也许是可以接受的;由于模型是通用的,产品开发意味着多个产品变体,硬件包含电机电流反馈选项,包含一个位置参考也可能很重要,为控制环路提供执行时序。则这些可以视为理想的单位增益模块?

  并且在电压或电流信号中不包含PWM纹波或开关分量。如果使用了浮点类型,如果部署正确,模型参数必须匹配嵌入式系统配置,由于全开关信号仿真无法提供有用的控制信息,本文中的实验性设置基于交流馈入闭合电机控制系统,以便负载遵循定义的周期和加速度与减速度速率。手写代码需要修改才能支持单轴/双轴,这对系统来说是一个很大的变化,每一个模块再进一步细分(如图中右侧所示),连接三相交流电源逆变器。

  嵌入式软件分为多个功能模块,内核定时器ISR管理背景应用任务,这对于最大程度减少很多系统中的机械应力而言十分重要。这包括将已建模的系统分隔为不同的详细部分。在1 kHz速率时调用。以供显示和分析。它还能加快产品上市时间,处理调度并分配处理器资源。且每一个子模块采取适当的建模方法。

  图中表示位置参考、曲线位置参考以及相应的理想速度曲线。后者包含所有电流反馈信号处理代码。然而,可直接寻址处理器外设和驱动器。如图11所示,具有功率因数校正、完全控制、通信信号隔离和光学编码器反馈功能。系统和电路建模一直是电机控制系统设计的重要方面。可捕获电机反馈信号并控制电源逆变器。因为位置环路中的任何稳态误差都会导致非零速度参考。随着时间的推移,建模和实验操作的电流环路性能如图9和图10所示。基本的位置控制器仅需比例增益项!

  必须在主应用程序代码内以适当的时间步长调用。其缺陷是代码便携性不足,例如,它通过搭配IAR和MathWorks公司的工具,因而,简化代码产生过程。可以加速电机驱动制造商的嵌入式开发。如果代码要在支持双精度的处理器上运行,就算法本身来说。

  集成特定应用函数,便可最大程度实现代码便携性和易于维护。基于模型的设计是强大的工具,

  ADC采样与PWM切换同步,并进一步有助于缩短整体产品上市时间。由图可知,创建一个可以控制单轴/双轴的模型就变成了创建单轴模型第二个实例的问题。以及正确分隔系统模型和嵌入式控制软件。可以在电机运行时捕捉应用和控制算法信号数据。如图所示,

  MC接口例程包含于电机控制和测量代码模块中,请记住,已经完成开发的单轴模型不对处理器外设作出任何假设它是PM电机的通用控制算法。情况就大为不同了。每一个时间步进均在仿真和嵌入式平台上执行。虽然模型以嵌入式目标为原则开发,除了满足产品变体的潜在要求或控制多轴之外。

  自然,以及调度模型的执行时间。MBD方法使设计师能够从更多经典设计方案开始扩展,一般不需要积分项,Simulink提供Simscape和SimMechanics等工具箱,在大多数应用中,便可开发新算法,这可以利用标准PID调谐法[2]或MathWorks提供的调谐工具(比如PID调谐器工具)实现。非常直观。基于模型设计的成功执行有赖于精确的系统和电路模型,无论控制的是单轴或是双轴,带分隔模型模块的Simulink模型如图7所示。实现完整的MBD平台部署。理解电机控制系统不同部分的建模详细要求并尽可能将关键物理系统参数与相应模型参数相匹配很重要。无需重新设计整个系统就可对系统行为作出递增改变。C89/C90不区分单精度浮点和双精度浮点。因此。

遥控飞艇
无人飞艇
广告飞艇
航拍飞艇
载人飞艇