找回密码
 立即注册
楼主: 王昱顺

高性能FOC | 32F12K54-FOC Lite V2 开源!经多天测试,稳定无异常==目前最高水平

  [复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:499
  • 最近打卡:2025-06-16 10:06:31
已绑定手机
已实名认证

112

主题

2391

回帖

6018

积分

版主

积分
6018
发表于 2025-4-25 08:26:38 | 显示全部楼层
haimin*** 发表于 2025-4-25 07:58
王工您好!我说的电机磁编码器电角度的最大分辨率只有10位,您程序中的磁编码器分辨率是14位的,这个怎么匹 ...

数据左移4位即可
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:141
  • 最近打卡:2025-06-16 10:12:22

0

主题

112

回帖

834

积分

高级会员

积分
834
发表于 2025-5-10 22:18:08 | 显示全部楼层
王工您好!我的板子驱动电机在开环模式下,电机可以启动运行就是速度比较低,若设置成速度模式,启动时电流比较大,而且转不起来,我的电机是自带磁编码器,编码器输出A、B、Z三个脉冲,电机每转一圈A、B分别输出256个脉冲,测脉冲分辨率为10位,换算成14位替换进程序中。不知道问题出在哪里了

点评

大概是没有进行零点校准的问题,上电需要额外再给z信号一次校准应该才能用  详情 回复 发表于 2025-5-11 00:09
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:499
  • 最近打卡:2025-06-16 10:06:31
已绑定手机
已实名认证

112

主题

2391

回帖

6018

积分

版主

积分
6018
发表于 2025-5-11 00:09:46 | 显示全部楼层
haimin*** 发表于 2025-5-10 22:18
王工您好!我的板子驱动电机在开环模式下,电机可以启动运行就是速度比较低,若设置成速度模式,启动时电流 ...

大概是没有进行零点校准的问题,上电需要额外再给z信号一次校准应该才能用
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:141
  • 最近打卡:2025-06-16 10:12:22

0

主题

112

回帖

834

积分

高级会员

积分
834
发表于 2025-5-11 14:37:27 | 显示全部楼层
王工您好!请问一下,电机在启动前转子的位置应该是未知的,到底距Z点有多少度也是未知的,是不是要电机在开环状态下旋转才能使转子对到Z点实现校准,是不是每次上电启动前都要进行一次按键零点校准

点评

是这样的,磁编码器上电就能知道位置,但是ABZ必须校准一次的  详情 回复 发表于 2025-5-12 07:36
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:499
  • 最近打卡:2025-06-16 10:06:31
已绑定手机
已实名认证

112

主题

2391

回帖

6018

积分

版主

积分
6018
发表于 2025-5-12 07:36:42 | 显示全部楼层
haimin*** 发表于 2025-5-11 14:37
王工您好!请问一下,电机在启动前转子的位置应该是未知的,到底距Z点有多少度也是未知的,是不是要电机在 ...

是这样的,磁编码器上电就能知道位置,但是ABZ必须校准一次的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:141
  • 最近打卡:2025-06-16 10:12:22

0

主题

112

回帖

834

积分

高级会员

积分
834
发表于 2025-5-12 18:38:20 | 显示全部楼层
王工您好!电机设定在开环模式下可以启动运行,速度比较慢但是比较平稳,再设置为速度模式时,上电检测正常有三声响,按件校准时电机有左右转动后停止在一个位置上,但是我按键启动时电机惯量很大,转子转动一下就停下来不转了,若再按按键电机现象同样结果,我把三相U、V、W对调也不行,把编码器的A、B对调也不行,不知道问题出在哪里了

点评

我的那个校准程序应该是不大适合你这个ABZ电机的 我给你一个思路啊,修改开环校准部分,找到Z信号后停下,然后将我那个偏移量清零,并且不要重启电机(因为重启后零点会不对) 后面按照极对数之类的正常映射过去就行  详情 回复 发表于 2025-5-12 18:42
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:499
  • 最近打卡:2025-06-16 10:06:31
已绑定手机
已实名认证

112

主题

2391

回帖

6018

积分

版主

积分
6018
发表于 2025-5-12 18:42:06 | 显示全部楼层
haimin*** 发表于 2025-5-12 18:38
王工您好!电机设定在开环模式下可以启动运行,速度比较慢但是比较平稳,再设置为速度模式时,上电检测正常 ...

我的那个校准程序应该是不大适合你这个ABZ电机的
我给你一个思路啊,修改开环校准部分,找到Z信号后停下,然后将我那个偏移量清零,并且不要重启电机(因为重启后零点会不对)
后面按照极对数之类的正常映射过去就行了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:141
  • 最近打卡:2025-06-16 10:12:22

0

主题

112

回帖

834

积分

高级会员

积分
834
发表于 2025-5-12 18:44:41 | 显示全部楼层
void abz_encoder(void)
{
    P2PU |= 0x40;
    P3PU |= 0x0c;
   
    if (((a_last == 0) && (ENCODER_A == 1))
        || ((a_last == 1) && (ENCODER_A == 0))
        || ((b_last == 0) && (ENCODER_B == 1))
        || ((b_last == 1) && (ENCODER_B == 0)))
        counter++;
   
    if ((z_last == 0) && (ENCODER_Z == 1))
        counter = 0;
   
    a_last = ENCODER_A;
    b_last = ENCODER_B;
    z_last = ENCODER_Z;
   
        _angle_this_dat = counter * 16;//(((Encoder_Data[0] << 8) | (Encoder_Data[1] & 0xfc)) >> 2);
        _angle_dangle = (_angle_this_dat - _angle_last_dat);
        if (_angle_dangle < -(Encode_bit_Max / 2))
        {
            _postion_add_dat++;
            __postion_add_dat++;
            _angle_dangle += Encode_bit_Max; // 过零处理
        }
        if (_angle_dangle > (Encode_bit_Max / 2))
        {
            _postion_add_dat--;
            __postion_add_dat--;
            _angle_dangle -= Encode_bit_Max;
        }
        if (fabs(postion_add) > 1 && Mode == Speed_Mode && Run_Flag)
        {
            moto.set_postion += (long)postion_add;
            postion_add -= (long)postion_add; // 自减整数部分
        }
        // 圈数累计,可以累计正负2^31圈
        _angle_last_dat = _angle_this_dat;
}

// 环控标志位
void Timer1_Isr(void) interrupt TMR1_VECTOR // 38us中断一次
{
        //Start_Read_Encoder();          // 启动一次SPI编码器读取,同步跟随输出控制
    abz_encoder();
        Output_Loop_Clk_Flag = 1; // 启动输出同步标志
        if (Mode == Postion_Mode || Mode == Set_ID_Mode || Mode == Speed_Mode || Mode == Servo_Mode)
                Postion_Loop_Clk_Flag = 1;
}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:141
  • 最近打卡:2025-06-16 10:12:22

0

主题

112

回帖

834

积分

高级会员

积分
834
发表于 2025-5-12 18:51:18 | 显示全部楼层
这个是我修改的增量型编码器函数,您看看是哪里出错了,我通过串口看了一下,电机开环旋转时数值在增加,基本上与14位编码数值相当

点评

如果基本正常那就是零点没对好 也就是说起始计数点应该和z对齐一下 可以着重修改这部分  详情 回复 发表于 2025-5-12 19:16
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:141
  • 最近打卡:2025-06-16 10:12:22

0

主题

112

回帖

834

积分

高级会员

积分
834
发表于 2025-5-12 18:55:15 | 显示全部楼层
我的电机转子是4对极,我也把您的7对极也改成4对极了
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-17 04:10 , Processed in 0.213143 second(s), 96 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表