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

相关推荐
草履虫建模10 分钟前
力扣算法 1768. 交替合并字符串
java·开发语言·算法·leetcode·职场和发展·idea·基础
Lester_11011 小时前
STM32 高级定时器PWM互补输出模式--如果没有死区,突然关闭PWM有产生瞬间导通的可能吗
stm32·单片机·嵌入式硬件·嵌入式软件
naruto_lnq2 小时前
分布式系统安全通信
开发语言·c++·算法
小李独爱秋3 小时前
“bootmgr is compressed”错误:根源、笔记本与台式机差异化解决方案深度指南
运维·stm32·单片机·嵌入式硬件·文件系统·电脑故障
学嵌入式的小杨同学3 小时前
【Linux 封神之路】信号编程全解析:从信号基础到 MP3 播放器实战(含核心 API 与避坑指南)
java·linux·c语言·开发语言·vscode·vim·ux
Re.不晚3 小时前
Java入门17——异常
java·开发语言
精彩极了吧3 小时前
C语言基本语法-自定义类型:结构体&联合体&枚举
c语言·开发语言·枚举·结构体·内存对齐·位段·联合
南极星10054 小时前
蓝桥杯JAVA--启蒙之路(十)class版本 模块
java·开发语言
baidu_247438614 小时前
Android ViewModel定时任务
android·开发语言·javascript
Dev7z5 小时前
基于 MATLAB 的铣削切削力建模与仿真
开发语言·matlab