FOC学习-----编码器初始定位为什么使用-90°

硬件平台:灯哥FOC学习套件

例程代码:

void Check_Sensor(void)
{
	SetPhaseVoltage(3, 0, _3PI_2);
	delay_ms(3000);
	zero_electric_Angle = electricAngle();
	SetPhaseVoltage(0, 0, _3PI_2);
	delay_ms(500);
}

主要问题:

在进行编码器初始化时,设定角度为270°,iq为3,id为0。而不是使用设定角度为0°,iq为3,id为0。

解答如下:

在进行电机控制的时候一般将转子位置和0度重合,进行转子定位。

为什么需要定位?由于无刷电机起始位置未知,如果直接使用FOC算法进行控制,例如当转子位置位于125°的时候,程序认为此时为0度,从而会产生一个90°的电流,让电机逆时针进行旋转,此时电机就会一直反转下去。

定位方式,主要就是实现将转子定位到0度上,产生一个0°的电流。根据foc的算法主要就是生成一个Ualpha=a,Ubeta=0的一个电流,通过反clack变换就可以得到对应Uq,Ud,角度。也就是这个设定的值其实是可以变化的,但是一般常用的都是角度为270°,Iq=a,id=0。

本问题出现的原因是由于将FOC中clack变换使用的角度和最后实际电机角度混为一谈,导致的问题。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值