用于驱动 PMSM 电机各相的正弦电流

Microchip 的应用笔记 AN1017 讲述了一种使用空间矢量调制(Space Vector Modulation,SVM)方法产生用于驱动 PMSM 电机各相的正弦电流,以此驱动具有霍尔位置传感器的永磁同步电机(Permanent Magnet Synchronous Motor,PMSM)的控制算法,其配套的开源算法采用 dsPIC® 数字信号控制器实现,此前在淘宝购入了一块基于 STM32 的无刷直流电机开发板,于是试着将该开源代码移植至手上这块开发板上。开发板如下图所示: 

  • 中断服务程序一览表

    中断 何时调用 执行操作
    TIM1 20kHz 根据当前位置使用 SVM 产生正弦波
    TIM2 1kHz 电机堵转保护,执行 PID 控制
    TIM3 霍尔信号跳变 计算转子位置,确定转子机械方向,实现正弦波指针与转子位置的同步
    DMA1 54.9kHz 读取来自电位器的新转速给定值

    其中定时器3被配置为“接口定时器”,捕获/比较通道1对每一次霍尔信号的跳变进行捕获,捕获值为电机转过60°电角度的时间,以此计算转速;捕获/比较通道2被配置为对其中一路霍尔反馈信号的下降沿进行捕获,即电机每转过180°电角度判定一次运转方向,避免在霍尔信号跳变的临界区域对运转方向判定带来干扰。

  • PID 算法 
    速度环 PID 算法采用 CMSIS DSP Software Library 中提供的 Q15 格式 PID 算法,查阅其资料可知该算法同 AN1017 所述,从常规 PID 形式改进至类滤波器 PID 实现形式,算法如下:

    Algorithm: 
    y[n] = y[n-1] + A0 * x[n] + A1 * x[n-1] + A2 * x[n-2] 
    A0 = Kp + Ki + Kd 
    A1 = (-Kp ) - (2 * Kd ) 
    A2 = Kd

    在此,对该算法进行推导,由 PID 算法的定义有: 
    y[n] = Kp * x[n] + Ki * (x[n] + x[n-1] + … ) + Kd * (x[n] - x[n-1])

    y[n-1] = Kp * x[n-1] + Ki * (x[n-1] + x[n-2] + … ) + Kd * (x[n-1] - x[n-2])

    两式相减: 
    y[n] - y[n-1] = Kp * (x[n] - x[n-1]) + Ki * x[n] + Kd * (x[n] - x[n-1] - x[n-1] + x[n-2]

    则原式得证: 
    y[n] = y[n-1] + (Kp + Ki + Kd) * x[n] + (-Kp - 2 * Kd) * x[n-1] + Kd * x[n-2]

  • 按键操作说明 
    FUN 键作为运行与停止的控制,UP 键作为转速给定方向的切换。

  • 实测波形 
    正弦电流的产生依赖于对转子位置的估测,现将程序中变量 Phase 通过 DA 输出,用示波器测量电机运转在1000 RPM 时的波形如下: 
    这里写图片描述 
    通过霍尔传感器对电机线电流进行观测,电机运转在1000 RPM 时的电流波形如下: 
    这里写图片描述 
    电机运转在4000 RPM 时的电流波形如下: 
    这里写图片描述

用户喜欢...

三相无刷PMSM 支持所有电机控制解决方案的快速开发系统

The FlexMC Motor Control Development PlatformTM是支持所有电机控制解决方案的快速开发系统。 FlexMC KitTM通过基于模型的强大设计工具帮助您加快产品上市并提高性能。 ADI/Boston Engineering解决方案集硬件、...


PMSM通过HALL元件进行磁场定向

电机工厂在安装编码器时需要将转子磁场与编码器相对位置进行定位,以90机械空间进行分析....


Diodes 公司的三相半桥闸极驱动器简化 BLDC 与 PMSM 的马达驱动

Diodes 公司推出了DGD2136,这是一款完全整合的三相闸极驱动器 IC 芯片,用来在半桥配置中驱动 N 信道 MOSFET 或 IGBT。浮...


英飞凌PMSM电机控制系统的解决方案

永磁同步电机PMSM的特性决定了控制系统的复杂性,较为常见的PMSM电机控制系统主要由驱动器、主控制器(逻辑控制板...


基于Zynq的PMSM驱动控制系统设计

本文介绍了基于ZynqSoC的PMSM驱动控制系统,该控制系统使用ARM和FPGA相结合的形式实现了高性能、高集成度的控制算法。本系统中FPGA部分实现了计算并行度高、计算性能要求高的PMSM电流环矢量...


借力多核MCU/编码器 PMSM助工业机器人精准位移

永磁同步马达(PMSM)通常用于高效能、低功耗的马达驱动。高效能马达控制的特征为可在整个速度范围内平稳旋转,零速度时有完全的扭矩(Torque)控制,且能达到快速加速和减速。为了达到上述...


Freescale KEA128 32位MCU CAN和马达控制方案

Freescale公司的Kinetis EA系列MCU是基于ARM的可升级低功耗的32位MCU,采用高达48MHz ARM Cortex-M0+内核,具有单周期32位X32位的乘...


[原创] Fairchild FNA41560三相马达驱动解决方案

Fairchild公司的FNA41560/FNA41560B2是Motion SPM 45模块,内置了600V/15A三相IGBT以优化栅极驱动和最小化EMI和损耗,具有多种保护如...


[原创] Fairchild FNA21012A SPM工业马达驱动参考设计

Fairchild公司的FNA21012A是Motion SPM 2模块,提供用于交流马达,BLDC和永磁马达(PMSM)的全特性高性能的1200V/10A三相反相输出级...


[原创] NXP MPC5643L 32位MCU开发和三相BLDC/PMSM低压电源参考设计

NXP公司的MPC5643L系列是基于32位Power Architecture的系统级芯片(SoC),采用高性能e200z4d双内核,工作频率高达120MHz,具有可变长...


[原创] NXP MPC5643L 32位MCU开发和三相BLDC/PMSM低压电源参考设计

MPC5643L系列微控制器是基于Power Architecture技术的系统级芯片,其增强特性适合用在嵌入式应用之中,包含数字信号处理...


智能小车马达控制方案——S12ZVML-MINIBRD板卡评测

有幸参展2015年上海慕尼黑电子展的朋友应该都有印象,今年三大热门领域主要表现在智能可穿戴设备、智能家居以及...


基于参数识别的PMSM无位置传感器矢量控制

永磁同步电机无传感器矢量控制系统中,需要实现对转子位置及转速的估计。由于电机运行过程中电机参数会发生变...


C2000+DRV8301 三相无刷/PMSM 高电流电机控制解决方案

此参考设计展示了适用于采用 C2000™ Piccolo™ 微控制器和 DRV8301 三相电机驱动器的旋转三相无刷直流 (BLDC) 和无刷交流 (BLAC)(通常称为永磁同步 (PMSM))电机的电机控制解决方案。...


飞思卡尔 MTRCKTSPNZVM128 3 相无传感器 PMSM 套件

飞思卡尔 MTRCKTSPNZVM128 3 相无传感器 PMSM 电机控制开发套件适用于控制 PMSM 电机(例如 HVAC 或电泵)的无传感器应用。它可以用于对电机控制应用快速建模、评估,无需等待最终的硬件设计。套...


矢量控制广泛应用于永磁同步电动机(PMSM)的控制

矢量控制(FOC)是空间矢量脉宽调制最重要的应用之一。矢量控制,又名磁场定向控制,其特点是通过坐标变换技术把交流电机定子电流分解为转矩和磁通分量,从而实现像直流电机一样的控制电...