ZHCUBZ5A September   2021  – April 2024

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2电机控制理论
    1. 2.1 PMSM 的数学模型和 FOC 结构
    2. 2.2 PM 同步电机的磁场定向控制
    3. 2.3 PM 同步电机的无传感器控制
      1. 2.3.1 具有锁相环的增强型滑模观测器
        1. 2.3.1.1 PMSM 的 ESMO 设计
        2. 2.3.1.2 使用 PLL 的转子位置和转速估算
    4. 2.4 电机驱动器的硬件必要条件
      1. 2.4.1 电机相电压反馈
    5. 2.5 额外的控制特性
      1. 2.5.1 弱磁 (FW) 和每安培最大扭矩 (MTPA) 控制
      2. 2.5.2 快速启动
  6. 3在 TI 硬件套件上运行通用实验
    1. 3.1 受支持的 TI 电机评估套件
    2. 3.2 硬件电路板设置
      1. 3.2.1  LAUNCHXL-F280025C 设置
      2. 3.2.2  LAUNCHXL-F280039C 设置
      3. 3.2.3  LAUNCHXL-F2800137 设置
      4. 3.2.4  TMDSCNCD280025C 设置
      5. 3.2.5  TMDSCNCD280039C 设置
      6. 3.2.6  TMDSCNCD2800137 设置
      7. 3.2.7  TMDSADAP180TO100 设置
      8. 3.2.8  DRV8329AEVM 设置
      9. 3.2.9  BOOSTXL-DRV8323RH 设置
      10. 3.2.10 BOOSTXL-DRV8323RS 设置
      11. 3.2.11 DRV8353RS-EVM 设置
      12. 3.2.12 BOOSTXL-3PHGANINV 设置
      13. 3.2.13 DRV8316REVM 设置
      14. 3.2.14 TMDSHVMTRINSPIN 设置
      15.      34
      16.      35
    3. 3.3 实验软件实现
      1. 3.3.1 导入和配置工程
      2.      38
      3.      39
      4. 3.3.2 实验工程结构
      5. 3.3.3 实验软件概述
    4. 3.4 监控反馈或控制变量
      1. 3.4.1 使用 DATALOG 函数
      2. 3.4.2 使用 PWMDAC 函数
      3. 3.4.3 使用外部 DAC 板
    5. 3.5 使用不同的构建级别循序渐进地运行工程
      1. 3.5.1 级别 1 增量构建
        1. 3.5.1.1 构建和加载工程
        2. 3.5.1.2 设置调试环境窗口
        3. 3.5.1.3 运行代码
      2. 3.5.2 级别 2 增量构建
        1. 3.5.2.1 构建和加载工程
        2. 3.5.2.2 设置调试环境窗口
        3. 3.5.2.3 运行代码
      3. 3.5.3 级别 3 增量构建
        1. 3.5.3.1 构建和加载工程
        2. 3.5.3.2 设置调试环境窗口
        3. 3.5.3.3 运行代码
      4. 3.5.4 级别 4 增量构建
        1. 3.5.4.1 构建和加载工程
        2. 3.5.4.2 设置调试环境窗口
        3. 3.5.4.3 运行代码
  7. 4构建定制板
    1. 4.1 构建新的定制板
      1. 4.1.1 硬件设置
      2. 4.1.2 将参考代码迁移到定制电路板
        1. 4.1.2.1 设置硬件板参数
        2. 4.1.2.2 修改电机控制参数
        3. 4.1.2.3 更改引脚分配
        4. 4.1.2.4 配置 PWM 模块
        5. 4.1.2.5 配置 ADC 模块
        6. 4.1.2.6 配置 CMPSS 模块
        7. 4.1.2.7 配置故障保护函数
      3. 4.1.3 向电机控制工程中添加附加功能
        1. 4.1.3.1 添加按钮功能
        2. 4.1.3.2 添加电位器读取功能
        3. 4.1.3.3 添加 CAN 功能
    2. 4.2 支持新的 BLDC 电机驱动器板
    3. 4.3 将参考代码移植到新的 C2000 MCU
  8.   A 附录 A. 电机控制参数
  9.   参考资料
  10.   修订历史记录

添加按钮功能

在按下按钮时,读取按钮以使电机运行、停止或只是更改全局变量的状态通常很有用。例如,用户可将 GPIO23 连接到用以启动/停止电机的按钮。为此,请在工程构建属性中启用预定义符号 CMD_SWITCH_EN,如图 3-19 所示。GPIO 状态将分配给 motorVars_M1.flagEnableRunAndIdentify。详细步骤如下。

  1. hal.h 文件中定义 GPIO 编号
    #define MTR1_CMD_SWITCH_GPIO    23
  2. hal.c 文件的 HAL_setupGpios() 函数中配置 GPIO,以允许该引脚作为输入。
    // GPIO23->Command Switch Button
    GPIO_setPinConfig(GPIO_23_GPIO23);
    GPIO_setDirectionMode(23, GPIO_DIR_MODE_IN);
    GPIO_setPadConfig(23, GPIO_PIN_TYPE_PULLUP);
    GPIO_setQualificationMode(23, GPIO_QUAL_3SAMPLE);
    GPIO_setQualificationPeriod(23, 4);
  3. motor_common.c 文件中的 updateCmdSwitch() 中使用数字过滤器读取 GPIO,如下所示。
    if(GPIO_readPin(MTR1_CMD_SWITCH_GPIO) == 0)
    {
    	objMtr->cmdSwtich.lowTimeCnt++;
    
    	if(objMtr->cmdSwtich.lowTimeCnt > objMtr->cmdSwtich.delayTimeSet)
    	{
    		objMtr->cmdSwtich.flagCmdRun = true;
    	}
    
    	if(objMtr->cmdSwtich.highTimeCnt > 0)
    	{
    		objMtr->cmdSwtich.highTimeCnt--;
    	}
    }
    else
    {
    	objMtr->cmdSwtich.highTimeCnt++;
    
    	if(objMtr->cmdSwtich.highTimeCnt > objMtr->cmdSwtich.delayTimeSet)
    	{
    		objMtr->cmdSwtich.flagCmdRun = false;
    	}
    
    	if(objMtr->cmdSwtich.lowTimeCnt > 0)
    	{
    		objMtr->cmdSwtich.lowTimeCnt--;
    	}
    }
  4. 将状态关联到 motor_common.c 文件的 updateCmdSwitch() 中的电机启动/停止变量。
    if((objMtr->cmdSwtich.flagEnablCmd == true) && (objMtr->faultMtrUse.all == 0))
    {
    	objMtr->flagEnableRunAndIdentify = objMtr->cmdSwtich.flagCmdRun;
    }