FOC Circle_Limitation 磁链圆限制理解

本文介绍了FOC(磁场定向控制)流程中的Circle_Limitation模块,该模块用于限制磁链矢量不超过最大值。内容包括MAX_MODULE的确定,它是根据PWM占空比和采样时间计算得出;磁链限制原理,通过PID控制器后的调整确保Vd和Vq的合成电压矢量不超过单位圆;以及START_INDEX的计算,用于确定制表的起始位置,以优化开根号运算。文章还详细阐述了制表数据的生成过程。
摘要由CSDN通过智能技术生成

FOC流程图 Circle_Limitation所在位置


在这里插入图片描述

确定 MAX_MODULE 值

假设磁链圆的最大矢量值为1,但因FOC控制中需要设定PWM死区时间,以及PWM载波频率对AD采样时间的影响,使PWM占空比值最大不能达到100%,需要留出时间给ADC采样电机电流,所以矢量的最大值不能达到1。
因FOC中使用Q15格式处理小数,所以设定矢量为1时(PWM最大占空比100%) MAX_MODULE = 32767;若PWM占空比最大为97%,则MAX_MODULE = 0.97 × 32767;

磁链限制原理

Circle_Limitation函数在FOC流程框架图中,在PID控制器之后,而PID控制器是单独对Vd,Vq进行PID控制的,所以为了使Vd,Vq合成的电压矢量小于等于单位圆的边,即Vd² + Vq² ≤ MAX_MODULE²。

其原理公式如下,若Vd,Vq合成的矢量大于圆的最大矢量,则将其乘以一个缩放倍数i²,使其等于圆的最大矢量,i就是需要缩放的系数。
令 (vd² + vq² ) × i² = MAX_MODULE² ;
i = SQRT ( MAX_MODULE² / (vd² + vq²) );
STM32在计算开根号上比较费时,所以ST电机库中引入查表去查开根号值。

确定 START_INDEX值

因Vd与Vq都是int_16类型,其最大值为S16_MAX (32767)
所以需要限制的范围满足Vd² + Vq² > MAX_MODULE² 也就是 ( MAX_MODULE² + 1 )~ ( 2 × S16_MAX ² );
即需要制表的值i = SQRT ( MAX_MODULE² / ( MAX_MODULE² + 1) ~ MAX_MODULE² / ( 2 × S16_MAX ² ) );
而i = SQRT ( MAX_MODULE² / (0) ~ 1 ) 这段内容则不需要进行制表,所以需要定制一个制表的开头位置。

START_INDEX 是为了求出在全段范围内,不需要进行限制的个数。
设定 MAX_MODULE² / (0) ~ MAX_MODULE² / (2 × S16_MAX ²) 需要制定count个值,
则不需要限制范围个数 START_INDEX = (MAX_MODULE²) / (2 × S16_MAX ²) x count;

则制表需要数据个数 n = count - START_INDEX;

将制表的范围用MIN,MAX表示:
MIN = SQRT( MAX_MODULE² / ( MAX_MODULE² + 1 ) ) × Q15;
MAX = SQRT( MAX_MODULE² / ( 2 × S16_MAX ² ) ) × Q15;

则制表数组每个数值 i = MIN + (MAX - MIN)/n × x;

设定count = 128, 当PWM占空比最大为100%时, MAX_MODULE = 32767;
START_INDEX = 64;
n = 128 - 64 = 64;

则列出表为:

uint16_t Circle_limit_table[65] = {
    	32768, 32515 ,32268 ,
  • 9
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: ST Motor FOC库中的Circle Limitation功能是一种用于电机控制的功能。它主要用于限制电机运动范围,确保电机在特定内运动。这个功能的设计初衷是为了避免电机在运行过程中超出特定半径的范围,从而保护电机及其驱动系统。 使用Circle Limitation功能时,首先需要定义一个半径,表示电机在运动过程中所允许的最大范围。当电机开始运行时,控制算法会监测电机位置,并通过调整电机的控制信号来确保电机保持在定义的内。 具体而言,Circle Limitation功能通过控制电机的速度和加速度来达到限制电机运动范围的目的。一旦电机接近或超出了定义的半径,控制算法会减小电机的速度或加速度,使电机返回到内。这个过程是自动进行的,无需人为干预。 Circle Limitation功能在许多应用中都很有用,特别是在需要限制电机运动范围的场景下。比如在机器人控制中,当电机控制机器人的手臂或移动平台时,该功能可以确保机器人不会超出特定范围,从而防止机械部件的碰撞或损坏。 总之,ST Motor FOC库中的Circle Limitation功能是一种用于限制电机运动范围的控制功能,通过调整电机的控制信号来确保电机保持在定义的内,以保护电机及其驱动系统的安全运行。 ### 回答2: ST Motor FOC库中的Circle Limitation限制)功能是一种用于控制电机转动的特殊功能。限制功能主要用于保持电机在特定范围内旋转,避免超过设定的限制范围。 Circle Limitation功能通常在机器人、无人机和电动车等应用中使用。在这些应用中,电机通常需要在特定的路径或轨迹中移动,并且不能超出规定的形工作区域。 使用Circle Limitation功能,我们可以在代码中指定电机的工作区域的半径和中心坐标。电机控制系统将会监测电机的位置,一旦电机越过设定的工作区域,控制系统就会采取措施将电机强制限制在工作区域内。 Circle Limitation功能通过使用电机的位置反馈来实现。电机控制系统会持续测量电机的位置,并与设定的工作区域进行比较。如果电机的位置超出了工作区域,控制系统将会调整电机的速度和/或方向,确保电机继续在限制范围内运动。 使用Circle Limitation功能,我们可以有效地控制电机在预定的形区域内运动。这对于需要精确控制电机的应用非常重要,因为它可以防止电机超过规定的工作区域,从而保护设备和提供更稳定的性能。 总而言之,ST Motor FOC库中的Circle Limitation功能是一种用于控制电机旋转范围的特殊功能,可以保持电机在指定的工作区域内移动。它通过监测电机的位置并调整电机的速度和方向,以确保电机始终保持在限制范围内。 ### 回答3: ST Motor FOC库中的Circle Limitation功能是一种电机控制功能,旨在限制电机运行时的速度。它可以通过限制电机的速度范围来保护电机和驱动器。具体来说,Circle Limitation功能可以将电机的转速限制在一个设定的范围内,防止超过设定范围导致电机受损。 Circle Limitation功能的原理是通过对电机的电流控制,来限制电机的转速。当电机的转速接近或超过限制范围时,控制算法会自动调整电机的电流控制使其保持在限制范围内。这样一来,即使在高负载或者异常情况下,电机也能保持在安全的转速范围内。 通过Circle Limitation功能,用户可以设置电机的最大和最小转速限制,以满足特定应用的需求。当电机的运行速度超过最大转速限制时,系统将自动降低电机的输出电流,从而限制电机的转速。当电机的运行速度低于最小转速限制时,系统将自动增加电机的输出电流,以提供足够的扭矩将电机带动起来。 总结来说,Circle Limitation功能是ST Motor FOC库中的一项重要功能,可以提供对电机转速的限制和保护。它通过控制电机的电流,保持电机的转速在一个设定的范围内,避免了转速过高或过低对电机和驱动器的损坏。这项功能可以根据应用需求进行设置和调整,为电机的安全和稳定运行提供保障。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值