OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3451|回复: 11

单轴云台霍尔角度传感器算法

[复制链接]

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2020-7-20 13:01:58 | 显示全部楼层 |阅读模式
100金钱
最近研究了一下单轴云台. 用的是两个线性霍尔传感器 互为 90度 放置.以返回马达的角度位置.
使用的公式 是 ATAN2,在传感器贴片时,由于结构上的偏差,导致工作不正常.无法正常返回正确的位置.
如果物理上放置位置是对的情况,各功能可以正常工作.有没有软件可以纠正这个偏差.有经验的朋友可以指点一下吗?
使用数据前,有用到求取平均值的方法,简单的滤波.
算法如下:


void Task_Get_Motor_Pos_Info(void)
{
    ADCdataAnorm = (ADCConvertedValue.hall_x -eeprom.hall_min[0])/eeprom.hall_adc_mid[0] - 1;
    ADCdataBnorm = (ADCConvertedValue.hall_y -eeprom.hall_min[1])/eeprom.hall_adc_mid[1] - 1;
   
  
   
   if(ADCdataAnorm > 1)
   {
     ADCdataAnorm = 1;
   }
   else
   if(ADCdataAnorm < -1)
   {
     ADCdataAnorm = -1;
   }
  
   
   if(ADCdataBnorm > 1)
   {
     ADCdataBnorm = 1;
   }
   else
   if(ADCdataBnorm < -1)
   {
     ADCdataBnorm = -1;
   }
  
   
   ADC_Angle = atan2(ADCdataBnorm,ADCdataAnorm)*180.0/PI;
   
   ADC_Angle += 180;
   
   ADC_Angle = 65535.0 - ADC_Angle *( 65535.0/360.0);
  
         motor_pos   =  ADC_Angle ;
        

}

最佳答案

查看完整内容[请看2#楼]

终于 自己搞定了..遇到问题多思考.一定会找到正确的解决办法的.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
 楼主| 发表于 2020-7-20 13:01:59 | 显示全部楼层
终于 自己搞定了..遇到问题多思考.一定会找到正确的解决办法的.
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
 楼主| 发表于 2020-7-20 13:09:16 | 显示全部楼层
前不久有一个朋友,告诉我,可以把马达转动一周,分成2048个点,保存起来. 那问题又来了,如何快速从这2048个点中找到当前位置呢?
应该不是简单的用一个FOR循环吧. 是不是 太慢了..计算位置慢了.马达转起来会卡.
回复

使用道具 举报

6

主题

412

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2722
金钱
2722
注册时间
2019-8-14
在线时间
415 小时
发表于 2020-7-20 20:19:29 | 显示全部楼层
帮顶~~
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
 楼主| 发表于 2020-7-20 21:20:31 | 显示全部楼层

谢谢,现在发现主要影响是 磁铁安装时,与板子之间的平行度 超过公差时,容易出问题.得到的信号不对称.算法出错.马达不能正常旋转了.
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-7-21 02:01:42 | 显示全部楼层
只能帮顶啊
回复

使用道具 举报

2

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
484
金钱
484
注册时间
2014-9-5
在线时间
179 小时
发表于 2020-7-22 22:00:45 | 显示全部楼层
本帖最后由 Elmo 于 2020-7-23 09:49 编辑

......
回复

使用道具 举报

2

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
484
金钱
484
注册时间
2014-9-5
在线时间
179 小时
发表于 2020-7-22 22:03:00 | 显示全部楼层
也想搞霍尔反馈角度来控制三相无刷,硬件还没搭好
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
 楼主| 发表于 2020-7-23 18:18:03 | 显示全部楼层
Elmo 发表于 2020-7-22 22:03
也想搞霍尔反馈角度来控制三相无刷,硬件还没搭好

加油
第一次做 类似的项目,坑比较多.
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-7-25 02:35:39 | 显示全部楼层
操作系统 发表于 2020-7-24 10:36
终于 自己搞定了..遇到问题多思考.一定会找到正确的解决办法的.

坚持就是胜利啊
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

12

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2015-3-23
在线时间
27 小时
发表于 2020-8-18 12:04:22 | 显示全部楼层
给vd一个固定值,控制电角度转一圈,测量每个电角度与检测到的霍尔角度偏差然后建一个偏差表
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
 楼主| 发表于 2020-8-18 13:55:04 | 显示全部楼层
zhangyh89 发表于 2020-8-18 12:04
给vd一个固定值,控制电角度转一圈,测量每个电角度与检测到的霍尔角度偏差然后建一个偏差表

果然有高手出来了..我就是这么干的.
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 20:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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