设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8258|回复: 0

[原创] 如何最大限度地发挥 Equation 和 Equation (I) 的作用 (二)

[复制链接]
发表于 2009-4-1 12:13:28 | 显示全部楼层 |阅读模式
在什么情况下使用 Equation,什么情况下使用 Equation (I)? 9 K3 ?4 O' e# x* O

% M+ S* J6 N9 i$ ?8 W, y0 T; N首先我们需要知道,在连续时间模型(也就是没有Executive模块的模型)中,只能使用 Equation,而不能使用 Equation (I) .这时候,Equation的计算频率是按照等步长的时间间隔由系统统一触发。- o% E. D8 M0 J# T1 y- a* w

: g: f7 Z6 c: l. T+ }6 {& c那么在离散事件模型中,这两个模块都可以使用,如果选择呢? 我自己总结如下,欢迎大家补充8 b: e- N; k6 i& q" v. ?8 \9 r6 z5 R

- Q) o6 q3 n2 Z$ E0 x) m% ^$ r- [采用哪个模块最根本取决于我们希望这个程序被触发(计算)的频率和时机。# X8 a6 M0 J% \5 v- j6 i
1 N/ _$ S6 B3 @: H, J, [
在以下情况下最好使用 Equation (I)
$ M4 K4 j0 w4 i(1) 程序的触发和计算是由通过这个模块的小球来决定的,也就是说,我们有一个明确的时间点,而这个时间点和通过这个模块小球的通过有直接的关联,如果小球没有到,这个计算就不必要进行
. p2 U* B, W4 r- J(2)  这个程序的计算结果在小球到达之间是需要延续的,有可能被其他模块采用,也就是说在下一个小球到达之前,这个程序的计算结果是需要一直保持恒定状态。比如说,我们需要按照某个订单的订货数量来 Batch 一定数量的小球,那么,采用 Equation (I) 输出这个订单所需要的数量,把这个数量就可以做为Batch 模块批量的输入端口,那么在下一个订单到达之前,当前订单的所需数量都是恒定的,便于Batch的发生;
" a3 ~: k1 L. [8 o+ w
! j! y% T( F$ j0 a7 q+ y( W  L' Y- g/ y在以下情况下最好使用 Equation
( U2 W, [7 m* u  k" X(1) 程序所用到的输入都是在其他模块中输出的信息,而这些信息一般都是时时刻刻变化的,并不是由某一个小球的通过来确定的。而任何一个输入信息发生变化,都需要及时作出新的决策。
# i4 B, Q1 p3 q* `* X& `. W1 |(2) 程序需要不断地定时发生。这种情况出现在决策需要提前作出(而不是等到某个事件发生后才进行处理,比如说之前港口装油的例子中,在装油结束前10分钟,就需要调动托轮)。这种情况也出现在某些决策信息本身并没有和某个具体事件相关联,比如说,某个决策和当前时间有关,当时间为100分钟的时候,需要产生出某个决策信息。 这时候,需要在 Equation 模块的 Option 分页中,设定定时计算的时间间隔5 C; R1 M9 T; s. n, L1 b  E; s; z

( @6 t6 q3 h& w" Q6 z9 F在离散模型中,尽可能使用 Equation(I)模块,这样计算触发的时机比较清楚,容易掌握。如果不能满足,再考虑 Equation 模块。

评分

参与人数 2仿真币 +20 +8 收起 理由
focuscon + 20 + 5 非常好!
苘苘 + 3

查看全部评分

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

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2026-6-15 12:45 , Processed in 0.013266 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表