AMEsim分段函数计算出错
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)这个函数式file:///C:\Users\GLCSU\AppData\Roaming\Tencent\Users\1205401157\QQ\WinTemp\RichOle\WNOPOB6_
请钟离师弟尽快完成表达式设置后,做个规范化回复帖子,谢谢! 好高深,等大神解答 兄弟,acos()函数的定义域是[-1,1),先保证你括号里面的定义域在里面再说吧。
另外,如果你的x是状态变量(即参数模式下带#),可以直接赋初始值,使其不等于0,避免仿真t=0s时出错。 可以利用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))))
页:
[1]