五段式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

相关推荐
马剑威(威哥爱编程)25 分钟前
分布式Python计算服务MaxFrame使用心得
开发语言·分布式·python·阿里云
翱翔-蓝天29 分钟前
Python知识图谱框架
开发语言·python·知识图谱
CodeMartain32 分钟前
stream流的toMap
java·开发语言
lsx20240636 分钟前
Lua 函数
开发语言
相醉为友37 分钟前
在开发嵌入式系统时,尤其是处理大数时,会遇到取值范围的问题。51单片机通常没有内建大整数支持,因此我们需要采用不同的方法来解决这一问题
单片机·嵌入式硬件·51单片机
ling1s42 分钟前
C#核心(18)面向对象多态vob
java·开发语言·c#
IT 古月方源1 小时前
ensp 关于ARRP 的讲解 配置
运维·开发语言·网络·tcp/ip·智能路由器
西猫雷婶1 小时前
python学opencv|读取图像(二十二)使用cv2.polylines()绘制多边形
开发语言·python·opencv
温轻舟2 小时前
前端开发 -- 自定义鼠标指针样式
开发语言·前端·javascript·css·html·温轻舟
1101 11012 小时前
STM32-笔记10-手写延时函数(SysTick)
笔记·stm32·单片机