Sie sind auf Seite 1von 9

SCHOOL OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

COURSE:

CSI4124/SYS5110
Foundations on Modeling
and Simulation
SEMESTER: FALL 2013

PROFESSOR:

DATE:
TIME:

Gilbert Arbez

December 17, 2012


9h30 to 12h30 (3 hours)

FINAL EXAMINATION
Solution
This solution uses a category with scope=SET for modelling the Stations.

Name and Student Number: _______________________________________________/_______________________

This is an open book exam.

There are four (4) parts in this examination.

Question 1
Question 2
Question 3
Total

Conceptual Model
Simulation Model
Experimentation and Output Analysis

35 marks
15 marks
10 marks
60 marks

All questions are answered in the examination paper. If you require more space, use the back of the pages.
Calculators are permitted.
Total number of pages: 16

Page 1 of 16

Question 1 Conceptual Modelling (30 marks)


Review the Painting Heavy Machine Parts Modelling and Simulation Project provided in the exam annex and complete the
ABCmod Conceptual Model Sections.

ABCmod Conceptual Model

3.1

High Level ABCmod Conceptual Model

3.1.1

3.1.2

Simplifications and Assumptions


The operators are not explicitly modeled as entities. Rather they are associated with the other
resources, that is, the painting station and the manipulator.
Parts are not explicitly modelled.
Structural View
Q.ManipQu[SF]
314
RC.Station[0]

R.Manipulator

Q.ManipQu[RP]
5

Entity Categories:

Notes

3.1.3

RC.Station: This entity has a scope of Set with numStations entities (numStations is a parameter).
Q.ManipQu: A Set of 2 queue entities that represent the stations waiting for the Manipulator resource. The queues
contain the station set identifiers. The identifiers used with this set are SF (store and fetch) and RP (reposition).
R.Manipulator: This resource is used to reposition parts at stations or move/fetch parts to/from storage.
Parts are not explicitly modelled.

Behavioural View
StoreFetch

Painting1

StoreFetch

RepositionPart

Painting1

Painting2

RepositionPart

StoreFetch

Part Life Cycle

Painting2

Station Life Cycle

StoreFetch

RepositionPart

Manipulator Life Cycle

Activity Constructs

StoreFetch: Store a completed part and fetch a new part.


RepositionPart: Reposition part after the first painting step in preparation for the second painting step.
Painting1, Painting2: The two painting steps. These are sequel activities.

Notes

The RepositionPart activity has priority over the StoreFetch activity.

Page 2 of 16

3.2 Detailed ABCmod Conceptual Model


1.2.1.1. Constants and Parameters
Parameters
Description

Name
numStations

Number of painting stations.

Value
3 to 6

1.2.1.2. Entity Structures


Consumer Resource Set[numStations]: Station
The painting stations for painting parts. Note that this entity is treated as a resource consumer that
acts a resource for painting the parts and as a consumer that requires the services from the
manipulator.

Attributes
busy

Description
Set to TRUE (value 1) when station is completing a painting operation and
FALSE (0) otherwise.

Resource Unary: Manipulator


Manipulator used to reposition, store and fetch parts.

Attributes
stationID
busy

Description
The identifier (index) of the station entity being serviced.
Set to TRUE (1) when involved in a manipulator operation and FALSE (0)
otherwise.

Queue Set[2]: ManipQu


The queues of stations (identifiers) waiting for the manipulator. The queue of stations waiting to
reposition a part has the identifier RP and the queue of stations waiting to store and fetch a part has the
identifier SF.

Attributes
list
n

Description
The list of station identifiers in the queue.
The number of stations in the queue.

1.2.2. Behavioural Components


1.2.2.1. Time Units and Observation Interval
Time units: minutes
Observation interval: Determined during experimentation since the project is a steady state study.
1.2.2.2. Initialization

Action: Initialise
Initialise the model, all queues are empty, all resources set to not busy.
TimeSequence
<0>
Event SCS
Q.ManipQu[RP].n 0
Q.ManipQu[SF].n 0
FOR n FROM 0 to numStations-1
SP.Start(Painting1, n)
ENDFOR
R.Manipulator.busy FALSE

Page 3 of 16

1.2.2.3. Output
OUTPUTS
Trajectory Sequences
Description

Name
TRJ[R.Manipulat
or.Busy]
TRJ[C.Stations[I
D].Busy]

Reflects when the manipulator is in use.


Reflects when a station is in use. A trajectory set exists for each station, that is, ID
varies betwenn 0 and numStations-1

Derived Scalar Output Variables (DSOV's)


Description
Data Set Name

Name
manipulatorUtil
stationsUtil

Utilisation of the
manipulator.
The utilisation of the station,
that is, the percentage of
time a station is busy.

Operation

TRJ[R.Manipulator.Busy]

AVG

TRJ[RC.Station[ID].Busy]
Where ID varies between 0
and numStations-1

UDP.ComputeStationU
til()

1.2.2.4. User-Defined Procedures


Name
ComputeStationUtil()

User Defined Procedures


Description
First compute the utilization of each station (AVG of
TRJ[RC.Station[ID]], for ID from 0 to numStations-1). Then average
the utilization over all stations and return this value.

1.2.2.5. Input Constructs


Name
uRepositionTime()

uStoreAndFetchTime()

uPainting1Time()

uPainting2Time()

Random Variate Procedures


Description
Data Model
Provides a time to
reposition the part at
the station.
Provides a time to store
a part and fetch a new
part.
Provides a time for the
operator to complete
the Painting 1 step.

UNIFORM(RP_MIN, RP_MAX)
where RP_MIN = 10 minutes and RP_MAX = 20
minutes.
UNIFORM(SF_MIN, SF_MAX) where SF_MIN
= 25 minutes and SF_MAX = 35 minutes.

Provides a time for the


operator to complete
the Painting 2 step.

Empirical continuous distribution f2 (in minutes)


with the following cumulative distribution:
f2
F(f2)
80
0.0
90
0.24
100
0.73
110
1.0

Empirical continuous distribution f1 (in minutes)


with the following cumulative distribution:
f1
F(f1)
60
0.0
70
0.12
80
0.48
90
0.83
100
1.0

Page 4 of 16

1.2.2.6. Behavioural Constructs


Activity: RepositionPart
The Repositioning operation completed with the manipulator.
Precondition
(R.Manipulator.busy = FALSE) AND
(Q.ManipQu[RP].n 0)
Event SCS
R.Manipulator.busy TRUE
R.Manipulator.stationID SM.RemoveQue(Q.ManipQu[RP])
Duration
RVP.uRepositionTime()
Event SCS
R.Manipulator.busy FALSE
SP.Start(Painting2, R.Manipulator.stationID)

Activity: StoreFetch
The Store and Fetch manipulator operation.
Precondition
(R.Manipulator.busy = FALSE) AND
(Q.ManipQu[RP].n = 0) AND
(Q.ManipQu[SF].n 0)
Event SCS
R.Manipulator.busy TRUE
R.Manipulator.stationID SM.RemoveQue(Q.ManipQu[SF])
Duration
RVP.uStoreAndFetchTime()
Event SCS
R.Manipulator.busy FALSE
SP.Start(Painting1, R.Manipulator.stationID)

Activity: Painting1
Painting 1 operation.
Causal
Event SCS
Duration
Event SCS

stationID
RC.Station[stationID].busy TRUE
RVP.uPainting1Time()
RC.Station[stationID].busy FALSE
SP.InsertQue(Q.ManipQu[RP], stationID)

Activity: Painting2
Painting 2 operation.
Causal
Event SCS
Duration
Event SCS

stationID
RC.Station[stationID].busy TRUE
RVP.uPaintingTime2()
RC.Station[stationID].busy FALSE
SP.InsertQue(Q.ManipQu[SF], stationID)

Page 5 of 16

Question 2 Simulation Modelling (15 marks total)


Translate the Entity Structures (show how entity structures are referenced from the simulation model class) and Activity Constructs
from the ABCmod Conceptual model to an Activity Object Simulation model in Java (using the ABSmod/J package).
/*-------------Entity Structures-------------------*/
/* Unary and Set Entities */
protected Station [] rcStation; // initiliased in the constructor
protected Manipulator rManipulator = new Manipulator();
protected ArrayList<Integer> [] qManipQu; // Created in the Constructor
protected final int RP = 0; // identifier for qManipQu - queue stations waiting
to reposition parts
protected final int SF = 1; // identifier for qManipQu - queue stations waiting
to store and fetch parts
waiting to store and fetch parts
class Manipulator
{
protected int stationID;
protected boolean busy;

// identifier of station being serviced


// station is busy

}
class Station
{
protected boolean busy;
}
/*-------------Behaviour Constructs-------------------*/
public class RepositionPart extends ConditionalActivity
{
PaintingHParts model;
// Constructor
protected RepositionPart(PaintingHParts m) { model = m; }
protected static boolean precondition(PaintingHParts m)
{
boolean ret;
ret = (m.rManipulator.busy == false) && (m.qManipQu[m.RP].size() != 0);
return(ret);
}
public void startingEvent()
{
model.rManipulator.busy = true;
model.rManipulator.stationID = model.qManipQu[model.RP].remove(0);
}
protected double duration()
{
double dur = model.rvp.uRepositionTime();
return dur;
}
protected void terminatingEvent()
{
model.rManipulator.busy = false;
Painting2 sAct = new Painting2(model, model.rManipulator.stationID);
model.spStart(sAct);
}
}

Page 6 of 16

public class Painting1 extends SequelActivity


{
int stationID;
PaintingHParts model;
protected Painting1(PaintingHParts m, int id)
{
model = m;
stationID = id;
}
public void startingEvent()
{
model.rcStation[stationID].busy = true;
}
protected double duration()
{
double dur = model.rvp.uPainting1Time();
return dur;
}
protected void terminatingEvent()
{
model.rcStation[stationID].busy = false;
model.qManipQu[model.RP].add(stationID);
}
}

Page 7 of 16

Question 3 Experimentation and Output Analysis (15 marks total)


A) Validation
Consider the following output for validating the model, where the number of stations was first set to 1 and then to 10. Explain how
the output can be interpreted to validate the model.

Run
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sample Mean
Std Dev (s)

Min Value
Max Value

NumStations
1
10
Manipulator Station
Manipulator Station
Utilisation Utilisation Utilisation Utilisation
0.200
0.796
0.9965
0.3895
0.206
0.789
0.9969
0.3902
0.199
0.796
0.9965
0.3878
0.199
0.796
0.9968
0.3905
0.202
0.793
0.9962
0.3910
0.203
0.794
0.9968
0.3863
0.203
0.793
0.9964
0.3895
0.202
0.793
0.9964
0.3907
0.204
0.792
0.9963
0.3888
0.197
0.798
0.9965
0.3932
0.202
0.793
0.9968
0.3918
0.202
0.794
0.9964
0.3897
0.202
0.793
0.9961
0.3897
0.205
0.791
0.9965
0.3873
0.205
0.791
0.9968
0.3895
0.207
0.790
0.9968
0.3900
0.205
0.790
0.9967
0.3900
0.205
0.791
0.9963
0.3923
0.200
0.796
0.9967
0.3926
0.205
0.791
0.9965
0.3868
0.203
0.793
0.997
0.390
0.003
0.002
0.0002
0.002
0.001
0.202
0.204

0.001
0.792
0.794

0.000
0.996
0.997

0.001
0.389
0.391

When the crane services a single station, its utilisation is low as expected. In this case the station is
busy for close to 80% percent of the time (79.3 %). This value can be treated as the maximum
utilization possible for a station, given that it must wait for repositioning the casting and for
storing/loading operation when a new casting is loaded onto the station. This value is consistent with
1) the means times for the repositioning and loading/storing operations
2) The value of the utilization of the crane which is around 20%.
When the crane services 10 stations, as expected the crane is close to 100% busy. As expected, the
utilization of the stations drop since it spends time waiting for the crane to become available.

Page 8 of 16

B) Output Analysis
Consider the following results obtained from 20 simulation runs for the Balancing Equipment Project.
NumStations
3

Simul. Manipulator
Station
Run
Utilisation
Utilisation

Manipulator
Utilisation

Station
Manipulator Station Manipulator
Station
Utilisation
Utilisation Utilisation
Utilisation
Utilisation

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

0.593
0.593
0.597
0.596
0.593
0.598
0.599
0.590
0.592
0.587
0.595
0.593
0.594
0.595
0.597
0.595
0.597
0.590
0.587
0.601

0.773
0.769
0.772
0.773
0.772
0.774
0.770
0.773
0.770
0.777
0.772
0.773
0.772
0.772
0.773
0.767
0.770
0.772
0.775
0.771

0.768
0.768
0.769
0.769
0.766
0.772
0.767
0.767
0.765
0.759
0.767
0.768
0.766
0.764
0.770
0.766
0.772
0.766
0.761
0.772

0.747
0.747
0.750
0.751
0.751
0.748
0.744
0.751
0.743
0.751
0.749
0.752
0.749
0.743
0.749
0.746
0.747
0.754
0.750
0.744

0.910
0.914
0.921
0.921
0.915
0.918
0.915
0.912
0.914
0.908
0.913
0.910
0.912
0.921
0.916
0.917
0.918
0.912
0.912
0.921

0.708
0.712
0.714
0.718
0.716
0.710
0.712
0.714
0.712
0.717
0.714
0.711
0.710
0.715
0.712
0.715
0.713
0.715
0.716
0.712

0.994
0.990
0.993
0.994
0.990
0.994
0.993
0.990
0.994
0.992
0.992
0.992
0.992
0.993
0.993
0.993
0.994
0.991
0.992
0.994

0.645
0.644
0.641
0.647
0.646
0.641
0.645
0.645
0.645
0.651
0.648
0.645
0.645
0.642
0.644
0.646
0.646
0.649
0.649
0.642

Sample Mean
Std Dev (s)

0.594
0.004

0.772
0.002

0.767
0.003

0.748
0.003

0.915
0.004

0.713
0.003

0.993
0.001

0.645
0.003

Provide output analysis of the above results (be sure to provide appropriate confidence intervals) and discuss the results
relative to the project goal.
Make a recommendation of another possible Modelling and Simulation Study to explore balancing the use of the equipment to
provide better balancing of equipment (if possible).

The following table shows the confidence intervals based on the above data.
0.594
0.004
0.00194
0.592
0.596

0.772
0.002
0.00118
0.771
0.773

0.767
0.003
0.00173
0.765
0.769

0.748
0.003
0.00165
0.747
0.750

r 0.003257964 0.001527604

0.002253903

0.00220152

Sample Mean
Std Dev (s)

Min Value
Max Value

0.915
0.004
0.00209
0.913
0.917

0.713
0.003
0.00136
0.712
0.715

0.00227985 0.00190418

0.993
0.001
0.00072
0.992
0.993

0.645
0.003
0.00145
0.644
0.647

0.000728804 0.00224738

No additional simulation runs are required.


Having the crane service 6 stations makes the best use of the crane (its utilization is increased to 99.3
% which is close to 100 %). But the station utilization drops from 77% to around 65%, as 12% drop.
The option of having the crane service 5 stations must be considered, as the utilization of the 5 stations
will increase by some 6% while the cranes utilization drops by 8%.
Additional simulation to be considered is to have 2 or 3 cranes service multiple stations to see if it is
possible to maximize utilizations of both cranes and stations.

Page 9 of 16

Das könnte Ihnen auch gefallen