1% response-time-distribution-and-percentiles
2model = Network(
'Model');
5node{1} = Delay(model,
'Delay');
6node{2} = Queue(model,
'Queue1', SchedStrategy.PS);
9jobclass{1} = ClosedClass(model,
'Class1', 5, node{1}, 0);
10node{1}.setService(
jobclass{1}, Exp(1.0));
11node{2}.setService(
jobclass{1}, Exp(0.5));
14model.link(Network.serialRouting(node{1},node{2}));
17RDfluid = FLD(model,
'seed',23000).getCdfRespT();
18RDsim = JMT(model,
'seed',23000,
'samples',1e4).getCdfRespT();
21if ~isempty(RDsim{2,1})
22 semilogx(RDsim{2,1}(:,2),1-RDsim{2,1}(:,1),
'r'); hold on;
23 semilogx(RDfluid{2,1}(:,2),1-RDfluid{2,1}(:,1),
'k--');
24 legend(
'jmt-transient',
'fluid-steady',
'Location',
'Best');
25 ylabel(
'Pr(T > t)'); xlabel(
'time t');
28% Compute CDF-derived scalar statistics
29M = model.getNumberOfStations;
30K = model.getNumberOfClasses;
32AvgRespTfromCDFSim = zeros(M,K);
33SqCoeffOfVariationRespTfromCDFSim = zeros(M,K);
36 if ~isempty(RDsim{i,c}) && size(RDsim{i,c},2) >= 2
37 AvgRespTfromCDFSim(i,c) = diff(RDsim{i,c}(:,1))
'*RDsim{i,c}(2:end,2);
38 PowerMoment2_R(i,c) = diff(RDsim{i,c}(:,1))'*(RDsim{i,c}(2:end,2).^2);
39 Variance_R(i,c) = PowerMoment2_R(i,c)-AvgRespTfromCDFSim(i,c)^2;
40 SqCoeffOfVariationRespTfromCDFSim(i,c) = Variance_R(i,c)/AvgRespTfromCDFSim(i,c)^2;
45AvgRespTfromCDFFluid = zeros(M,K);
46SqCoeffOfVariationRespTfromCDFFluid = zeros(M,K);
49 if ~isempty(RDfluid{i,c}) && size(RDfluid{i,c},2) >= 2
50 AvgRespTfromCDFFluid(i,c) = diff(RDfluid{i,c}(:,1))
'*RDfluid{i,c}(2:end,2);
51 PowerMoment2_R(i,c) = diff(RDfluid{i,c}(:,1))'*(RDfluid{i,c}(2:end,2).^2);
52 Variance_R(i,c) = PowerMoment2_R(i,c)-AvgRespTfromCDFFluid(i,c)^2;
53 SqCoeffOfVariationRespTfromCDFFluid(i,c) = Variance_R(i,c)/AvgRespTfromCDFFluid(i,c)^2;
60SqCoeffOfVariationRespTfromCDFSim
61SqCoeffOfVariationRespTfromCDFFluid