| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 【C语言】一种简单的S形加速曲线的推导与实现 -> 正文阅读 |
|
[嵌入式]【C语言】一种简单的S形加速曲线的推导与实现 |
目录1 前言手上有个42步进电机,可是要么龟爬要么光叫不跑,百度了才知道要有个加速过程,而各种加速中又属S形加速最棒,那我当然要一步到位啦。 以下图片可以很好的展示S形加速的特点: 2 理论分析2.1 选择曲线S形曲线有很多,有大佬做了多种曲线的对比:速度规划(梯形、余弦、多项式、7段S型、7段修正S型、15段S型、31段S型) 其中很多分段函数一看就很复杂,需要的参数也很多,我们选一种简单的,仅需要一个表达式就能确定的加速曲线: 2.2 计算函数方程首先确定三个输入参数,也就是函数中的常量: 2.3 单位分析因为使用场景是单片机控制步进电机,所以常规的速度单位 m / s m/s m/s用在这里不太合适。 在没有细分的情况下,单片机每发1个脉冲,电机前进1步,对于步距角1.8°的步进电机来说,就是旋转 1 200 \frac{1}{200} 2001?圈。所以速度单位选择"个每秒",也就是Hz。 加速过程秒级显然是我们不可接受的,微秒级的话步进电机也受不了,所以加速的时间单位选择ms。 综上: 显然位移单位不合常理,我们将位移单位化为(个),可得 位移公式2: 2.4 模拟验证假设,起始速度60rpm,目标速度4500rpm,800脉冲转一圈,加速时间50ms,换算可得: 3 两种代码实现通过速度与时间关系以及速度与位移关系,给出在stm32的两种实现方法,代码在我的Gitee。 3.1 速度与时间关系3.1.1 原理对于给定的时间T,将0到T之间的每一ms带入到速度公式,计算出加速度表。使用两个定时器,一个提供1ms定时,另一个提供PWM输出,开更新中断,在1ms中断中修改PWM的频率实现速度曲线,在更新中断中记录脉冲次数。 3.1.2 优点1.计算速度相对快很多,且不受细分以及速度差影响,实测计算不到2ms。 3.1.3 缺点绝大部分情况下,达到目标速度时脉宽小于1ms,导致并不能准点进入减速,所以实际上的减速曲线是如下两种情况: 3.1 速度与位移关系3.1.1 原理将给定的时间T,带入距离公式,得到总加速脉冲数量 S 0 S_0 S0?,将0到 S 0 S_0 S0?之间所有整数带入位移公式,解一元四次方程,对于每一个s,取唯一一个 V 0 V_0 V0?到 V 1 V_1 V1?之间的实根,即每一个脉冲对应的速度,获得速度表。在PWM更新中断中修改下一次脉冲的速度,同时记录脉冲次数。 3.1.2 优点1.加减速流程能够完整完成。 3.1.3 缺点计算非常非常耗时间,在stm32f207实测记录如下: 另外速度越快,细分越高,所需要的内存越多。 一种解决方式:如果每次的起始速度和目标速度都一样,仅前进距离不同,那么就可以在程序开始时直接算出这个表,后续电机动作不必要再次计算,直接读表即可。 4 测试验证测试未发现问题,第一种方法问题也不大。 5 参考文献1.摆线/三次多项式过渡的匀加速度轨迹 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:35:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |