网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月30日漏签0天
单片机吧 关注:212,969贴子:1,050,491
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 下一页 尾页
  • 21回复贴,共2页
  • ,跳到 页  
<<返回单片机吧
>0< 加载中...

编码器测速速值小范围跳变,tc264

  • 只看楼主
  • 收藏

  • 回复
  • 伴随一生
  • 中士
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
求问各位大佬,旋转光电编码器(一圈30个码道)测速数值一直跳变该如何既能少损失或提高精度又能测得稳定的速度值?给电机稳定供电4 v,加了递推滤波。
(编码器由于结构问题不容易更换,想从软件方面入手)
个人倾向于换一种滤波算法,但不知道哪种算法合适。#编码器# #测速# #TC264#


  • smarkfetish
  • 大校
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我觉得应该用两组形成正交编码器,不仅抗干扰还能知道正反。


2025-12-30 23:35:22
广告
不感兴趣
开通SVIP免广告
  • 伴随一生
  • 中士
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
后面接了转换电路,转换成了正交的,也可以判断正反,程序就是按正交写的,就是这个编码器精度太低了,速值老是跳变,想看看有没有什么算法能不损失现有精度的情况下得到稳定数值不能?


  • smarkfetish
  • 大校
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
嗷,我似乎明白了一点儿。你是用两次跳变的时间的倒数来算速度,这样跟单片机计数值关系很大了,两次跳变单片机计数器数几百个数,倒数做速度,那么跳变就有百分之一甚至更大。你完全可以多计算几次跳变,当计数值累积到几万再来算速度。
跳变次数/计数值=速度。


  • QuiGonHu
  • 中校
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
没有所谓的“高精度”编码器,也没有所谓的“绝对精准”,你从基本概念上就没搞清这个逻辑。
理论上,单片机反应的就是两次跳变之间的时间差。但这个时间差受很多因素影响。比如电机转速有没有抖动?比如编码器码道公差多大?齿牙与齿轮结合是否紧密、公差多大?甚至单片机使用的晶振性能如何?定时器精度如何?………………所有的这些点积累起来就会导致看起来电机是匀速运转,但实际测出来每一次定时器的值都不完全一致,这简直太正常不过了~~~
所以要对原始值做滤波!TC264单片机至少有两种外设可以用于轮速计算,一个是TIM,一个是CCU6。如果仅是想让数值变化得不那么剧烈,滤波算法简单做一下加权求平均即可。甚至采样数量都无需搞太多。个人经验,以TIM为例,5次相邻的采样值做一下平均,就可以让最终的角速度或者线速度看起来非常平滑了。
但凡事皆是双刃剑,输出结果看上去平滑,却意味着在极低速时的变化看起来非常不线性——程丑陋的阶梯状。这就要看你的需求有没有针对极低速的要求了。如果没有,那就这么用即可;如果有,就必须要做拟合曲线。而拟合曲线的算法,则要基于大量的实测,最终得出曲线公式。


  • 伴随一生
  • 中士
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
经过转换电路测出来波形是这样的,感觉很荒谬,


  • 伴随一生
  • 中士
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
代码在这,调用的逐飞已经封装好的库,最后一张是自己加的加权递推滤波






  • QuiGonHu
  • 中校
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
有几个问题,
先吐槽一下。
首先,代码格式写得跟狗屎一样!哪个老师这么教你的?你拿这种代码来我这里面试,我基本看都不看的。
其次,TC264的定时器功能很强大,甚至可以精细调整每一次的触发点。但显然你的水准只是能调用逐飞库。如果你不深入研究单片机的话,老实讲你面临的问题对你这种水平来说很可能是无解的。
接下来进入正题
首先,你采样的方式是轮询,但每次采样的时间点能保证周期一致吗?如何保证?如果不能保证,你计算角速度的时间单位是否和周期强相关?如果强相关,你怎么保证你每次计算速度的时基是一致的?
其次,撇开上面这个问题不谈,你目前的方式,每两次计算速度的原始值之间是不存在连续性的,那就意味着这两个原始值可能本来就差了很多。在一个急变速的工况下,计算出来的轮速变化天生就不连续!
再次,你这个波形是什么波形?是否等效于编码器的输出值?如果是,那你现在还到不了软件算法这一步,你得先把波形整齐了,至少要达到电机匀速运动下,出来的波形大概就相当于一个有固定占空比的PWM波形。
最后我想说,轮速在实际工程中是一个很基础但又非常关键且还不太好做的技术细节。这可以说是一个非常典型的需要熟悉硬件原理+单片机原理+一定的算法能力的技术点。我的意见是:交给更专业的人做比较好,或者说,做轮速的人,素质一定要相对高。


2025-12-30 23:29:22
广告
不感兴趣
开通SVIP免广告
  • 伴随一生
  • 中士
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
唉,挨骂了,不过佬确实骂的挺对的。基础确实拉垮的一批。这学期对因为对单片机比较感兴趣,就在网上东一榔头西一锤子找资料学的,就简单的学了一遍32操作寄存器,大致能用各种基本外设就上手了,基础确实不够牢靠,他们都说在实践中学的才快,然后就报了相关比赛边学边练。之前确实是只是简单的调库感觉能用就行,没太关注过底层。我会慢慢学的。
之前就用过霍尔编码器,也没遇到过光栅式的,更没遇到过这种电机与码盘靠三个齿轮啮合联动方式的。(联动照片在下面)
学校实验室已经贴封条锁门了,找的一个老示波器都不知道坏没坏,感觉波形都不对。
也有问其他人,有大佬说这个机械结构本来就很粗糙,能齿轮的直接的啮合就很松,信号不稳也正常。
总之,感谢佬的解答和教导了。实在抱歉我这垃圾一样的代码脏了大佬的眼。我会努力学习的。(完了,回复失败,佬不会是把拉黑了吧)



  • QuiGonHu
  • 中校
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
至少有两个方面,你是可以作为切入点的
第一个当然就是电路方面,你先把波形整对,去看看好的轮速信号波形是怎么回事,看看人家的电路是怎么设计的,这个可以说并不太难,但确实是个前提。不行你就换专门的霍尔传感器+齿盘。
第二个就是TC264的定时器原理,这个当然要在第一点做完的情况下才能进行,凡事都要有个先后顺序。学习定时器工作原理,学习定时器的功能,搞清楚利用定时器来算轮速的根本原理是怎样的。这个可以说也不难,难的是拿到初始值后面如何处理。
其实按我的看法,TC264这颗单片机是不太适合你们这些学生的,这颗单片机太难用,想精通一定要有深厚的基础,否则会发现到处都是坑。其次你们现在的学习方法就有问题,动不动就是库,库不提供的功能完全不懂,也完全不知道该怎么实现。还是前面说的那话,如果只是这种程度的话,你是做不了轮速的。因为最终的算法要基于原始数据,而原始数据的稳定可靠则要基于对于整个系统包括硬件和软件的理解程度。
我倒觉得最终是不是能做出成品,或者做出怎样的成品是其次,最重要的是你是否能在这个过程中了解到学习单片机甚至嵌入式系统该有的方法是怎样的。借用这次比赛,哪怕你只是将轮速这一个技术点搞透彻、搞明白,我觉得也是个了不起的成就了。


  • QuiGonHu
  • 中校
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你也别觉得我骂人不留情面,对于有希望的小兔崽子我才会骂骂,绝大多数那些臭鱼烂虾我根本是懒得搭理的~~~
我的看法仍然是先把波形整对,搞清楚为什么你的波形会这么差。以我的想法,你现在还远远没到要讨论机械联动的精度导致的数据不稳定。
单片机需要的波形我之前已经讲过了,就是等效一个有固定占空比(一般是50%)的PWM波形。波长随转速的变化而变化,但占空比保持基本稳定。绝对不是你这种乱七八糟的像噪音的脉冲信号。
你首先把传感器的原始信号整明白,然后再想办法转换成我说的这种波形。TC264的参考电平是3.3v,所以如果你路子对的话,肯定会涉及到削峰的。你按照这个思路去想,波形整对了再说其它的。


  • 伴随一生
  • 中士
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
嗯嗯,还是得感谢佬,本事不够就是本事不够,挨骂是应该的。就怕是没人骂,还没人指点方向。
今天白天就是一直在测波形,确实就是感觉波形不对才发出来问的。之前测霍尔编码器的波形。就是正常的方波最多就是占空比不同,一个周期内高低电平占比时间不同而已。从来没有出现过这样的杂波。图上蓝线部分是经过转换电路之后的波形,就上午测出来是这样的,下午再测的时候就类似于图上的黄线部分基本上就感觉全是高电平,就是有效值为三点二几v,然后峰峰值只有几十mv。也不敢确定到底是不是示波器的问题。今天白天我再测一测。之前确实有听同学说这个示波器有问题。
之前确实用其他示波器测过这个传感器直接输出的原始波形,测出来的是正弦波。然后问客服,客服说需要加转换电路将正弦波转为方波。客服给了电路图。我们组就是分软硬件儿嘛,然后我就把电路图给我们组负责硬件的同学了,确实没研究过那个电路图。今天白天我再研究一下那个电路图。


  • 伴随一生
  • 中士
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
为啥提示有佬回复帖子,但是点进去却找不到消息啊,是因为佬又删除信息了嘛?


  • 伴随一生
  • 中士
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
今天换了台示波器,确实是示波器坏了。今天编码器上的发光二极管又击穿了,我们忙了半天排查错误又改正错误。之前学32的时候,编码器测速的原理大概是搞懂了,要么就是测周法,要么就是测频法了,就是一个周期内的脉冲数。就是利用定时器的输入捕获计数器模式。捕捉脉冲的上升沿或者是下降沿,作为计数。然后如果是正交的话就是利用两个信号相位相差90度,再利用补码,然后能够测出正反转。但是一到tc264上就感觉挺迷的,比赛又限制必须得用tc系列的,今天又看了一下那个库函数,大致感觉能跟32上的对应上。
图1是编码器一路信号脚的原始信号,图2是同一个编码器两路信号脚经过转换电路输出的信号,图3是转换电路,图4,5是我用vofa无线串口显示出来的速度波形,图6,7是编码器电路。








2025-12-30 23:23:22
广告
不感兴趣
开通SVIP免广告
  • QuiGonHu
  • 中校
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你这是匀速状态下测的结果吗?角速度还是线速度?单位是什么?
如果这是匀速情况下测的速度值,且是角速度,这变化的有点大哦
你要做一件事,创建一个循环链表,把每一次中断触发后的定时器值都放进去,然后保持电机匀速旋转(电压稳定),再看表里的值相差大不大。
如果大,那就要检查方波是不是也是同样能检测出波长不停在变,如果是的,那就要解决这个问题,这就要从后往前推,方波是通过转换电路由正弦波转换的,那么方波和正弦波是否能对应的上?如果能,那就检查机械联动部分;如果不能,那就要排查转换电路了。
反过来,如果表里相邻的两个值相差并不大,5%甚至10%以下,那就要从算法方向入手,这就是纯算法有问题了。
你推导一遍这个过程后就会发现任何一个技术问题,都会牵扯前后一连串环节,任意一个环节有问题,都有可能造成最终结果大相径庭。作为工程师就要在整条逻辑链上一步一步查,要么从后往前,要么从前往后。掌握了排查方法,积累了经验,下一次再遇到类似的问题就知道该怎么查了。但所有这一切都有一个前提,就是一定要把原理——不管是软件的还是硬件的——吃透搞懂,否则就是无头苍蝇瞎忙活。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 21回复贴,共2页
  • ,跳到 页  
<<返回单片机吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示