搜索
汉力达液压金币充值官方微信群液压资料下载
查看: 3702|回复: 4

AMEsim分段函数计算出错

[复制链接]
发表于 2015-5-7 08:58:30 | 显示全部楼层 |阅读模式
1*(x<=1.792)+1-(1/PI*acos((1.795-x)/0.003)-1/(2*PI)*sin(2*acos((1.795-x)/0.003)))*(1.792<x&&x<1.795)+1/(2*PI)*(2*acos((x-1.795)/0.003)-sin(2*acos((x-1.795)/0.003)))*(1.795<x&&x<1.798)+0*(1.798<=x)这个分段函数怎么老把x=0带入acos函数式计算啊,仿真提示计算不出acos598.333,也就是把x=0,带入了acos((1.795-x)/0.003)这个函数式

AMEsim分段函数计算出错

AMEsim分段函数计算出错


[img]file:///C:\Users\GLCSU\AppData\Roaming\Tencent\Users\1205401157\QQ\WinTemp\RichOle\WNOPOB6_[M$D`5L{II5V6U5.png[/img]


  • 打卡等级:常驻居民
  • 打卡总天数:365
  • 打卡总奖励:2062
发表于 2015-5-7 16:53:28 | 显示全部楼层
请钟离师弟尽快完成表达式设置后,做个规范化回复帖子,谢谢!
回复

使用道具 举报

  • 打卡等级:初来乍到
  • 打卡总天数:32
  • 打卡总奖励:193
发表于 2015-5-23 12:49:53 | 显示全部楼层
好高深,等大神解答
回复

使用道具 举报

  • 打卡等级:偶尔看看
  • 打卡总天数:82
  • 打卡总奖励:534
发表于 2015-5-25 20:14:16 | 显示全部楼层
兄弟,acos()函数的定义域是[-1,1),先保证你括号里面的定义域在里面再说吧。
另外,如果你的x是状态变量(即参数模式下带#),可以直接赋初始值,使其不等于0,避免仿真t=0s时出错。
回复

使用道具 举报

  • 打卡等级:偶尔看看
  • 打卡总天数:82
  • 打卡总奖励:534
发表于 2015-5-25 20:39:45 | 显示全部楼层
可以利用max和min函数实现acos在定义域内,上述函数等价于:
(x<=1.792)+1-(1.792<x&&x<1.795)*(1/PI*acos(max(-1,min(1.795-x,1))/0.003)-1/(2*PI)*sin(2*acos(max(-1,min(1.795-x,1))/0.003)))+(1.795<x&&x<1.798)*(1/(2*PI)*(2*acos(max(-1,min(1.795-x,1))/0.003)-sin(2*acos(max(-1,min(1.795-x,1))/0.003))))
回复

使用道具 举报

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

本版积分规则