登录论坛

查看完整版本 : [求助]什么叫连续系统仿真和离散系统仿真


microdisk
2008-11-16, 13:14
计算机进行的仿真难道不都是在时间上离散的吗?看simulink的hel说,说是连续系统仿真是解常微分方程,离散系统仿真则是依赖于系统
的前一个状态。我不太理解这个说法的意思,哪位大侠能帮着解释一下?

tangw
2008-12-23, 01:20
如果你学过信号与系统 应该对这个问题有个大致的了解
连续系统中信号时域连续 求解这类问题的时候用微分方程的方法即可 但如果是离散系统 其信号是离散的 求解这个问题时就不能用微分方程 而应该用差分方程了 而差分方程的解法就是看前一状态或者前面很多状态
关于这个问题 涉及到很多 离散跟连续信号的不同性质 有些我也不大明白 还望高手帮忙

microdisk
2008-12-29, 20:47
微分方程积分一样要看前面的状态啊。看不看前面的状态不能说是连续系统和离散系统的区别吧。

instemast
2009-05-05, 22:44
> 连续型仿真:
比如某个玩家受到持续性的火焰伤害,那么他的HP可以这样计算:
HP(t) = HP(0) + 积分[0 t]damage(t)*dt
由于计算机本身是离散型的,所以这种火焰伤害无法直接计算,也不能精确计算,
通常采用下面的方法:
HP(t+dt) = HP(t) - damage(t)*dt

> 离散系统仿真:
比如某个玩家不断受到物理攻击伤害,那么它生命值为:
HP(new) = HP(old) - damage
这里不方便采用HP(t)的函数进行刻画。因为这里是按照“被攻击次数”计算生命的,
不管什么时间,只要被人砍到一次,那么就会瞬间失去那么多生命值。
计算机本身是离散型的,所以很容易用计算机做上面的这种计算。
但是,对于复杂的离散系统,上面的计算式子会变成地狱!(像魔方一样麻烦!)
(见http://bbs.gameres.com/showthread.asp?postid=709363)
于是,很多时候,我们用连续系统仿真的方法,近似实现离散系统仿真:
HP(t+dt) = HP(t) - damage(t)
缺点是:不严密。我们经常会发现不少软件中出"Error",很多就是这个原因。