Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2008-11-16
年龄: 45
帖子: 2
声望力: 0 ![]() |
![]()
计算机进行的仿真难道不都是在时间上离散的吗?看simulink的hel说,说是连续系统仿真是解常微分方程,离散系统仿真则是依赖于系统
的前一个状态。我不太理解这个说法的意思,哪位大侠能帮着解释一下? |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2008-12-23
年龄: 42
帖子: 2
声望力: 0 ![]() |
![]()
如果你学过信号与系统 应该对这个问题有个大致的了解
连续系统中信号时域连续 求解这类问题的时候用微分方程的方法即可 但如果是离散系统 其信号是离散的 求解这个问题时就不能用微分方程 而应该用差分方程了 而差分方程的解法就是看前一状态或者前面很多状态 关于这个问题 涉及到很多 离散跟连续信号的不同性质 有些我也不大明白 还望高手帮忙 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-11-16
年龄: 45
帖子: 2
声望力: 0 ![]() |
![]()
微分方程积分一样要看前面的状态啊。看不看前面的状态不能说是连续系统和离散系统的区别吧。
|
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2009-05-05
年龄: 36
帖子: 1
声望力: 0 ![]() |
![]()
> 连续型仿真:
比如某个玩家受到持续性的火焰伤害,那么他的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",很多就是这个原因。 |
![]() |
![]() |
![]() |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[资料]BP网络总结及应用实例 | guofeng0108 | MATLAB论坛 | 37 | 2012-06-11 22:08 |
[求助]对彩色图Y分量的提取,如何进行DCT变换如何加入水印 | musecat | MATLAB论坛 | 2 | 2009-01-04 13:56 |
Matlab声音合成和滤波的问题【附代码-自己写的】 | xmuer | MATLAB论坛 | 4 | 2008-12-17 08:58 |
[求助]The input character is not valid in MATLAB statements or expressions. | mumu | MATLAB论坛 | 2 | 2008-11-26 12:58 |
[求助]电力系统机组启停优化算法程序 | woshi523de | MATLAB论坛 | 1 | 2008-11-18 08:12 |