星辰大海不退缩 发表于 2025-2-28 14:27

FOC算法详解之SVPWM视频教程

FOC( Field Oriented Control ),磁场定向控制,又称磁场矢量控制。
目前是无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最佳选择
特点:通过精确地控制磁场大小与方向,使得电机的运动转矩平稳、噪声小、效率高,并且具有高速的动态响应。
FOC 的核心思想是将三相交流电机的控制转换为对应的直流电机控制。具体来说,FOC 通过以下步骤实现:
测量电机的转子位置和相电流。
将三相电流转换为两相固定坐标系(d-q坐标系)的电流分量。
根据转子位置信息,将d-q坐标系的电流分量转换为与转子磁场垂直的分量(转矩分量)和与转子磁场平行的分量(磁通分量)。
独立控制转矩分量和磁通分量,从而实现电机的精准控制。


通过网盘分享的文件:FOC算法详解之SVPWM
链接: https://pan.baidu.com/s/1dNjrxcZRKNniSu0PCNoXmQ
提取码: **** Hidden Message *****



磨砂 发表于 2025-5-8 09:25

在FOC算法中,SVPWM是一种高效的电机控制技术

晓伍 发表于 2025-5-8 11:35

SVPWM通过逆变器的开关状态组合,生成逼近圆形的旋转磁场,从而控制电机的转矩和速度

八层楼 发表于 2025-5-8 14:06

如果想要实现SVPWM,那么首先要进行扇区判断

观海 发表于 2025-5-8 16:33

相比SPWM,SVPWM的直流电压利用率提高15%

guanjiaer 发表于 2025-5-8 19:11

SVPWM通过对称插入零矢量,减少PWM谐波,改善电机运行平稳性

heimaojingzhang 发表于 2025-5-8 21:41

SVPWM具有动态响应快的优势。它可以直接控制电压矢量,适合高性能电机控制场景

keaibukelian 发表于 2025-5-9 09:18

void setPhaseVoltage(float Uq, float Ud, float angle_el) {
    int sector = (angle_el / _PI_3) + 1; // 扇区判断
    float T1 = _SQRT3 * _sin(sector * _PI_3 - angle_el) * Uq / driver.voltage_limit;
    float T2 = _SQRT3 * _sin(angle_el - (sector - 1) * _PI_3) * Uq / driver.voltage_limit;
    float T0 = 1 - T1 - T2; // 零矢量作用时间

    float Ta, Tb, Tc;
    switch (sector) {
      case 1:
            Ta = T1 + T2 + T0 / 2;
            Tb = T2 + T0 / 2;
            Tc = T0 / 2;
            break;
      // 其他扇区类似处理...
    }
    // 更新PWM占空比
    driver.setPwm(Ta, Tb, Tc);
}


paotangsan 发表于 2025-5-9 11:42

实际电路中需设置死区时间,防止上下桥臂直通导致短路

renzheshengui 发表于 2025-5-9 14:13

当目标矢量超出范围时,需进行饱和处理

wowu 发表于 2025-5-9 16:42

其核心在于扇区判断、作用时间计算和占空比分配,结合FOC算法可显著提升电机的动态性能和能效

xing0011 发表于 2025-5-10 23:31

1111

hjq451506709 发表于 2025-5-11 00:03

不错,谢谢分享

qq670300923 发表于 2025-6-23 10:13

不错,谢谢分享

Sprinkle0611 发表于 2025-7-10 09:46

谢谢分享
页: [1]
查看完整版本: FOC算法详解之SVPWM视频教程