设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8316|回复: 22

[原创] 仿真抽象方法

  [复制链接]
发表于 2015-7-3 16:31:26 | 显示全部楼层 |阅读模式
     很多时候,我们在建立仿真模型的时候会遇到现实中复杂的情形。对于这些情形,如果能按现实中一致的方式表达固然是最好的,但有时受仿真软件的功能限制或开发时间限制,难以在仿真中和现实一致的表达。此时,仿真抽象就是解决问题的一个很好方法。那么,什么叫仿真抽象呢?这名字是我起的,如果定义的话,就是提取复杂事物中最本质的内容,用简单的方法来表达。
; m' B5 ^7 q! w- V* Z1 A5 f     举个例子,在plant simulation中是没有立体库的,可有些人可能见过老外开发的立体库模块,其实就是用一些singleproc和method封装了一个frame,外层用对话框包装一下,填写长、宽、高、货叉速度等立体库参数,就可以用了。那么,这个立体库模块是怎么表达立体库的出、入库过程呢?通常在其他三维仿真软件里,大家会看到完美表达的立体库动画,堆垛机从入库口取了货物,经过纵向、横向的运行,再由货叉把货物放到指定空位,这个过程动画和现实中一样,很容易理解。但要仔细想想,这个过程到底要表达什么?什么才是最关键的?答案是时间,货叉从入库口取货到放货完成的时间是仿真最重要的内容,因为这个时间决定了生产量,决定了每个货物的出、入库周期。所以在plant simulation的立体库模块,只用一个singleproc来表达这一过程,只不过proctime属性是动态的,是通过一个数学模型计算出来的。这个数学模型逻辑也很简单,就是随机一个库位(有X/Y坐标),然后根据库位坐标和入库口位置,结合堆垛机的速度、加速度计算横向运行时间和纵向运行时间,把最大的那个时间赋值给proctime。所以这样一个方法,很简单的就可以描述立体库,虽然它没有绚丽的三维动画,但同样做仿真,它的输出数据比三维动画的输出还准确(很多人怕仿真数据不准,要看动画,其实动画很准,但数据可能差很远)。而且,更为重要的是,这种抽象方法建立的模型仿真速度非常快,可以在极短的时间内完成几万次仿真,产生较为全面的仿真数据(因为是随机货位,所以立体库的仿真需要很多次仿真才能归纳其内在的规律)。) w( I7 c7 {" K+ j
      再如,曾经有个学生想做超市的仿真,建了个很复杂的模型,模拟人进超市、逛各个区、再到缴费的过程。但这个过程在现实中非常复杂,有各种各样的因素影响。所以我问他,你到底建这个模型想表达什么?他想了半天,说看到超市缴费排队太长,想建个模型分析下。因为缴费的人数受逛超市人数的影响,逛超市受进超市人数影响。我问,如果这么想的话,进超市人数是否还受这个城市人口基数的影响?是否还受这个城市20年前的出生率的影响?这其中的内在规律,没人能说的清,你仿真怎么能表达出来?所以如果要研究缴费排队问题,就老老实实建个多服务台的排队模型就好了,顾客到达按泊松分布,具体参数到超市调研去。
0 \" b7 d* A8 _9 ]: j: j      通常我们讲仿真和数学建模方法是两种不同的方法,数学方法粗、仿真方法细,而且仿真方法是按时间进度一步一步推算出来的。但在仿真一步一步推算过程中,很多细节如果和现实中完全一致,其实是没有必要的,需要用数学模型表达现实中静态的过程,再用仿真的动态方法不断往复计算,获得计算结果,这个过程才是仿真建模的本质。但这个过程中的每一个细节,其内在规律和特性一定是人类能获知的,能用数学方法表达出来的,否则仿真就不是预测未来的工具,而是坑蒙拐骗的神棍了。

评分

参与人数 1仿真币 +20 收起 理由
五五 + 20

查看全部评分

发表于 2015-7-3 16:40:34 | 显示全部楼层
说到点上了。。。
 楼主| 发表于 2015-7-3 16:41:41 | 显示全部楼层
五五 发表于 2015-7-3 16:40 & z! i1 I/ j) L+ ]
说到点上了。。。

. s7 D( g; E. u5 }- {: Y小柯改名了?
发表于 2015-7-3 16:43:09 | 显示全部楼层
没改啊 我论坛一直叫这个。。。
1 s9 J7 }9 {( L) L- w1 W* P
9 E! s" O: o, K) |; A1 C6 `9 C* V; o说到立体库,赵老师用FEM么
 楼主| 发表于 2015-7-3 16:49:03 | 显示全部楼层
五五 发表于 2015-7-3 16:43 & C; g1 Z% g0 W' A) r
没改啊 我论坛一直叫这个。。。! t. E1 ^1 U- I9 r" I' k; y* ]

1 q1 n+ o3 n  H- Q3 M说到立体库,赵老师用FEM么
3 ~- }3 j5 B4 Y# x7 a" {
那可能把你QQ名字混了。不知FEM是什么,我说的是一个名字叫HBW的二次开发模块。
发表于 2015-7-5 14:54:28 | 显示全部楼层
五五 发表于 2015-7-3 16:43 , j- m  t# e9 Y1 d- K) C5 n  i) r
没改啊 我论坛一直叫这个。。。( `! w' L/ W/ r* T1 p2 U. f& ^

3 M" n$ F$ O+ x5 E  o% B说到立体库,赵老师用FEM么
8 L9 o8 e( A+ _$ ]8 c, q) A
珂,讲讲什么叫FEM吧,这词儿还真没有听说吧,应该是老外的叫法吧?
 楼主| 发表于 2015-7-6 16:46:04 | 显示全部楼层
dongshui8558 发表于 2015-7-5 14:54
9 b+ v# |) v- B5 c! e珂,讲讲什么叫FEM吧,这词儿还真没有听说吧,应该是老外的叫法吧?

3 B  H9 l; ^8 ~! {FEM应该是一个欧洲的标准,其中一部分有关于立体库堆垛机运行时间计算的。柯说的应该是这个,柯做仿真相当深入。
发表于 2015-7-6 20:12:38 | 显示全部楼层
FEM 9.851 堆垛机时间计算 就是赵老师说的这个
! n0 {$ D: Q* T! n' u1 V1 T
% D( ~3 G) }- _: H% b( w) v4 I简单来说就是如果负载为一的堆垛机的关键入库点是 1/5L 2/3H 处,关键出库点是 2/3L 1/5H处。。。以这两个点做一次入库 出库循环就是堆垛机的平均 cycle time。。。
+ A, C  A' b! S5 v9 N/ @$ e- W9 `- B
' V: w" t  B8 f2 n; O1 l仿真模型做好后 一般让模型里的堆垛机脱离整个系统 然后连续不间断进行数天负载为一的入库 出库循环。。。得出的堆垛机效能必须符合以FEM 9.851算出来的结果。。。
发表于 2015-7-6 20:13:25 | 显示全部楼层
FEM是一个法语词 翻译过来应该是欧洲仓储和物料流技术学会之类的。。。
 楼主| 发表于 2015-7-7 13:31:30 | 显示全部楼层
五五 发表于 2015-7-6 20:13
! j* |: I, _8 m  Y: ?6 JFEM是一个法语词 翻译过来应该是欧洲仓储和物料流技术学会之类的。。。

$ C+ [8 S5 z9 f3 P  z9 t8 _这,相当于验证模型吧,但我有点不明白都按FEM算就是了,为何还要仿真?有什么输出是FEM没有标准的?
发表于 2015-7-8 17:48:52 | 显示全部楼层
是用来验证模型的啊 因为实际中 堆垛机并不会按平均来运行 也是单一负载 独立系统 所以才需要仿真。。。但是反过来 仿真模型是否正确 是要靠FEM来验证的。。。
 楼主| 发表于 2015-7-9 14:51:56 | 显示全部楼层
五五 发表于 2015-7-8 17:48
! r) _0 v0 ?. |- L2 A6 I! C是用来验证模型的啊 因为实际中 堆垛机并不会按平均来运行 也是单一负载 独立系统 所以才需要仿真。。。但 ...

. W/ d) {# k, O( }% c( D$ t  T( z那要是多负载的,或者多个I/O口的立体库,有什么标准的验证方法吗?
 楼主| 发表于 2015-7-9 14:55:10 | 显示全部楼层
五五 发表于 2015-7-8 17:48 / r$ S& u2 N; J% k  D4 [% X% u
是用来验证模型的啊 因为实际中 堆垛机并不会按平均来运行 也是单一负载 独立系统 所以才需要仿真。。。但 ...
# k+ G  ?/ `# M0 V2 ]
你说的这种按平均验证的情况,仿真建模的目的是需要计算什么?我意思是要计算平均cycletime,那有FEM就够了,用FEM的cycletime验证过的仿真模型,还需要计算什么?
发表于 2015-7-9 17:11:48 | 显示全部楼层
因为仿真模拟过程是不平均的 所以才需要用到仿真 因为FEM只能算平均时间。。。* E  c9 p4 j' t
但是模型在运行之前要利用FEM验证 以防模型里面有各种乱七八糟的错误。。。为了验证必须人工创造一个平均的环境给模型。。。验证完以后就可以保证按照实际中的 不平均的情况运行出来的结果是对的了。。。就这样
发表于 2015-7-9 17:14:18 | 显示全部楼层
nickzhao 发表于 2015-7-9 14:51 ; m* |1 {! o% g6 D5 F' G: w
那要是多负载的,或者多个I/O口的立体库,有什么标准的验证方法吗?
- v# r- P8 B! S% u; R" i$ M5 [' m
多负载没有,多个IO有,也在FEM里面。。。
$ B9 L6 q3 G2 u2 k5 o。。。不过可以通过让堆垛机每次只运一个来模拟单负载,以便进行验证。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-18 23:05 , Processed in 0.014210 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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