请选择 进入手机版 | 继续访问电脑版
查看: 1943|回复: 0

[分享] 基于RT1050的PMSM现场控制

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32003
    最后登录
    2024-4-9
    发表于 2020-9-1 17:17:20 | 显示全部楼层 |阅读模式
    基于RT1050的PMSM现场控制



    1引言

    本应用笔记介绍了传感器和无传感器速度和位置电机三相永磁控制软件同步电动机(PMSM),包括电动机参数识别算法,关于MIMXRT1050评估套件(EVK)基于恩智浦i.MX RT1050处理器。恩智浦自由板FRDM-MC-LVPMSM是用作PMSM控制的硬件平台参考解决方案。硬件相关的部分电机控制软件也可以解决,包括详细的外设设置和驱动程序说明。的电机参数辨识理论与方法本文档中还描述了算法。本文档的最后一部分介绍和解释电机控制所代表的用户界面应用程序调整(MCAT)页面基于FreeMASTER运行时调试工具。这些工具代表一种简单易用的电动机方式参数识别,算法调整,软件控制,调试和诊断
    FRDM-MC-LVPMSM开发平台的电源输入电压为24-48 VDC带有反极性保护电路。 创建5.5 VDC的辅助电源以提供FRDM MCU板。 输出电流高达5 A RMS。 逆变器本身是通过以下方式实现的三相桥式逆变器(6-MOSFET)和三相MOSFET栅极驱动器。 模拟量(例如三相电动机电流,直流母线电压和直流母线电流)在此板上感测到。还有一个用于速度和位置传感器的接口(编码器,霍尔)。 一个的框图完整的NXP Freedom电机控制开发套件如图1所示。
    1.png

    FRDM-MC-LVPMSM不需要复杂的设置。只需要连接所有信号通过导线从i.MX RT1050 EVK到FRDM-MC-LVPMSM。有关更多详细信息,请参见用户的
    指南。有关NXP Freedom开发平台的更多信息,请访问nxp.com/freedom。
    3 MCU功能和外设设置
    本章介绍外围设备设置和应用时序。 i.MX RT1050是新的处理器系列采用了恩智浦的ARM®Cortex®-M7内核的高级实现,以最高600 MHz的速度运行。该处理器配有一个512 KB的片上RAM存储器。四个Flex脉宽调制器(eFlexPWM)模块和两个12位16通道模数转换器转换器(ADC)使该器件成为高端多电机控制应用的理想选择。
    3.1 i.MX RT1050评估版
    MIMXRT1050 EVK板是一个旨在展示其最常用功能的平台。小型,低成本的i.MX RT1050处理器。 MIMXRT1050 EVK板是入门级开发板,可帮助您在投资之前熟悉处理器在更具体的设计中需要大量资源。 EVK板提供各种类型的内存,尤其是64 Mb Quad SPI闪存和512 Mb Hyper闪存。
    2.png

    最上面的信号显示eFlexPWM计数器(SM0计数器)。死区时间在PWM顶部和PWM底部信号。 SM0子模块在每个机会。
    •SM0生成触发器0(当计数器计数到等于TRIG4值的值时)。
    ADC_ETC(ADC外部触发控制),延迟约为Tdeatime / 2。这个延迟
    确保在接近100%的占空比下进行正确的电流采样。
    •ADC_ETC开始ADC转换。
    •ADC转换完成后,将输入ADC ISR(ADC中断)。中国之友
    计算在此中断中完成。
    3.1.2外围设备设置
    本节介绍用于电机控制的外围设备。在i.MX RT1050上,有三个来自增强型FlexPWM(eFlexPWM)的子模块,用于6通道PWM生成和两个12位ADC,用于相电流和DC总线电压测量。 eFlexPWM和ADC是通过eFlexPWM的子模块0进行同步。以下设置位于

    mcdrv_imxrt1050.c和board.c文件及其头文件中。

    3.1.2.1时钟控制模块(CCM)
    CCM生成并控制设计中各个模块的时钟,并管理
    低功耗模式。 该模块使用可用的时钟源生成时钟根。
    电机控制应用中使用的时钟源为:
    •PLL2,也称为系统PLL,频率为528 MHz。
    •PLL3,也称为USB1 PLL,频率为480 MHz。
    ARM时钟内核的工作频率为528 MHz,时钟源为PLL2。 对于此设置,设置了以下寄存器:CBCMR [PRE_PERIPH_CLK_SEL],CBCDR [PERIPH_CLK_SEL]和clock_config.c中的CBCDR [AHB_PODF]。 ADC,XBAR和PWM的时钟来自IPG_CLK_ROOT输出具有132 MHz的频率。 CBCDR [IPG_PODF]寄存器必须为此设置。 IPG_CLK_ROOT源自AHB_CLK_ROOT。 LPUART是来自PLL3的频率为480 MHz除以6。
    3.png

    表1列出了用于电机控制的外围设备的时钟源。
    4.png

    有关更多详细信息,请参阅《 i.MX RT1050参考手册》。
    3.1.2.2 PWM产生-PWM1
    •eFlexPWM的时钟源为132 MHz IPG_CLK_ROOT。
    •来自三个子模块的六个通道用于三相PWM生成。子模块0根据用户定义的宏,每n次机会在事件发生时生成主重新加载
    M1_FOC_FREQ_VS_PWM_FREQ。
    •子模块1和3从子模块0获得时钟。
    •子模块1和3上的计数器与来自子模块0(不使用子模块2)。
    •子模块0用于与ADC_ETC同步。子模块生成输出当计数器计数到VAL4时,在PWM重载后触发。
    •通过自动故障清除功能为子模块0、1和3的通道A和B启用了故障模式(故障输入返回零后,在第一次PWM重载时将重新启用PWM输出)。
    •PWM周期(频率)由计数器从INIT计数到计数所需的时间确定
    VAL1。默认情况下,INIT = -MODULO / 2 = -6600,VAL1 = MODULO / 2 -1 = 6599。eFlexPWM时钟为132 MHz,因此需要0.0001 s(10 kHz)。
    •启用了死区时间插入。停滞时间长度由用户在M1_PWM_DEADTIME宏。
    3.1.2.3 ADC外部触发控制— ADC_ETC
    ADC_ETC模块使多个用户可以在时分中共享ADC模块复用(TDM)方式。外部触发器可以从Cross BAR(XBAR)或其他资料来源。 ADC扫描通过ADC_ETC开始。
    •两个ADC都设置了自己的触发链。
    •触发链长度设置为2。启用背靠背ADC触发模式。
    •SyncMode已打开。在SyncMode中,ADC1和ADC2由相同的触发源控制。触发源是PWM子模块0。
    3.1.2.4模拟感应-ADC1和ADC2
    ADC1和ADC2用于电流和DC总线电压的MC模拟感测。
    •ADC1和ADC2的时钟频率为66 MHz。它取自IPG_CLK_ROOT和除以2。
    •ADC以10位工作,并选择了单端转换和硬件触发。的eFlexPWM生成的触发从ADC_ETC触发ADC。
    •转换完成中断使能,并服务于之后生成的FOC快速循环算法最后一次扫描由ADC1完成。

    3.1.2.5正交解码器模块-QD
    QD模块用于从编码器传感器感应位置和速度。
    •转换完成中断(用于最后一次生成的FOC快速循环算法扫描已在ADC1)上完成。
    •计数方向由用户在M1_POSPE_ENC_DIRECTION宏中设置。
    •模数计数和模数计数的上/下翻转/递增/递减旋转计数器已启用。
    3.1.2.6外围互连— XBARA1
    交叉开关用于将触发信号从PWM互连到ADC_ETC并连接编码器(连接到GPIO)到QD。
    •已连接FLEXPWM1_PWM1_OUT_TRIG0_1输出触发器(由子模块0生成)
    到ADC_ETC_XBAR0_TRIG0。
    •将编码器信号A相-IOMUX_XBAR_INOUT14输出分配给
    ENC1_PHASE_A_INPUT(在pinmux.c中将GPIO_AD_B0_00配置为XBAR1_INOUT14)。
    •将编码器信号B相-IOMUX_XBAR_INOUT15输出分配给
    ENC1_PHASE_B_INPUT(在pinmux.c中将GPIO_AD_B0_01配置为XBAR1_INOUT15)。


    3.1.2.7慢循环中断产生—TMR1
    QuadTimer模块TMR1用于生成慢循环中断。
    •QuadTimer TMR1由IPG CLK ROOT时钟除以16,因此TMR1的时钟频率是8.25 MHz。
    •慢循环通常比快循环慢十倍。 因此,产生了中断
    计数器从CNTR0 = 0到COMP1 = IPG CLK ROOT /(16U *速度环频率)后计数。速度环频率在M1_SPEED_LOOP_FREQ宏中设置,等于1000 Hz。
    •在重载事件中启用并生成了一个中断(服务于慢循环周期)。


    3.1.2.8 FreeMASTER通信-LPUART0
    LPUART0(低功耗通用异步接收器和发送器)用于
    MCU板与PC之间的FreeMASTER通信。
    •波特率设置为115200 bit / s。
    •接收器和发送器均已启用。
    •其他设置设为默认值。
    3.1.3 CPU负载和内存使用情况
    以下信息适用于使用IAR EmbeddedWorkbench®构建的演示应用程序IDE中的调试RAM和Release FLASH配置。 表2显示了内存使用情况和CPU加载。 内存使用量是从链接器.map文件(IAR IDE)计算得出的,包括2 KBFreeMASTER记录器缓冲区分配在RAM中。 使用SysTick计时器测量CPU负载。CPU负载取决于快速循环(FOC计算)和慢速循环(速度循环)的频率。在这种情况下,它适用于10 kHz的快速环路频率和1 kHz的慢速环路频率。 的使用以下等式计算CPU总负载:


    使用的字符是:
    签到签到
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-19 09:02 , Processed in 0.104525 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表