七、随机数据输入模型构建范例

基本过程:

1)  生成数据的直方图

2)  根据直方图与各种pdf曲线对比,选择分布簇

3)  进行参数估计

4)  进行假设检验,如果检验不通过重复步骤2-4

5)  获得该数据的随机分布函数

 

7.1   指数分布数据处理范例

在对银行营业部客户服务水平的仿真过程中,需要分析顾客到达时间间隔服从怎样的随机分布函数。通过秒表测时收集了连续的100位顾客到达营业厅的时刻点数据,处理得出到达时间间隔数据如下:

8.04

4.77

12.42

9.22

3.91

8.50

14.74

9.20

5.82

28.56

10.33

4.62

7.66

7.24

39.22

2.14

15.46

16.16

16.45

1.18

22.38

3.12

0.59

3.76

3.01

4.00

4.59

7.07

1.55

29.58

10.38

9.59

12.41

20.05

0.78

9.34

8.59

2.54

1.34

11.50

1.34

3.82

9.47

15.83

14.00

25.77

3.59

3.62

0.08

2.87

21.83

18.41

21.70

21.95

1.91

5.97

2.53

9.21

2.20

4.86

0.96

18.79

6.33

7.16

5.80

14.65

0.86

4.33

4.31

0.07

0.04

1.33

17.15

22.81

6.59

5.94

3.51

4.22

5.49

13.27

26.06

0.29

1.04

16.29

1.66

5.81

3.78

37.63

0.44

1.77

2.24

19.26

9.32

16.39

11.56

2.67

8.16

2.40

3.53

5.14

分析顾客到达时间间隔服从什么分布?开发并检验一个合适的模型。

求解过程:

1)  数据的直方图

使用Minitab生成数据直方图如下:

2)  选择分布簇

对照pdf曲线图和上面的直方图,可以发现,该直方图同指数分布曲线比较吻合,因此,假设顾客到达时间间隔服从指数分布,及其概率密度函数pdf为:

其中为该分布的均值。

3)参数估计,

Minitab中获得直方图的拟合曲线和参数的估计值,见下图。

从图上可以看出,9.018,即选择的指数分布密度函数pdf如下:

 

   2

概率分布函数cdf如下:

4检验

  运用检验如下假设。

  H0x的概率密度函数服从式(2)的指数分布

  检验计算表

No

Min

Max

fi

pi

npi

npi-fi

(npi-fi)2/npi

Fvalue

1

0.000

3.922

36

0.353

35.270

-0.730

0.015

0.353

2

3.922

7.845

21

0.228

22.830

1.830

0.147

0.581

3

7.845

11.767

15

0.148

14.778

-0.222

0.003

0.729

4

11.767

15.690

7

0.096

9.566

2.566

0.688

0.824

5

15.690

19.612

9

0.062

6.192

-2.808

1.273

0.886

6

19.612

23.535

6

0.040

4.008

-0.636

0.036

0.926

7

23.535

27.457

2

0.026

2.594

0.952

8

27.457

31.380

2

0.017

1.679

0.969

9

31.380

35.302

0

0.011

1.087

0.980

10

35.302

39.225

2

0.020

1.995

1

 =SUM(ABOVE) 2.162

 

  因为>2.162,故在水平0.05下接受H0,认为x服从均值为9.018的指数分布。

 

所以,该银行客户到达时间间隔服从均值为9.018Min的指数分布。

 

7.2   三角分布数据处理范式

  记录机床操作工作业时间数据如下,单位为秒,分析该作业时间服从什么分布?开发并检验一个合适的模型。

31.1

34.8

21.1

26.6

32.5

36.6

38.6

33.4

27.8

42.3

23.2

29.3

37.9

26.9

30.4

42.1

31.7

31.8

24.3

29.3

28.7

30.8

35.2

25.6

43.1

46.4

35.3

45.9

31.0

34.5

33.3

32.4

32.4

30.2

42.3

49.0

32.6

41.8

37.7

33.1

29.7

30.1

31.4

24.9

30.6

29.5

29.8

26.5

29.1

23.2

33.0

29.3

29.6

42.6

25.8

26.3

45.2

23.0

37.8

27.6

33.5

23.0

47.2

33.2

43.4

27.3

35.2

43.0

31.4

29.3

30.1

33.2

31.5

28.1

30.5

41.5

33.1

31.1

35.6

32.7

41.4

26.6

27.8

37.8

43.2

35.7

32.9

30.7

31.8

38.4

42.4

41.6

38.1

30.2

34.1

26.3

30.8

38.7

35.4

38.4

 

求解过程:

3)  数据的直方图

使用Minitab生成数据直方图如下:

4)  选择分布簇

对照pdf曲线图和上面的直方图,可以发现,该直方图同三角分布曲线比较吻合,因此,假设作业时间服从三角分布,及其概率密度函数pdf为:

其中abc为该分布的参数,a为最小取值,b为众数,c为最大取值。

3)参数估计,

该分布的参数ac的估计值直接通过观察数据即可获得,其中a=21.2c=49.0。而b可由下式计算获得。

已有数据的均值E(x)33.34,则b=29.92,即选择的三角分布密度函数pdf如下:

   2

概率分布函数cdf如下:

4检验

  运用检验如下假设。

  H0x的概率密度函数服从式(2)的三角分布

检验计算表

No

Min

Max

fi

pi

npi

npi-fi

(npi-fi)^2/npi

Fvalue

1

21.1

23.9

6

0.032

3.162

-2.350

0.437

0.032

2

23.9

26.7

9

0.095

9.487

0.126

3

26.7

29.5

12

0.158

15.812

3.812

0.919

0.285

4

29.5

32.3

13

0.189

18.890

5.890

1.837

0.474

5

32.3

35.0

17

0.161

16.087

-0.913

0.052

0.634

6

35.0

37.8

8

0.132

13.162

5.162

2.024

0.766

7

37.8

40.6

8

0.102

10.237

2.237

0.489

0.868

8

40.6

43.4

12

0.073

7.312

-4.688

3.005

0.942

9

43.4

46.2

3

0.044

4.387

-0.150

0.004

0.985

10

46.2

49.0

3

0.015

1.462

1.000

 =SUM(ABOVE) 8.767

 

 

  因为>8.767,故在水平0.05下接受H0,认为x服从参数为[21.229.949]的三角分布。

 

所以,该工序作业时间服从参数为[21.229.949]的三角分布。

 

 

 

 

八、示例1:设备故障间隔时间模型的识别

发动机曲轴生产线有5台设备,设为A/B/C/D/E,如图一所示。该产线生产两种产品P1P2,同一机器对产品的加工时间相等,当机器加工不同产品进行换型时,各台设备的换型时间差异较大,如表一所示。设备间以滚道输送链连接并进行曲轴的输送,设备间滚道和生产线上下料滚道各可以存放6件,滚道移位时间为1Sec。其中设备D具有随机故障的发生,故障发生时刻和维修时间数据如表二所示,完整的历史数据见:输入模型之设备故障间隔时间模型识别数据.xls。为了进行仿真建模,需要识别故障间隔时间服从的分布以及维修时间服从的分布。对数据表进行分析时,假设缸体生产线每天工作时间为8小时,即从:800-1600

试建立故障间隔和维修时间的随机输入模型,设计该系统的生产排程规则,并用Witness建立该系统的仿真模型。

图一   产线布局图

表一   加工和换型时间数据表

设备

加工时间Sec

换型时间Min

A

46.8

2

B

47

14

C

47.1

2

D

47.6

80

E

45

44.3


 

表二   数据处理局部表格

8.1 设备故障间隔时间输入模型的构建

1)间隔时间数据的获得

上表中,A-K列数据为现场记录数据,LM列是为了计算两次故障间隔发生时间而进行的计算数据。其中L列系统时间为K列发生时刻数据转换获得的,M列故障间隔时间为C列日期和K列发生时刻数据处理获得的,具体计算函数如下。

以第2行的数据为例,L列系统时间L2计算表达式为:=ToTime(K2),即将K列数据转换为系统时间值。

ToTime函数为自定义函数,函数体如下:

Public Function ToTime(sStr As String) As Date

   ToTime = CDate(sStr)

End Function

因为K列发生时刻数据为字符串,为了计算为字符串在每天中的时间值(一天24小时的时间值为0-1之间的小数),使用了Cdate函数进行转换,具体参看xls

以第3行的数据为例,M列间隔时间M3计算表达式为:=CalInterval(C2,L2,C3,L3),即根据前后两次故障发生的日期和时间,计算处两次故障发生的时间间隔。

CalInterval函数为自定义函数,函数体如下:

Public Function CalInterval(nDate1 As Integer, rTime1 As Date, nDate2 As Integer, rTime2 As Date) As Double

   If nDate2 < nDate1 Then

        CalInterval = nDate2 * 480 + (rTime2 - rTime1) * 1440

   Else

        CalInterval = (nDate2 - nDate1) * 480 + (rTime2 - rTime1) * 1440

   End If

End Function

nDate1rTime1分别为前一次发生故障的日期和时间,nDate21rTime21分别为当次发生故障的日期和时间。

如果前一次和当次故障都在同一个月中发生,故障间隔计算表达式为:

CalInterval = (nDate2 - nDate1) * 480 + (rTime2 - rTime1) * 1440

上述表达式表示两种情况:如果两次故障均发生在同一天,故障间隔等于故障发生时刻的系统时间之差乘以1440分钟;如果两次故障不是发生在同一天,则故障间隔等于故障发生日期之差乘以480(因为每天正常班次时间为8小时=480分钟)再加上两次故障发生时刻系统时间之差。

如果前一次和当次故障不在同一个月中发生,故障间隔计算表达式为:

CalInterval = nDate2 * 480 + (rTime2 - rTime1) * 1440

不再同一月发生的条件由表达式nDate2 < nDate1控制,因为从表中数据分析可以看出,如果当次故障同前一次故障不是在同一月发生,则当次故障发生的日期肯定要小于前次故障发生的日期。

2)间隔时间直方图的生成

M列的数据复制并粘贴为行的形式,然后将行数据复制到Matlab窗口,令Y=[ 98     405  207  101  142  506  2031       1208       1573       643  139  472  363  424  1166       109  124  126  104  207  198  247  403  1548       42    213  783  657  67       162  112  65    145  884  561  3437       638  728  138  190  423  117  767  210  81    58    122  186  629  2088       285  1515       1679       1689       1528       413  142  226  676  452  288  4     317  103  688  204  1979       1100       553  1197       607       1279       92]

Matlab窗口输入命令:hist(y,9),即可获得下列直方图。

从直方图中可以看出,该随机分布近似服从指数分布。

3)选择分布簇

对照pdf曲线图和上面的直方图,可以发现,该直方图同指数分布曲线比较吻合,因此,假设顾客到达时间间隔服从指数分布,及其概率密度函数pdf为:

其中为该分布的均值。

4)参数估计,

     可以计算出数据的均值为589.9,即589.9,选择的指数分布密度函数pdf如下:

   2

概率分布函数cdf如下:

5)卡方检验

卡方检验计算如下表所示。

 

检验统计量为3.871,查表>3.871,所以接受设备故障间隔时间服从均值为589.9的指数分布。

注:或者在Matlab中使用kstest(z,[z expcdf(z,589)])进行检验,其中z为故障间隔时间的向量,获得的结果也为0,即不能拒绝该分布服从均值为589的指数分布。

8.2 故障维修时间的输入模型构建

1)数据分析和直方图的生成

从数据表二中的维修时间中可以看出,对维修时间的记录很粗糙,基本上维修时间记录为5的整数倍,因此可以将维修时间模型开发为为离散分布模型。首先识别出重大故障发生的频率,即维修时间为130Min的故障比率为1/74。然后将130的数据从数据列表中移除,这样剩下的维修时间如下:

15   20    20    20                                      

25   35    35    15    50    18    15    20    75    30

40   40    28    30    20    45    80    30    80    15

20   40    45    15    25    10    25    20    15    10

15   25    45           20    15    15    30    45    25

20   35    15    10    50    35    20    20    30    55

60   21    25    53    20    18    20    13    20    20

55   15    15    25    25    45    25    55    12    20

对其中的非5整数倍数据进行整数倍处理,处理规则类似四舍五入法,例如12将转化为1013将转化为15。得到新的数列如下:

15   20    20    20                                      

25   35    35    15    50    20    15    20    75    30

40   40    30    30    20    45    80    30    80    15

20   40    45    15    25    10    25    20    15    10

15   25    45           20    15    15    30    45    25

20   35    15    10    50    35    20    20    30    55

60   20    25    55    20    20    20    15    20    20

55   15    15    25    25    45    25    55    10    20

Matlab命令窗口使用Hist(Z,15)生成数列直方图如下图。

2)经验分布表

根据直方图,很容易获得每种维修时间出现的频次,获得经验分布表如下。

维修时间

10

15

20

25

30

35

40

45

50

55

60

65

70

75

80

出现频次

4

13

19

9

6

4

3

5

2

5

1

0

0

1

2

 

8.3 建立仿真模型

 

1)模型中的元素列表