当前位置: 首页 > news >正文

运动控制 编码器测速

文章目录

  • 一、H桥驱动
    • 1.1 电机启停
    • 1.2 电机调速
  • 二、编码器测速
    • 2.1 脉冲计数
    • 2.2 测速相关参数
    • 2.3 测速流程
    • 2.4 滤波
      • 2.4.1 冒泡排序
      • 2.4.2 一阶低通滤波

一、H桥驱动

本文采用电驱动板为正点原子的直流有刷电机驱动板,由两个半桥组成一个H桥。
在这里插入图片描述

1.1 电机启停

  • 通过IO控制SD输入信号可以控制电机启动或者停止。

电机正反转:

  • PWM_UH输入高电平,PWM_UL输入低电平,此时电流从M-流向M+,电机反转。
  • PWM_UH输入低电平,PWM_UL输入高电平,此时电流从M+流向M-,电机正转。
  • 注:IO反转周期不能低于死区时间。

1.2 电机调速

  • 一个端口输出固定,另一个端口输出PWM。
    在这里插入图片描述
  • 通过硬件定时器的PWM互补输出可以实现电机速度控制和正反转。
  • 互补PWM设置死区的意义主要在于提高系统的可靠性和稳定性,避免由于开关速度问题导致的设备损坏或性能下降。具体来说,互补PWM信号常用于驱动如电机等设备,其中一路PWM信号用于控制设备的正向运动,另一路PWM信号用于控制设备的反向运动。为了避免设备的两相同时工作,引入死区时间,即两路PWM信号之间的时间差。这样,在设备从正向运动切换到反向运动时,可以确保两路PWM信号之间有足够的时间间隔,从而防止因开关速度不匹配导致的短路或其他损坏情况。

二、编码器测速

2.1 脉冲计数

使用STM32高级定时器的编码器模式对编码器输出的脉冲进行计数,定时器可以根据配置的工作模式对边沿进行计数。
在这里插入图片描述

2.2 测速相关参数

  • 分辨率
  • 供电电压
  • 电机减速比

2.3 测速流程

  1. 假设测速周期为200ms。
  2. 读取编码器在200ms内计数值的变化量。
  3. 以此推算出1分钟内的变化量为200ms内的变化量 * 5 * 60。
  4. 如果编码器同时对AB相计数,则使用1分钟变化量除4得到产生的脉冲数,而如果仅对A或B中一相进行计数,则使用1分钟变化量除2得到产生的脉冲数。
  5. 最后使用1分钟内的脉冲数除以分辨率得到转动圈数。
  6. 转动圈数除以减速比得到实际速度。

2.4 滤波

在实际使用过程中,直接使用编码器的脉冲计算速度并不稳定,需要对这些数据进行滤波得到更稳稳定的结果。

2.4.1 冒泡排序

int array[] = {9435670}void swap(int *xp, int *yp) 
{  int temp = *xp;  *xp = *yp;  *yp = temp;  
} void bubbleSort(int arr[], int n) 
{  for (int i = 0; i < n-1; i++) {for (int j = 0; j < n-i-1; j++) {  if (arr[j] > arr[j+1]) {  swap(&arr[j], &arr[j+1]);  }  }  }  
}

使用冒泡排序将数据从小到大排列,并去掉最大最小值求出平均值,得到一个稳定的输出。

2.4.2 一阶低通滤波

Y(n) = q * X(n) + (1-q) * Y(n-1)

  • Y(n) 是当前时刻的输出值。
  • X(n) 是当前时刻的输入值。
  • Y(n−1) 是前一时刻的输出值。
  • q 是一个介于 0 和 1 之间的常数,它决定了滤波器对输入变化的响应速度和平滑程度。
  • 当 q 接近 1 时,滤波器对输入的变化非常敏感,输出会紧密跟随输入的变化。此时,滤波器的平滑效果较弱。
  • 当 q 接近 0 时,滤波器对输入的变化不太敏感,输出会更加平滑,因为它更多地依赖于前一时刻的输出值。此时,滤波器的平滑效果较强。
  • 一阶低通滤波器常用于信号去噪、平滑数据或实现简单的预测。在数字信号处理、控制系统和时间序列分析中都有广泛的应用。
    在这里插入图片描述

http://www.mrgr.cn/news/66985.html

相关文章:

  • string模拟实现find
  • 双向链表及如何使用GLib的GList实现双向链表
  • Vue:事件
  • 雷池社区版 7.1.0 LTS 发布了
  • 基于Spring Boot 框架的试卷自动生成系统的设计与实现
  • 若依框架-添加测试类-最新
  • JDK 安装、环境变量配置、nano 和 vim 的使用
  • 技术总结(二十一)
  • 2024毕业论文攻略:AI工具能为你带来哪些惊喜?
  • Halcon 从XML中读取配置参数
  • 聊一聊SpringBoot的自动装配原理
  • 去除人声的利器:消音伴奏软件合集
  • AB 罗克韦尔模块 SD3K2004K
  • img图片为null或错误时替换为静态图片
  • 项目范围产品范围
  • C++ 项目中使用 .dll 和 .def 文件的操作指南
  • watch与computed的区别、运用的场景
  • PCIe板卡的标准尺寸介绍
  • 7篇Python爬虫实例,直接代码可运行,全网最全,注释超详细(适合收藏)——2、爬取图片信息。
  • Pimpl(Pointer to Implementation)模式详解
  • PMP--入栏需看
  • C++:多态中的虚/纯虚函数,抽象类以及虚函数表
  • 逻辑漏洞验证码识别
  • 2024中国国际数字经济博览会:图为科技携明星产品引领数智化潮流
  • AXI总线上的大小端
  • Python 爬虫:从入门到精通有这一篇文章就够了