首页 > 其他分享 >【步进电机梯形加减速--原子哥笔记】

【步进电机梯形加减速--原子哥笔记】

时间:2024-07-04 17:02:52浏览次数:16  
标签:电机 -- lim 梯形 减速 步进 速度 步数

简介

说明:具体看正点原子电机例程文件
步进电机因其无需反馈就能对位置和速度进行控制而在工业自动化设备中的应用极为广泛,如下图所示,假设该装置使用步进电机实现物体 X 的移动,系统要求从 A 点出发,到 B点停止,移动的时间越短越好且系统稳定。
图 16.1.1 加减速实例图解

根据步进电机的特性,最大程度加大电机转速(提高脉冲频率),则到达 B 点的时间就越短,但是如果施加脉冲频率太高,超过了步进电机的最小启动频率,则会造成电机内部的反向电动势的阻尼作用,转子与定子之间的磁反应将跟随不上电信号的变化,导致堵转或者丢步,滑块连动都没动,非常尴尬!
所以要求在电机启动时需要一个低速,但为了实现系统要求,在启动之后慢慢的升高速度,实现一个加速的过程,那如果在达到终点前一直在加速,就又有另外一个问题,到达终点时速度太快就会导致刹不住,出现过冲现象,为了防止这个现象我们需要在达到终点前的一段距离提前减速,使得滑块到达终点时速度刚好为 0,即从最高速度一直减至停止。如果在加速的过程中,从启动速度到目标速度的加减速是以一定的比例进行加速/减速,则可以将这个过程描述为如下图所示:
在这里插入图片描述
⚫ 在 OA 加速过程中,由低于步进电机的启动频率开始启动(模型中由 0 启动),以固定的加速度增加速度到目标值;
⚫ 在 AB 匀速过程中,以最大速度匀速运动;
⚫ 在 BC 减速部分中,以加速度不变的速度递减到 0;
这种算法是一种在加速过程和减速过程中加速度不变的匀变速控制算法。

原理分析

那接着就是我们的重头戏了,如何实现梯形加减速算法?步进电机的速度由脉冲频率决定,在匀速运动的过程中,脉冲的频率是固定不变的,根据步进电机特性,每给一个脉冲,电机就会步进固定的距离(将角度转换为距离)知道了 A 点到 B 的距离,就可以知道步进电机需要走多少步,然后让控制器输出所需个数且固定频率的脉冲就行。
在加减速段的过程中,速度是不断的改变的,所以需改变脉冲的频率,让电机在加速时给高频率的脉冲,减速时给低频率脉冲。那具体下一个变化的脉冲的周期是多少?虽然从 A点到 B 点所需要的总步数(脉冲)不变,但在加速阶段时需要多少步数?多少步之后需要减速?减速阶段要步进多少步?所以接下来我们一个个解答这些疑问,前方高能,请做好心理准备
需要先明确要求解的未知量有哪些?
(1)加速阶段时需要多少脉冲数?使用 n1 进行表示
(2)减速阶段要步进多少脉冲数?使用 n2 进行表示
(3)下一个变化的脉冲的周期是多少?使用 T 进行表示
因为要实现加减速效果,所以输送给电机的脉冲的周期是变化的,只要确定下一个脉冲的周期,并且确定加速阶段和减速阶段需要提供多少个脉冲,然后让控制器一个一个把脉冲送出去即可。如下图所示:
在这里插入图片描述
在进行加减速前我们必须要确定的参数量有如下:
(1)电机需要步进的距离,使用 step 表示 ;
(2)加速度大小,使用 accel 表示 ;
(3)减速度大小,使用 decel 表示 ;
(4)最大速度,决定电机匀速时的速度值,用 Max_ω 表示 ;
这些参数在步进电机做加减速之前就要求用户来设置好,也就是我们的已知量。根据设置的参数不同,系统将有如下两种运动情况:

第一种设置情况

最大速度设置偏大,而加速度设置偏小,导致电机步进了很多步数依然没有达到最大速度,但此时距离终点 Step 可走的步速越来越少,再不减速将无法在终点时使速度降为 0。所以这种情况,其加速模型并不呈现梯形,加速不到最大速度将要被迫降速。
在这里插入图片描述

运动变化图形类似于三角形,上图全部有以下几个参数:
Max_w :用户设置的最大速度;
accel :加速度大小;
decel :减速度大小;
step :总步数;
这些都是已知量,不需要求解,接着看下需要求解的变量:
max_s_lim :速度从 0 加速到 Max_w 所需要的步数,也就是与最大速度的交点;
acc_lim :加速度曲线与减速度曲线的相交点;
decel :实际减速的步数;
此时 n1 = accel_lim,加速段延长线做数学模型,得出只要满足:acc_lim ≤ max_s_lim,运动变化状态就呈现三角形,首先我们通过求解 accel_lim 则可获知加速段的步数,不难看出,这里有一个等式条件:加速段的末速度 ω1 和开始减速的速度 ω2 是相等的,所以:
在这里插入图片描述

此时的 t1 为加速段步进消耗的时间,t2 则是减速段的时间,从上面的模型中可知,梯形加减速运动规律符合物理学中匀加速运动,既然我们的疑问是关于加速过程中走过的距离问题,想必大家都已经想到了经典的位移公式,根据这个公式我们就获知时间 t,然后将时间 t转换为我们想要的步数

没错,位移 S 就是步进电机的步进距离,等于步距角(a)和脉冲个数(n)的乘积,在初速度为 0 则有以下公式,其中加速度 a 为角加速度 w:
在这里插入图片描述

简单变换一下,将时间 t 转化为已知量可得:

结合[式 1-2]和[式 1-5],即可得出我们迫切想要求解的加速段的脉冲数 n1:
在这里插入图片描述

因为 n1 和 n2 都是未知的,但是 n1+n2=step 是可知的,所以这里还需要做一个技巧性处理,
在这里插入图片描述

由上求解出了加速段脉冲数 n1,已知总的脉冲数 step 不变,则可知减速段 在这里插入图片描述
其中负号是因为减速阶段的运动方向和减速度的方向是相反的。这就是第一种情况下的加减速阶段的脉冲个数求解方法,接着看下第二种情况。

第二种设置情况

最大速度设置偏小,而加速度设置偏大,步进电机很快就加速到了设置的最大速度,距离设置的终点 max_w 还有剩余很长的步数可以走,此时,电机以最大速度匀速步进,直到满足减速条件才开始减速,并刚好使得速度到终点时降至 0。
在这里插入图片描述

由上图得出只要满足:acc_lim >max_s_lim,运动变化状态就呈现梯形,那么此时加速段步数 n1=max_s_lim,由最大速度已知我们可以直接得到以下等式:
在这里插入图片描述
我们知道了加速段的步数,也知道总步数,但是减速度段不单单只总步数减去加速度段,因为,中间需要一个匀速步进段,但是从图中可以看出,减速前的速度等于最大速度的条件是依然不变的,我们同样可以使用前面 1–6 的公式,求解减速段的步数。
在这里插入图片描述
注意:decel_val 是减速段的步数,而不是开始减速的步数,开始减速的步数等于总步数减掉减速段的步数(实际减速段步数为负值,所以直接将总步数与减速段步数相加即可)。解决了加速和减速阶段时需要多少脉冲数的问题,接着还需要求出 accel_lim 的大小,以便在程序中比较 accel_lim 与 max_s_lim 的大小判断当前运动状态属于哪种情况。同样的交点满足速度相同所以:
在这里插入图片描述
实际上上述复杂的不需要理解透彻。看这个图片,已经列举的已知量和求解量,我们通过将角位移转化为了直线上的位移
在这里插入图片描述
接下来是重点,需要完成的:

第一个任务为:下次脉冲周期T求解

在这里插入图片描述
在这里插入图片描述:也就是t1-t0,t2-t1······
同样的它也可以由计数值乘以计数周期(计一个数的时间)
在这里插入图片描述
在这里插入图片描述
这里加速时的初速度为0
在这里插入图片描述
一般情况下带根号比较难计算,做一些去掉根号的化简运算在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这里单片机计算浮点数能力较弱,一般会放大来变为整数计算,提升运算效率。
在这里插入图片描述
在这里插入图片描述
c值再次复习下它是一个脉冲时间下的计数值
到这里回顾下有两种方式,一个是现在加速直接减速(最大速度设置的较大),另外是现在加速到达最大速度保持匀速再减速,所以主要取决于设置的最大速度的值。下面主要还是围绕梯形加减速。
在这里插入图片描述
加减速度与步数的关系( ②最大速度偏小,加速度偏大,max_s_lim < accel_lim )
在这里插入图片描述
在这里插入图片描述
结合③和④,得出加速段的步数结果:
在这里插入图片描述
accel就是w点,到这里我们求出来加速段的总步数n1

求解减速度步数以及accel_lim
由于加速段的末速度等于减速段的初速度:在这里插入图片描述
所以减速段的步数:在这里插入图片描述
这里用负号代表减速,在代码里会将负号加一直到减速到0运动停止下来移动到预定位置
接着就是求accel_lim如第一种情况一样 ,这里首先加速度和减速度一样的,同时他们的延长线虚线也满足速度相等
尽管n1和n2不在像三角模型一样n1+n2=step了,但延长后的是三角形模型,就可以当三角形模型的来推理。
在这里插入图片描述

定时器中断处理流程

定时器中断产生步脉冲并且只有在步进电机移动时进入,四个不同运动的状态,分别是stop——accel——run——decel——stop,如图:
在这里插入图片描述
当它的速度越大,c值会越小,因为速度越大一个脉冲周期时间越短,计数值c也越小
所以重点来了: 当c0也就是第一步的速度比cmin大,代表着速度是小于最大速度的,此时就可以进入匀加速状态。而如果当它小于等于cmin时,就进入匀速状态了。
那么什么时候进入减速状态:我们再用总步数step+n2,当现今完成的步数与这个值相等时,就进入减速状态(注意,前面加的n2,n2是一个负数)
什么时候电机减速停止:当进入减速状态时,同时让n2+1,负数加1到0时,也就是电机停止的时候

在定时器中断实现状态机功能:
在这里插入图片描述
在这里插入图片描述
再次总结我们所有要计算的未知量:
c0:在这里插入图片描述
cmin:在这里插入图片描述
max_s_lim:在这里插入图片描述
accel_lim:在这里插入图片描述
最后设置的如果是加速状态要设置比较值c0,匀速状态设置比较值cmin,每次完成一个脉冲进入中断都会更新c的值

标签:电机,--,lim,梯形,减速,步进,速度,步数
From: https://blog.csdn.net/qq_43094272/article/details/140128354

相关文章

  • 社交媒体挖掘中基于项目的协同过滤推荐算法
    前言在我之前的专题文章《社交媒体挖掘中的协同过滤推荐算法》里,详细介绍了基于用户的协同过滤算法,这里我们将主要聚焦更加常用的基于项目(英文:Item)的协同过滤算法。优势基于项目的协同过滤算法(Item-BasedCollaborativeFiltering)相较于基于用户的协同过滤算法(User-Bas......
  • 足球预测的诀窍:AI智能分析软件
    一、前言足球毫无疑问是一项风靡全球的运动,即使是在被疫情影响的2020年,欧洲杯赛事依旧有着52.3亿的观众观看,而本届2024年的欧洲杯更是有可能刷新欧洲锦标赛总观众人数记录。而对于球迷来说,除了观看比赛,预测比赛结果也不失为一种乐趣,由于足球赛事受到各方面因素的影响,个人难免......
  • Vue学习入门
    介绍        新手程序员一枚,渴望成为大神,来点关注来点赞,给我介绍几个大神也行,球球了。        主要记录自己的学习过程,将之前的笔记进行整理并分享一下,有错误请指出,谢谢各位大佬爷们的观看。        下面开始分享我的笔记VSCode插件AutoClose......
  • Java实现简单的冒泡排序
    Java实现简单的冒泡排序核心思想:把相邻的两个数字两两比较,当一个数字大于右侧相邻的数字时,交换他们的位置,当一个数字和他右侧的数字小于或等于的时候,不交换。(小到大排序)例如有数组{3,1,5,7,4,2}第一次排序{3,1,5,7,4,2}//开始{1,3,5,7,4,2}//1和3互换{1,3,5,7,4,2......
  • Linux系统应用与设置(4):Linux抓包工具tcpdump
    1.简述        tcpdump是一款广泛使用的命令行网络分析工具,它能够捕获和分析网络上的数据包。这个强大的工具对于网络故障排查、安全监控和网络流量分析非常有用。        值得注意的是,通过tcpdump抓取的数据还可以通过保存为*.pcap文件,然后使用wireshark......
  • Stable Diffusion之最全详解图解
    StableDiffusion是一种生成图像模型,属于扩散模型的一种。它利用扩散过程生成图像,从而在图像生成和编辑任务中表现出色。以下是对StableDiffusion的详细解释和图解:概述StableDiffusion是一种基于扩散过程的图像生成模型。扩散过程包括两个主要步骤:正向扩散和逆向扩......
  • Verilog图片仿真
            今天给大家分享自己使用的一段仿真代码,是我调整好的,拿去就可以直接使用!!!        我们做fpga有时候会接触一些图像相关的算法,我们不能每一次都是编译成功下载验证看效果吧,我也是找了好久,终于找到一个没啥毛病的,我对于这个模块还是做了一些调整,满足我们......
  • Windows 安装DBeaver,并使用DBeaver进行数据库的操作(达梦数据库、MySQL数据库等)
    安装DBeaver可视化工具安装前准备准备环境JDK17DBeaver安装包达梦数据库驱动DBeaver代理包开始安装MySQL连接&操作MySQL连接操作达梦数据库连接&操作达梦数据库驱动DBeaver加载达梦数据库驱动达梦数据库连接操作免责声明安装前准备准备环境JDK17安装地址(官......
  • 二分图匹配——从入门到入土
    基础知识形式化定义:二分图:\(G=(L,R,E)\),满足\(\forall(u,v)\inE\)都有\(u\inL,v\inR\)或\(u\inR,v\inL\)。可知“图中没有长度为奇数的环”是这个图是二分图的充分必要条件。图的匹配是一个\(E_m\subseteqE\)满足\(\nexistsi\inV(\text{当}G......
  • 探索中尺度气象学的奥秘:精准预测,守护每一片蓝天
    探索中尺度气象学的奥秘:精准预测,守护每一片蓝天在浩瀚的自然界中,天气变化无常,既孕育着生命的奇迹,也潜藏着不可预测的威胁。中尺度气象学,作为大气科学中的一个重要分支,专注于研究水平尺度在几公里到几百公里之间的天气系统,这些系统虽不及全球环流那样宏大,却与我们的日常生活......