电机应用开发-编码器的使用

编码器

增量式编码器倍频技术

增量式编码器输出的常见脉冲波形信号形式:

占空比为50%的方波,通道A和通道B相位差为90°。

正弦波的模拟信号,通道A和通道B相位差为90°。

对于占空比为50%的方波,通道A和通道B相位差为90°。先以下图为例子。

如果只在某一通道的上升沿计数,则计数频率 = 该通道频率。

如果在某一通道的上升沿和下降沿都计数,则计数频率 = 该通道频率 * 2,即2倍频。

如果在双通道的上升沿和下降沿都计数,则计数频率 = 该通道频率 * 4,即4倍频。

因此,至少在1/2个原始方波周期内就可以计数一次,最多在1/4个原始方波周期内就可以计数一次。这样计数频率就是原始方波信号的2或4倍,即编码器的分辨率提高了2倍到4倍。

假设有个增量式编码器的分辨率是600PPR,能分辨最小角度是0.6°,对它进行4倍频后就相当于把分辨率提高到600*4=2400PPR,此时编码器能够分辨的最小角度为0.15°。

编码器倍频计数还可以用来扩展一些测速方法的速度适用范围。例如电机测试通常使用M法测量,编码器4倍频后可以扩展M法的速度下限。

常用编码器测速方法:M法、T法和M/T法

对于电机转速的测试,可以把增量式编码器安装到电机上,用控制器对编码器脉冲进行计数,然后通过特定的方法求出电机转速。

M法(频率测量法):在一个固定的定时时间内(以秒为单位),统计这段时间的编码器脉冲数,计算速度值。

设编码器单圈脉冲数为C,在时间T内统计到的编码器脉冲数为M,则转速n = M / CT。编码器单圈脉冲数C是一个常数,所以转速n和M成正比,使得在高速测量时M变大可以获得较好的测量精度和平稳度。但如果速度很低,低到每个T只有几个脉冲,此时算出的转速误差就会比较大,并且不稳定。

有一些方法可以改善M法在低速测量的准确性,比如增量式编码器倍频技术。当原本捕获到的脉冲M只有4个,经过4倍频后,相同电机状态M变成了16个,也就提升了低速下的测量精度。

T法(周期测量法):建立在一个已知频率的高频脉冲并对其计数,计数时间由捕获到的编码器相邻两个脉冲的间隔时间T决定,计数值为M。设编码器单圈总脉冲数为C,高频脉冲的频率为F,则转速n = 1/CT=F/CM。C和F是常数,所以转速n和M成反比。在电机高转速时,编码器脉冲间隔时间T很小,使得测量周期内的高频脉冲计数值M也变得很少,导致测量误差变大。而在低转速时,T足够大,测量周期内的M也足够多。所以T法和M法刚好相反,更适合测量低速

M/T法综合了M法和T法各自的优势,即测量编码器脉冲数又测量一定时间内的高频脉冲数。

在一个相对固定的时间内,计数编码器脉冲数为M0,并计数一个已知频率为F的高频脉冲,计数值为M1,设编码器单圈总脉冲数为C,则转速n = FM0/CM1。由于F和C是常数,所以转速n只受M0和M1的影响。电机高速时,M0增大,M1减小,相当于M法;电机低速时,M1增大,M0减小,相当于T法

STM32的编码器接口

STM32芯片内部有专门用来采集增量式编码器方波信号的接口,这些接口实际上是STM32定时器的其中一种功能。编码器接口功能只有高级定时器TIM1/8和通用定时器TIM2~TIM5才有。

编码器接口用到了定时器的输入捕获部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/153894.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ LibCurl实现Web隐藏目录扫描

LibCurl是一个开源的免费的多协议数据传输开源库,该框架具备跨平台性,开源免费,并提供了包括HTTP、FTP、SMTP、POP3等协议的功能,使用libcurl可以方便地进行网络数据传输操作,如发送HTTP请求、下载文件、发送电子邮件等…

【docker下安装jenkins】(一)

目的:在Linux操作系统(x86_64)下,使用docker部署jenkins,python使用压缩包安装 安装jenkins的步骤 1、编排jenkins的docker-compose.yml文件 说明:这里遇到部署jenkins后,占用内存8G,所以重新…

HarmonyOS第一课-对比Kotlin,快速入门TypeScript

编程语言简介 基础类型 1. 布尔值 TypeScript 和 Kotlin: 两者都有 boolean 类型,用于表示 true 或 false。 ts示例: let isDone:boolean falsekotlin示例: val isDone: Boolean false2. 数字 TypeScript: 有 number 类型&#xff0c…

hadoop 配置历史服务器 开启历史服务器查看 hadoop (十)

1. 配置了三台服务器,hadoop22, hadoop23, hadoop24 2. hadoop文件路径: /opt/module/hadoop-3.3.4 3. hadoop22机器配置历史服务器的配置文件: 文件路径:/opt/module/hadoop-3.3.4/etc/hadoop 文件名称:mapred-size.xml 新增历…

帮我想几个关于实人认证API的中文文章标题

引言 随着信息时代的迅速发展,数据变得愈加庞大和复杂。在这个大数据的时代,企业面临着海量信息的管理和利用挑战。为了更有效地获取并利用数据,企业信息模糊搜索API成为了企业数据智能引擎的一部分,为企业提供了精准的企业列表检…

RK3588产测软件介绍

1. 简介 本公司研发的产测软件是用于在量产的过程中快速地甄别产品功能和器件的好坏,即重点 FCT(Functional Test)测试,进而提高生产效率和检测的准确性。 2. 产测软件介绍 QT开发的ARM平台产测图形化软件,一键开启傻…

【问题处理】WPS提示不能启动此对象的源应用程序如何处理?

哈喽,大家好,我是雷工! 最近在用WPS打开word文件中,插入的Excel附件时,无法打开,提示:“不能启动此对象的源应用程序”。 经过上网查找处理办法,尝试解决,现将解决过程记…

Linux socket编程(4):服务端fork之僵尸进程的处理

在上一节利用fork实现服务端与多个客户端建立连接中,我们使用fork函数来实现服务端既可以accept新的客户端连接请求,又可以接收已连接上的客户端发来的消息。但在Linux中,在子进程终止后,父进程需要处理该子进程的终止状态&#x…

【开源】基于Vue.js的车险自助理赔系统的设计和实现

项目编号: S 018 ,文末获取源码。 \color{red}{项目编号:S018,文末获取源码。} 项目编号:S018,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 角色管理模块2.3 车…

[GFCTF 2021]wordy 编写去花IDAPYTHON

首先查壳 发现没有东西 然后放入ida 发现没有main并且软件混乱 发现这里1144的地方 出错 IDA无法识别数据 报错内容是EBFF 机器码 这里看了wp知道是很常见的花指令 所以我们现在开始去花 这里因为我们需要取出 EBFF 下面的地址也都是 EBFF 所以工作量大 使用IDApython脚本即…

EasyRecovery2024最新永久破解版本安装包下载

当我们处理重要的文件数据时,遇到突然停电导致数据来不及保存,再次打开电脑后,此前处理的数据可能丢失,这无疑会影响我们的工作进度,数据恢复软件在此时就派上用场,那么下面就来具体介绍EasyRecovery软件的…

FL Studio21怎么破解?2024年最新FLStudio21.2.0安装解锁特别版下载使用图文教程

用FL Studio编曲,让音乐成为你的翅膀,飞翔在无尽的创作海洋中吧! FL Studio作为一款功能强大且备受赞誉的音乐制作软件,为你提供了一个独特的创作平台。通过FL Studio,你可以自由地创作、编曲,制作属于自己…

4.6 Windows驱动开发:内核遍历进程VAD结构体

在上一篇文章《内核中实现Dump进程转储》中我们实现了ARK工具的转存功能,本篇文章继续以内存为出发点介绍VAD结构,该结构的全程是Virtual Address Descriptor即虚拟地址描述符,VAD是一个AVL自平衡二叉树,树的每一个节点代表一段虚…

springboot中动态api如何设置

1.不需要编写controller 等mvc层,通过接口动态生成api。 这个问题,其实很好解决,以前编写接口,是要写controller,需要有 RestController RequestMapping("/test1") public class xxxController{ ApiOperat…

敏捷DevOps专家王立杰:端到端DevOps持续交付的5P法则 | IDCF

今天有一个流行的英文缩写词用来刻画这个风云变幻的时代:VUCA(乌卡时代)。四个英文字母分别表示动荡性(Volatility)、不确定性(Uncertainty)、复杂性(Complexity)和模糊性…

C编译流程

1.预处理 hello.c 经过预处理得到 hello.i gcc -E hello.c -o hello.i -E的含义:说明这是一个预处理操作 生成预处理文件(.i) 预处理阶段做了什么事: 1.1 头文件展开 我们发现 原先只有几行的hello.c变成了上千行的hello.i 实际上 预处理完成的是 将头…

Unity中Shader反射环境

文章目录 前言一、制作反射环境的两种办法法1:属性面板接收一个 Cubemap 作为反射环境法2:把环境烘焙成一张Cubemap 二、在Unity中实现把环境烘焙成一张Cubemap1、先创建一个反射探针(可以直接创建,也可以空物体增加组件&#xff…

【Linux】:进程间通信和日志模拟

进程间通信 一.基本概念二.简单的通信-管道(匿名管道)1.建立通信信道2.通信接口 三.命名管道三.模拟命名管道通信(加上日志)1.完整代码2.基本使用 一.基本概念 是什么 两个或多个进程实现数据层面的交互。 因为进程独立性的存在,导致进程间…

广度优先算法(BFS)

广度优先算法(Breadth-First Search)是在图和树领域的搜索方法,其核心思想是从一个起始点开始,访问其所有的临近节点,然后再按照相同的方式访问这些临近节点的节点,这种访问方式类似涟漪泛起,一…

HINSTANCE是什么?

HINSTANCE 就是 HMODULE: