5-2、S曲线计算【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】,查看本系列全部文章

摘要:本节介绍S曲线的基本变换,将基本形式的S曲线变换成为任意过两点的S曲线,为后续步进电机S曲线运动提供理论支撑

一.计算目标
①计算经过任意不同两点的S曲线方程
②可调节曲线平滑度
③可调节曲线对称度
④绘制其图像

二.计算过程
2.1 S曲线基本形式
在这里插入图片描述
在这里插入图片描述
2.2 S曲线变换
第一步:进行X轴比例变换,比例系数为N(N≠0)
在这里插入图片描述
第二步:进行X轴平移变换,平移系数为A
在这里插入图片描述
第三步:进行Y轴比例变换,比例系数为K(K≠0)
在这里插入图片描述
第四步:进行Y轴平移变换,平移系数为B
在这里插入图片描述
最终得到S曲线变换之后函数关系式:
在这里插入图片描述
2.3 参数计算
要求变换之后的S曲线经过P1(X1,Y1),P2(X2,Y2)两点,可建立方程
在这里插入图片描述
在这里插入图片描述
方程有N,K,A,B四个未知数,需要给定2个参数由用户设定,此处选择N,A,则可求得K,B值为:
在这里插入图片描述
其中N值作为X轴方向比例变换系数,N>1时,S曲线X方向放大,N<1时,S曲线X方向缩小,可以将N值等效为S曲线的平滑度调节参数
其中A值X轴方向平移系数,A>0时,S曲线向X正方向平移,A<0时,S曲线向X负方向平移,可以将A值等效为S曲线的对称度调节参数

2.4中心对称条件
当随意给定N,A值时,S曲线容易出现失真,如下图所示
在这里插入图片描述
为确保经过P1,P2两点的S曲线也为中心对称,则要求S曲线经过P1P2连线的中点P0(X0,Y0),如图所示
在这里插入图片描述
则可建立三个等式
在这里插入图片描述
N由用户设定,可求得A值
在这里插入图片描述
三.总结
通过上述计算,完成了目标中的4点要求。在不同的应用场景中,可以根据实际情况去对该S曲线进行灵活处理。S曲线代表的v-t图像中对其进行求导可以求得a-t关系

四.附件
提供一个S曲线的演示器,下载请见百度网盘链接
链接:https://pan.baidu.com/s/1A6_d9DYztqIgNV5AMRlTPw
提取码:l3qi

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

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

相关文章

Linux命令-at命令(在指定时间执行一个任务)

说明 at命令 用于在指定时间执行命令。 at允许使用一套相当复杂的指定时间的方法。它能够接受在当天的hh:mm&#xff08;小时:分钟&#xff09;式的时间指定。假如该时间已过去&#xff0c;那么就放在第二天执行。 当然也能够使用midnight&#xff08;深夜&#xff09;&#xf…

2.5 作业

第四章 堆与拷贝构造函数 一 、程序阅读题 1、给出下面程序输出结果。 #include <iostream.h> class example {int a; public: example(int b5){ab;} void print(){aa1;cout <<a<<"";} void print()const {cout<<a<<endl;} }; void m…

pytorch——保存‘类别名与类别数量’到权值文件中

前言 不知道大家有没有像我一样&#xff0c;每换一次不一样的模型&#xff0c;就要输入不同的num_classes和name_classes,反正我是很头疼诶&#xff0c;尤其是项目里面不止一个模型的时候&#xff0c;更新的时候看着就很头疼&#xff0c;然后就想着直接输入模型权值文件的path…

【极简】Pytorch中的register_buffer()

register buffer 定义模型能用torch.save保存的、但是不更新参数。 使用&#xff1a;只要是nn.Module的子类就能直接self.调用使用&#xff1a; class A(nn.Module): #... self.register_buffer(betas, torch.linspace(beta_1, beta_T, T).double()) #...手动定义参数 上述…

C++之字符串

C风格字符串 字符串处理在程序中应用广泛&#xff0c;C风格字符串是以\0&#xff08;空字符&#xff09;来结尾的字符数组。对字符串进行操作的C函数定义在头文件<string.h>或中。常用的库函数如下&#xff1a; //字符检查函数(非修改式操作) size_t strlen( const char …

linux麒麟系统安装mongodb7.0

1.mogedb下载 下载的是他tar包 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-7.0.5.tgz wget -o https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-7.0.5.tgz 也可以下载rpm包 2.将包上传至服务器并解压 #进入目录 并解压 cd /opt/ tar …

【 buuctf-另外一个世界】

flag 就隐藏在这一串二进制数中&#xff0c;可以利用在线工具转换得到 flag&#xff0c;本次讲一下用代码怎么转换。将二进制数转换成 ascii 字母&#xff0c;手写的话两种思路&#xff1a; 1.将二进制数四位一组先转成十六进制数&#xff0c;再将十六进制数两位一组&#xff…

JavaScript的表单、控件

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;《爱蹦跶的大A阿》 &#x1f525;当前正在更新专栏&#xff1a;《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 表单是 web 开发中不可或缺的一部分&#xff0c;用于收集用户输入。本…

React 错误边界组件 react-error-boundary 源码解析

文章目录 捕获错误 hook创建错误边界组件 Provider定义错误边界组件定义边界组件状态捕捉错误渲染备份组件重置组件通过 useHook 控制边界组件 捕获错误 hook getDerivedStateFromError 返回值会作为组件的 state 用于展示错误时的内容 componentDidCatch 创建错误边界组件 P…

vscode 突然连接不上服务器了(2024年版本 自动更新从1.85-1.86)

vscode日志 ll192.168.103.5s password:]0;C:\WINDOWS\System32\cmd.exe [17:09:16.886] Got some output, clearing connection timeout [17:09:16.887] Showing password prompt [17:09:19.688] Got password response [17:09:19.688] "install" wrote data to te…

AE2023 After Effects 2023

After Effects 2023是一款非常强大的视频编辑软件&#xff0c;提供了许多新功能和改进&#xff0c;使得视频编辑和合成更加高效和灵活。以下是一些After Effects 2023的特色功能&#xff1a; 新合成预设列表&#xff1a;After Effects 2023彻底修改了预设列表&#xff0c;使其…

Spring Boot项目整合Seata AT模式

目录 1、添加依赖2.、配置Seata3、创建AT模式表4、使用Seata分布式事务 1、添加依赖 <dependency><groupId>io.seata</groupId><artifactId>seata-spring-boot-starter</artifactId></dependency>上述依赖适用于springboot项目 如果你的项…

【Iceberg学习五】Iceberg中性能和可靠性保证

Performance 性能 Iceberg 旨在处理巨大的表格&#xff0c;在生产环境中使用&#xff0c;单个表格可以包含数十PB&#xff08;拍字节&#xff09;的数据。即使是多PB级别的表格&#xff0c;也可以从单个节点读取&#xff0c;无需依赖分布式SQL引擎来筛查表格元数据。 扫描计…

算法——二分查找算法

1. 二分算法是什么&#xff1f; 简单来说&#xff0c;"二分"指的是将查找的区间一分为二&#xff0c;通过比较目标值与中间元素的大小关系&#xff0c;确定目标值可能在哪一半区间内&#xff0c;从而缩小查找范围。这个过程不断重复&#xff0c;每次都将当前区间二分…

Kafka零拷贝技术与传统数据复制次数比较

读Kafka技术书遇到困惑: "对比传统的数据复制和“零拷贝技术”这两种方案。假设有10个消费者&#xff0c;传统复制方式的数据复制次数是41040次&#xff0c;而“零拷贝技术”只需110 11次&#xff08;一次表示从磁盘复制到页面缓存&#xff0c;另外10次表示10个消费者各自…

黑马头条 Kafka

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 知…

C语言中的结构体

在C语言中&#xff0c;结构体&#xff08;struct&#xff09;是一种可以封装多个不同类型数据的数据结构。通过使用结构体&#xff0c;我们可以将多个相关的变量组合成一个单一的实体&#xff0c;从而方便地进行管理和操作。在本篇博客中&#xff0c;我们将通过示例代码来详细探…

4.0 Zookeeper Java 客户端搭建

本教程使用的 IDE 为 IntelliJ IDEA&#xff0c;创建一个 maven 工程&#xff0c;命名为 zookeeper-demo&#xff0c;并且引入如下依赖&#xff0c;可以自行在maven中央仓库选择合适的版本&#xff0c;介绍原生 API 和 Curator 两种方式。 IntelliJ IDEA 相关介绍&#xff1a;…

macOS Sonoma 14系统安装包

macOS Sonoma 14是苹果公司最新推出的操作系统&#xff0c;为Mac用户带来了全新的使用体验。Sonoma是苹果继Catalina之后的又一重要更新&#xff0c;它在改善系统性能、增加新功能、优化用户界面等方面做出了显著贡献。 macOS Sonoma 14系统有许多令人兴奋的新功能和改进&…

【DDD】学习笔记-数据模型与对象模型

在建立数据设计模型时&#xff0c;我们需要注意表设计与类设计之间的差别&#xff0c;这事实上是数据模型与对象模型之间的差别。 数据模型与对象模型 我们首先来分析在设计时对冗余的考虑。前面在讲解数据分析模型时就提及&#xff0c;在确定数据项模型时&#xff0c;需要遵…