查看: 4291|回复: 4

AMEsim分段函数计算出错

[复制链接]

15

主题

39

回帖

93

积分

液压中学生

金钱
40
积分
93
发表于 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]


186

主题

1065

回帖

1894

积分

液压博士

金钱
60421
积分
1894

新锐会员酱油党员技术专家论坛富翁原创先锋荣誉会员精华帖王技术标兵论坛为家五星会员退休版务人员

发表于 2015-5-7 16:53:28 |贵州| 显示全部楼层
请钟离师弟尽快完成表达式设置后,做个规范化回复帖子,谢谢!
回复

使用道具 举报

3

主题

105

回帖

66

积分

液压小学生

金钱
253
积分
66
发表于 2015-5-23 12:49:53 |中国| 显示全部楼层
好高深,等大神解答
回复

使用道具 举报

2

主题

41

回帖

34

积分

液压小学生

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

使用道具 举报

2

主题

41

回帖

34

积分

液压小学生

金钱
316
积分
34
发表于 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))))
回复

使用道具 举报

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

本版积分规则