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

[运动设置] 反力是个分段函数怎么设置?

[复制链接]
发表于 2013-10-11 19:00:02 | 显示全部楼层 |阅读模式 来自 湖北武汉
悬赏3仿真币已解决
各位高手,请问:
      1. 我有一个操动机构需要仿真,里面有动铁芯和静铁芯,直线运动的动铁芯所受到的反力是一个关于y轴位置变化的分段函数,函数具体的点或者是表达式是已知的,怎么样在maxwell里面设置这个反力呢?我知道在band设置里面有一个load force,不知道是不是用这个设置的,具体怎么做呢?
      2.这个运动的动铁芯的质量也是在运动到一个确定位置时发生突变了,质量的突变怎么设置呢?或者这么说,动铁芯的质量也是一个随y轴位移变化的分段函数,具体怎么做???
      图片里面红色部分就是要运动的动铁芯,浅蓝色是它的运动空隙,也就是band。
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

发表于 2013-10-11 19:00:03 | 显示全部楼层 来自 美国
Simdroid开发平台
if(time<1,100,200)
回复

使用道具 举报

 楼主| 发表于 2013-10-12 09:57:37 | 显示全部楼层 来自 湖北武汉
怎么没人啊   帮帮忙啊
回复

使用道具 举报

发表于 2013-10-12 23:28:22 | 显示全部楼层 来自 美国
load force可以设置反力,函数自己写就行
质量变化你写个简单函数看是否允许,我现在没电脑
回复

使用道具 举报

 楼主| 发表于 2013-10-13 21:13:08 | 显示全部楼层 来自 湖北武汉
perch88 发表于 2013-10-12 23:28
load force可以设置反力,函数自己写就行
质量变化你写个简单函数看是否允许,我现在没电脑 ...

反力的函数是在哪里设置呢?是直接写成一个变量,然后在弹出的窗口里面写variable的函数?我这个是关于位移的分段函数不知道怎么弄啊,拜托能否具体一点呢?     
我看到网上有人说,用dataset设置分段函数和pwlx插值函数,可是我都不知道具体怎么操作,能否指点一下?或者推荐什么资料看看?
回复

使用道具 举报

 楼主| 发表于 2013-10-13 21:19:17 | 显示全部楼层 来自 湖北武汉
perch88 发表于 2013-10-12 23:28
load force可以设置反力,函数自己写就行
质量变化你写个简单函数看是否允许,我现在没电脑 ...

或者说,如果直接在变量设置的窗口里面写分段函数,那关于位移的分段函数的具体编函数的语言是什么样的?
回复

使用道具 举报

 楼主| 发表于 2013-10-15 19:15:51 | 显示全部楼层 来自 湖北武汉

感谢,您的意思是这里写的是反力关于时间的函数?那我要设置的是关于y轴位移的分段函数,直接把time改成position?还是改成y?
回复

使用道具 举报

发表于 2013-10-16 06:52:37 | 显示全部楼层 来自 美国
yes, 直接把time改成position
回复

使用道具 举报

 楼主| 发表于 2013-10-16 17:43:45 | 显示全部楼层 来自 湖北武汉
perch88 发表于 2013-10-16 06:52
yes, 直接把time改成position

您好,还是再要麻烦您帮一下忙。有两个问题:1.我的反力不是简单的函数,是一个这样的三段有不同的函数表达式的,我在写的时候if语句不知道怎么处理啊。2.可否用dataset把这个分段函数的点描出来,然后怎样把它放到load force里面去?我是在design properties里面设置了一个变量ff1,在弹出的窗口里面写上pwlx(dataset_name,position),但是软件又让我设置position这个变量的值,position不是系统默认的位移变量吗?这是怎么回事,我这样做哪里出问题了?

本帖子中包含更多资源

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

×
回复

使用道具 举报

发表于 2013-10-17 06:44:07 | 显示全部楼层 来自 美国
有些地方可以用position,有些地方不可以
你试试两个if嵌套
回复

使用道具 举报

 楼主| 发表于 2013-10-25 19:52:55 | 显示全部楼层 来自 湖北武汉
本帖最后由 violatse 于 2013-10-25 19:57 编辑
perch88 发表于 2013-10-17 06:44
有些地方可以用position,有些地方不可以
你试试两个if嵌套

您好,我试过很多种方法,比如用dataset设置曲线之后用写成pwlx函数施加反力,就是load force=ff1=pwlx(dataset_name,position)         或者是
另一种是用if函数,函数是这样写的if(0<y&&y<5,965-115*y,if(5<y&&y<20,465-15*y,if(20<y&&y<26,1289-166.7*y,0)))。
结果发现所有这些方法加上去的反力都是一个定值,一般都是令里面的自变量为0的初值。就是说不管怎么定义反力的分段函数,得到的总是一个恒定的力啊 ,这是怎么回事???麻烦您帮帮忙
回复

使用道具 举报

 楼主| 发表于 2013-10-25 20:01:20 | 显示全部楼层 来自 湖北武汉
本帖最后由 violatse 于 2013-10-25 20:19 编辑
perch88 发表于 2013-10-17 06:44
有些地方可以用position,有些地方不可以
你试试两个if嵌套

我之所以if函数写的是以自变量为y的函数,是因为我想写成position的函数,但是在软件提示说没有这个默认的position变量。做了这么久了,实在是疑惑,软件到底用什么来表示位移呢?试过y和position,都不行,得到的结果都无法体现力随位移的变化啊
回复

使用道具 举报

发表于 2013-10-26 09:21:07 | 显示全部楼层 来自 广西桂林
用p或position表示,你看看你的软件是哪个版本,可以试试这两个,
回复

使用道具 举报

发表于 2014-9-5 16:55:42 | 显示全部楼层 来自 广东广州
perch88 发表于 2013-10-16 06:52
yes, 直接把time改成position

我也想知道,可以直接在 Loadforce中写if(position<8,k1*position,k1*position+k2*position) 来表示反力吗?可是结果就是一条有斜率的直线,没有上面图中的效果。怎么设置对呢?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 05:14 , Processed in 0.045464 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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