五段式S型算法笔记

设定已知:v0 vmax j;

减加速段:tm到tmax

加加速段:0到tm

tm:中点时间 vm:中点速度 vmax:最大速度; j加速度的斜率 -j相反加速度的斜率

这个图首先说明:是为了更好的理解,我才把匀速段去掉;

前提1:a(t)=dv(t)/dt;瞬时速度的微分就是瞬时加速度;

所以有 a 的积分得到瞬时速度;

加速段(0到tmax):关于(t1,v1)点对称(为什么,因为我们需要的S型就是这样的,也可以理解为指定这样就是S型):得到的信息就很多了;

tm=tmax/2;

vm=vmax/2;

S型理解:

加加速段:

理解加加速段【0 to tm】:每一个瞬时速度v=v0+0.5j*t*t;

对t进行增量就得到下一个的速度;t的增量可以设置为10个计数点单位;

理解提醒:在前提1提到,因为a=jt ; 所以∫adt的积分 =1/2j*t*t +C(C为常量);

应用:得到速度,就可以转化为脉冲的时间;脉冲的时间,就是PWM的周期;

减加速段:

这个就是正常的高数难度了:首先a的变化斜率变成了-j

所以a的积分=-j(t-tx) 其实这个t和加加段的t是不一样的;取值不一样;但是意义都是增量;加加段的增量是(t-0),所以是a=j(t-0);而减加段不再是减0,而是增量a==-j(t-tx);

而v=v0-j(t-tx)

然后承接1:

tm到tmax段与tmax段到下一个tm1段是关于x=tm对称的;

没有这个承接1,从vmax倒序看图了初速度vmax到vm 老是会想瞬时速度的t怎么来;老是会想着增量是从tmax开始往tm的方向增;什么时间都是递增的怎么计算下个V好抽象;总不能先计算靠近tmax的速度吧;就很不好理解,反正思维很乱

tm到tmax段与tmax段到下一个tm1段是关于x=tm对称的;

所以瞬时速度是关于x=tm对称的;所以求t2和t4的点瞬时速度求那个都是一样的;这个承接1是为了理解这个减加速段(是理解);所以基准点可以放到tmax到tm段;

当我要求t2的瞬时的速度的时候===等价t4的瞬时速度;v2=vmax-0.5j(tmax-t4)(tmax-t4);

瞬时增量是t-t4,同样也是t2的瞬时增量基于tmax的瞬时增量;而现在我就是要v2的瞬时速度;这个的承接作用就到这了;

目标明确是v瞬时,不是围绕t增量方向;不是老想着从tmax慢慢增过去,就得到了瞬时速度v;而是从瞬时速度出发思考;

我下一步的v1=vmax-0.5j(tmax-t1)(tmax-t1);

v2=vmax-0.5j(tmax-t2)(tmax-t2);

所以v=vmax-0.5j(tmax-t)(tmax-t);通式就完全对应上了,t就是瞬时时间;这是理解从t由小到大的变化v;这并不是公式推导,更像是具体化的去理解,不用更抽象;

加加速度j 自己设置 已知,vmax自己设置已知;v0自己设置已知

加加速段

v=v0+0.5j*t*t;

减加速段

vm=(vmax-v0)/2 vmax=2vm-v0;

tmax=2tm

算法1: v=2vm-v0-0.5*jt+2jt*tm-2jtm*tm

又因为有 v-v0= 0.5jt通式: 所以有 vm-v0= 0.5jtm 所以有4vm-4v0= 2jtm

所以有4vm-4v0= 2jtm带入算法1

v=2vm-v0-0.5*jt+2jt*tm-(4vm-4v0)

v=-2vm-0.5*jt+2jt*tm+3v0;

程序上的应用:得到v自然就可以转化为脉冲周期;

第二种:设定已知v0 vmax tmax

关键:

s2=∫vmax-1/2(t-tmax)^2dt=vmax*t-1/6j(t-tmax)^3 t=[tmax/2,tmax ]

用面积法或者用值替换法 (替换法这名字不专业,我瞎编的)

面积法:s2=vt-s1 tmax/2到tmax曲线的上部面积 等效于 0到 tmax/2到 s1的面积

替换法:(t-tmax)为x x的取值[tmax/2,0] 所以有1/6jx^3,且积分范围 与s1积分范围相同;1/6jx^3=s1; s2=vt-s1

相关推荐
编程零零七1 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql
2401_858286112 小时前
52.【C语言】 字符函数和字符串函数(strcat函数)
c语言·开发语言
铁松溜达py2 小时前
编译器/工具链环境:GCC vs LLVM/Clang,MSVCRT vs UCRT
开发语言·网络
everyStudy2 小时前
JavaScript如何判断输入的是空格
开发语言·javascript·ecmascript
C-SDN花园GGbond4 小时前
【探索数据结构与算法】插入排序:原理、实现与分析(图文详解)
c语言·开发语言·数据结构·排序算法
迷迭所归处5 小时前
C++ —— 关于vector
开发语言·c++·算法
架构文摘JGWZ5 小时前
Java 23 的12 个新特性!!
java·开发语言·学习
leon6255 小时前
优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序
开发语言·算法·matlab
锦亦之22336 小时前
QT+OSG+OSG-earth如何在窗口显示一个地球
开发语言·qt
我是苏苏6 小时前
Web开发:ABP框架2——入门级别的增删改查Demo
java·开发语言