在MATLAB中创建2点(缓动)之间的S曲线
我正在研究机器人项目的一些轨迹生成。它在步态周期内上下移动机器人的躯干。在MATLAB中创建2点(缓动)之间的S曲线
当我改变躯干的设定值时,我使用linspace()
在当前位置和所需位置之间创建一条直线。不过,我想减轻线的开始和结束。我想要创建一个S曲线,以防止线路开始和结束时的冲击。
我曾看过使用sigmoid函数sigmf(x,[a c])
,但我不知道依赖关系是a
和c
变量关于2点之间的距离。
如何使用MATLAB在2点之间生成平滑的S曲线以缓解线的端点?
实施例:
我有2点:y = 0.9
和y = 0.3
。我需要创建一个S曲线开始于x=0
,并结束于x=1000
x轴永远是0
和1000
之间的Y轴总是会内[0 1]
或[1 0]
回答:
MATLAB的文档给你一些线索:
http://www.mathworks.com/help/fuzzy/sigmf.html?requestedDomain=www.mathworks.com
附近有一座小游戏应该明确,但参数似乎意味着和c“上升/下降的开始”的意思是“过渡,其中T的中点他的S曲线值是0.5“。
最重要的是,它给你它使用的确切公式。您可以轻松绘制出不同的值并查看它的行为。
你真正的问题可能是你需要重复求解适当的常量a和c给定的开始和结束点。两个未知数a和c;两个方程式,每个方程起点和终点各一个。对于给定的开始点和结束点,您应该求解a和c的闭式表达式,然后使用结果曲线在它们之间进行平滑过渡。
以上是 在MATLAB中创建2点(缓动)之间的S曲线 的全部内容, 来源链接: utcz.com/qa/263741.html