单电机无感FOC控制DEMO软件

项目名称:

6002_PMSM_STO_PLL_V0

控制器型号:

ET6039 (ARM Cortex-M7 内核)

电机型号:

42JSF6310AS-1000 (PMSM)

驱动板型号:

ATK-PD6010B

开发板型号:

ETTB-6039PV-V1

编译环境:

Keil MDK 5.36 (AC5/AC6), IAR EWARM

文档日期:

2026-05-12

一、电机参数

1.1 电气参数

参数名称

数值

说明

极对数 (Pole Pairs)

4

转子永磁体极对数

定子电阻 (Rs)

1.02 Ω

相电阻

定子电感 (Ls)

0.000590 H

对于表贴式 PMSM 等效于Lq

额定电流 (Nominal Current)

9532

内部控制单位 (s16A 格式)

最大转速

3000 RPM

机械转速上限

反电势常数

4.3 Vrms/kRPM

线电压有效值每千转

消磁电流 (Id_demag)

-9532

内部控制单位

电流单位换算公式:

实际电流(A) = (内部控制值 × ADC参考电压) / (65536 × 采样电阻 × 运放增益)

1.2 功率级参数

参数名称

数值

说明

额定母线电压

24 V

直流电源电压

PWM 频率

16000 Hz

空间矢量PWM载波频率

死区时间 (硬件)

100 ns

PWM 上下桥臂硬件死区

死区时间 (软件设置)

500 ns

软件插入的死区时间

电流采样拓扑

三电阻独立采样

三相各用一个采样电阻

采样电阻 (Rshunt)

0.020 Ω

相电流采样电阻值

运放增益 (Amplification Gain)

6.00

电流采样信号放大倍数

ADC 参考电压

3.30 V

模数转换器参考电压

母线电压分压比

0.0400

母线电压采样衰减系数

1.3 保护阈值

参数名称

数值

说明

过压保护阈值

60 V

母线电压超过此值触发保护

欠压保护阈值

12 V

母线电压低于此值触发保护

过温保护阈值

110 ℃

功率级温度上限

过温保护回差

10 ℃

温度回落至此差值后恢复

二、无感FOC基本控制原理

2.1 FOC (磁场定向控制) 总体架构

本项目实现的是基于**转子磁场定向**的矢量控制(FOC),采用 Id = 0 控制策略。整个控制系统采用**级联双闭环**结构:

  • 外环(速度环): PI 调节器,以 1000 Hz 频率运行于中频任务中。

  • 内环(电流环): Id/Iq 双 PI 调节器,以 16000 Hz (PWM 频率) 运行于高频任务中。

FOC 核心数学变换流程如下:

三相电流 Iabc
    │
    ▼
Clarke 变换 ──→ Iα, Iβ (两相静止坐标系)
    │
    ▼
Park 变换 ──→ Id, Iq (两相旋转坐标系)
    │
    ├── Id PI 控制器 ──→ Vd
    ├── Iq PI 控制器 ──→ Vq
    │
    ▼
电压圆限幅 (Circle Limitation) ──→ Vd', Vq'
    │
    ▼
逆 Park 变换 ──→ Vα, Vβ (两相静止坐标系)
    │
    ▼
SVPWM 调制 ──→ 三相 PWM 占空比

2.2 无感位置/速度估算:状态观测器 + 锁相环 (STO + PLL)

本项目不使用物理位置传感器(如霍尔、编码器),而是通过**龙伯格状态观测器 (Luenberger State Observer) + 锁相环 (PLL)** 的方法估算转子位置和速度。

基本原理:

1. 在 α-β 静止坐标系下,PMSM 的电压方程可写为:

    Vα = Rs·Iα + Ls·(dIα/dt) + Eα
    Vβ = Rs·Iβ + Ls·(dIβ/dt) + Eβ

   其中 Eα, Eβ 为反电势分量,包含了转子位置和速度信息:
    Eα = -ωe·ψf·sin(θe)
    Eβ =  ωe·ψf·cos(θe)

2. 龙伯格观测器以 Vαβ 和 Iαβ 为输入,实时估算反电势 Eα, Eβ。
   观测器的基本原理是比较实际电流与模型估算电流的误差,通过增益矩阵
   反馈修正,使估算值收敛到真实值。

3. PLL 从估算的反电势中提取转子电角度 (θe) 和电角速度 (ωe)。
   PLL 包含一个 PI 调节器和一个积分器,其控制目标是将 d 轴反电势
   分量调节到零(此时估算角度与真实角度对齐)。

观测器参数:

参数名称

数值

说明

F1 (缩放因子)

16384

观测器缩放因子1

F2 (缩放因子)

4096

观测器缩放因子2

GAIN1

-23248

观测器常数 C2

GAIN2

18225

观测器常数 C4

PLL_KP_GAIN

532

PLL 比例增益

PLL_KI_GAIN

23

PLL 积分增益

观测器最低有效转速

580 RPM

低于此转速观测器不收敛

BEMF 一致性容限

64

反电势幅值-速度一致性参数

速度 FIFO 深度 (DPP)

64

速度估算平均窗口大小

速度方差阈值

0.1%

速度估算可靠性判定阈值

2.3 启动策略:强制旋转启动

由于无感观测器在零速和低速下无法收敛,项目采用三段式**开环强制启动** 策略:

阶段

持续时间

目标转速

目标电流

说明

Phase 1 (对齐)

0 ms

0 RPM

0 mA

(跳过,未使用)

Phase 2 (加速)

700 ms

0 RPM

1429 mA

注入固定电流建立初始磁场

Phase 3 (加速)

350 ms

630 RPM

1668 mA

观测器从此阶段使能

Phase 4 (加速)

1150 ms

2700 RPM

1668 mA

快速加速至观测器有效范围

启动过程中使用**虚拟速度传感器**(开环角度发生器)提供转子角度信息, 当观测器收敛后,通过**过渡斜坡** 平滑切换至闭环 FOC 控制。切换过渡时间为 25 ms。

三、核心控制功能

3.1 任务调度

系统采用两级任务调度机制:

高频任务:
  • 运行频率: 16000 Hz (由 PWM 事件触发)

  • 功能: FOC 电流环 (Clarke → Park → PI 电流控制 → 圆形限幅 → 逆 Park → SVPWM)

  • 执行: 电流采样、Id/Iq PI 调节、观测器角度估算、SVPWM 输出

中频任务:
  • 运行频率: 1000 Hz (由 Systick 定时器触发)

  • 功能: 速度环 PI 调节、状态机管理、启动序列、观测器收敛判定

  • 执行: 速度平均计算、功率测量、状态转换

3.2 保护功能

系统在安全任务中周期性检测以下保护条件:

  • 过压保护: 母线电压 > 60V → 关闭 PWM 输出

  • 欠压保护: 母线电压 < 12V → 关闭 PWM 输出

  • 过温保护: 功率级温度 > 110℃ → 关闭 PWM 输出

  • 过流保护: 硬件过流检测 → 关闭 PWM 输出

  • FOC 执行超时: 电流环计算超出 PWM 周期 → 报错

  • 速度反馈故障: 连续 200 次速度测量错误 → 报错

  • 启动失败: 序列超时未完成 → 报错

四、EVB 板电机端口连接

4.1 PWM 输出端口 (6路 PWM — 连接驱动板电机口)

三相 PWM 由 ET6002 的 SRPWM 模块产生,使用三对互补输出通道:

信号名称

GPIO

引脚功能

说明

PWM_UH

GPIO28

SRPWM6_A

U 相上桥臂 PWM

PWM_UL

GPIO29

SRPWM6_B

U 相下桥臂 PWM

PWM_VH

GPIO14

SRPWM7_A

V 相上桥臂 PWM

PWM_VL

GPIO15

SRPWM7_B

V 相下桥臂 PWM

PWM_WH

GPIO8

SRPWM4_A

W 相上桥臂 PWM

PWM_WL

GPIO9

SRPWM4_B

W 相下桥臂 PWM

4.2 模拟采样端口 (连接驱动板电流/电压采样)

信号名称

ADC

通道说明

说明

I_U 采样

ADC0

ADC_AMPU_CHX

U 相电流 (经运放)

I_V 采样

ADC0

ADC_AMPV_CHX

V 相电流 (经运放)

I_W 采样

ADC0

ADC_AMPW_CHX

W 相电流 (经运放)

I_U 冗余

ADC2

ADC_AMPU_CHX_C

U 相电流 (冗余)

I_V 冗余

ADC2

ADC_AMPV_CHX_C

V 相电流 (冗余)

I_W 冗余

ADC2

ADC_AMPW_CHX_C

W 相电流 (冗余)

Vbus 采样

ADC1

ADC_VBUS_CHX

母线电压

温度采样

ADC0

ADC_VTEMP_CHX

功率级温度 (NTC)

4.3 控制端口

信号名称

GPIO

方向

说明

KEY1

GPIO13

输入 (低有效)

加速按键 (+300 RPM/次)

KEY2

GPIO12

输入 (低有效)

减速按键 (-300 RPM/次)

LED

GPIO34

输出

运行状态指示 (闪烁)

FLAG_A

GPIO0

输出

调试标志输出 A

FLAG_B

GPIO1

输出

调试标志输出 B

SHUTDOWN1

GPIO27

输出 (高)

驱动板使能 (高电平有效)

UART_TX

GPIO2

输出

串口通信发送 (115200bps)

UART_RX

GPIO25

输入

串口通信接收 (115200bps)

4.4 硬件连接说明

无感 FOC 运行只需将 ET6039 EVB 板上电机口通过排线与 ATK-PD6010B 驱动板 连接,并将驱动板与三相 PMSM 电机的 U-V-W 端口及直流电源正确连接即可。 硬件保护触发后,按下驱动板的 SW3ET_RST 可复位控制板。


PWM 信号死区由 SRPWM 硬件死区模块生成,上升沿死区 500ns, 下降沿死区 500ns。同时启用了同级互锁保护功能(PSTP),防止 上下桥臂同时导通。

五、速度调节方法

5.1 按键调节

系统主循环通过按键扫描实现速度调节:

按键

步进值

范围

KEY1

+300 RPM

0 → +600 → +900 → … → +3000 RPM

KEY2

-300 RPM

0 → -600 → -900 → … → -3000 RPM

  • 正值转速 = 逆时针旋转 (CCW),负值转速 = 顺时针旋转 (CW)

  • 首次按下 KEY1 从 0 → +600 RPM (跳过 +300)

  • 首次按下 KEY2 从 0 → -600 RPM (跳过 -300)

  • 转速达到 3000 或 -3000 后不再增加

  • 按键扫描周期: 100ms (与 LED 闪烁共用延时)

5.2 调试工具调节

可通过以下工具进行在线参数调节和数据监测:

  • Keil MDK Debug 模式: 通过 J-LINK 或 CMSIS-DAP 仿真器进行 在线调试,直接查看变量值和寄存器状态。

附录:技术术语表

术语

说明

PMSM

永磁同步电机 (Permanent Magnet Synchronous Motor)

FOC

磁场定向控制 (Field Oriented Control)

SVPWM

空间矢量脉宽调制 (Space Vector Pulse Width Modulation)

STO

状态观测器 (State Observer)

PLL

锁相环 (Phase Locked Loop)

Clarke 变换

三相静止 → 两相静止坐标变换

Park 变换

两相静止 → 两相旋转坐标变换

PI

比例-积分控制器

d-q 轴

旋转坐标系:d 轴对齐转子磁场,q 轴正交于 d 轴

α-β 轴

两相静止坐标系

BEMF

反电动势 (Back Electromotive Force)

PWM 周期

16 kHz → 62.5 μs

速度环周期

1 kHz → 1 ms

工程固件