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

相关推荐
天下皆白_唯我独黑7 分钟前
php 使用qrcode制作二维码图片
开发语言·php
夜雨翦春韭11 分钟前
Java中的动态代理
java·开发语言·aop·动态代理
小远yyds13 分钟前
前端Web用户 token 持久化
开发语言·前端·javascript·vue.js
何曾参静谧25 分钟前
「C/C++」C/C++ 之 变量作用域详解
c语言·开发语言·c++
q567315231 小时前
在 Bash 中获取 Python 模块变量列
开发语言·python·bash
深圳市青牛科技实业有限公司1 小时前
【青牛科技】应用方案|D2587A高压大电流DC-DC
人工智能·科技·单片机·嵌入式硬件·机器人·安防监控
许野平1 小时前
Rust: 利用 chrono 库实现日期和字符串互相转换
开发语言·后端·rust·字符串·转换·日期·chrono
也无晴也无风雨1 小时前
在JS中, 0 == [0] 吗
开发语言·javascript
狂奔solar1 小时前
yelp数据集上识别潜在的热门商家
开发语言·python
blammmp2 小时前
Java:数据结构-枚举
java·开发语言·数据结构