s型预测曲线matlab,S形曲线规划方式汇总
其中:
B_0(t) = (1-t)^5 = -t^5 + 5t^4 - 10t^3 + 10t^2 - 5t + 1
B_1(t) = 5(1-t)^4 * t = 5t^5 - 20t^4 + 30t^3 - 20t^2 + 5t
B_2(t) = 10(1-t)^3 * t^2 = -10t^5 + 30t^4 - 30t^3 + 10t^2
B_3(t) = 10(1-t)^2 * t^3 = 10t^5 - 20t^4 + 10t^3
B_4(t) = 5(1-t) * t^4 = -5t^5 + 5t^4
B_5(t) = t^5 = t^5
V(t)可以改写为:
V(t) = A*t^5 + B*t^4 + C*t^3 + D*t^2 + E*t + F
其中:
A = -P_0 + 5*P_1 - 10*P_2 + 10*P_3 - 5*P_4 + P_5
B = 5*P_0 - 20*P_1 + 30*P_2 - 20*P_3 + 5*P_4
C = -10*P_0 + 30*P_1 - 30*P_2 + 10*P_3
D = 10*P_0 - 20*P_1 + 10*P_2
E = - 5*P_0 + 5*P_1
F = P_0
我们希望初始加速度和初始jerk都为0,因此我们设置P_i=P_0 = P_1 = P_2 (initial velocity),P_t = P_3 = P_4 = P_5 (target velocity),经过简化以后有:
A = - 6*P_i + 6*P_t = 6*(P_t - P_i)
B = 15*P_i - 15*P_t = 15*(P_i - P_t)
C = -10*P_i + 10*P_t = 10*(P_t - P_i)
D = 0
E = 0
F = P_i
此时有 V(t) = A*t^5 + B*t^4 + C*t^3 + F [0 <= t <= 1]
二 Matlab代码实现
matlab实现上述3种曲线规划代码:
clc;clear;
flex=5;
vmin=10;
vmax=100;
num=15;
for i=0:1:2*num+1
t(i+1)=i;
y(i+1)=vmin+(vmax-vmin)/(1+exp(-flex*(i-num)/num));%simoid
z(i+1)=vmin+(vmax-vmin)/(2*num)*i;%梯形
e(i+1)=vmin+(vmax-vmin)*(i/(2*num)-1/(2*pi)*sin(2*pi/(2*num)*i));%sin曲线
f(i+1)=6*(vmax-vmin)*(i/(2*num))^5+15*(vmin-vmax)*(i/(2*num))^4+10*(vmax-vmin)*(i/(2*num))^3+vmin;%bezier曲线
end
plot(t,y,t,z,t,f)
hold on;grid on;legend
波形如下:
data1-4分别是sigmoid、梯形、sin、bezier曲线速度规划的速度曲线。
可以看到三种曲线形状差不多,但以bezier曲线最为柔和。运算量方面,sigmoid要执行e的幂运算所以较难优化,sin函数可以用转化成定点查表法进行优化,bezier曲线只涉及浮点乘法运算量速度相对sigmoid会较快,相对优化的sin函数则会较慢。下面画出sigmoid、sin和bezier三种曲线规划时的加速度曲线:
for i=0:1:2*num+1
if i>0
err1(i+1)=(y(i+1)-y(i))/(1/(2*num));
err2(i+1)=(e(i+1)-e(i))/(1/(2*num));
err3(i+1)=(f(i+1)-f(i))/(1/(2*num));
end
end
figure;
plot(t,err1,t,err2,t,err3);grid on;legend;
可见最大加速度最大依次是sigmoid>sin>bezier
s型预测曲线matlab,S形曲线规划方式汇总相关推荐
- 基于MATLAB的关节型六轴机械臂轨迹规划仿真(2021实测完整代码)
我是一个目录 基于MATLAB的关节型六轴机械臂轨迹规划仿真 1 实验目的 2 实验内容 2.1标准D-H参数法 2.2实验中使用的Matlab函数 3实验结果 4 全部代码 基于MATLAB的关节型 ...
- matlab机器人轨迹规划仿真程序,基于MATLAB的六自由度机器人轨迹规划与仿真.pdf...
基于MATLAB的六自由度机器人轨迹规划与仿真 学兔兔 l 訇 似 基于MATLAB的六自由度机器人轨迹规划与仿真 Trajectory planning and simulation of six- ...
- Matlab【路径规划】—— 无人机药品配送路线最优化
文章目录 问题描述 具体思路 demo1:求解所有节点间的距离 demo2:直升机配送路线规划算法 demo3:寻找最优解的优化算法 支撑材料&工程附件 问题描述 某市引进一架专业大型无人机用 ...
- MATLAB 心形曲线(大赏)
MATLAB 心形曲线 基本知识 clc:指令可以清除屏幕,所以你可以通过clc指令来清理屏幕 clc hold on:指令可以将画的图连起来 hold on clear:清除之前所留的定义 clea ...
- matlab绘制频散曲线,Matlab绘制频散曲线程序代码.docx
Matlab绘制频散曲线程序代码.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. ...
- matlab drawnow连成曲线,precision recall曲线Matlab实现
在用哈希进行检索时,常会用到precision recall曲线对其性能进行定量评价.precision recall的定义在信息检索评价指标中已做了详细说明,这里再记录一下precision rec ...
- bp 预测 matlab代码,bp神经网络进行交通预测的Matlab源代码.docx
%bp神经网络进行交通预测的Matlab源代码% BP 神经网络用于预测% 使用平台 - Matlab7.0% 数据为1986年到2000年的交通量 ,网络为3输入,1输出% 15组数据,其中9组为正 ...
- 幅相曲线matlab,matlab开环幅相曲线
– K 的变化对应于对数幅频曲线上下移动,而相 频曲线不变. – 一张图上...180 0 6 频率响应分析法 22 3.7 用Matlab绘制频域特性图 ? sys = tf(num...... 2 ...
- rms | 如何绘制模型带置信区间的预测曲线
前段时间,有读者咨询如何绘制带置信区间的预测曲线.本篇介绍的rms工具包可以很简便地解决这个问题. 该包是Regression Modeling Strategies的附加学习资源,小编从网上找到了这 ...
最新文章
- python把nan值去掉_python – Keras Neural Nets,如何删除输出中的NaN值?
- Unity3D 入门 游戏开发 Unity3D portal game development
- 解决 supervisor中stop django进程不能真正的停止 问题
- AIOps中异常检测的简单应用
- linux内存管理_Linux内存管理(转)
- 一个经典实用的iptables shell脚本
- c语言学生成绩管理系统讲解,C语言学生成绩管理系统(含源代码)精编.doc
- Ubuntu16.04 安装国内版火狐浏览器,同步标签
- rms 公式 有效值_RMS,DC,MEAN,RMN到底有什么区别?
- 如何查询一个网站的域名备案信息?
- 相机模型-鱼眼模型/Omnidirectional Camera(1)
- 鸿蒙系统1004无标题,win10 10041更新提示错误怎么处理
- 干货 | 95后运维小哥20天+通过Elastic认证考试经验分享
- html5如何快速选择工具,PS快速选择工具怎么使用?快捷键是什么?
- iuap 助力国贸股份打造数字化风控平台
- 网易云音乐 真实地址
- 月入过万——网店推广实战方法(第2版)
- Android笔记-Linux Kernel Ftrace (Function Trace)解析
- 将GPS点导入ArcGIS并转换为shp图层文件
- 数码管显示原理与驱动方式