FOC 控制
FOC 简介
FOC(Field-Oriented Control),直译是磁场定向控制,也被称作矢量控制(VC,Vector Control),是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最优方法之一。
FOC旨在通过精确地控制磁场大小与方向,使得电机的运动转矩平稳、噪声小、效率高,并且具有高速的动态响应。
简单来说,FOC是一种对无刷电机的磁场定向控制以此来驱动转子的控制方法
FOC 流程框架
1.速度环+电流环
2.位置环+速度环+电流环
3.位置环+电流环
低速时,速度反馈误差大;去掉了速度环,这里的位置环使用完整的PID控制,即把微分项加上
4.FOC 最小系统
矢量控制系统包括实时电流的采集、clarke 变换、park 变换、SVPWM 、实时角度反馈和计算以及电流环和速度环等。
满足最小条件的矢量控制运行,可以不加速度环,只实现电流环,当电流环调试成功之后,再加速度环,以及后期的位置环。
最小的FOC系统的功能模块
- ADC电流采样
- 坐标变换与SVPWM
- 位置估计——霍尔、编码器或者状态观测器
- 电流环PI控制
ADC 采样
ADC 模块用于电流的采样,因为要根据合成矢量所在扇区,灵活的配置采样通道与采样点,所以ADC 通常配置为注入通道模式,它可以打断规则通道的采样,优先采集注入通道。
以常用芯片意法半导体的 STM32 为例,ADC 的触发模式常常设置为 PWM 定时器的 CH4 触发,再根据桥臂的打开状态,配合电流的上升和稳定时间,准确的计算采样点的时刻,进行有效的采样
坐标变换——基变换
坐标变换就是坐标系之间的转换,即基变换
Clarke变换
将固定坐标系
Park变换
将固定直角坐标
转换可以采用全浮点实现,也可以采用标幺化(归一化)处理
SVPWM
空间矢量脉冲,
该策略就是扇区判断,这样仅仅需要最近的2个基矢量来表达
配合占空比,即零矢量,通过三个PWM信号可以调制出(功率范围内)任意长度的矢量
要完成一个周期的旋转,使得MOS开关次数最少以及减少谐波噪声,就要设计好切换顺序(五步法和七步法)
SVPWM 的实现一般涉及到硬件 PWM 模块的配置,矢量合成扇区的判以及作用时间的计算等,常采用 STM32 的两个高级定时器 TIM1 和 TIM8 实现。
电流环PI控制
FOC控制中主要用到三个PID环,从内环到外环依次是:电流环、速度环、位置环
通过电流反馈来控制电机电流(扭矩) -> 然后通过控制扭矩来控制电机的转速 -> 再通过控制电机的转速控制电机位置。
内环不需要用到微分参数,PI控制器
调试过程
完成以上模块基本上可以实现一个 FOC 的最小控制系统,当然为了调试方便,可以配置 DAC 功能、USART 功能、CAN 功能等等。
由简到繁、由内到外、循序渐进的过程。以有感霍尔传感器为例:
-
根据板子的晶振合理配置系统时钟,确保嘀嗒定时器按约定频率运行;
-
按原理图设置配置对应的电流采样ADC通道,在规则通道的基础上加入三个注入通道,并考虑初始电流偏置的影响!合理配置ADC中断函数,测试ADC中断的响应频率是否符合预期;
-
配置高级定时器,输出互补对称的方波,加入死区,改变占空比,示波器查看输出是否合理。测量H桥驱动芯片的输出级是否能快速响应输入级的变化,且波形是否符合预期;配合H桥驱动,给定几个固定占空比,比如25%、50%、75%等,万用表测量H桥输出是否是电源电压的1/4、1/2、3/4;
-
配置霍尔传感器接口定时器,手动拨动电机一圈,在有效停止的位置上看程序是否有中断响应,测试程序响应到的霍尔状态是否按正序或逆序排列;
-
配置DAC功能,主要用于调试电角度和采样电流;
-
编写FOC核心算法,包括Clarke变换、park变换、SVPWM算法等;比较关键的环节是SVPWM,可以先打开ADC的中断,在中断中执行FOC的核心算法,此时,可以先给定一个
,角度先手动累加,如果电机能稳定的旋转起来,那么SVPWM算法应该是正确的; -
电机旋转起来之后,可以开始测试霍尔电角度的积分算法是否正确;这个时候可以使用DAC输出电角度,用示波器观察电角度曲线是否是一条平滑上升或下降的直线,如果台阶明显,那么很可能是同步电角度没有测量正确,或者是积分计算错误;
-
电角度正确之后,可以将电流采样送到DAC输出,测试ADC采样电流是否是正弦函数,这一步间接验证了ADC采样点的配置是否正常;之后测试电流环响应是否够快,是否震荡等;
-
加上速度环,测试速度响应曲线;速度的计算一般放到嘀嗒定时器中,速度计算的频率一定要高于速度环的频率,否则调速会不正常;
-
如果有位置环,在确保以上功能正常后再测试位置环。
完成以上步骤基本上已经写出了一套属于自己的FOC矢量控制算法,也算是真正的迈进了矢量控制的大门
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)