24小时热门版块排行榜    

查看: 4608  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xyz52134

新虫 (小有名气)

[求助] 仿真出现问题There may be a singularity in the solution

仿真时出现如下问题该怎么解决啊?
Stopping simulation.  There may be a singularity in the solution.  If the model is correct,  try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances).
     加入memory模块后,问题就变为
Embedded MATLAB Runtime Error:  Simulation stopped due to data array bounds read error.
Block a1,2,3^.b^. (#91)
While executing: none.
请知道的人帮忙解答一下
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xyz52134

新虫 (小有名气)

引用回帖:
2楼: Originally posted by 花飞花舞 at 2012-10-20 19:37:24
MATLAB說你的模型裡面有代數迴路,用一般的數值方法沒辦法給出可靠的解答。
代數迴路是說,你要解的輸出,跟他自己此刻的值有關。例如:
y(k)=a*y(k)+u(k)+u(k-1)...
左邊待解的y(k)出現在右邊,數值方法就傻了。 ...

那么memory模块中的参数是怎么给定的呢?根据什么原则或要求给定呢?
3楼2012-10-22 12:58:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

花飞花舞

银虫 (初入文坛)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+2, 鼓励讨论交流 2012-10-21 19:56:46
MATLAB說你的模型裡面有代數迴路,用一般的數值方法沒辦法給出可靠的解答。
代數迴路是說,你要解的輸出,跟他自己此刻的值有關。例如:
y(k)=a*y(k)+u(k)+u(k-1)...
左邊待解的y(k)出現在右邊,數值方法就傻了。
一般輸出只與他以前的值有關。因為輸出此刻的值還不知道,要拿此刻的輸出去解此刻的輸出,對程式?碚f,說不通。所以代數迴路對數值方法?碚f,不容易解出?怼#ㄓ梅柦鈪s很容易,我們隨便做個移項就好了,數值方法卻沒辦法這麼做)。
使用Memory相當於在回路中加入一個延遲方塊z^-1,這樣就消除了代數迴路.
手動找代數迴路也不難,在你的模型裡面找迴圈,繞一圈,沒碰到動態的部分,那就是代數迴路了。
元芳,你怎么看?
2楼2012-10-20 19:37:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

花飞花舞

银虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★
xiegangmai: 金币+1, 谢谢参与 2012-10-23 21:49:56
xyz52134: 金币+5, 有帮助, 这些话再百度上能搜到,实际还是不明白,但还是谢谢了 2012-10-24 09:38:38
具體的用法就看看doc memory中的介紹。
元芳,你怎么看?
4楼2012-10-22 15:19:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

挣扎的心

新虫 (初入文坛)

楼主你的问题解决了吗?我也出现一样的问题
5楼2015-10-08 15:27:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见