找回密码
 注册
Simdroid-非首页
查看: 103|回复: 3

[Motion] 如何建立分段函数表达式?

[复制链接]
发表于 2017-12-25 11:56:06 | 显示全部楼层 |阅读模式 来自 江苏南京
求问各位大神:
我现需要在motion里面建一个表达式力,但是这个力随着两个body之间的距离不同,表达式也不同,在某距离范围为表达式A,在另一范围内为表达式B,这样的表达式该如何建立呢?是否需要用到Motion Senser里面的Test功能?对于Test,当布尔量为真/假时,如何输入表达式公式而不是常量(我尝试在返回值里添加eval_expr来返回预先定义的函数值,可是总是提醒我单位不一致)?另外,Test用于非真即假的判定,只能用于两段的函数,如果函数分三段,是否需要两个布尔进行嵌套定义呢?
发表于 2018-8-10 08:54:02 | 显示全部楼层 来自 湖北武汉
Simdroid开发平台
看help文档吧:lol:lol:lol:lol:lol:lol:lol:lol
回复 不支持

使用道具 举报

发表于 2019-1-24 11:32:25 | 显示全部楼层 来自 北京
本帖最后由 mxlzhenzhu 于 2019-1-24 11:39 编辑

我不了解Motion,能够输入三角函数和特殊函数(绝对值函数和符号函数)么?如果可以,请试试下面的构造的阶梯函数:
syms a b
x=[-10:0.01:10];
y=@(a,b)sign(abs(x)-a)*b/2;
plot(x,y(1,3),'r')
hold on
plot(x,y(2,-2),'k')
set(gca,'Ylim',[-2 2])

在MATLAB里运行,你就能发现下图:



另外一种阶梯函数,还可以这样:k=10;d=5;
y=(tanh(k*(x+d))+tanh(k*(x-d)))/2;
hold off
plot(x,y(2,-2),'k')
set(gca,'Ylim',[-2 2])

这些阶梯函数可以作为权函数来用,当然,最终表达式会很复杂。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-27 01:04 , Processed in 0.030387 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表